diff --git a/go.mod b/go.mod index 9158f4661..306e2391e 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/go-git/go-git/v5 v5.3.0 github.com/go-openapi/spec v0.19.5 github.com/golang/mock v1.5.0 - github.com/hinshun/vt10x v0.0.0-20220127042424-3ca73d0126d7 + github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02 github.com/kr/pty v1.1.5 github.com/kubernetes-sigs/service-catalog v0.3.1 github.com/kylelemons/godebug v1.1.0 @@ -77,3 +77,5 @@ replace ( k8s.io/kubectl => github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210831004331-1199c36daed6 k8s.io/metrics => k8s.io/metrics v0.0.0-20211006171351-de75bc981086 ) + +replace github.com/kr/pty => github.com/creack/pty v1.1.18-0.20220131133352-edfd13da2a92 diff --git a/go.sum b/go.sum index 5e5458959..d3ade3cf8 100644 --- a/go.sum +++ b/go.sum @@ -233,6 +233,8 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.18-0.20220131133352-edfd13da2a92 h1:KbNrdkpn2Wvea96p5Nywl99PXU9wI8vW8ZKHXiaLHPI= +github.com/creack/pty v1.1.18-0.20220131133352-edfd13da2a92/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07/go.mod h1:URriBxXwVq5ijiJ12C7iIZqlA69nTlI+LgI6/pwftG8= github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg= @@ -642,8 +644,8 @@ github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0m github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= -github.com/hinshun/vt10x v0.0.0-20220127042424-3ca73d0126d7 h1:PoerlCqzob3t6b5/8mjCPkX4QSTYR4/+kB8IzqZE3ug= -github.com/hinshun/vt10x v0.0.0-20220127042424-3ca73d0126d7/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68= +github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02 h1:AgcIVYPa6XJnU3phs104wLj8l5GEththEw6+F79YsIY= +github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68= github.com/hokaccha/go-prettyjson v0.0.0-20190818114111-108c894c2c0e/go.mod h1:pFlLw2CfqZiIBOx6BuCeRLCrfxBJipTY0nIOF/VbGcI= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -723,10 +725,6 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5 h1:hyz3dwM5QLc1Rfoz4FuWJQG5BN7tc6K1MndAUnGpQr4= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= diff --git a/tests/helper/helper_interactive.go b/tests/helper/helper_interactive.go index 84caa9746..a76724666 100644 --- a/tests/helper/helper_interactive.go +++ b/tests/helper/helper_interactive.go @@ -1,6 +1,3 @@ -//go:build linux || darwin || dragonfly || solaris || openbsd || netbsd || freebsd -// +build linux darwin dragonfly solaris openbsd netbsd freebsd - package helper import ( diff --git a/tests/integration/interactive/cmd_init_test.go b/tests/integration/interactive/cmd_init_test.go index e5d13e53d..5b96c2363 100644 --- a/tests/integration/interactive/cmd_init_test.go +++ b/tests/integration/interactive/cmd_init_test.go @@ -1,6 +1,3 @@ -//go:build linux || darwin || dragonfly || solaris || openbsd || netbsd || freebsd -// +build linux darwin dragonfly solaris openbsd netbsd freebsd - package interactive import ( diff --git a/tests/integration/interactive/interactive_suit_test.go b/tests/integration/interactive/interactive_suit_test.go index a9f1bd7ee..ed8bf7268 100644 --- a/tests/integration/interactive/interactive_suit_test.go +++ b/tests/integration/interactive/interactive_suit_test.go @@ -1,4 +1,3 @@ -// +build linux darwin dragonfly solaris openbsd netbsd freebsd //go:build !race // +build !race diff --git a/vendor/github.com/hinshun/vt10x/vt_other.go b/vendor/github.com/hinshun/vt10x/vt_other.go index 1924729f5..c9d364ee5 100644 --- a/vendor/github.com/hinshun/vt10x/vt_other.go +++ b/vendor/github.com/hinshun/vt10x/vt_other.go @@ -23,8 +23,8 @@ func newTerminal(info TerminalInfo) *terminal { func (t *terminal) init(cols, rows int) { t.numlock = true t.state = t.parse - t.cur.attr.fg = DefaultFG - t.cur.attr.bg = DefaultBG + t.cur.Attr.FG = DefaultFG + t.cur.Attr.BG = DefaultBG t.Resize(cols, rows) t.reset() } diff --git a/vendor/github.com/kr/pty/Dockerfile.golang b/vendor/github.com/kr/pty/Dockerfile.golang new file mode 100644 index 000000000..2ee82a3a1 --- /dev/null +++ b/vendor/github.com/kr/pty/Dockerfile.golang @@ -0,0 +1,17 @@ +ARG GOVERSION=1.14 +FROM golang:${GOVERSION} + +# Set base env. +ARG GOOS=linux +ARG GOARCH=amd64 +ENV GOOS=${GOOS} GOARCH=${GOARCH} CGO_ENABLED=0 GOFLAGS='-v -ldflags=-s -ldflags=-w' + +# Pre compile the stdlib for 386/arm (32bits). +RUN go build -a std + +# Add the code to the image. +WORKDIR pty +ADD . . + +# Build the lib. +RUN go build diff --git a/vendor/github.com/kr/pty/Dockerfile.riscv b/vendor/github.com/kr/pty/Dockerfile.riscv new file mode 100644 index 000000000..7a30c94d0 --- /dev/null +++ b/vendor/github.com/kr/pty/Dockerfile.riscv @@ -0,0 +1,23 @@ +# NOTE: Using 1.13 as a base to build the RISCV compiler, the resulting version is based on go1.6. +FROM golang:1.13 + +# Clone and complie a riscv compatible version of the go compiler. +RUN git clone https://review.gerrithub.io/riscv/riscv-go /riscv-go +# riscvdev branch HEAD as of 2019-06-29. +RUN cd /riscv-go && git checkout 04885fddd096d09d4450726064d06dd107e374bf +ENV PATH=/riscv-go/misc/riscv:/riscv-go/bin:$PATH +RUN cd /riscv-go/src && GOROOT_BOOTSTRAP=$(go env GOROOT) ./make.bash +ENV GOROOT=/riscv-go + +# Set the base env. +ENV GOOS=linux GOARCH=riscv CGO_ENABLED=0 GOFLAGS='-v -ldflags=-s -ldflags=-w' + +# Pre compile the stdlib. +RUN go build -a std + +# Add the code to the image. +WORKDIR pty +ADD . . + +# Build the lib. +RUN go build diff --git a/vendor/github.com/kr/pty/License b/vendor/github.com/kr/pty/LICENSE similarity index 100% rename from vendor/github.com/kr/pty/License rename to vendor/github.com/kr/pty/LICENSE diff --git a/vendor/github.com/kr/pty/README.md b/vendor/github.com/kr/pty/README.md index f9bb002e0..a4fe7670d 100644 --- a/vendor/github.com/kr/pty/README.md +++ b/vendor/github.com/kr/pty/README.md @@ -4,9 +4,13 @@ Pty is a Go package for using unix pseudo-terminals. ## Install - go get github.com/kr/pty +```sh +go get github.com/creack/pty +``` -## Example +## Examples + +Note that those examples are for demonstration purpose only, to showcase how to use the library. They are not meant to be used in any kind of production environment. ### Command @@ -14,10 +18,11 @@ Pty is a Go package for using unix pseudo-terminals. package main import ( - "github.com/kr/pty" "io" "os" "os/exec" + + "github.com/creack/pty" ) func main() { @@ -50,8 +55,8 @@ import ( "os/signal" "syscall" - "github.com/kr/pty" - "golang.org/x/crypto/ssh/terminal" + "github.com/creack/pty" + "golang.org/x/term" ) func test() error { @@ -77,15 +82,17 @@ func test() error { } }() ch <- syscall.SIGWINCH // Initial resize. + defer func() { signal.Stop(ch); close(ch) }() // Cleanup signals when done. // Set stdin in raw mode. - oldState, err := terminal.MakeRaw(int(os.Stdin.Fd())) + oldState, err := term.MakeRaw(int(os.Stdin.Fd())) if err != nil { panic(err) } - defer func() { _ = terminal.Restore(int(os.Stdin.Fd()), oldState) }() // Best effort. + defer func() { _ = term.Restore(int(os.Stdin.Fd()), oldState) }() // Best effort. // Copy stdin to the pty and the pty to stdout. + // NOTE: The goroutine will keep reading until the next keystroke before returning. go func() { _, _ = io.Copy(ptmx, os.Stdin) }() _, _ = io.Copy(os.Stdout, ptmx) diff --git a/vendor/github.com/kr/pty/asm_solaris_amd64.s b/vendor/github.com/kr/pty/asm_solaris_amd64.s new file mode 100644 index 000000000..7fbef8ee6 --- /dev/null +++ b/vendor/github.com/kr/pty/asm_solaris_amd64.s @@ -0,0 +1,18 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gc +//+build gc + +#include "textflag.h" + +// +// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go +// + +TEXT ·sysvicall6(SB),NOSPLIT,$0-88 + JMP syscall·sysvicall6(SB) + +TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88 + JMP syscall·rawSysvicall6(SB) diff --git a/vendor/github.com/kr/pty/doc.go b/vendor/github.com/kr/pty/doc.go index 190cfbea9..3c8b3244e 100644 --- a/vendor/github.com/kr/pty/doc.go +++ b/vendor/github.com/kr/pty/doc.go @@ -10,7 +10,7 @@ import ( // available on the current platform. var ErrUnsupported = errors.New("unsupported") -// Opens a pty and its corresponding tty. +// Open a pty and its corresponding tty. func Open() (pty, tty *os.File, err error) { return open() } diff --git a/vendor/github.com/kr/pty/go.mod b/vendor/github.com/kr/pty/go.mod index f73bcd613..7731235be 100644 --- a/vendor/github.com/kr/pty/go.mod +++ b/vendor/github.com/kr/pty/go.mod @@ -1,3 +1,3 @@ -module github.com/kr/pty +module github.com/creack/pty -go 1.12 +go 1.13 diff --git a/vendor/github.com/kr/pty/ioctl.go b/vendor/github.com/kr/pty/ioctl.go index c57c19e7e..067643795 100644 --- a/vendor/github.com/kr/pty/ioctl.go +++ b/vendor/github.com/kr/pty/ioctl.go @@ -1,9 +1,15 @@ -// +build !windows +//go:build !windows && !solaris +//+build !windows,!solaris package pty import "syscall" +const ( + TIOCGWINSZ = syscall.TIOCGWINSZ + TIOCSWINSZ = syscall.TIOCSWINSZ +) + func ioctl(fd, cmd, ptr uintptr) error { _, _, e := syscall.Syscall(syscall.SYS_IOCTL, fd, cmd, ptr) if e != 0 { diff --git a/vendor/github.com/kr/pty/ioctl_bsd.go b/vendor/github.com/kr/pty/ioctl_bsd.go index 73b12c53c..ab53e2db0 100644 --- a/vendor/github.com/kr/pty/ioctl_bsd.go +++ b/vendor/github.com/kr/pty/ioctl_bsd.go @@ -1,4 +1,5 @@ -// +build darwin dragonfly freebsd netbsd openbsd +//go:build (darwin || dragonfly || freebsd || netbsd || openbsd) +//+build darwin dragonfly freebsd netbsd openbsd package pty diff --git a/vendor/github.com/kr/pty/ioctl_solaris.go b/vendor/github.com/kr/pty/ioctl_solaris.go new file mode 100644 index 000000000..8b6cc0ec0 --- /dev/null +++ b/vendor/github.com/kr/pty/ioctl_solaris.go @@ -0,0 +1,48 @@ +//go:build solaris +//+build solaris + +package pty + +import ( + "syscall" + "unsafe" +) + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" +//go:linkname procioctl libc_ioctl +var procioctl uintptr + +const ( + // see /usr/include/sys/stropts.h + I_PUSH = uintptr((int32('S')<<8 | 002)) + I_STR = uintptr((int32('S')<<8 | 010)) + I_FIND = uintptr((int32('S')<<8 | 013)) + + // see /usr/include/sys/ptms.h + ISPTM = (int32('P') << 8) | 1 + UNLKPT = (int32('P') << 8) | 2 + PTSSTTY = (int32('P') << 8) | 3 + ZONEPT = (int32('P') << 8) | 4 + OWNERPT = (int32('P') << 8) | 5 + + // see /usr/include/sys/termios.h + TIOCSWINSZ = (uint32('T') << 8) | 103 + TIOCGWINSZ = (uint32('T') << 8) | 104 +) + +type strioctl struct { + icCmd int32 + icTimeout int32 + icLen int32 + icDP unsafe.Pointer +} + +// Defined in asm_solaris_amd64.s. +func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func ioctl(fd, cmd, ptr uintptr) error { + if _, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, fd, cmd, ptr, 0, 0, 0); errno != 0 { + return errno + } + return nil +} diff --git a/vendor/github.com/kr/pty/mktypes.bash b/vendor/github.com/kr/pty/mktypes.bash index 82ee16721..7f71bda6a 100644 --- a/vendor/github.com/kr/pty/mktypes.bash +++ b/vendor/github.com/kr/pty/mktypes.bash @@ -13,7 +13,7 @@ GODEFS="go tool cgo -godefs" $GODEFS types.go |gofmt > ztypes_$GOARCH.go case $GOOS in -freebsd|dragonfly|openbsd) +freebsd|dragonfly|netbsd|openbsd) $GODEFS types_$GOOS.go |gofmt > ztypes_$GOOSARCH.go ;; esac diff --git a/vendor/github.com/kr/pty/pty_darwin.go b/vendor/github.com/kr/pty/pty_darwin.go index 6344b6b0e..cca0971f1 100644 --- a/vendor/github.com/kr/pty/pty_darwin.go +++ b/vendor/github.com/kr/pty/pty_darwin.go @@ -1,3 +1,6 @@ +//go:build darwin +//+build darwin + package pty import ( @@ -33,7 +36,7 @@ func open() (pty, tty *os.File, err error) { return nil, nil, err } - t, err := os.OpenFile(sname, os.O_RDWR, 0) + t, err := os.OpenFile(sname, os.O_RDWR|syscall.O_NOCTTY, 0) if err != nil { return nil, nil, err } diff --git a/vendor/github.com/kr/pty/pty_dragonfly.go b/vendor/github.com/kr/pty/pty_dragonfly.go index b7d1f20f2..7a1fec3a9 100644 --- a/vendor/github.com/kr/pty/pty_dragonfly.go +++ b/vendor/github.com/kr/pty/pty_dragonfly.go @@ -1,3 +1,6 @@ +//go:build dragonfly +//+build dragonfly + package pty import ( diff --git a/vendor/github.com/kr/pty/pty_freebsd.go b/vendor/github.com/kr/pty/pty_freebsd.go index 63b6d9133..a4cfd925c 100644 --- a/vendor/github.com/kr/pty/pty_freebsd.go +++ b/vendor/github.com/kr/pty/pty_freebsd.go @@ -1,3 +1,6 @@ +//go:build freebsd +//+build freebsd + package pty import ( diff --git a/vendor/github.com/kr/pty/pty_linux.go b/vendor/github.com/kr/pty/pty_linux.go index 4a833de18..22ccbe128 100644 --- a/vendor/github.com/kr/pty/pty_linux.go +++ b/vendor/github.com/kr/pty/pty_linux.go @@ -1,3 +1,6 @@ +//go:build linux +//+build linux + package pty import ( @@ -28,7 +31,7 @@ func open() (pty, tty *os.File, err error) { return nil, nil, err } - t, err := os.OpenFile(sname, os.O_RDWR|syscall.O_NOCTTY, 0) + t, err := os.OpenFile(sname, os.O_RDWR|syscall.O_NOCTTY, 0) //nolint:gosec // Expected Open from a variable. if err != nil { return nil, nil, err } @@ -37,7 +40,7 @@ func open() (pty, tty *os.File, err error) { func ptsname(f *os.File) (string, error) { var n _C_uint - err := ioctl(f.Fd(), syscall.TIOCGPTN, uintptr(unsafe.Pointer(&n))) + err := ioctl(f.Fd(), syscall.TIOCGPTN, uintptr(unsafe.Pointer(&n))) //nolint:gosec // Expected unsafe pointer for Syscall call. if err != nil { return "", err } @@ -47,5 +50,5 @@ func ptsname(f *os.File) (string, error) { func unlockpt(f *os.File) error { var u _C_int // use TIOCSPTLCK with a pointer to zero to clear the lock - return ioctl(f.Fd(), syscall.TIOCSPTLCK, uintptr(unsafe.Pointer(&u))) + return ioctl(f.Fd(), syscall.TIOCSPTLCK, uintptr(unsafe.Pointer(&u))) //nolint:gosec // Expected unsafe pointer for Syscall call. } diff --git a/vendor/github.com/kr/pty/pty_netbsd.go b/vendor/github.com/kr/pty/pty_netbsd.go new file mode 100644 index 000000000..98c089c8c --- /dev/null +++ b/vendor/github.com/kr/pty/pty_netbsd.go @@ -0,0 +1,69 @@ +//go:build netbsd +//+build netbsd + +package pty + +import ( + "errors" + "os" + "syscall" + "unsafe" +) + +func open() (pty, tty *os.File, err error) { + p, err := os.OpenFile("/dev/ptmx", os.O_RDWR, 0) + if err != nil { + return nil, nil, err + } + // In case of error after this point, make sure we close the ptmx fd. + defer func() { + if err != nil { + _ = p.Close() // Best effort. + } + }() + + sname, err := ptsname(p) + if err != nil { + return nil, nil, err + } + + if err := grantpt(p); err != nil { + return nil, nil, err + } + + // In NetBSD unlockpt() does nothing, so it isn't called here. + + t, err := os.OpenFile(sname, os.O_RDWR|syscall.O_NOCTTY, 0) + if err != nil { + return nil, nil, err + } + return p, t, nil +} + +func ptsname(f *os.File) (string, error) { + /* + * from ptsname(3): The ptsname() function is equivalent to: + * struct ptmget pm; + * ioctl(fd, TIOCPTSNAME, &pm) == -1 ? NULL : pm.sn; + */ + var ptm ptmget + if err := ioctl(f.Fd(), uintptr(ioctl_TIOCPTSNAME), uintptr(unsafe.Pointer(&ptm))); err != nil { + return "", err + } + name := make([]byte, len(ptm.Sn)) + for i, c := range ptm.Sn { + name[i] = byte(c) + if c == 0 { + return string(name[:i]), nil + } + } + return "", errors.New("TIOCPTSNAME string not NUL-terminated") +} + +func grantpt(f *os.File) error { + /* + * from grantpt(3): Calling grantpt() is equivalent to: + * ioctl(fd, TIOCGRANTPT, 0); + */ + return ioctl(f.Fd(), uintptr(ioctl_TIOCGRANTPT), 0) +} diff --git a/vendor/github.com/kr/pty/pty_openbsd.go b/vendor/github.com/kr/pty/pty_openbsd.go index a6a35d1e6..d72b9d8d8 100644 --- a/vendor/github.com/kr/pty/pty_openbsd.go +++ b/vendor/github.com/kr/pty/pty_openbsd.go @@ -1,3 +1,6 @@ +//go:build openbsd +//+build openbsd + package pty import ( diff --git a/vendor/github.com/kr/pty/pty_solaris.go b/vendor/github.com/kr/pty/pty_solaris.go new file mode 100644 index 000000000..17e47461f --- /dev/null +++ b/vendor/github.com/kr/pty/pty_solaris.go @@ -0,0 +1,152 @@ +//go:build solaris +//+build solaris + +package pty + +/* based on: +http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libc/port/gen/pt.c +*/ + +import ( + "errors" + "os" + "strconv" + "syscall" + "unsafe" +) + +func open() (pty, tty *os.File, err error) { + ptmxfd, err := syscall.Open("/dev/ptmx", syscall.O_RDWR|syscall.O_NOCTTY, 0) + if err != nil { + return nil, nil, err + } + p := os.NewFile(uintptr(ptmxfd), "/dev/ptmx") + // In case of error after this point, make sure we close the ptmx fd. + defer func() { + if err != nil { + _ = p.Close() // Best effort. + } + }() + + sname, err := ptsname(p) + if err != nil { + return nil, nil, err + } + + if err := grantpt(p); err != nil { + return nil, nil, err + } + + if err := unlockpt(p); err != nil { + return nil, nil, err + } + + ptsfd, err := syscall.Open(sname, os.O_RDWR|syscall.O_NOCTTY, 0) + if err != nil { + return nil, nil, err + } + t := os.NewFile(uintptr(ptsfd), sname) + + // In case of error after this point, make sure we close the pts fd. + defer func() { + if err != nil { + _ = t.Close() // Best effort. + } + }() + + // pushing terminal driver STREAMS modules as per pts(7) + for _, mod := range []string{"ptem", "ldterm", "ttcompat"} { + if err := streamsPush(t, mod); err != nil { + return nil, nil, err + } + } + + return p, t, nil +} + +func ptsname(f *os.File) (string, error) { + dev, err := ptsdev(f.Fd()) + if err != nil { + return "", err + } + fn := "/dev/pts/" + strconv.FormatInt(int64(dev), 10) + + if err := syscall.Access(fn, 0); err != nil { + return "", err + } + return fn, nil +} + +func unlockpt(f *os.File) error { + istr := strioctl{ + icCmd: UNLKPT, + icTimeout: 0, + icLen: 0, + icDP: nil, + } + return ioctl(f.Fd(), I_STR, uintptr(unsafe.Pointer(&istr))) +} + +func minor(x uint64) uint64 { return x & 0377 } + +func ptsdev(fd uintptr) (uint64, error) { + istr := strioctl{ + icCmd: ISPTM, + icTimeout: 0, + icLen: 0, + icDP: nil, + } + + if err := ioctl(fd, I_STR, uintptr(unsafe.Pointer(&istr))); err != nil { + return 0, err + } + var status syscall.Stat_t + if err := syscall.Fstat(int(fd), &status); err != nil { + return 0, err + } + return uint64(minor(status.Rdev)), nil +} + +type ptOwn struct { + rUID int32 + rGID int32 +} + +func grantpt(f *os.File) error { + if _, err := ptsdev(f.Fd()); err != nil { + return err + } + pto := ptOwn{ + rUID: int32(os.Getuid()), + // XXX should first attempt to get gid of DEFAULT_TTY_GROUP="tty" + rGID: int32(os.Getgid()), + } + istr := strioctl{ + icCmd: OWNERPT, + icTimeout: 0, + icLen: int32(unsafe.Sizeof(strioctl{})), + icDP: unsafe.Pointer(&pto), + } + if err := ioctl(f.Fd(), I_STR, uintptr(unsafe.Pointer(&istr))); err != nil { + return errors.New("access denied") + } + return nil +} + +// streamsPush pushes STREAMS modules if not already done so. +func streamsPush(f *os.File, mod string) error { + buf := []byte(mod) + + // XXX I_FIND is not returning an error when the module + // is already pushed even though truss reports a return + // value of 1. A bug in the Go Solaris syscall interface? + // XXX without this we are at risk of the issue + // https://www.illumos.org/issues/9042 + // but since we are not using libc or XPG4.2, we should not be + // double-pushing modules + + if err := ioctl(f.Fd(), I_FIND, uintptr(unsafe.Pointer(&buf[0]))); err != nil { + return nil + } + return ioctl(f.Fd(), I_PUSH, uintptr(unsafe.Pointer(&buf[0]))) +} diff --git a/vendor/github.com/kr/pty/pty_unsupported.go b/vendor/github.com/kr/pty/pty_unsupported.go index 9a3e721bc..765523abc 100644 --- a/vendor/github.com/kr/pty/pty_unsupported.go +++ b/vendor/github.com/kr/pty/pty_unsupported.go @@ -1,4 +1,5 @@ -// +build !linux,!darwin,!freebsd,!dragonfly,!openbsd +//go:build !linux && !darwin && !freebsd && !dragonfly && !netbsd && !openbsd && !solaris +//+build !linux,!darwin,!freebsd,!dragonfly,!netbsd,!openbsd,!solaris package pty diff --git a/vendor/github.com/kr/pty/run.go b/vendor/github.com/kr/pty/run.go index 959be26b2..160001f9d 100644 --- a/vendor/github.com/kr/pty/run.go +++ b/vendor/github.com/kr/pty/run.go @@ -1,4 +1,5 @@ -// +build !windows +//go:build !windows +//+build !windows package pty @@ -11,25 +12,46 @@ import ( // Start assigns a pseudo-terminal tty os.File to c.Stdin, c.Stdout, // and c.Stderr, calls c.Start, and returns the File of the tty's // corresponding pty. -func Start(c *exec.Cmd) (pty *os.File, err error) { - return StartWithSize(c, nil) +// +// Starts the process in a new session and sets the controlling terminal. +func Start(cmd *exec.Cmd) (*os.File, error) { + return StartWithSize(cmd, nil) } // StartWithSize assigns a pseudo-terminal tty os.File to c.Stdin, c.Stdout, // and c.Stderr, calls c.Start, and returns the File of the tty's // corresponding pty. // -// This will resize the pty to the specified size before starting the command -func StartWithSize(c *exec.Cmd, sz *Winsize) (pty *os.File, err error) { +// This will resize the pty to the specified size before starting the command. +// Starts the process in a new session and sets the controlling terminal. +func StartWithSize(cmd *exec.Cmd, ws *Winsize) (*os.File, error) { + if cmd.SysProcAttr == nil { + cmd.SysProcAttr = &syscall.SysProcAttr{} + } + cmd.SysProcAttr.Setsid = true + cmd.SysProcAttr.Setctty = true + return StartWithAttrs(cmd, ws, cmd.SysProcAttr) +} + +// StartWithAttrs assigns a pseudo-terminal tty os.File to c.Stdin, c.Stdout, +// and c.Stderr, calls c.Start, and returns the File of the tty's +// corresponding pty. +// +// This will resize the pty to the specified size before starting the command if a size is provided. +// The `attrs` parameter overrides the one set in c.SysProcAttr. +// +// This should generally not be needed. Used in some edge cases where it is needed to create a pty +// without a controlling terminal. +func StartWithAttrs(c *exec.Cmd, sz *Winsize, attrs *syscall.SysProcAttr) (*os.File, error) { pty, tty, err := Open() if err != nil { return nil, err } - defer tty.Close() + defer func() { _ = tty.Close() }() // Best effort. + if sz != nil { - err = Setsize(pty, sz) - if err != nil { - pty.Close() + if err := Setsize(pty, sz); err != nil { + _ = pty.Close() // Best effort. return nil, err } } @@ -42,15 +64,11 @@ func StartWithSize(c *exec.Cmd, sz *Winsize) (pty *os.File, err error) { if c.Stdin == nil { c.Stdin = tty } - if c.SysProcAttr == nil { - c.SysProcAttr = &syscall.SysProcAttr{} - } - c.SysProcAttr.Setctty = true - c.SysProcAttr.Setsid = true - c.SysProcAttr.Ctty = int(tty.Fd()) - err = c.Start() - if err != nil { - pty.Close() + + c.SysProcAttr = attrs + + if err := c.Start(); err != nil { + _ = pty.Close() // Best effort. return nil, err } return pty, err diff --git a/vendor/github.com/kr/pty/test_crosscompile.sh b/vendor/github.com/kr/pty/test_crosscompile.sh new file mode 100644 index 000000000..47e8b1064 --- /dev/null +++ b/vendor/github.com/kr/pty/test_crosscompile.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env sh + +# Test script checking that all expected os/arch compile properly. +# Does not actually test the logic, just the compilation so we make sure we don't break code depending on the lib. + +echo2() { + echo $@ >&2 +} + +trap end 0 +end() { + [ "$?" = 0 ] && echo2 "Pass." || (echo2 "Fail."; exit 1) +} + +cross() { + os=$1 + shift + echo2 "Build for $os." + for arch in $@; do + echo2 " - $os/$arch" + GOOS=$os GOARCH=$arch go build + done + echo2 +} + +set -e + +cross linux amd64 386 arm arm64 ppc64 ppc64le s390x mips mipsle mips64 mips64le +cross darwin amd64 arm64 +cross freebsd amd64 386 arm arm64 +cross netbsd amd64 386 arm arm64 +cross openbsd amd64 386 arm arm64 +cross dragonfly amd64 +cross solaris amd64 + +# Not expected to work but should still compile. +cross windows amd64 386 arm + +# TODO: Fix compilation error on openbsd/arm. +# TODO: Merge the solaris PR. + +# Some os/arch require a different compiler. Run in docker. +if ! hash docker; then + # If docker is not present, stop here. + return +fi + +echo2 "Build for linux." +echo2 " - linux/riscv" +docker build -t creack-pty-test -f Dockerfile.riscv . + +# Golang dropped support for darwin 32bits since go1.15. Make sure the lib still compile with go1.14 on those archs. +echo2 "Build for darwin (32bits)." +echo2 " - darwin/386" +docker build -t creack-pty-test -f Dockerfile.golang --build-arg=GOVERSION=1.14 --build-arg=GOOS=darwin --build-arg=GOARCH=386 . +echo2 " - darwin/arm" +docker build -t creack-pty-test -f Dockerfile.golang --build-arg=GOVERSION=1.14 --build-arg=GOOS=darwin --build-arg=GOARCH=arm . + +# Run a single test for an old go version. Would be best with go1.0, but not available on Dockerhub. +# Using 1.6 as it is the base version for the RISCV compiler. +# Would also be better to run all the tests, not just one, need to refactor this file to allow for specifc archs per version. +echo2 "Build for linux - go1.6." +echo2 " - linux/amd64" +docker build -t creack-pty-test -f Dockerfile.golang --build-arg=GOVERSION=1.6 --build-arg=GOOS=linux --build-arg=GOARCH=amd64 . diff --git a/vendor/github.com/kr/pty/util.go b/vendor/github.com/kr/pty/util.go deleted file mode 100644 index 2fa741cca..000000000 --- a/vendor/github.com/kr/pty/util.go +++ /dev/null @@ -1,64 +0,0 @@ -// +build !windows - -package pty - -import ( - "os" - "syscall" - "unsafe" -) - -// InheritSize applies the terminal size of pty to tty. This should be run -// in a signal handler for syscall.SIGWINCH to automatically resize the tty when -// the pty receives a window size change notification. -func InheritSize(pty, tty *os.File) error { - size, err := GetsizeFull(pty) - if err != nil { - return err - } - err = Setsize(tty, size) - if err != nil { - return err - } - return nil -} - -// Setsize resizes t to s. -func Setsize(t *os.File, ws *Winsize) error { - return windowRectCall(ws, t.Fd(), syscall.TIOCSWINSZ) -} - -// GetsizeFull returns the full terminal size description. -func GetsizeFull(t *os.File) (size *Winsize, err error) { - var ws Winsize - err = windowRectCall(&ws, t.Fd(), syscall.TIOCGWINSZ) - return &ws, err -} - -// Getsize returns the number of rows (lines) and cols (positions -// in each line) in terminal t. -func Getsize(t *os.File) (rows, cols int, err error) { - ws, err := GetsizeFull(t) - return int(ws.Rows), int(ws.Cols), err -} - -// Winsize describes the terminal size. -type Winsize struct { - Rows uint16 // ws_row: Number of rows (in cells) - Cols uint16 // ws_col: Number of columns (in cells) - X uint16 // ws_xpixel: Width in pixels - Y uint16 // ws_ypixel: Height in pixels -} - -func windowRectCall(ws *Winsize, fd, a2 uintptr) error { - _, _, errno := syscall.Syscall( - syscall.SYS_IOCTL, - fd, - a2, - uintptr(unsafe.Pointer(ws)), - ) - if errno != 0 { - return syscall.Errno(errno) - } - return nil -} diff --git a/vendor/github.com/kr/pty/winsize.go b/vendor/github.com/kr/pty/winsize.go new file mode 100644 index 000000000..57323f40a --- /dev/null +++ b/vendor/github.com/kr/pty/winsize.go @@ -0,0 +1,27 @@ +package pty + +import "os" + +// InheritSize applies the terminal size of pty to tty. This should be run +// in a signal handler for syscall.SIGWINCH to automatically resize the tty when +// the pty receives a window size change notification. +func InheritSize(pty, tty *os.File) error { + size, err := GetsizeFull(pty) + if err != nil { + return err + } + if err := Setsize(tty, size); err != nil { + return err + } + return nil +} + +// Getsize returns the number of rows (lines) and cols (positions +// in each line) in terminal t. +func Getsize(t *os.File) (rows, cols int, err error) { + ws, err := GetsizeFull(t) + if err != nil { + return 0, 0, err + } + return int(ws.Rows), int(ws.Cols), nil +} diff --git a/vendor/github.com/kr/pty/winsize_unix.go b/vendor/github.com/kr/pty/winsize_unix.go new file mode 100644 index 000000000..f358e9081 --- /dev/null +++ b/vendor/github.com/kr/pty/winsize_unix.go @@ -0,0 +1,35 @@ +//go:build !windows +//+build !windows + +package pty + +import ( + "os" + "syscall" + "unsafe" +) + +// Winsize describes the terminal size. +type Winsize struct { + Rows uint16 // ws_row: Number of rows (in cells) + Cols uint16 // ws_col: Number of columns (in cells) + X uint16 // ws_xpixel: Width in pixels + Y uint16 // ws_ypixel: Height in pixels +} + +// Setsize resizes t to s. +func Setsize(t *os.File, ws *Winsize) error { + //nolint:gosec // Expected unsafe pointer for Syscall call. + return ioctl(t.Fd(), syscall.TIOCSWINSZ, uintptr(unsafe.Pointer(ws))) +} + +// GetsizeFull returns the full terminal size description. +func GetsizeFull(t *os.File) (size *Winsize, err error) { + var ws Winsize + + //nolint:gosec // Expected unsafe pointer for Syscall call. + if err := ioctl(t.Fd(), syscall.TIOCGWINSZ, uintptr(unsafe.Pointer(&ws))); err != nil { + return nil, err + } + return &ws, nil +} diff --git a/vendor/github.com/kr/pty/winsize_unsupported.go b/vendor/github.com/kr/pty/winsize_unsupported.go new file mode 100644 index 000000000..73fb080d8 --- /dev/null +++ b/vendor/github.com/kr/pty/winsize_unsupported.go @@ -0,0 +1,23 @@ +//go:build windows +//+build windows + +package pty + +import ( + "os" +) + +// Winsize is a dummy struct to enable compilation on unsupported platforms. +type Winsize struct { + Rows, Cols, X, Y uint16 +} + +// Setsize resizes t to s. +func Setsize(*os.File, *Winsize) error { + return ErrUnsupported +} + +// GetsizeFull returns the full terminal size description. +func GetsizeFull(*os.File) (*Winsize, error) { + return nil, ErrUnsupported +} diff --git a/vendor/github.com/kr/pty/ztypes_386.go b/vendor/github.com/kr/pty/ztypes_386.go index ff0b8fd83..794515b4c 100644 --- a/vendor/github.com/kr/pty/ztypes_386.go +++ b/vendor/github.com/kr/pty/ztypes_386.go @@ -1,3 +1,6 @@ +//go:build 386 +//+build 386 + // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types.go diff --git a/vendor/github.com/kr/pty/ztypes_amd64.go b/vendor/github.com/kr/pty/ztypes_amd64.go index ff0b8fd83..dc6c52528 100644 --- a/vendor/github.com/kr/pty/ztypes_amd64.go +++ b/vendor/github.com/kr/pty/ztypes_amd64.go @@ -1,3 +1,6 @@ +//go:build amd64 +//+build amd64 + // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types.go diff --git a/vendor/github.com/kr/pty/ztypes_arm.go b/vendor/github.com/kr/pty/ztypes_arm.go index ff0b8fd83..eac9b1ef7 100644 --- a/vendor/github.com/kr/pty/ztypes_arm.go +++ b/vendor/github.com/kr/pty/ztypes_arm.go @@ -1,3 +1,6 @@ +//go:build arm +//+build arm + // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types.go diff --git a/vendor/github.com/kr/pty/ztypes_arm64.go b/vendor/github.com/kr/pty/ztypes_arm64.go index 6c29a4b91..ecb3ddcab 100644 --- a/vendor/github.com/kr/pty/ztypes_arm64.go +++ b/vendor/github.com/kr/pty/ztypes_arm64.go @@ -1,8 +1,9 @@ +//go:build arm64 +//+build arm64 + // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types.go -// +build arm64 - package pty type ( diff --git a/vendor/github.com/kr/pty/ztypes_dragonfly_amd64.go b/vendor/github.com/kr/pty/ztypes_dragonfly_amd64.go index 6b0ba037f..f4054cb60 100644 --- a/vendor/github.com/kr/pty/ztypes_dragonfly_amd64.go +++ b/vendor/github.com/kr/pty/ztypes_dragonfly_amd64.go @@ -1,3 +1,6 @@ +//go:build amd64 && dragonfly +//+build amd64,dragonfly + // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types_dragonfly.go diff --git a/vendor/github.com/kr/pty/ztypes_freebsd_386.go b/vendor/github.com/kr/pty/ztypes_freebsd_386.go index d9975374e..95a20ab3a 100644 --- a/vendor/github.com/kr/pty/ztypes_freebsd_386.go +++ b/vendor/github.com/kr/pty/ztypes_freebsd_386.go @@ -1,3 +1,6 @@ +//go:build 386 && freebsd +//+build 386,freebsd + // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types_freebsd.go diff --git a/vendor/github.com/kr/pty/ztypes_freebsd_amd64.go b/vendor/github.com/kr/pty/ztypes_freebsd_amd64.go index 5fa102fcd..e03a071c0 100644 --- a/vendor/github.com/kr/pty/ztypes_freebsd_amd64.go +++ b/vendor/github.com/kr/pty/ztypes_freebsd_amd64.go @@ -1,3 +1,6 @@ +//go:build amd64 && freebsd +//+build amd64,freebsd + // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types_freebsd.go diff --git a/vendor/github.com/kr/pty/ztypes_freebsd_arm.go b/vendor/github.com/kr/pty/ztypes_freebsd_arm.go index d9975374e..7665bd3ca 100644 --- a/vendor/github.com/kr/pty/ztypes_freebsd_arm.go +++ b/vendor/github.com/kr/pty/ztypes_freebsd_arm.go @@ -1,3 +1,6 @@ +//go:build arm && freebsd +//+build arm,freebsd + // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types_freebsd.go diff --git a/vendor/github.com/kr/pty/ztypes_freebsd_arm64.go b/vendor/github.com/kr/pty/ztypes_freebsd_arm64.go new file mode 100644 index 000000000..3f95bb8be --- /dev/null +++ b/vendor/github.com/kr/pty/ztypes_freebsd_arm64.go @@ -0,0 +1,16 @@ +//go:build arm64 && freebsd +//+build arm64,freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs types_freebsd.go + +package pty + +const ( + _C_SPECNAMELEN = 0xff +) + +type fiodgnameArg struct { + Len int32 + Buf *byte +} diff --git a/vendor/github.com/kr/pty/ztypes_freebsd_ppc64.go b/vendor/github.com/kr/pty/ztypes_freebsd_ppc64.go new file mode 100644 index 000000000..5fa102fcd --- /dev/null +++ b/vendor/github.com/kr/pty/ztypes_freebsd_ppc64.go @@ -0,0 +1,14 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_freebsd.go + +package pty + +const ( + _C_SPECNAMELEN = 0x3f +) + +type fiodgnameArg struct { + Len int32 + Pad_cgo_0 [4]byte + Buf *byte +} diff --git a/vendor/github.com/kr/pty/ztypes_loong64.go b/vendor/github.com/kr/pty/ztypes_loong64.go new file mode 100644 index 000000000..3beb5c176 --- /dev/null +++ b/vendor/github.com/kr/pty/ztypes_loong64.go @@ -0,0 +1,12 @@ +//go:build loong64 +// +build loong64 + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types.go + +package pty + +type ( + _C_int int32 + _C_uint uint32 +) diff --git a/vendor/github.com/kr/pty/ztypes_mipsx.go b/vendor/github.com/kr/pty/ztypes_mipsx.go index f0ce74086..eddad1639 100644 --- a/vendor/github.com/kr/pty/ztypes_mipsx.go +++ b/vendor/github.com/kr/pty/ztypes_mipsx.go @@ -1,9 +1,10 @@ +//go:build (mips || mipsle || mips64 || mips64le) && linux +//+build linux +//+build mips mipsle mips64 mips64le + // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types.go -// +build linux -// +build mips mipsle mips64 mips64le - package pty type ( diff --git a/vendor/github.com/kr/pty/ztypes_netbsd_32bit_int.go b/vendor/github.com/kr/pty/ztypes_netbsd_32bit_int.go new file mode 100644 index 000000000..5b32e63eb --- /dev/null +++ b/vendor/github.com/kr/pty/ztypes_netbsd_32bit_int.go @@ -0,0 +1,17 @@ +//go:build (386 || amd64 || arm || arm64) && netbsd +//+build netbsd +//+build 386 amd64 arm arm64 + +package pty + +type ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]int8 + Sn [1024]int8 +} + +var ( + ioctl_TIOCPTSNAME = 0x48087448 + ioctl_TIOCGRANTPT = 0x20007447 +) diff --git a/vendor/github.com/kr/pty/ztypes_openbsd_amd64.go b/vendor/github.com/kr/pty/ztypes_openbsd_32bit_int.go similarity index 50% rename from vendor/github.com/kr/pty/ztypes_openbsd_amd64.go rename to vendor/github.com/kr/pty/ztypes_openbsd_32bit_int.go index e67051688..c9aa3161b 100644 --- a/vendor/github.com/kr/pty/ztypes_openbsd_amd64.go +++ b/vendor/github.com/kr/pty/ztypes_openbsd_32bit_int.go @@ -1,5 +1,6 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_openbsd.go +//go:build (386 || amd64 || arm || arm64 || mips64) && openbsd +//+build openbsd +//+build 386 amd64 arm arm64 mips64 package pty diff --git a/vendor/github.com/kr/pty/ztypes_openbsd_386.go b/vendor/github.com/kr/pty/ztypes_openbsd_386.go deleted file mode 100644 index ccb3aab9a..000000000 --- a/vendor/github.com/kr/pty/ztypes_openbsd_386.go +++ /dev/null @@ -1,13 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_openbsd.go - -package pty - -type ptmget struct { - Cfd int32 - Sfd int32 - Cn [16]int8 - Sn [16]int8 -} - -var ioctl_PTMGET = 0x40287401 diff --git a/vendor/github.com/kr/pty/ztypes_ppc64.go b/vendor/github.com/kr/pty/ztypes_ppc64.go index 4e1af8431..68634439b 100644 --- a/vendor/github.com/kr/pty/ztypes_ppc64.go +++ b/vendor/github.com/kr/pty/ztypes_ppc64.go @@ -1,4 +1,5 @@ -// +build ppc64 +//go:build ppc64 +//+build ppc64 // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types.go diff --git a/vendor/github.com/kr/pty/ztypes_ppc64le.go b/vendor/github.com/kr/pty/ztypes_ppc64le.go index e6780f4e2..6b5621b17 100644 --- a/vendor/github.com/kr/pty/ztypes_ppc64le.go +++ b/vendor/github.com/kr/pty/ztypes_ppc64le.go @@ -1,4 +1,5 @@ -// +build ppc64le +//go:build ppc64le +//+build ppc64le // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types.go diff --git a/vendor/github.com/kr/pty/ztypes_riscvx.go b/vendor/github.com/kr/pty/ztypes_riscvx.go new file mode 100644 index 000000000..1233e75bc --- /dev/null +++ b/vendor/github.com/kr/pty/ztypes_riscvx.go @@ -0,0 +1,12 @@ +//go:build riscv || riscv64 +//+build riscv riscv64 + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs types.go + +package pty + +type ( + _C_int int32 + _C_uint uint32 +) diff --git a/vendor/github.com/kr/pty/ztypes_s390x.go b/vendor/github.com/kr/pty/ztypes_s390x.go index a7452b61c..02facea63 100644 --- a/vendor/github.com/kr/pty/ztypes_s390x.go +++ b/vendor/github.com/kr/pty/ztypes_s390x.go @@ -1,4 +1,5 @@ -// +build s390x +//go:build s390x +//+build s390x // Created by cgo -godefs - DO NOT EDIT // cgo -godefs types.go diff --git a/vendor/modules.txt b/vendor/modules.txt index 5cdd55710..346f9dca2 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -286,7 +286,7 @@ github.com/hashicorp/errwrap github.com/hashicorp/go-multierror # github.com/hashicorp/go-version v1.3.0 github.com/hashicorp/go-version -# github.com/hinshun/vt10x v0.0.0-20220127042424-3ca73d0126d7 +# github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02 ## explicit github.com/hinshun/vt10x # github.com/hpcloud/tail v1.0.0 @@ -311,7 +311,7 @@ github.com/json-iterator/go github.com/kballard/go-shellquote # github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 github.com/kevinburke/ssh_config -# github.com/kr/pty v1.1.5 +# github.com/kr/pty v1.1.5 => github.com/creack/pty v1.1.18-0.20220131133352-edfd13da2a92 ## explicit github.com/kr/pty # github.com/kubernetes-sigs/service-catalog v0.3.1 @@ -1250,3 +1250,4 @@ sigs.k8s.io/yaml # k8s.io/component-helpers => k8s.io/component-helpers v0.0.0-20211006165314-dacad8cb3fcb # k8s.io/kubectl => github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210831004331-1199c36daed6 # k8s.io/metrics => k8s.io/metrics v0.0.0-20211006171351-de75bc981086 +# github.com/kr/pty => github.com/creack/pty v1.1.18-0.20220131133352-edfd13da2a92