Merge pull request #43547 from thaJeztah/bump_buildkit
vendor: github.com/moby/buildkit v0.10.2
This commit is contained in:
commit
2ed904cad7
93 changed files with 634 additions and 465 deletions
|
@ -10,7 +10,7 @@ require (
|
|||
cloud.google.com/go v0.93.3
|
||||
cloud.google.com/go/logging v1.4.2
|
||||
github.com/Graylog2/go-gelf v0.0.0-20191017102106-1550ee647df0
|
||||
github.com/Microsoft/go-winio v0.5.1
|
||||
github.com/Microsoft/go-winio v0.5.2
|
||||
github.com/Microsoft/hcsshim v0.9.2
|
||||
github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91
|
||||
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310
|
||||
|
@ -19,7 +19,7 @@ require (
|
|||
github.com/cloudflare/cfssl v0.0.0-20180323000720-5d63dbd981b5
|
||||
github.com/containerd/cgroups v1.0.3
|
||||
github.com/containerd/containerd v1.6.3
|
||||
github.com/containerd/continuity v0.2.2
|
||||
github.com/containerd/continuity v0.3.0
|
||||
github.com/containerd/fifo v1.0.0
|
||||
github.com/containerd/typeurl v1.0.2
|
||||
github.com/coreos/go-systemd/v22 v22.3.2
|
||||
|
@ -49,7 +49,7 @@ require (
|
|||
github.com/klauspost/compress v1.15.1
|
||||
github.com/miekg/dns v1.1.27
|
||||
github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible
|
||||
github.com/moby/buildkit v0.10.1-0.20220327110152-d7744bcb3532
|
||||
github.com/moby/buildkit v0.10.2
|
||||
github.com/moby/ipvs v1.0.1
|
||||
github.com/moby/locker v1.0.1
|
||||
github.com/moby/swarmkit/v2 v2.0.0-20220420172245-6068d1894d46
|
||||
|
@ -80,7 +80,7 @@ require (
|
|||
go.etcd.io/bbolt v1.3.6
|
||||
golang.org/x/net v0.0.0-20211216030914-fe4d6282115f
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
||||
golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8
|
||||
golang.org/x/sys v0.0.0-20220405210540-1e041c57c461
|
||||
golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11
|
||||
google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa
|
||||
google.golang.org/grpc v1.45.0
|
||||
|
|
13
vendor.sum
13
vendor.sum
|
@ -80,8 +80,9 @@ github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugX
|
|||
github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
|
||||
github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
|
||||
github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
|
||||
github.com/Microsoft/go-winio v0.5.1 h1:aPJp2QD7OOrhO5tQXqQoGSJc+DjDtWTGLOmNyAm6FgY=
|
||||
github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
|
||||
github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA=
|
||||
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
|
||||
github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
|
||||
github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
|
||||
github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ=
|
||||
|
@ -242,8 +243,9 @@ github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cE
|
|||
github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y=
|
||||
github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ=
|
||||
github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM=
|
||||
github.com/containerd/continuity v0.2.2 h1:QSqfxcn8c+12slxwu00AtzXrsami0MJb/MQs9lOLHLA=
|
||||
github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk=
|
||||
github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg=
|
||||
github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM=
|
||||
github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
|
||||
github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
|
||||
github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0=
|
||||
|
@ -723,8 +725,8 @@ github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4
|
|||
github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE=
|
||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||
github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A=
|
||||
github.com/moby/buildkit v0.10.1-0.20220327110152-d7744bcb3532 h1:rR5v5qILq+0Cm6NqPV4hSEgsUsGQ+KJvgNy7GkRf5fk=
|
||||
github.com/moby/buildkit v0.10.1-0.20220327110152-d7744bcb3532/go.mod h1:g7CFu3cq4bl1f3XLmF6eDF9EsYjnJ2oZYann8kKJvPc=
|
||||
github.com/moby/buildkit v0.10.2 h1:jywa+mPPtsfCQqpIbt72RUKf49hTTCirTqIs4LG0n+8=
|
||||
github.com/moby/buildkit v0.10.2/go.mod h1:jxeOuly98l9gWHai0Ojrbnczrk/rf+o9/JqNhY+UCSo=
|
||||
github.com/moby/ipvs v1.0.1 h1:aoZ7fhLTXgDbzVrAnvV+XbKOU8kOET7B3+xULDF/1o0=
|
||||
github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ=
|
||||
github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
|
||||
|
@ -1320,8 +1322,9 @@ golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||
golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8 h1:OH54vjqzRWmbJ62fjuhxy7AxFFgoHN0/DPc/UrL8cAs=
|
||||
golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 h1:kHVeDEnfKn3T238CvrUcz6KeEsFHVaKh4kMTt6Wsysg=
|
||||
golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
|
|
115
vendor/github.com/Microsoft/go-winio/backuptar/tar.go
generated
vendored
115
vendor/github.com/Microsoft/go-winio/backuptar/tar.go
generated
vendored
|
@ -113,6 +113,69 @@ func BasicInfoHeader(name string, size int64, fileInfo *winio.FileBasicInfo) *ta
|
|||
return hdr
|
||||
}
|
||||
|
||||
// SecurityDescriptorFromTarHeader reads the SDDL associated with the header of the current file
|
||||
// from the tar header and returns the security descriptor into a byte slice.
|
||||
func SecurityDescriptorFromTarHeader(hdr *tar.Header) ([]byte, error) {
|
||||
// Maintaining old SDDL-based behavior for backward
|
||||
// compatibility. All new tar headers written by this library
|
||||
// will have raw binary for the security descriptor.
|
||||
var sd []byte
|
||||
var err error
|
||||
if sddl, ok := hdr.PAXRecords[hdrSecurityDescriptor]; ok {
|
||||
sd, err = winio.SddlToSecurityDescriptor(sddl)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if sdraw, ok := hdr.PAXRecords[hdrRawSecurityDescriptor]; ok {
|
||||
sd, err = base64.StdEncoding.DecodeString(sdraw)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
return sd, nil
|
||||
}
|
||||
|
||||
// ExtendedAttributesFromTarHeader reads the EAs associated with the header of the
|
||||
// current file from the tar header and returns it as a byte slice.
|
||||
func ExtendedAttributesFromTarHeader(hdr *tar.Header) ([]byte, error) {
|
||||
var eas []winio.ExtendedAttribute
|
||||
var eadata []byte
|
||||
var err error
|
||||
for k, v := range hdr.PAXRecords {
|
||||
if !strings.HasPrefix(k, hdrEaPrefix) {
|
||||
continue
|
||||
}
|
||||
data, err := base64.StdEncoding.DecodeString(v)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
eas = append(eas, winio.ExtendedAttribute{
|
||||
Name: k[len(hdrEaPrefix):],
|
||||
Value: data,
|
||||
})
|
||||
}
|
||||
if len(eas) != 0 {
|
||||
eadata, err = winio.EncodeExtendedAttributes(eas)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
return eadata, nil
|
||||
}
|
||||
|
||||
// EncodeReparsePointFromTarHeader reads the ReparsePoint structure from the tar header
|
||||
// and encodes it into a byte slice. The file for which this function is called must be a
|
||||
// symlink.
|
||||
func EncodeReparsePointFromTarHeader(hdr *tar.Header) []byte {
|
||||
_, isMountPoint := hdr.PAXRecords[hdrMountPoint]
|
||||
rp := winio.ReparsePoint{
|
||||
Target: filepath.FromSlash(hdr.Linkname),
|
||||
IsMountPoint: isMountPoint,
|
||||
}
|
||||
return winio.EncodeReparsePoint(&rp)
|
||||
}
|
||||
|
||||
// WriteTarFileFromBackupStream writes a file to a tar writer using data from a Win32 backup stream.
|
||||
//
|
||||
// This encodes Win32 metadata as tar pax vendor extensions starting with MSWINDOWS.
|
||||
|
@ -358,21 +421,10 @@ func FileInfoFromHeader(hdr *tar.Header) (name string, size int64, fileInfo *win
|
|||
// tar file that was not processed, or io.EOF is there are no more.
|
||||
func WriteBackupStreamFromTarFile(w io.Writer, t *tar.Reader, hdr *tar.Header) (*tar.Header, error) {
|
||||
bw := winio.NewBackupStreamWriter(w)
|
||||
var sd []byte
|
||||
var err error
|
||||
// Maintaining old SDDL-based behavior for backward compatibility. All new tar headers written
|
||||
// by this library will have raw binary for the security descriptor.
|
||||
if sddl, ok := hdr.PAXRecords[hdrSecurityDescriptor]; ok {
|
||||
sd, err = winio.SddlToSecurityDescriptor(sddl)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if sdraw, ok := hdr.PAXRecords[hdrRawSecurityDescriptor]; ok {
|
||||
sd, err = base64.StdEncoding.DecodeString(sdraw)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
sd, err := SecurityDescriptorFromTarHeader(hdr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(sd) != 0 {
|
||||
bhdr := winio.BackupHeader{
|
||||
|
@ -388,25 +440,12 @@ func WriteBackupStreamFromTarFile(w io.Writer, t *tar.Reader, hdr *tar.Header) (
|
|||
return nil, err
|
||||
}
|
||||
}
|
||||
var eas []winio.ExtendedAttribute
|
||||
for k, v := range hdr.PAXRecords {
|
||||
if !strings.HasPrefix(k, hdrEaPrefix) {
|
||||
continue
|
||||
}
|
||||
data, err := base64.StdEncoding.DecodeString(v)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
eas = append(eas, winio.ExtendedAttribute{
|
||||
Name: k[len(hdrEaPrefix):],
|
||||
Value: data,
|
||||
})
|
||||
|
||||
eadata, err := ExtendedAttributesFromTarHeader(hdr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(eas) != 0 {
|
||||
eadata, err := winio.EncodeExtendedAttributes(eas)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(eadata) != 0 {
|
||||
bhdr := winio.BackupHeader{
|
||||
Id: winio.BackupEaData,
|
||||
Size: int64(len(eadata)),
|
||||
|
@ -420,13 +459,9 @@ func WriteBackupStreamFromTarFile(w io.Writer, t *tar.Reader, hdr *tar.Header) (
|
|||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
if hdr.Typeflag == tar.TypeSymlink {
|
||||
_, isMountPoint := hdr.PAXRecords[hdrMountPoint]
|
||||
rp := winio.ReparsePoint{
|
||||
Target: filepath.FromSlash(hdr.Linkname),
|
||||
IsMountPoint: isMountPoint,
|
||||
}
|
||||
reparse := winio.EncodeReparsePoint(&rp)
|
||||
reparse := EncodeReparsePointFromTarHeader(hdr)
|
||||
bhdr := winio.BackupHeader{
|
||||
Id: winio.BackupReparseData,
|
||||
Size: int64(len(reparse)),
|
||||
|
@ -439,7 +474,9 @@ func WriteBackupStreamFromTarFile(w io.Writer, t *tar.Reader, hdr *tar.Header) (
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if hdr.Typeflag == tar.TypeReg || hdr.Typeflag == tar.TypeRegA {
|
||||
bhdr := winio.BackupHeader{
|
||||
Id: winio.BackupData,
|
||||
|
|
6
vendor/github.com/Microsoft/go-winio/file.go
generated
vendored
6
vendor/github.com/Microsoft/go-winio/file.go
generated
vendored
|
@ -1,3 +1,4 @@
|
|||
//go:build windows
|
||||
// +build windows
|
||||
|
||||
package winio
|
||||
|
@ -143,6 +144,11 @@ func (f *win32File) Close() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// IsClosed checks if the file has been closed
|
||||
func (f *win32File) IsClosed() bool {
|
||||
return f.closing.isSet()
|
||||
}
|
||||
|
||||
// prepareIo prepares for a new IO operation.
|
||||
// The caller must call f.wg.Done() when the IO is finished, prior to Close() returning.
|
||||
func (f *win32File) prepareIo() (*ioOperation, error) {
|
||||
|
|
17
vendor/github.com/Microsoft/go-winio/hvsock.go
generated
vendored
17
vendor/github.com/Microsoft/go-winio/hvsock.go
generated
vendored
|
@ -1,3 +1,4 @@
|
|||
//go:build windows
|
||||
// +build windows
|
||||
|
||||
package winio
|
||||
|
@ -252,15 +253,23 @@ func (conn *HvsockConn) Close() error {
|
|||
return conn.sock.Close()
|
||||
}
|
||||
|
||||
func (conn *HvsockConn) IsClosed() bool {
|
||||
return conn.sock.IsClosed()
|
||||
}
|
||||
|
||||
func (conn *HvsockConn) shutdown(how int) error {
|
||||
err := syscall.Shutdown(conn.sock.handle, syscall.SHUT_RD)
|
||||
if conn.IsClosed() {
|
||||
return ErrFileClosed
|
||||
}
|
||||
|
||||
err := syscall.Shutdown(conn.sock.handle, how)
|
||||
if err != nil {
|
||||
return os.NewSyscallError("shutdown", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// CloseRead shuts down the read end of the socket.
|
||||
// CloseRead shuts down the read end of the socket, preventing future read operations.
|
||||
func (conn *HvsockConn) CloseRead() error {
|
||||
err := conn.shutdown(syscall.SHUT_RD)
|
||||
if err != nil {
|
||||
|
@ -269,8 +278,8 @@ func (conn *HvsockConn) CloseRead() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// CloseWrite shuts down the write end of the socket, notifying the other endpoint that
|
||||
// no more data will be written.
|
||||
// CloseWrite shuts down the write end of the socket, preventing future write operations and
|
||||
// notifying the other endpoint that no more data will be written.
|
||||
func (conn *HvsockConn) CloseWrite() error {
|
||||
err := conn.shutdown(syscall.SHUT_WR)
|
||||
if err != nil {
|
||||
|
|
9
vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go
generated
vendored
9
vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go
generated
vendored
|
@ -14,8 +14,6 @@ import (
|
|||
"encoding/binary"
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"golang.org/x/sys/windows"
|
||||
)
|
||||
|
||||
// Variant specifies which GUID variant (or "type") of the GUID. It determines
|
||||
|
@ -41,13 +39,6 @@ type Version uint8
|
|||
var _ = (encoding.TextMarshaler)(GUID{})
|
||||
var _ = (encoding.TextUnmarshaler)(&GUID{})
|
||||
|
||||
// GUID represents a GUID/UUID. It has the same structure as
|
||||
// golang.org/x/sys/windows.GUID so that it can be used with functions expecting
|
||||
// that type. It is defined as its own type so that stringification and
|
||||
// marshaling can be supported. The representation matches that used by native
|
||||
// Windows code.
|
||||
type GUID windows.GUID
|
||||
|
||||
// NewV4 returns a new version 4 (pseudorandom) GUID, as defined by RFC 4122.
|
||||
func NewV4() (GUID, error) {
|
||||
var b [16]byte
|
||||
|
|
15
vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go
generated
vendored
Normal file
15
vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
// +build !windows
|
||||
|
||||
package guid
|
||||
|
||||
// GUID represents a GUID/UUID. It has the same structure as
|
||||
// golang.org/x/sys/windows.GUID so that it can be used with functions expecting
|
||||
// that type. It is defined as its own type as that is only available to builds
|
||||
// targeted at `windows`. The representation matches that used by native Windows
|
||||
// code.
|
||||
type GUID struct {
|
||||
Data1 uint32
|
||||
Data2 uint16
|
||||
Data3 uint16
|
||||
Data4 [8]byte
|
||||
}
|
10
vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go
generated
vendored
Normal file
10
vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go
generated
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
package guid
|
||||
|
||||
import "golang.org/x/sys/windows"
|
||||
|
||||
// GUID represents a GUID/UUID. It has the same structure as
|
||||
// golang.org/x/sys/windows.GUID so that it can be used with functions expecting
|
||||
// that type. It is defined as its own type so that stringification and
|
||||
// marshaling can be supported. The representation matches that used by native
|
||||
// Windows code.
|
||||
type GUID windows.GUID
|
15
vendor/github.com/Microsoft/go-winio/pkg/security/grantvmgroupaccess.go
generated
vendored
15
vendor/github.com/Microsoft/go-winio/pkg/security/grantvmgroupaccess.go
generated
vendored
|
@ -3,11 +3,10 @@
|
|||
package security
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"syscall"
|
||||
"unsafe"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
type (
|
||||
|
@ -72,7 +71,7 @@ func GrantVmGroupAccess(name string) error {
|
|||
// Stat (to determine if `name` is a directory).
|
||||
s, err := os.Stat(name)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "%s os.Stat %s", gvmga, name)
|
||||
return fmt.Errorf("%s os.Stat %s: %w", gvmga, name, err)
|
||||
}
|
||||
|
||||
// Get a handle to the file/directory. Must defer Close on success.
|
||||
|
@ -88,7 +87,7 @@ func GrantVmGroupAccess(name string) error {
|
|||
sd := uintptr(0)
|
||||
origDACL := uintptr(0)
|
||||
if err := getSecurityInfo(fd, uint32(ot), uint32(si), nil, nil, &origDACL, nil, &sd); err != nil {
|
||||
return errors.Wrapf(err, "%s GetSecurityInfo %s", gvmga, name)
|
||||
return fmt.Errorf("%s GetSecurityInfo %s: %w", gvmga, name, err)
|
||||
}
|
||||
defer syscall.LocalFree((syscall.Handle)(unsafe.Pointer(sd)))
|
||||
|
||||
|
@ -102,7 +101,7 @@ func GrantVmGroupAccess(name string) error {
|
|||
|
||||
// And finally use SetSecurityInfo to apply the updated DACL.
|
||||
if err := setSecurityInfo(fd, uint32(ot), uint32(si), uintptr(0), uintptr(0), newDACL, uintptr(0)); err != nil {
|
||||
return errors.Wrapf(err, "%s SetSecurityInfo %s", gvmga, name)
|
||||
return fmt.Errorf("%s SetSecurityInfo %s: %w", gvmga, name, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -120,7 +119,7 @@ func createFile(name string, isDir bool) (syscall.Handle, error) {
|
|||
}
|
||||
fd, err := syscall.CreateFile(&namep[0], da, sm, nil, syscall.OPEN_EXISTING, fa, 0)
|
||||
if err != nil {
|
||||
return 0, errors.Wrapf(err, "%s syscall.CreateFile %s", gvmga, name)
|
||||
return 0, fmt.Errorf("%s syscall.CreateFile %s: %w", gvmga, name, err)
|
||||
}
|
||||
return fd, nil
|
||||
}
|
||||
|
@ -131,7 +130,7 @@ func generateDACLWithAcesAdded(name string, isDir bool, origDACL uintptr) (uintp
|
|||
// Generate pointers to the SIDs based on the string SIDs
|
||||
sid, err := syscall.StringToSid(sidVmGroup)
|
||||
if err != nil {
|
||||
return 0, errors.Wrapf(err, "%s syscall.StringToSid %s %s", gvmga, name, sidVmGroup)
|
||||
return 0, fmt.Errorf("%s syscall.StringToSid %s %s: %w", gvmga, name, sidVmGroup, err)
|
||||
}
|
||||
|
||||
inheritance := inheritModeNoInheritance
|
||||
|
@ -154,7 +153,7 @@ func generateDACLWithAcesAdded(name string, isDir bool, origDACL uintptr) (uintp
|
|||
|
||||
modifiedDACL := uintptr(0)
|
||||
if err := setEntriesInAcl(uintptr(uint32(1)), uintptr(unsafe.Pointer(&eaArray[0])), origDACL, &modifiedDACL); err != nil {
|
||||
return 0, errors.Wrapf(err, "%s SetEntriesInAcl %s", gvmga, name)
|
||||
return 0, fmt.Errorf("%s SetEntriesInAcl %s: %w", gvmga, name, err)
|
||||
}
|
||||
|
||||
return modifiedDACL, nil
|
||||
|
|
59
vendor/github.com/Microsoft/go-winio/vhd/vhd.go
generated
vendored
59
vendor/github.com/Microsoft/go-winio/vhd/vhd.go
generated
vendored
|
@ -1,3 +1,4 @@
|
|||
//go:build windows
|
||||
// +build windows
|
||||
|
||||
package vhd
|
||||
|
@ -7,14 +8,13 @@ import (
|
|||
"syscall"
|
||||
|
||||
"github.com/Microsoft/go-winio/pkg/guid"
|
||||
"github.com/pkg/errors"
|
||||
"golang.org/x/sys/windows"
|
||||
)
|
||||
|
||||
//go:generate go run mksyscall_windows.go -output zvhd_windows.go vhd.go
|
||||
|
||||
//sys createVirtualDisk(virtualStorageType *VirtualStorageType, path string, virtualDiskAccessMask uint32, securityDescriptor *uintptr, createVirtualDiskFlags uint32, providerSpecificFlags uint32, parameters *CreateVirtualDiskParameters, overlapped *syscall.Overlapped, handle *syscall.Handle) (win32err error) = virtdisk.CreateVirtualDisk
|
||||
//sys openVirtualDisk(virtualStorageType *VirtualStorageType, path string, virtualDiskAccessMask uint32, openVirtualDiskFlags uint32, parameters *OpenVirtualDiskParameters, handle *syscall.Handle) (win32err error) = virtdisk.OpenVirtualDisk
|
||||
//sys openVirtualDisk(virtualStorageType *VirtualStorageType, path string, virtualDiskAccessMask uint32, openVirtualDiskFlags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (win32err error) = virtdisk.OpenVirtualDisk
|
||||
//sys attachVirtualDisk(handle syscall.Handle, securityDescriptor *uintptr, attachVirtualDiskFlag uint32, providerSpecificFlags uint32, parameters *AttachVirtualDiskParameters, overlapped *syscall.Overlapped) (win32err error) = virtdisk.AttachVirtualDisk
|
||||
//sys detachVirtualDisk(handle syscall.Handle, detachVirtualDiskFlags uint32, providerSpecificFlags uint32) (win32err error) = virtdisk.DetachVirtualDisk
|
||||
//sys getVirtualDiskPhysicalPath(handle syscall.Handle, diskPathSizeInBytes *uint32, buffer *uint16) (win32err error) = virtdisk.GetVirtualDiskPhysicalPath
|
||||
|
@ -62,13 +62,27 @@ type OpenVirtualDiskParameters struct {
|
|||
Version2 OpenVersion2
|
||||
}
|
||||
|
||||
// The higher level `OpenVersion2` struct uses bools to refer to `GetInfoOnly` and `ReadOnly` for ease of use. However,
|
||||
// the internal windows structure uses `BOOLS` aka int32s for these types. `openVersion2` is used for translating
|
||||
// `OpenVersion2` fields to the correct windows internal field types on the `Open____` methods.
|
||||
type openVersion2 struct {
|
||||
getInfoOnly int32
|
||||
readOnly int32
|
||||
resiliencyGUID guid.GUID
|
||||
}
|
||||
|
||||
type openVirtualDiskParameters struct {
|
||||
version uint32
|
||||
version2 openVersion2
|
||||
}
|
||||
|
||||
type AttachVersion2 struct {
|
||||
RestrictedOffset uint64
|
||||
RestrictedLength uint64
|
||||
}
|
||||
|
||||
type AttachVirtualDiskParameters struct {
|
||||
Version uint32 // Must always be set to 2
|
||||
Version uint32
|
||||
Version2 AttachVersion2
|
||||
}
|
||||
|
||||
|
@ -146,16 +160,13 @@ func CreateVhdx(path string, maxSizeInGb, blockSizeInMb uint32) error {
|
|||
return err
|
||||
}
|
||||
|
||||
if err := syscall.CloseHandle(handle); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
return syscall.CloseHandle(handle)
|
||||
}
|
||||
|
||||
// DetachVirtualDisk detaches a virtual hard disk by handle.
|
||||
func DetachVirtualDisk(handle syscall.Handle) (err error) {
|
||||
if err := detachVirtualDisk(handle, 0, 0); err != nil {
|
||||
return errors.Wrap(err, "failed to detach virtual disk")
|
||||
return fmt.Errorf("failed to detach virtual disk: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -185,7 +196,7 @@ func AttachVirtualDisk(handle syscall.Handle, attachVirtualDiskFlag AttachVirtua
|
|||
parameters,
|
||||
nil,
|
||||
); err != nil {
|
||||
return errors.Wrap(err, "failed to attach virtual disk")
|
||||
return fmt.Errorf("failed to attach virtual disk: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -209,7 +220,7 @@ func AttachVhd(path string) (err error) {
|
|||
AttachVirtualDiskFlagNone,
|
||||
¶ms,
|
||||
); err != nil {
|
||||
return errors.Wrap(err, "failed to attach virtual disk")
|
||||
return fmt.Errorf("failed to attach virtual disk: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -234,19 +245,35 @@ func OpenVirtualDiskWithParameters(vhdPath string, virtualDiskAccessMask Virtual
|
|||
var (
|
||||
handle syscall.Handle
|
||||
defaultType VirtualStorageType
|
||||
getInfoOnly int32
|
||||
readOnly int32
|
||||
)
|
||||
if parameters.Version != 2 {
|
||||
return handle, fmt.Errorf("only version 2 VHDs are supported, found version: %d", parameters.Version)
|
||||
}
|
||||
if parameters.Version2.GetInfoOnly {
|
||||
getInfoOnly = 1
|
||||
}
|
||||
if parameters.Version2.ReadOnly {
|
||||
readOnly = 1
|
||||
}
|
||||
params := &openVirtualDiskParameters{
|
||||
version: parameters.Version,
|
||||
version2: openVersion2{
|
||||
getInfoOnly,
|
||||
readOnly,
|
||||
parameters.Version2.ResiliencyGUID,
|
||||
},
|
||||
}
|
||||
if err := openVirtualDisk(
|
||||
&defaultType,
|
||||
vhdPath,
|
||||
uint32(virtualDiskAccessMask),
|
||||
uint32(openVirtualDiskFlags),
|
||||
parameters,
|
||||
params,
|
||||
&handle,
|
||||
); err != nil {
|
||||
return 0, errors.Wrap(err, "failed to open virtual disk")
|
||||
return 0, fmt.Errorf("failed to open virtual disk: %w", err)
|
||||
}
|
||||
return handle, nil
|
||||
}
|
||||
|
@ -272,7 +299,7 @@ func CreateVirtualDisk(path string, virtualDiskAccessMask VirtualDiskAccessMask,
|
|||
nil,
|
||||
&handle,
|
||||
); err != nil {
|
||||
return handle, errors.Wrap(err, "failed to create virtual disk")
|
||||
return handle, fmt.Errorf("failed to create virtual disk: %w", err)
|
||||
}
|
||||
return handle, nil
|
||||
}
|
||||
|
@ -290,7 +317,7 @@ func GetVirtualDiskPhysicalPath(handle syscall.Handle) (_ string, err error) {
|
|||
&diskPathSizeInBytes,
|
||||
&diskPhysicalPathBuf[0],
|
||||
); err != nil {
|
||||
return "", errors.Wrap(err, "failed to get disk physical path")
|
||||
return "", fmt.Errorf("failed to get disk physical path: %w", err)
|
||||
}
|
||||
return windows.UTF16ToString(diskPhysicalPathBuf[:]), nil
|
||||
}
|
||||
|
@ -314,10 +341,10 @@ func CreateDiffVhd(diffVhdPath, baseVhdPath string, blockSizeInMB uint32) error
|
|||
createParams,
|
||||
)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to create differencing vhd: %s", err)
|
||||
return fmt.Errorf("failed to create differencing vhd: %w", err)
|
||||
}
|
||||
if err := syscall.CloseHandle(vhdHandle); err != nil {
|
||||
return fmt.Errorf("failed to close differencing vhd handle: %s", err)
|
||||
return fmt.Errorf("failed to close differencing vhd handle: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
4
vendor/github.com/Microsoft/go-winio/vhd/zvhd_windows.go
generated
vendored
4
vendor/github.com/Microsoft/go-winio/vhd/zvhd_windows.go
generated
vendored
|
@ -88,7 +88,7 @@ func getVirtualDiskPhysicalPath(handle syscall.Handle, diskPathSizeInBytes *uint
|
|||
return
|
||||
}
|
||||
|
||||
func openVirtualDisk(virtualStorageType *VirtualStorageType, path string, virtualDiskAccessMask uint32, openVirtualDiskFlags uint32, parameters *OpenVirtualDiskParameters, handle *syscall.Handle) (win32err error) {
|
||||
func openVirtualDisk(virtualStorageType *VirtualStorageType, path string, virtualDiskAccessMask uint32, openVirtualDiskFlags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (win32err error) {
|
||||
var _p0 *uint16
|
||||
_p0, win32err = syscall.UTF16PtrFromString(path)
|
||||
if win32err != nil {
|
||||
|
@ -97,7 +97,7 @@ func openVirtualDisk(virtualStorageType *VirtualStorageType, path string, virtua
|
|||
return _openVirtualDisk(virtualStorageType, _p0, virtualDiskAccessMask, openVirtualDiskFlags, parameters, handle)
|
||||
}
|
||||
|
||||
func _openVirtualDisk(virtualStorageType *VirtualStorageType, path *uint16, virtualDiskAccessMask uint32, openVirtualDiskFlags uint32, parameters *OpenVirtualDiskParameters, handle *syscall.Handle) (win32err error) {
|
||||
func _openVirtualDisk(virtualStorageType *VirtualStorageType, path *uint16, virtualDiskAccessMask uint32, openVirtualDiskFlags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (win32err error) {
|
||||
r0, _, _ := syscall.Syscall6(procOpenVirtualDisk.Addr(), 6, uintptr(unsafe.Pointer(virtualStorageType)), uintptr(unsafe.Pointer(path)), uintptr(virtualDiskAccessMask), uintptr(openVirtualDiskFlags), uintptr(unsafe.Pointer(parameters)), uintptr(unsafe.Pointer(handle)))
|
||||
if r0 != 0 {
|
||||
win32err = syscall.Errno(r0)
|
||||
|
|
12
vendor/github.com/containerd/continuity/AUTHORS
generated
vendored
12
vendor/github.com/containerd/continuity/AUTHORS
generated
vendored
|
@ -1,8 +1,6 @@
|
|||
Aaron Lehmann <aaron.lehmann@docker.com>
|
||||
Aaron Lehmann <alehmann@netflix.com>
|
||||
Akash Gupta <akagup@microsoft.com>
|
||||
Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
|
||||
Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
|
||||
Akihiro Suda <suda.kyoto@gmail.com>
|
||||
Andrew Pennebaker <apennebaker@datapipe.com>
|
||||
Brandon Philips <brandon.philips@coreos.com>
|
||||
Brian Goff <cpuguy83@gmail.com>
|
||||
|
@ -10,9 +8,9 @@ Christopher Jones <tophj@linux.vnet.ibm.com>
|
|||
Daniel, Dao Quang Minh <dqminh89@gmail.com>
|
||||
Darren Stahl <darst@microsoft.com>
|
||||
Derek McGowan <derek@mcg.dev>
|
||||
Derek McGowan <derek@mcgstyle.net>
|
||||
Edward Pilatowicz <edward.pilatowicz@oracle.com>
|
||||
Fu Wei <fuweid89@gmail.com>
|
||||
Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
|
||||
Hajime Tazaki <thehajime@gmail.com>
|
||||
Ian Campbell <ijc@docker.com>
|
||||
Ivan Markin <sw@nogoegst.net>
|
||||
|
@ -20,20 +18,18 @@ Jacob Blain Christen <jacob@rancher.com>
|
|||
Justin Cormack <justin.cormack@docker.com>
|
||||
Justin Cummins <sul3n3t@gmail.com>
|
||||
Kasper Fabæch Brandt <poizan@poizan.dk>
|
||||
Kazuyoshi Kato <katokazu@amazon.com>
|
||||
Kir Kolyshkin <kolyshkin@gmail.com>
|
||||
Michael Crosby <crosbymichael@gmail.com>
|
||||
Michael Crosby <michael@thepasture.io>
|
||||
Michael Wan <zirenwan@gmail.com>
|
||||
Mike Brown <brownwm@us.ibm.com>
|
||||
Niels de Vos <ndevos@redhat.com>
|
||||
Phil Estes <estesp@amazon.com>
|
||||
Phil Estes <estesp@gmail.com>
|
||||
Phil Estes <estesp@linux.vnet.ibm.com>
|
||||
Sam Whited <sam@samwhited.com>
|
||||
Samuel Karp <me@samuelkarp.com>
|
||||
Sebastiaan van Stijn <github@gone.nl>
|
||||
Shengjing Zhu <zhsj@debian.org>
|
||||
Stephen J Day <stephen.day@docker.com>
|
||||
Stephen J Day <stevvooe@gmail.com>
|
||||
Tibor Vass <tibor@docker.com>
|
||||
Tobias Klauser <tklauser@distanz.ch>
|
||||
Tom Faulhaber <tffaulha@amazon.com>
|
||||
|
|
12
vendor/github.com/containerd/continuity/driver/driver_unix.go
generated
vendored
12
vendor/github.com/containerd/continuity/driver/driver_unix.go
generated
vendored
|
@ -54,7 +54,7 @@ func (d *driver) Mkfifo(path string, mode os.FileMode) error {
|
|||
func (d *driver) Getxattr(p string) (map[string][]byte, error) {
|
||||
xattrs, err := sysx.Listxattr(p)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("listing %s xattrs: %v", p, err)
|
||||
return nil, fmt.Errorf("listing %s xattrs: %w", p, err)
|
||||
}
|
||||
|
||||
sort.Strings(xattrs)
|
||||
|
@ -63,7 +63,7 @@ func (d *driver) Getxattr(p string) (map[string][]byte, error) {
|
|||
for _, attr := range xattrs {
|
||||
value, err := sysx.Getxattr(p, attr)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("getting %q xattr on %s: %v", attr, p, err)
|
||||
return nil, fmt.Errorf("getting %q xattr on %s: %w", attr, p, err)
|
||||
}
|
||||
|
||||
// NOTE(stevvooe): This append/copy tricky relies on unique
|
||||
|
@ -82,7 +82,7 @@ func (d *driver) Getxattr(p string) (map[string][]byte, error) {
|
|||
func (d *driver) Setxattr(path string, attrMap map[string][]byte) error {
|
||||
for attr, value := range attrMap {
|
||||
if err := sysx.Setxattr(path, attr, value, 0); err != nil {
|
||||
return fmt.Errorf("error setting xattr %q on %s: %v", attr, path, err)
|
||||
return fmt.Errorf("error setting xattr %q on %s: %w", attr, path, err)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ func (d *driver) Setxattr(path string, attrMap map[string][]byte) error {
|
|||
func (d *driver) LGetxattr(p string) (map[string][]byte, error) {
|
||||
xattrs, err := sysx.LListxattr(p)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("listing %s xattrs: %v", p, err)
|
||||
return nil, fmt.Errorf("listing %s xattrs: %w", p, err)
|
||||
}
|
||||
|
||||
sort.Strings(xattrs)
|
||||
|
@ -103,7 +103,7 @@ func (d *driver) LGetxattr(p string) (map[string][]byte, error) {
|
|||
for _, attr := range xattrs {
|
||||
value, err := sysx.LGetxattr(p, attr)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("getting %q xattr on %s: %v", attr, p, err)
|
||||
return nil, fmt.Errorf("getting %q xattr on %s: %w", attr, p, err)
|
||||
}
|
||||
|
||||
// NOTE(stevvooe): This append/copy tricky relies on unique
|
||||
|
@ -122,7 +122,7 @@ func (d *driver) LGetxattr(p string) (map[string][]byte, error) {
|
|||
func (d *driver) LSetxattr(path string, attrMap map[string][]byte) error {
|
||||
for attr, value := range attrMap {
|
||||
if err := sysx.LSetxattr(path, attr, value, 0); err != nil {
|
||||
return fmt.Errorf("error setting xattr %q on %s: %v", attr, path, err)
|
||||
return fmt.Errorf("error setting xattr %q on %s: %w", attr, path, err)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
7
vendor/github.com/containerd/continuity/driver/utils.go
generated
vendored
7
vendor/github.com/containerd/continuity/driver/utils.go
generated
vendored
|
@ -18,12 +18,11 @@ package driver
|
|||
|
||||
import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"sort"
|
||||
)
|
||||
|
||||
// ReadFile works the same as ioutil.ReadFile with the Driver abstraction
|
||||
// ReadFile works the same as os.ReadFile with the Driver abstraction
|
||||
func ReadFile(r Driver, filename string) ([]byte, error) {
|
||||
f, err := r.Open(filename)
|
||||
if err != nil {
|
||||
|
@ -31,7 +30,7 @@ func ReadFile(r Driver, filename string) ([]byte, error) {
|
|||
}
|
||||
defer f.Close()
|
||||
|
||||
data, err := ioutil.ReadAll(f)
|
||||
data, err := io.ReadAll(f)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -39,7 +38,7 @@ func ReadFile(r Driver, filename string) ([]byte, error) {
|
|||
return data, nil
|
||||
}
|
||||
|
||||
// WriteFile works the same as ioutil.WriteFile with the Driver abstraction
|
||||
// WriteFile works the same as os.WriteFile with the Driver abstraction
|
||||
func WriteFile(r Driver, filename string, data []byte, perm os.FileMode) error {
|
||||
f, err := r.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm)
|
||||
if err != nil {
|
||||
|
|
16
vendor/github.com/containerd/continuity/fs/copy.go
generated
vendored
16
vendor/github.com/containerd/continuity/fs/copy.go
generated
vendored
|
@ -22,6 +22,8 @@ import (
|
|||
"os"
|
||||
"path/filepath"
|
||||
"sync"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var bufferPool = &sync.Pool{
|
||||
|
@ -31,7 +33,7 @@ var bufferPool = &sync.Pool{
|
|||
},
|
||||
}
|
||||
|
||||
// XAttrErrorHandlers transform a non-nil xattr error.
|
||||
// XAttrErrorHandler transform a non-nil xattr error.
|
||||
// Return nil to ignore an error.
|
||||
// xattrKey can be empty for listxattr operation.
|
||||
type XAttrErrorHandler func(dst, src, xattrKey string, err error) error
|
||||
|
@ -152,13 +154,15 @@ func copyDirectory(dst, src string, inodes map[uint64]string, o *copyDirOpts) er
|
|||
if err := os.Symlink(link, target); err != nil {
|
||||
return fmt.Errorf("failed to create symlink: %s: %w", target, err)
|
||||
}
|
||||
case (fi.Mode() & os.ModeDevice) == os.ModeDevice:
|
||||
if err := copyDevice(target, fi); err != nil {
|
||||
return fmt.Errorf("failed to create device: %w", err)
|
||||
case (fi.Mode() & os.ModeDevice) == os.ModeDevice,
|
||||
(fi.Mode() & os.ModeNamedPipe) == os.ModeNamedPipe,
|
||||
(fi.Mode() & os.ModeSocket) == os.ModeSocket:
|
||||
if err := copyIrregular(target, fi); err != nil {
|
||||
return fmt.Errorf("failed to create irregular file: %w", err)
|
||||
}
|
||||
default:
|
||||
// TODO: Support pipes and sockets
|
||||
return fmt.Errorf("unsupported mode %s: %w", fi.Mode(), err)
|
||||
logrus.Warnf("unsupported mode: %s: %s", source, fi.Mode())
|
||||
continue
|
||||
}
|
||||
|
||||
if err := copyFileInfo(fi, source, target); err != nil {
|
||||
|
|
36
vendor/github.com/containerd/continuity/fs/copy_freebsd.go
generated
vendored
36
vendor/github.com/containerd/continuity/fs/copy_freebsd.go
generated
vendored
|
@ -1,36 +0,0 @@
|
|||
//go:build freebsd
|
||||
// +build freebsd
|
||||
|
||||
/*
|
||||
Copyright The containerd Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package fs
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"syscall"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func copyDevice(dst string, fi os.FileInfo) error {
|
||||
st, ok := fi.Sys().(*syscall.Stat_t)
|
||||
if !ok {
|
||||
return errors.New("unsupported stat type")
|
||||
}
|
||||
return unix.Mknod(dst, uint32(fi.Mode()), st.Rdev)
|
||||
}
|
|
@ -1,6 +1,3 @@
|
|||
//go:build darwin
|
||||
// +build darwin
|
||||
|
||||
/*
|
||||
Copyright The containerd Authors.
|
||||
|
||||
|
@ -20,17 +17,20 @@
|
|||
package fs
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"syscall"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func copyDevice(dst string, fi os.FileInfo) error {
|
||||
st, ok := fi.Sys().(*syscall.Stat_t)
|
||||
// copyIrregular covers devices, pipes, and sockets
|
||||
func copyIrregular(dst string, fi os.FileInfo) error {
|
||||
st, ok := fi.Sys().(*syscall.Stat_t) // not *unix.Stat_t
|
||||
if !ok {
|
||||
return errors.New("unsupported stat type")
|
||||
return fmt.Errorf("unsupported stat type: %s: %v", dst, fi.Mode())
|
||||
}
|
||||
return unix.Mknod(dst, uint32(fi.Mode()), int(st.Rdev))
|
||||
var rDev uint64 // uint64 on FreeBSD, int on other unixen
|
||||
if fi.Mode()&os.ModeDevice == os.ModeDevice {
|
||||
rDev = st.Rdev
|
||||
}
|
||||
return syscall.Mknod(dst, uint32(st.Mode), rDev)
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
//go:build openbsd || solaris || netbsd
|
||||
// +build openbsd solaris netbsd
|
||||
//go:build !windows && !freebsd
|
||||
// +build !windows,!freebsd
|
||||
|
||||
/*
|
||||
Copyright The containerd Authors.
|
||||
|
@ -20,17 +20,21 @@
|
|||
package fs
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"syscall"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func copyDevice(dst string, fi os.FileInfo) error {
|
||||
st, ok := fi.Sys().(*syscall.Stat_t)
|
||||
// copyIrregular covers devices, pipes, and sockets
|
||||
func copyIrregular(dst string, fi os.FileInfo) error {
|
||||
st, ok := fi.Sys().(*syscall.Stat_t) // not *unix.Stat_t
|
||||
if !ok {
|
||||
return errors.New("unsupported stat type")
|
||||
return fmt.Errorf("unsupported stat type: %s: %v", dst, fi.Mode())
|
||||
}
|
||||
return unix.Mknod(dst, uint32(fi.Mode()), int(st.Rdev))
|
||||
var rDev int
|
||||
if fi.Mode()&os.ModeDevice == os.ModeDevice {
|
||||
rDev = int(st.Rdev)
|
||||
}
|
||||
//nolint:unconvert
|
||||
return syscall.Mknod(dst, uint32(st.Mode), rDev)
|
||||
}
|
9
vendor/github.com/containerd/continuity/fs/copy_linux.go
generated
vendored
9
vendor/github.com/containerd/continuity/fs/copy_linux.go
generated
vendored
|
@ -17,7 +17,6 @@
|
|||
package fs
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
|
@ -144,11 +143,3 @@ func copyXAttrs(dst, src string, excludes map[string]struct{}, errorHandler XAtt
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func copyDevice(dst string, fi os.FileInfo) error {
|
||||
st, ok := fi.Sys().(*syscall.Stat_t)
|
||||
if !ok {
|
||||
return errors.New("unsupported stat type")
|
||||
}
|
||||
return unix.Mknod(dst, uint32(fi.Mode()), int(st.Rdev))
|
||||
}
|
||||
|
|
4
vendor/github.com/containerd/continuity/fs/copy_windows.go
generated
vendored
4
vendor/github.com/containerd/continuity/fs/copy_windows.go
generated
vendored
|
@ -85,6 +85,6 @@ func copyXAttrs(dst, src string, excludes map[string]struct{}, errorHandler XAtt
|
|||
return nil
|
||||
}
|
||||
|
||||
func copyDevice(dst string, fi os.FileInfo) error {
|
||||
return errors.New("device copy not supported")
|
||||
func copyIrregular(dst string, fi os.FileInfo) error {
|
||||
return errors.New("irregular copy not supported")
|
||||
}
|
||||
|
|
3
vendor/github.com/containerd/continuity/fs/diff.go
generated
vendored
3
vendor/github.com/containerd/continuity/fs/diff.go
generated
vendored
|
@ -22,9 +22,8 @@ import (
|
|||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/sync/errgroup"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
|
||||
// ChangeKind is the type of modification that
|
||||
|
|
2
vendor/github.com/containerd/continuity/fs/dtype_linux.go
generated
vendored
2
vendor/github.com/containerd/continuity/fs/dtype_linux.go
generated
vendored
|
@ -35,7 +35,7 @@ func locateDummyIfEmpty(path string) (string, error) {
|
|||
if len(children) != 0 {
|
||||
return "", nil
|
||||
}
|
||||
dummyFile, err := ioutil.TempFile(path, "fsutils-dummy")
|
||||
dummyFile, err := os.CreateTemp(path, "fsutils-dummy")
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
52
vendor/github.com/containerd/continuity/sysx/generate.sh
generated
vendored
52
vendor/github.com/containerd/continuity/sysx/generate.sh
generated
vendored
|
@ -1,52 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright The containerd Authors.
|
||||
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
mksyscall="$(go env GOROOT)/src/syscall/mksyscall.pl"
|
||||
|
||||
fix() {
|
||||
sed 's,^package syscall$,package sysx,' \
|
||||
| sed 's,^import "unsafe"$,import (\n\t"syscall"\n\t"unsafe"\n),' \
|
||||
| gofmt -r='BytePtrFromString -> syscall.BytePtrFromString' \
|
||||
| gofmt -r='Syscall6 -> syscall.Syscall6' \
|
||||
| gofmt -r='Syscall -> syscall.Syscall' \
|
||||
| gofmt -r='SYS_GETXATTR -> syscall.SYS_GETXATTR' \
|
||||
| gofmt -r='SYS_LISTXATTR -> syscall.SYS_LISTXATTR' \
|
||||
| gofmt -r='SYS_SETXATTR -> syscall.SYS_SETXATTR' \
|
||||
| gofmt -r='SYS_REMOVEXATTR -> syscall.SYS_REMOVEXATTR' \
|
||||
| gofmt -r='SYS_LGETXATTR -> syscall.SYS_LGETXATTR' \
|
||||
| gofmt -r='SYS_LLISTXATTR -> syscall.SYS_LLISTXATTR' \
|
||||
| gofmt -r='SYS_LSETXATTR -> syscall.SYS_LSETXATTR' \
|
||||
| gofmt -r='SYS_LREMOVEXATTR -> syscall.SYS_LREMOVEXATTR'
|
||||
}
|
||||
|
||||
if [ "$GOARCH" == "" ] || [ "$GOOS" == "" ]; then
|
||||
echo "Must specify \$GOARCH and \$GOOS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkargs=""
|
||||
|
||||
if [ "$GOARCH" == "386" ] || [ "$GOARCH" == "arm" ]; then
|
||||
mkargs="-l32"
|
||||
fi
|
||||
|
||||
for f in "$@"; do
|
||||
$mksyscall $mkargs "${f}_${GOOS}.go" | fix > "${f}_${GOOS}_${GOARCH}.go"
|
||||
done
|
||||
|
15
vendor/github.com/moby/buildkit/cache/manager.go
generated
vendored
15
vendor/github.com/moby/buildkit/cache/manager.go
generated
vendored
|
@ -458,6 +458,13 @@ func (cm *cacheManager) getRecord(ctx context.Context, id string, opts ...RefOpt
|
|||
cacheMetadata: md,
|
||||
}
|
||||
|
||||
// TODO:(sipsma) this is kludge to deal with a bug in v0.10.{0,1} where
|
||||
// merge and diff refs didn't have committed set to true:
|
||||
// https://github.com/moby/buildkit/issues/2740
|
||||
if kind := rec.kind(); kind == Merge || kind == Diff {
|
||||
rec.mutable = false
|
||||
}
|
||||
|
||||
// the record was deleted but we crashed before data on disk was removed
|
||||
if md.getDeleted() {
|
||||
if err := rec.remove(ctx, true); err != nil {
|
||||
|
@ -496,6 +503,11 @@ func (cm *cacheManager) getRecord(ctx context.Context, id string, opts ...RefOpt
|
|||
}
|
||||
|
||||
func (cm *cacheManager) parentsOf(ctx context.Context, md *cacheMetadata, opts ...RefOption) (ps parentRefs, rerr error) {
|
||||
defer func() {
|
||||
if rerr != nil {
|
||||
ps.release(context.TODO())
|
||||
}
|
||||
}()
|
||||
if parentID := md.getParent(); parentID != "" {
|
||||
p, err := cm.get(ctx, parentID, nil, append(opts, NoUpdateLastUsed))
|
||||
if err != nil {
|
||||
|
@ -794,7 +806,7 @@ func (cm *cacheManager) createMergeRef(ctx context.Context, parents parentRefs,
|
|||
}
|
||||
|
||||
rec.queueSnapshotID(snapshotID)
|
||||
|
||||
rec.queueCommitted(true)
|
||||
if err := rec.commitMetadata(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -969,6 +981,7 @@ func (cm *cacheManager) createDiffRef(ctx context.Context, parents parentRefs, d
|
|||
}
|
||||
|
||||
rec.queueSnapshotID(snapshotID)
|
||||
rec.queueCommitted(true)
|
||||
if err := rec.commitMetadata(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
2
vendor/github.com/moby/buildkit/cache/opts.go
generated
vendored
2
vendor/github.com/moby/buildkit/cache/opts.go
generated
vendored
|
@ -35,3 +35,5 @@ type NeedsRemoteProviderError []digest.Digest //nolint:errname
|
|||
func (m NeedsRemoteProviderError) Error() string {
|
||||
return fmt.Sprintf("missing descriptor handlers for lazy blobs %+v", []digest.Digest(m))
|
||||
}
|
||||
|
||||
type ProgressKey struct{}
|
||||
|
|
3
vendor/github.com/moby/buildkit/cache/refs.go
generated
vendored
3
vendor/github.com/moby/buildkit/cache/refs.go
generated
vendored
|
@ -3,6 +3,7 @@ package cache
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
@ -1630,7 +1631,7 @@ func (sm *sharableMountable) Mount() (_ []mount.Mount, _ func() error, retErr er
|
|||
// Don't need temporary mount wrapper for non-overlayfs mounts
|
||||
return mounts, release, nil
|
||||
}
|
||||
dir, err := os.MkdirTemp(sm.mountPoolRoot, "buildkit")
|
||||
dir, err := ioutil.TempDir(sm.mountPoolRoot, "buildkit")
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
|
5
vendor/github.com/moby/buildkit/cache/util/fsutil.go
generated
vendored
5
vendor/github.com/moby/buildkit/cache/util/fsutil.go
generated
vendored
|
@ -3,6 +3,7 @@ package util
|
|||
import (
|
||||
"context"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
|
@ -58,7 +59,7 @@ func ReadFile(ctx context.Context, mount snapshot.Mountable, req ReadRequest) ([
|
|||
}
|
||||
|
||||
if req.Range == nil {
|
||||
dt, err = os.ReadFile(fp)
|
||||
dt, err = ioutil.ReadFile(fp)
|
||||
if err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
@ -67,7 +68,7 @@ func ReadFile(ctx context.Context, mount snapshot.Mountable, req ReadRequest) ([
|
|||
if err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
dt, err = io.ReadAll(io.NewSectionReader(f, int64(req.Range.Offset), int64(req.Range.Length)))
|
||||
dt, err = ioutil.ReadAll(io.NewSectionReader(f, int64(req.Range.Offset), int64(req.Range.Length)))
|
||||
f.Close()
|
||||
if err != nil {
|
||||
return errors.WithStack(err)
|
||||
|
|
4
vendor/github.com/moby/buildkit/client/client.go
generated
vendored
4
vendor/github.com/moby/buildkit/client/client.go
generated
vendored
|
@ -4,9 +4,9 @@ import (
|
|||
"context"
|
||||
"crypto/tls"
|
||||
"crypto/x509"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"net/url"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/containerd/containerd/defaults"
|
||||
|
@ -212,7 +212,7 @@ func WithCredentials(serverName, ca, cert, key string) ClientOpt {
|
|||
}
|
||||
|
||||
func loadCredentials(opts *withCredentials) (grpc.DialOption, error) {
|
||||
ca, err := os.ReadFile(opts.CACert)
|
||||
ca, err := ioutil.ReadFile(opts.CACert)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not read ca certificate")
|
||||
}
|
||||
|
|
3
vendor/github.com/moby/buildkit/client/llb/marshal.go
generated
vendored
3
vendor/github.com/moby/buildkit/client/llb/marshal.go
generated
vendored
|
@ -2,6 +2,7 @@ package llb
|
|||
|
||||
import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
|
||||
"github.com/containerd/containerd/platforms"
|
||||
"github.com/moby/buildkit/solver/pb"
|
||||
|
@ -66,7 +67,7 @@ func WriteTo(def *Definition, w io.Writer) error {
|
|||
}
|
||||
|
||||
func ReadFrom(r io.Reader) (*Definition, error) {
|
||||
b, err := io.ReadAll(r)
|
||||
b, err := ioutil.ReadAll(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
15
vendor/github.com/moby/buildkit/client/llb/state.go
generated
vendored
15
vendor/github.com/moby/buildkit/client/llb/state.go
generated
vendored
|
@ -230,13 +230,7 @@ func (s State) WithOutput(o Output) State {
|
|||
}
|
||||
|
||||
func (s State) WithImageConfig(c []byte) (State, error) {
|
||||
var img struct {
|
||||
Config struct {
|
||||
Env []string `json:"Env,omitempty"`
|
||||
WorkingDir string `json:"WorkingDir,omitempty"`
|
||||
User string `json:"User,omitempty"`
|
||||
} `json:"config,omitempty"`
|
||||
}
|
||||
var img ocispecs.Image
|
||||
if err := json.Unmarshal(c, &img); err != nil {
|
||||
return State{}, err
|
||||
}
|
||||
|
@ -251,6 +245,13 @@ func (s State) WithImageConfig(c []byte) (State, error) {
|
|||
}
|
||||
}
|
||||
s = s.Dir(img.Config.WorkingDir)
|
||||
if img.Architecture != "" && img.OS != "" {
|
||||
s = s.Platform(ocispecs.Platform{
|
||||
OS: img.OS,
|
||||
Architecture: img.Architecture,
|
||||
Variant: img.Variant,
|
||||
})
|
||||
}
|
||||
return s, nil
|
||||
}
|
||||
|
||||
|
|
6
vendor/github.com/moby/buildkit/client/ociindex/ociindex.go
generated
vendored
6
vendor/github.com/moby/buildkit/client/ociindex/ociindex.go
generated
vendored
|
@ -2,7 +2,7 @@ package ociindex
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
|
||||
"github.com/gofrs/flock"
|
||||
|
@ -62,7 +62,7 @@ func PutDescToIndexJSONFileLocked(indexJSONPath string, desc ocispecs.Descriptor
|
|||
}
|
||||
defer f.Close()
|
||||
var idx ocispecs.Index
|
||||
b, err := io.ReadAll(f)
|
||||
b, err := ioutil.ReadAll(f)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "could not read %s", indexJSONPath)
|
||||
}
|
||||
|
@ -101,7 +101,7 @@ func ReadIndexJSONFileLocked(indexJSONPath string) (*ocispecs.Index, error) {
|
|||
lock.Unlock()
|
||||
os.RemoveAll(lockPath)
|
||||
}()
|
||||
b, err := os.ReadFile(indexJSONPath)
|
||||
b, err := ioutil.ReadFile(indexJSONPath)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "could not read %s", indexJSONPath)
|
||||
}
|
||||
|
|
3
vendor/github.com/moby/buildkit/executor/oci/hosts.go
generated
vendored
3
vendor/github.com/moby/buildkit/executor/oci/hosts.go
generated
vendored
|
@ -4,6 +4,7 @@ import (
|
|||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
|
@ -55,7 +56,7 @@ func makeHostsFile(stateDir string, extraHosts []executor.HostIP, idmap *idtools
|
|||
}
|
||||
|
||||
tmpPath := p + ".tmp"
|
||||
if err := os.WriteFile(tmpPath, b.Bytes(), 0644); err != nil {
|
||||
if err := ioutil.WriteFile(tmpPath, b.Bytes(), 0644); err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
|
||||
|
|
3
vendor/github.com/moby/buildkit/executor/oci/resolvconf.go
generated
vendored
3
vendor/github.com/moby/buildkit/executor/oci/resolvconf.go
generated
vendored
|
@ -2,6 +2,7 @@ package oci
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
|
@ -100,7 +101,7 @@ func GetResolvConf(ctx context.Context, stateDir string, idmap *idtools.Identity
|
|||
}
|
||||
|
||||
tmpPath := p + ".tmp"
|
||||
if err := os.WriteFile(tmpPath, f.Content, 0644); err != nil {
|
||||
if err := ioutil.WriteFile(tmpPath, f.Content, 0644); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
|
|
3
vendor/github.com/moby/buildkit/exporter/local/export.go
generated
vendored
3
vendor/github.com/moby/buildkit/exporter/local/export.go
generated
vendored
|
@ -2,6 +2,7 @@ package local
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -66,7 +67,7 @@ func (e *localExporterInstance) Export(ctx context.Context, inp exporter.Source,
|
|||
var err error
|
||||
var idmap *idtools.IdentityMapping
|
||||
if ref == nil {
|
||||
src, err = os.MkdirTemp("", "buildkit")
|
||||
src, err = ioutil.TempDir("", "buildkit")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
3
vendor/github.com/moby/buildkit/exporter/tar/export.go
generated
vendored
3
vendor/github.com/moby/buildkit/exporter/tar/export.go
generated
vendored
|
@ -2,6 +2,7 @@ package local
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
@ -82,7 +83,7 @@ func (e *localExporterInstance) Export(ctx context.Context, inp exporter.Source,
|
|||
var err error
|
||||
var idmap *idtools.IdentityMapping
|
||||
if ref == nil {
|
||||
src, err = os.MkdirTemp("", "buildkit")
|
||||
src, err = ioutil.TempDir("", "buildkit")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
14
vendor/github.com/moby/buildkit/frontend/dockerfile/dockerfile2llb/convert.go
generated
vendored
14
vendor/github.com/moby/buildkit/frontend/dockerfile/dockerfile2llb/convert.go
generated
vendored
|
@ -158,6 +158,7 @@ func Dockerfile2LLB(ctx context.Context, dt []byte, opt ConvertOpt) (*llb.State,
|
|||
st.BaseName = name
|
||||
|
||||
ds := &dispatchState{
|
||||
stage: st,
|
||||
deps: make(map[*dispatchState]struct{}),
|
||||
ctxPaths: make(map[string]struct{}),
|
||||
stageName: st.Name,
|
||||
|
@ -174,6 +175,13 @@ func Dockerfile2LLB(ctx context.Context, dt []byte, opt ConvertOpt) (*llb.State,
|
|||
ds.state = *s
|
||||
if img != nil {
|
||||
ds.image = *img
|
||||
if img.Architecture != "" && img.OS != "" {
|
||||
ds.platform = &ocispecs.Platform{
|
||||
OS: img.OS,
|
||||
Architecture: img.Architecture,
|
||||
Variant: img.Variant,
|
||||
}
|
||||
}
|
||||
}
|
||||
if bi != nil {
|
||||
ds.buildInfo = *bi
|
||||
|
@ -183,8 +191,6 @@ func Dockerfile2LLB(ctx context.Context, dt []byte, opt ConvertOpt) (*llb.State,
|
|||
}
|
||||
}
|
||||
|
||||
ds.stage = st
|
||||
|
||||
if st.Name == "" {
|
||||
ds.stageName = fmt.Sprintf("stage-%d", i)
|
||||
}
|
||||
|
@ -320,7 +326,7 @@ func Dockerfile2LLB(ctx context.Context, dt []byte, opt ConvertOpt) (*llb.State,
|
|||
if bi != nil {
|
||||
d.buildInfo = *bi
|
||||
}
|
||||
d.state = *st
|
||||
d.state = st.Platform(*platform)
|
||||
d.platform = platform
|
||||
return nil
|
||||
}
|
||||
|
@ -403,7 +409,7 @@ func Dockerfile2LLB(ctx context.Context, dt []byte, opt ConvertOpt) (*llb.State,
|
|||
ctxPaths := map[string]struct{}{}
|
||||
|
||||
for _, d := range allDispatchStates.states {
|
||||
if !isReachable(target, d) {
|
||||
if !isReachable(target, d) || d.noinit {
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
3
vendor/github.com/moby/buildkit/session/sshforward/ssh.go
generated
vendored
3
vendor/github.com/moby/buildkit/session/sshforward/ssh.go
generated
vendored
|
@ -1,6 +1,7 @@
|
|||
package sshforward
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
@ -63,7 +64,7 @@ type SocketOpt struct {
|
|||
}
|
||||
|
||||
func MountSSHSocket(ctx context.Context, c session.Caller, opt SocketOpt) (sockPath string, closer func() error, err error) {
|
||||
dir, err := os.MkdirTemp("", ".buildkit-ssh-sock")
|
||||
dir, err := ioutil.TempDir("", ".buildkit-ssh-sock")
|
||||
if err != nil {
|
||||
return "", nil, errors.WithStack(err)
|
||||
}
|
||||
|
|
3
vendor/github.com/moby/buildkit/snapshot/localmounter_unix.go
generated
vendored
3
vendor/github.com/moby/buildkit/snapshot/localmounter_unix.go
generated
vendored
|
@ -4,6 +4,7 @@
|
|||
package snapshot
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"syscall"
|
||||
|
||||
|
@ -37,7 +38,7 @@ func (lm *localMounter) Mount() (string, error) {
|
|||
}
|
||||
}
|
||||
|
||||
dir, err := os.MkdirTemp("", "buildkit-mount")
|
||||
dir, err := ioutil.TempDir("", "buildkit-mount")
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "failed to create temp dir")
|
||||
}
|
||||
|
|
15
vendor/github.com/moby/buildkit/solver/cacheopts.go
generated
vendored
15
vendor/github.com/moby/buildkit/solver/cacheopts.go
generated
vendored
|
@ -4,15 +4,12 @@ import (
|
|||
"context"
|
||||
|
||||
"github.com/moby/buildkit/util/bklog"
|
||||
"github.com/moby/buildkit/util/progress"
|
||||
|
||||
digest "github.com/opencontainers/go-digest"
|
||||
)
|
||||
|
||||
type CacheOpts map[interface{}]interface{}
|
||||
|
||||
type progressKey struct{}
|
||||
|
||||
type cacheOptGetterKey struct{}
|
||||
|
||||
func CacheOptGetterOf(ctx context.Context) func(includeAncestors bool, keys ...interface{}) map[interface{}]interface{} {
|
||||
|
@ -94,15 +91,3 @@ func walkAncestors(ctx context.Context, start *state, f func(*state) bool) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func ProgressControllerFromContext(ctx context.Context) progress.Controller {
|
||||
var pg progress.Controller
|
||||
if optGetter := CacheOptGetterOf(ctx); optGetter != nil {
|
||||
if kv := optGetter(false, progressKey{}); kv != nil {
|
||||
if v, ok := kv[progressKey{}].(progress.Controller); ok {
|
||||
pg = v
|
||||
}
|
||||
}
|
||||
}
|
||||
return pg
|
||||
}
|
||||
|
|
10
vendor/github.com/moby/buildkit/solver/jobs.go
generated
vendored
10
vendor/github.com/moby/buildkit/solver/jobs.go
generated
vendored
|
@ -13,7 +13,6 @@ import (
|
|||
"github.com/moby/buildkit/solver/errdefs"
|
||||
"github.com/moby/buildkit/util/flightcontrol"
|
||||
"github.com/moby/buildkit/util/progress"
|
||||
"github.com/moby/buildkit/util/progress/controller"
|
||||
"github.com/moby/buildkit/util/tracing"
|
||||
digest "github.com/opencontainers/go-digest"
|
||||
"github.com/pkg/errors"
|
||||
|
@ -782,15 +781,6 @@ func (s *sharedOp) CacheMap(ctx context.Context, index int) (resp *cacheMapResp,
|
|||
}
|
||||
if complete {
|
||||
if err == nil {
|
||||
if res.Opts == nil {
|
||||
res.Opts = CacheOpts(make(map[interface{}]interface{}))
|
||||
}
|
||||
res.Opts[progressKey{}] = &controller.Controller{
|
||||
WriterFactory: progress.FromContext(ctx),
|
||||
Digest: s.st.vtx.Digest(),
|
||||
Name: s.st.vtx.Name(),
|
||||
ProgressGroup: s.st.vtx.Options().ProgressGroup,
|
||||
}
|
||||
s.cacheRes = append(s.cacheRes, res)
|
||||
s.cacheDone = done
|
||||
}
|
||||
|
|
3
vendor/github.com/moby/buildkit/solver/llbsolver/file/backend.go
generated
vendored
3
vendor/github.com/moby/buildkit/solver/llbsolver/file/backend.go
generated
vendored
|
@ -2,6 +2,7 @@ package file
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
@ -109,7 +110,7 @@ func mkfile(ctx context.Context, d string, action pb.FileActionMkFile, user *cop
|
|||
return err
|
||||
}
|
||||
|
||||
if err := os.WriteFile(p, action.Data, os.FileMode(action.Mode)&0777); err != nil {
|
||||
if err := ioutil.WriteFile(p, action.Data, os.FileMode(action.Mode)&0777); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
5
vendor/github.com/moby/buildkit/solver/llbsolver/mounts/mount.go
generated
vendored
5
vendor/github.com/moby/buildkit/solver/llbsolver/mounts/mount.go
generated
vendored
|
@ -3,6 +3,7 @@ package mounts
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sync"
|
||||
|
@ -281,7 +282,7 @@ type secretMountInstance struct {
|
|||
}
|
||||
|
||||
func (sm *secretMountInstance) Mount() ([]mount.Mount, func() error, error) {
|
||||
dir, err := os.MkdirTemp("", "buildkit-secrets")
|
||||
dir, err := ioutil.TempDir("", "buildkit-secrets")
|
||||
if err != nil {
|
||||
return nil, nil, errors.Wrap(err, "failed to create temp dir")
|
||||
}
|
||||
|
@ -319,7 +320,7 @@ func (sm *secretMountInstance) Mount() ([]mount.Mount, func() error, error) {
|
|||
|
||||
randID := identity.NewID()
|
||||
fp := filepath.Join(dir, randID)
|
||||
if err := os.WriteFile(fp, sm.sm.data, 0600); err != nil {
|
||||
if err := ioutil.WriteFile(fp, sm.sm.data, 0600); err != nil {
|
||||
cleanup()
|
||||
return nil, nil, err
|
||||
}
|
||||
|
|
14
vendor/github.com/moby/buildkit/solver/llbsolver/ops/diff.go
generated
vendored
14
vendor/github.com/moby/buildkit/solver/llbsolver/ops/diff.go
generated
vendored
|
@ -4,6 +4,8 @@ import (
|
|||
"context"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/moby/buildkit/util/progress"
|
||||
"github.com/moby/buildkit/util/progress/controller"
|
||||
"github.com/moby/buildkit/worker"
|
||||
"github.com/pkg/errors"
|
||||
|
||||
|
@ -21,6 +23,7 @@ type diffOp struct {
|
|||
op *pb.DiffOp
|
||||
worker worker.Worker
|
||||
vtx solver.Vertex
|
||||
pg progress.Controller
|
||||
}
|
||||
|
||||
func NewDiffOp(v solver.Vertex, op *pb.Op_Diff, w worker.Worker) (solver.Op, error) {
|
||||
|
@ -61,8 +64,17 @@ func (d *diffOp) CacheMap(ctx context.Context, group session.Group, index int) (
|
|||
ComputeDigestFunc solver.ResultBasedCacheFunc
|
||||
PreprocessFunc solver.PreprocessFunc
|
||||
}, depCount),
|
||||
Opts: solver.CacheOpts(make(map[interface{}]interface{})),
|
||||
}
|
||||
|
||||
d.pg = &controller.Controller{
|
||||
WriterFactory: progress.FromContext(ctx),
|
||||
Digest: d.vtx.Digest(),
|
||||
Name: d.vtx.Name(),
|
||||
ProgressGroup: d.vtx.Options().ProgressGroup,
|
||||
}
|
||||
cm.Opts[cache.ProgressKey{}] = d.pg
|
||||
|
||||
return cm, true, nil
|
||||
}
|
||||
|
||||
|
@ -109,7 +121,7 @@ func (d *diffOp) Exec(ctx context.Context, g session.Group, inputs []solver.Resu
|
|||
return []solver.Result{worker.NewWorkerRefResult(nil, d.worker)}, nil
|
||||
}
|
||||
|
||||
diffRef, err := d.worker.CacheManager().Diff(ctx, lowerRef, upperRef, solver.ProgressControllerFromContext(ctx),
|
||||
diffRef, err := d.worker.CacheManager().Diff(ctx, lowerRef, upperRef, d.pg,
|
||||
cache.WithDescription(d.vtx.Name()))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
12
vendor/github.com/moby/buildkit/solver/llbsolver/ops/exec.go
generated
vendored
12
vendor/github.com/moby/buildkit/solver/llbsolver/ops/exec.go
generated
vendored
|
@ -21,6 +21,8 @@ import (
|
|||
"github.com/moby/buildkit/solver/llbsolver/errdefs"
|
||||
"github.com/moby/buildkit/solver/llbsolver/mounts"
|
||||
"github.com/moby/buildkit/solver/pb"
|
||||
"github.com/moby/buildkit/util/progress"
|
||||
"github.com/moby/buildkit/util/progress/controller"
|
||||
"github.com/moby/buildkit/util/progress/logs"
|
||||
utilsystem "github.com/moby/buildkit/util/system"
|
||||
"github.com/moby/buildkit/worker"
|
||||
|
@ -43,6 +45,7 @@ type execOp struct {
|
|||
platform *pb.Platform
|
||||
numInputs int
|
||||
parallelism *semaphore.Weighted
|
||||
vtx solver.Vertex
|
||||
}
|
||||
|
||||
func NewExecOp(v solver.Vertex, op *pb.Op_Exec, platform *pb.Platform, cm cache.Manager, parallelism *semaphore.Weighted, sm *session.Manager, exec executor.Executor, w worker.Worker) (solver.Op, error) {
|
||||
|
@ -60,6 +63,7 @@ func NewExecOp(v solver.Vertex, op *pb.Op_Exec, platform *pb.Platform, cm cache.
|
|||
w: w,
|
||||
platform: platform,
|
||||
parallelism: parallelism,
|
||||
vtx: v,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
@ -141,6 +145,14 @@ func (e *execOp) CacheMap(ctx context.Context, g session.Group, index int) (*sol
|
|||
ComputeDigestFunc solver.ResultBasedCacheFunc
|
||||
PreprocessFunc solver.PreprocessFunc
|
||||
}, e.numInputs),
|
||||
Opts: solver.CacheOpts(map[interface{}]interface{}{
|
||||
cache.ProgressKey{}: &controller.Controller{
|
||||
WriterFactory: progress.FromContext(ctx),
|
||||
Digest: e.vtx.Digest(),
|
||||
Name: e.vtx.Name(),
|
||||
ProgressGroup: e.vtx.Options().ProgressGroup,
|
||||
},
|
||||
}),
|
||||
}
|
||||
|
||||
deps, err := e.getMountDeps()
|
||||
|
|
3
vendor/github.com/moby/buildkit/solver/llbsolver/ops/exec_binfmt.go
generated
vendored
3
vendor/github.com/moby/buildkit/solver/llbsolver/ops/exec_binfmt.go
generated
vendored
|
@ -2,6 +2,7 @@ package ops
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
|
@ -46,7 +47,7 @@ type staticEmulatorMount struct {
|
|||
}
|
||||
|
||||
func (m *staticEmulatorMount) Mount() ([]mount.Mount, func() error, error) {
|
||||
tmpdir, err := os.MkdirTemp("", "buildkit-qemu-emulator")
|
||||
tmpdir, err := ioutil.TempDir("", "buildkit-qemu-emulator")
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
|
12
vendor/github.com/moby/buildkit/solver/llbsolver/ops/file.go
generated
vendored
12
vendor/github.com/moby/buildkit/solver/llbsolver/ops/file.go
generated
vendored
|
@ -19,6 +19,8 @@ import (
|
|||
"github.com/moby/buildkit/solver/llbsolver/ops/fileoptypes"
|
||||
"github.com/moby/buildkit/solver/pb"
|
||||
"github.com/moby/buildkit/util/flightcontrol"
|
||||
"github.com/moby/buildkit/util/progress"
|
||||
"github.com/moby/buildkit/util/progress/controller"
|
||||
"github.com/moby/buildkit/worker"
|
||||
digest "github.com/opencontainers/go-digest"
|
||||
"github.com/pkg/errors"
|
||||
|
@ -35,6 +37,7 @@ type fileOp struct {
|
|||
solver *FileOpSolver
|
||||
numInputs int
|
||||
parallelism *semaphore.Weighted
|
||||
vtx solver.Vertex
|
||||
}
|
||||
|
||||
func NewFileOp(v solver.Vertex, op *pb.Op_File, cm cache.Manager, parallelism *semaphore.Weighted, w worker.Worker) (solver.Op, error) {
|
||||
|
@ -48,6 +51,7 @@ func NewFileOp(v solver.Vertex, op *pb.Op_File, cm cache.Manager, parallelism *s
|
|||
w: w,
|
||||
solver: NewFileOpSolver(w, &file.Backend{}, file.NewRefManager(cm)),
|
||||
parallelism: parallelism,
|
||||
vtx: v,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
@ -134,6 +138,14 @@ func (f *fileOp) CacheMap(ctx context.Context, g session.Group, index int) (*sol
|
|||
ComputeDigestFunc solver.ResultBasedCacheFunc
|
||||
PreprocessFunc solver.PreprocessFunc
|
||||
}, f.numInputs),
|
||||
Opts: solver.CacheOpts(map[interface{}]interface{}{
|
||||
cache.ProgressKey{}: &controller.Controller{
|
||||
WriterFactory: progress.FromContext(ctx),
|
||||
Digest: f.vtx.Digest(),
|
||||
Name: f.vtx.Name(),
|
||||
ProgressGroup: f.vtx.Options().ProgressGroup,
|
||||
},
|
||||
}),
|
||||
}
|
||||
|
||||
for idx, m := range selectors {
|
||||
|
|
14
vendor/github.com/moby/buildkit/solver/llbsolver/ops/merge.go
generated
vendored
14
vendor/github.com/moby/buildkit/solver/llbsolver/ops/merge.go
generated
vendored
|
@ -4,6 +4,8 @@ import (
|
|||
"context"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/moby/buildkit/util/progress"
|
||||
"github.com/moby/buildkit/util/progress/controller"
|
||||
"github.com/moby/buildkit/worker"
|
||||
"github.com/pkg/errors"
|
||||
|
||||
|
@ -21,6 +23,7 @@ type mergeOp struct {
|
|||
op *pb.MergeOp
|
||||
worker worker.Worker
|
||||
vtx solver.Vertex
|
||||
pg progress.Controller
|
||||
}
|
||||
|
||||
func NewMergeOp(v solver.Vertex, op *pb.Op_Merge, w worker.Worker) (solver.Op, error) {
|
||||
|
@ -53,8 +56,17 @@ func (m *mergeOp) CacheMap(ctx context.Context, group session.Group, index int)
|
|||
ComputeDigestFunc solver.ResultBasedCacheFunc
|
||||
PreprocessFunc solver.PreprocessFunc
|
||||
}, len(m.op.Inputs)),
|
||||
Opts: solver.CacheOpts(make(map[interface{}]interface{})),
|
||||
}
|
||||
|
||||
m.pg = &controller.Controller{
|
||||
WriterFactory: progress.FromContext(ctx),
|
||||
Digest: m.vtx.Digest(),
|
||||
Name: m.vtx.Name(),
|
||||
ProgressGroup: m.vtx.Options().ProgressGroup,
|
||||
}
|
||||
cm.Opts[cache.ProgressKey{}] = m.pg
|
||||
|
||||
return cm, true, nil
|
||||
}
|
||||
|
||||
|
@ -81,7 +93,7 @@ func (m *mergeOp) Exec(ctx context.Context, g session.Group, inputs []solver.Res
|
|||
return nil, nil
|
||||
}
|
||||
|
||||
mergedRef, err := m.worker.CacheManager().Merge(ctx, refs, solver.ProgressControllerFromContext(ctx),
|
||||
mergedRef, err := m.worker.CacheManager().Merge(ctx, refs, m.pg,
|
||||
cache.WithDescription(m.vtx.Name()))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
2
vendor/github.com/moby/buildkit/solver/pb/ops.pb.go
generated
vendored
2
vendor/github.com/moby/buildkit/solver/pb/ops.pb.go
generated
vendored
|
@ -1038,7 +1038,7 @@ func (m *SecretOpt) GetOptional() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
// SSHOpt defines options describing ssh mounts
|
||||
// SSHOpt defines options describing secret mounts
|
||||
type SSHOpt struct {
|
||||
// ID of exposed ssh rule. Used for quering the value.
|
||||
ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
|
||||
|
|
2
vendor/github.com/moby/buildkit/solver/pb/ops.proto
generated
vendored
2
vendor/github.com/moby/buildkit/solver/pb/ops.proto
generated
vendored
|
@ -157,7 +157,7 @@ message SecretOpt {
|
|||
bool optional = 5;
|
||||
}
|
||||
|
||||
// SSHOpt defines options describing ssh mounts
|
||||
// SSHOpt defines options describing secret mounts
|
||||
message SSHOpt {
|
||||
// ID of exposed ssh rule. Used for quering the value.
|
||||
string ID = 1;
|
||||
|
|
5
vendor/github.com/moby/buildkit/source/git/gitsource.go
generated
vendored
5
vendor/github.com/moby/buildkit/source/git/gitsource.go
generated
vendored
|
@ -6,6 +6,7 @@ import (
|
|||
"encoding/base64"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/url"
|
||||
"os"
|
||||
"os/exec"
|
||||
|
@ -272,7 +273,7 @@ func (gs *gitSourceHandler) mountKnownHosts(ctx context.Context) (string, func()
|
|||
if gs.src.KnownSSHHosts == "" {
|
||||
return "", nil, errors.Errorf("no configured known hosts forwarded from the client")
|
||||
}
|
||||
knownHosts, err := os.CreateTemp("", "")
|
||||
knownHosts, err := ioutil.TempFile("", "")
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
|
@ -542,7 +543,7 @@ func (gs *gitSourceHandler) Snapshot(ctx context.Context, g session.Group) (out
|
|||
} else {
|
||||
cd := checkoutDir
|
||||
if subdir != "." {
|
||||
cd, err = os.MkdirTemp(cd, "checkout")
|
||||
cd, err = ioutil.TempDir(cd, "checkout")
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "failed to create temporary checkout dir")
|
||||
}
|
||||
|
|
3
vendor/github.com/moby/buildkit/util/archutil/check_unix.go
generated
vendored
3
vendor/github.com/moby/buildkit/util/archutil/check_unix.go
generated
vendored
|
@ -7,6 +7,7 @@ import (
|
|||
"bytes"
|
||||
"compress/gzip"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
|
@ -22,7 +23,7 @@ func withChroot(cmd *exec.Cmd, dir string) {
|
|||
}
|
||||
|
||||
func check(arch, bin string) (string, error) {
|
||||
tmpdir, err := os.MkdirTemp("", "qemu-check")
|
||||
tmpdir, err := ioutil.TempDir("", "qemu-check")
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
48
vendor/github.com/moby/buildkit/util/buildinfo/buildinfo.go
generated
vendored
48
vendor/github.com/moby/buildkit/util/buildinfo/buildinfo.go
generated
vendored
|
@ -42,7 +42,7 @@ func Encode(ctx context.Context, metadata map[string][]byte, key string, llbSour
|
|||
} else {
|
||||
return nil, err
|
||||
}
|
||||
bi.Sources = dedupSources(bi, allDepsSources(bi, nil))
|
||||
bi.Sources = dedupSources(bi.Sources, allDepsSources(bi.Deps, nil))
|
||||
return json.Marshal(bi)
|
||||
}
|
||||
|
||||
|
@ -205,24 +205,25 @@ func decodeDeps(key string, attrs map[string]*string) (map[string]binfotypes.Bui
|
|||
}
|
||||
|
||||
// dedupSources deduplicates regular sources from dependencies ones.
|
||||
func dedupSources(bi binfotypes.BuildInfo, depsSources []binfotypes.Source) (srcs []binfotypes.Source) {
|
||||
func dedupSources(sources []binfotypes.Source, depsSources []binfotypes.Source) (srcs []binfotypes.Source) {
|
||||
// dedup sources from deps
|
||||
for i, src := range bi.Sources {
|
||||
for _, dsrc := range depsSources {
|
||||
if src == dsrc {
|
||||
bi.Sources = append(bi.Sources[:i], bi.Sources[i+1:]...)
|
||||
} else if src.Type == binfotypes.SourceTypeDockerImage {
|
||||
msrc := make(map[binfotypes.Source]struct{})
|
||||
sourcesloop:
|
||||
for _, src := range sources {
|
||||
for _, srcd := range depsSources {
|
||||
if src == srcd {
|
||||
continue sourcesloop
|
||||
}
|
||||
if src.Type == binfotypes.SourceTypeDockerImage && srcd.Type == binfotypes.SourceTypeDockerImage {
|
||||
_, dgst := ctnref.SplitObject(src.Ref)
|
||||
if dgst != "" && src.Pin == dsrc.Pin {
|
||||
bi.Sources = append(bi.Sources[:i], bi.Sources[i+1:]...)
|
||||
if dgst != "" && src.Pin == srcd.Pin {
|
||||
continue sourcesloop
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// dedup regular sources
|
||||
msrc := make(map[binfotypes.Source]struct{})
|
||||
for _, src := range bi.Sources {
|
||||
msrc[src] = struct{}{}
|
||||
if _, ok := msrc[src]; !ok {
|
||||
msrc[src] = struct{}{}
|
||||
}
|
||||
}
|
||||
for src := range msrc {
|
||||
srcs = append(srcs, src)
|
||||
|
@ -234,21 +235,21 @@ func dedupSources(bi binfotypes.BuildInfo, depsSources []binfotypes.Source) (src
|
|||
}
|
||||
|
||||
// allDepsSources gathers dependencies sources.
|
||||
func allDepsSources(bi binfotypes.BuildInfo, visited map[binfotypes.Source]struct{}) (res []binfotypes.Source) {
|
||||
func allDepsSources(deps map[string]binfotypes.BuildInfo, visited map[binfotypes.Source]struct{}) (res []binfotypes.Source) {
|
||||
if visited == nil {
|
||||
visited = make(map[binfotypes.Source]struct{})
|
||||
}
|
||||
if len(bi.Deps) == 0 {
|
||||
if len(deps) == 0 {
|
||||
return res
|
||||
}
|
||||
for _, dbi := range bi.Deps {
|
||||
for _, dbi := range deps {
|
||||
for _, dsrc := range dbi.Sources {
|
||||
if _, ok := visited[dsrc]; ok {
|
||||
continue
|
||||
}
|
||||
visited[dsrc] = struct{}{}
|
||||
}
|
||||
res = allDepsSources(dbi, visited)
|
||||
res = allDepsSources(dbi.Deps, visited)
|
||||
}
|
||||
for src := range visited {
|
||||
res = append(res, src)
|
||||
|
@ -262,17 +263,24 @@ type FormatOpts struct {
|
|||
}
|
||||
|
||||
// Format formats build info.
|
||||
func Format(dt []byte, format FormatOpts) (_ []byte, err error) {
|
||||
func Format(dt []byte, opts FormatOpts) (_ []byte, err error) {
|
||||
if len(dt) == 0 {
|
||||
return dt, nil
|
||||
}
|
||||
|
||||
var bi binfotypes.BuildInfo
|
||||
if err := json.Unmarshal(dt, &bi); err != nil {
|
||||
return nil, errors.Wrap(err, "failed to unmarshal buildinfo for formatting")
|
||||
}
|
||||
if format.RemoveAttrs {
|
||||
|
||||
if opts.RemoveAttrs {
|
||||
bi.Attrs = nil
|
||||
if len(bi.Deps) > 0 {
|
||||
bi.Sources = dedupSources(append(bi.Sources, allDepsSources(bi.Deps, nil)...), nil)
|
||||
bi.Deps = nil
|
||||
}
|
||||
}
|
||||
|
||||
if dt, err = json.Marshal(bi); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
4
vendor/github.com/moby/buildkit/util/contentutil/buffer.go
generated
vendored
4
vendor/github.com/moby/buildkit/util/contentutil/buffer.go
generated
vendored
|
@ -3,7 +3,7 @@ package contentutil
|
|||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
|
@ -64,7 +64,7 @@ func (b *buffer) ReaderAt(ctx context.Context, desc ocispecs.Descriptor) (conten
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &readerAt{Reader: r, Closer: io.NopCloser(r), size: int64(r.Len())}, nil
|
||||
return &readerAt{Reader: r, Closer: ioutil.NopCloser(r), size: int64(r.Len())}, nil
|
||||
}
|
||||
|
||||
func (b *buffer) getBytesReader(ctx context.Context, dgst digest.Digest) (*bytes.Reader, error) {
|
||||
|
|
4
vendor/github.com/moby/buildkit/util/imageutil/schema1.go
generated
vendored
4
vendor/github.com/moby/buildkit/util/imageutil/schema1.go
generated
vendored
|
@ -3,7 +3,7 @@ package imageutil
|
|||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
|
@ -19,7 +19,7 @@ func readSchema1Config(ctx context.Context, ref string, desc ocispecs.Descriptor
|
|||
return "", nil, err
|
||||
}
|
||||
defer rc.Close()
|
||||
dt, err := io.ReadAll(rc)
|
||||
dt, err := ioutil.ReadAll(rc)
|
||||
if err != nil {
|
||||
return "", nil, errors.Wrap(err, "failed to fetch schema1 manifest")
|
||||
}
|
||||
|
|
3
vendor/github.com/moby/buildkit/util/overlay/overlay_linux.go
generated
vendored
3
vendor/github.com/moby/buildkit/util/overlay/overlay_linux.go
generated
vendored
|
@ -8,6 +8,7 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
@ -113,7 +114,7 @@ func GetOverlayLayers(m mount.Mount) ([]string, error) {
|
|||
// WriteUpperdir writes a layer tar archive into the specified writer, based on
|
||||
// the diff information stored in the upperdir.
|
||||
func WriteUpperdir(ctx context.Context, w io.Writer, upperdir string, lower []mount.Mount) error {
|
||||
emptyLower, err := os.MkdirTemp("", "buildkit") // empty directory used for the lower of diff view
|
||||
emptyLower, err := ioutil.TempDir("", "buildkit") // empty directory used for the lower of diff view
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "failed to create temp dir")
|
||||
}
|
||||
|
|
5
vendor/github.com/moby/buildkit/util/resolver/resolver.go
generated
vendored
5
vendor/github.com/moby/buildkit/util/resolver/resolver.go
generated
vendored
|
@ -3,6 +3,7 @@ package resolver
|
|||
import (
|
||||
"crypto/tls"
|
||||
"crypto/x509"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
|
@ -66,7 +67,7 @@ func fillInsecureOpts(host string, c config.RegistryConfig, h docker.RegistryHos
|
|||
|
||||
func loadTLSConfig(c config.RegistryConfig) (*tls.Config, error) {
|
||||
for _, d := range c.TLSConfigDir {
|
||||
fs, err := os.ReadDir(d)
|
||||
fs, err := ioutil.ReadDir(d)
|
||||
if err != nil && !errors.Is(err, os.ErrNotExist) && !errors.Is(err, os.ErrPermission) {
|
||||
return nil, errors.WithStack(err)
|
||||
}
|
||||
|
@ -97,7 +98,7 @@ func loadTLSConfig(c config.RegistryConfig) (*tls.Config, error) {
|
|||
}
|
||||
|
||||
for _, p := range c.RootCAs {
|
||||
dt, err := os.ReadFile(p)
|
||||
dt, err := ioutil.ReadFile(p)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "failed to read %s", p)
|
||||
}
|
||||
|
|
5
vendor/github.com/moby/buildkit/util/winlayers/applier.go
generated
vendored
5
vendor/github.com/moby/buildkit/util/winlayers/applier.go
generated
vendored
|
@ -4,6 +4,7 @@ import (
|
|||
"archive/tar"
|
||||
"context"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"runtime"
|
||||
"strings"
|
||||
"sync"
|
||||
|
@ -86,7 +87,7 @@ func (s *winApplier) Apply(ctx context.Context, desc ocispecs.Descriptor, mounts
|
|||
}
|
||||
|
||||
// Read any trailing data
|
||||
if _, err := io.Copy(io.Discard, rc); err != nil {
|
||||
if _, err := io.Copy(ioutil.Discard, rc); err != nil {
|
||||
discard(err)
|
||||
return err
|
||||
}
|
||||
|
@ -143,7 +144,7 @@ func filter(in io.Reader, f func(*tar.Header) bool) (io.Reader, func(error)) {
|
|||
}
|
||||
} else {
|
||||
if h.Size > 0 {
|
||||
if _, err := io.Copy(io.Discard, tarReader); err != nil {
|
||||
if _, err := io.Copy(ioutil.Discard, tarReader); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
12
vendor/github.com/moby/buildkit/version/version.go
generated
vendored
12
vendor/github.com/moby/buildkit/version/version.go
generated
vendored
|
@ -45,18 +45,18 @@ var (
|
|||
)
|
||||
|
||||
func UserAgent() string {
|
||||
version := defaultVersion
|
||||
uaVersion := defaultVersion
|
||||
|
||||
reOnce.Do(func() {
|
||||
reRelease = regexp.MustCompile(`^(v[0-9]+\.[0-9]+)\.[0-9]+$`)
|
||||
reDev = regexp.MustCompile(`^(v[0-9]+\.[0-9]+)\.[0-9]+`)
|
||||
})
|
||||
|
||||
if matches := reRelease.FindAllStringSubmatch(version, 1); len(matches) > 0 {
|
||||
version = matches[0][1]
|
||||
} else if matches := reDev.FindAllStringSubmatch(version, 1); len(matches) > 0 {
|
||||
version = matches[0][1] + "-dev"
|
||||
if matches := reRelease.FindAllStringSubmatch(Version, 1); len(matches) > 0 {
|
||||
uaVersion = matches[0][1]
|
||||
} else if matches := reDev.FindAllStringSubmatch(Version, 1); len(matches) > 0 {
|
||||
uaVersion = matches[0][1] + "-dev"
|
||||
}
|
||||
|
||||
return "buildkit/" + version
|
||||
return "buildkit/" + uaVersion
|
||||
}
|
||||
|
|
1
vendor/golang.org/x/sys/unix/mkerrors.sh
generated
vendored
1
vendor/golang.org/x/sys/unix/mkerrors.sh
generated
vendored
|
@ -603,6 +603,7 @@ ccflags="$@"
|
|||
$2 ~ /^ITIMER_/ ||
|
||||
$2 !~ "WMESGLEN" &&
|
||||
$2 ~ /^W[A-Z0-9]+$/ ||
|
||||
$2 ~ /^P_/ ||
|
||||
$2 ~/^PPPIOC/ ||
|
||||
$2 ~ /^FAN_|FANOTIFY_/ ||
|
||||
$2 == "HID_MAX_DESCRIPTOR_SIZE" ||
|
||||
|
|
11
vendor/golang.org/x/sys/unix/syscall_bsd.go
generated
vendored
11
vendor/golang.org/x/sys/unix/syscall_bsd.go
generated
vendored
|
@ -553,12 +553,7 @@ func UtimesNano(path string, ts []Timespec) error {
|
|||
if len(ts) != 2 {
|
||||
return EINVAL
|
||||
}
|
||||
// Darwin setattrlist can set nanosecond timestamps
|
||||
err := setattrlistTimes(path, ts, 0)
|
||||
if err != ENOSYS {
|
||||
return err
|
||||
}
|
||||
err = utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
|
||||
err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
|
||||
if err != ENOSYS {
|
||||
return err
|
||||
}
|
||||
|
@ -578,10 +573,6 @@ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
|
|||
if len(ts) != 2 {
|
||||
return EINVAL
|
||||
}
|
||||
err := setattrlistTimes(path, ts, flags)
|
||||
if err != ENOSYS {
|
||||
return err
|
||||
}
|
||||
return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)
|
||||
}
|
||||
|
||||
|
|
41
vendor/golang.org/x/sys/unix/syscall_darwin.go
generated
vendored
41
vendor/golang.org/x/sys/unix/syscall_darwin.go
generated
vendored
|
@ -141,16 +141,6 @@ func direntNamlen(buf []byte) (uint64, bool) {
|
|||
func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) }
|
||||
func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) }
|
||||
|
||||
type attrList struct {
|
||||
bitmapCount uint16
|
||||
_ uint16
|
||||
CommonAttr uint32
|
||||
VolAttr uint32
|
||||
DirAttr uint32
|
||||
FileAttr uint32
|
||||
Forkattr uint32
|
||||
}
|
||||
|
||||
//sysnb pipe(p *[2]int32) (err error)
|
||||
|
||||
func Pipe(p []int) (err error) {
|
||||
|
@ -282,36 +272,7 @@ func Flistxattr(fd int, dest []byte) (sz int, err error) {
|
|||
return flistxattr(fd, xattrPointer(dest), len(dest), 0)
|
||||
}
|
||||
|
||||
func setattrlistTimes(path string, times []Timespec, flags int) error {
|
||||
_p0, err := BytePtrFromString(path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var attrList attrList
|
||||
attrList.bitmapCount = ATTR_BIT_MAP_COUNT
|
||||
attrList.CommonAttr = ATTR_CMN_MODTIME | ATTR_CMN_ACCTIME
|
||||
|
||||
// order is mtime, atime: the opposite of Chtimes
|
||||
attributes := [2]Timespec{times[1], times[0]}
|
||||
options := 0
|
||||
if flags&AT_SYMLINK_NOFOLLOW != 0 {
|
||||
options |= FSOPT_NOFOLLOW
|
||||
}
|
||||
return setattrlist(
|
||||
_p0,
|
||||
unsafe.Pointer(&attrList),
|
||||
unsafe.Pointer(&attributes),
|
||||
unsafe.Sizeof(attributes),
|
||||
options)
|
||||
}
|
||||
|
||||
//sys setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error)
|
||||
|
||||
func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error {
|
||||
// Darwin doesn't support SYS_UTIMENSAT
|
||||
return ENOSYS
|
||||
}
|
||||
//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
|
||||
|
||||
/*
|
||||
* Wrapped
|
||||
|
|
5
vendor/golang.org/x/sys/unix/syscall_dragonfly.go
generated
vendored
5
vendor/golang.org/x/sys/unix/syscall_dragonfly.go
generated
vendored
|
@ -169,11 +169,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func setattrlistTimes(path string, times []Timespec, flags int) error {
|
||||
// used on Darwin for UtimesNano
|
||||
return ENOSYS
|
||||
}
|
||||
|
||||
//sys ioctl(fd int, req uint, arg uintptr) (err error)
|
||||
|
||||
//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
|
||||
|
|
5
vendor/golang.org/x/sys/unix/syscall_freebsd.go
generated
vendored
5
vendor/golang.org/x/sys/unix/syscall_freebsd.go
generated
vendored
|
@ -194,11 +194,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func setattrlistTimes(path string, times []Timespec, flags int) error {
|
||||
// used on Darwin for UtimesNano
|
||||
return ENOSYS
|
||||
}
|
||||
|
||||
//sys ioctl(fd int, req uint, arg uintptr) (err error)
|
||||
|
||||
//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
|
||||
|
|
4
vendor/golang.org/x/sys/unix/syscall_linux.go
generated
vendored
4
vendor/golang.org/x/sys/unix/syscall_linux.go
generated
vendored
|
@ -366,6 +366,8 @@ func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int,
|
|||
return
|
||||
}
|
||||
|
||||
//sys Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error)
|
||||
|
||||
func Mkfifo(path string, mode uint32) error {
|
||||
return Mknod(path, mode|S_IFIFO, 0)
|
||||
}
|
||||
|
@ -1858,6 +1860,7 @@ func Getpgrp() (pid int) {
|
|||
//sys Mkdirat(dirfd int, path string, mode uint32) (err error)
|
||||
//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
|
||||
//sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
|
||||
//sys OpenTree(dfd int, fileName string, flags uint) (r int, err error)
|
||||
//sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error)
|
||||
//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT
|
||||
//sysnb Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64
|
||||
|
@ -2446,5 +2449,4 @@ func Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) {
|
|||
// Vfork
|
||||
// Vhangup
|
||||
// Vserver
|
||||
// Waitid
|
||||
// _Sysctl
|
||||
|
|
1
vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
generated
vendored
|
@ -28,6 +28,7 @@ func Lstat(path string, stat *Stat_t) (err error) {
|
|||
return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)
|
||||
}
|
||||
|
||||
//sys MemfdSecret(flags int) (fd int, err error)
|
||||
//sys Pause() (err error)
|
||||
//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
|
||||
//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
|
||||
|
|
1
vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
generated
vendored
|
@ -22,6 +22,7 @@ import "unsafe"
|
|||
//sysnb getrlimit(resource int, rlim *Rlimit) (err error)
|
||||
//sysnb Getuid() (uid int)
|
||||
//sys Listen(s int, n int) (err error)
|
||||
//sys MemfdSecret(flags int) (fd int, err error)
|
||||
//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
|
||||
//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
|
||||
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
|
||||
|
|
5
vendor/golang.org/x/sys/unix/syscall_netbsd.go
generated
vendored
5
vendor/golang.org/x/sys/unix/syscall_netbsd.go
generated
vendored
|
@ -163,11 +163,6 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
|
|||
return -1, ENOSYS
|
||||
}
|
||||
|
||||
func setattrlistTimes(path string, times []Timespec, flags int) error {
|
||||
// used on Darwin for UtimesNano
|
||||
return ENOSYS
|
||||
}
|
||||
|
||||
//sys ioctl(fd int, req uint, arg uintptr) (err error)
|
||||
|
||||
//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
|
||||
|
|
5
vendor/golang.org/x/sys/unix/syscall_openbsd.go
generated
vendored
5
vendor/golang.org/x/sys/unix/syscall_openbsd.go
generated
vendored
|
@ -149,11 +149,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func setattrlistTimes(path string, times []Timespec, flags int) error {
|
||||
// used on Darwin for UtimesNano
|
||||
return ENOSYS
|
||||
}
|
||||
|
||||
//sys ioctl(fd int, req uint, arg uintptr) (err error)
|
||||
|
||||
//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
|
||||
|
|
124
vendor/golang.org/x/sys/unix/syscall_solaris.go
generated
vendored
124
vendor/golang.org/x/sys/unix/syscall_solaris.go
generated
vendored
|
@ -737,8 +737,20 @@ type fileObjCookie struct {
|
|||
type EventPort struct {
|
||||
port int
|
||||
mu sync.Mutex
|
||||
fds map[uintptr]interface{}
|
||||
fds map[uintptr]*fileObjCookie
|
||||
paths map[string]*fileObjCookie
|
||||
// The user cookie presents an interesting challenge from a memory management perspective.
|
||||
// There are two paths by which we can discover that it is no longer in use:
|
||||
// 1. The user calls port_dissociate before any events fire
|
||||
// 2. An event fires and we return it to the user
|
||||
// The tricky situation is if the event has fired in the kernel but
|
||||
// the user hasn't requested/received it yet.
|
||||
// If the user wants to port_dissociate before the event has been processed,
|
||||
// we should handle things gracefully. To do so, we need to keep an extra
|
||||
// reference to the cookie around until the event is processed
|
||||
// thus the otherwise seemingly extraneous "cookies" map
|
||||
// The key of this map is a pointer to the corresponding &fCookie.cookie
|
||||
cookies map[*interface{}]*fileObjCookie
|
||||
}
|
||||
|
||||
// PortEvent is an abstraction of the port_event C struct.
|
||||
|
@ -762,9 +774,10 @@ func NewEventPort() (*EventPort, error) {
|
|||
return nil, err
|
||||
}
|
||||
e := &EventPort{
|
||||
port: port,
|
||||
fds: make(map[uintptr]interface{}),
|
||||
paths: make(map[string]*fileObjCookie),
|
||||
port: port,
|
||||
fds: make(map[uintptr]*fileObjCookie),
|
||||
paths: make(map[string]*fileObjCookie),
|
||||
cookies: make(map[*interface{}]*fileObjCookie),
|
||||
}
|
||||
return e, nil
|
||||
}
|
||||
|
@ -779,9 +792,13 @@ func NewEventPort() (*EventPort, error) {
|
|||
func (e *EventPort) Close() error {
|
||||
e.mu.Lock()
|
||||
defer e.mu.Unlock()
|
||||
err := Close(e.port)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
e.fds = nil
|
||||
e.paths = nil
|
||||
return Close(e.port)
|
||||
return nil
|
||||
}
|
||||
|
||||
// PathIsWatched checks to see if path is associated with this EventPort.
|
||||
|
@ -818,6 +835,7 @@ func (e *EventPort) AssociatePath(path string, stat os.FileInfo, events int, coo
|
|||
return err
|
||||
}
|
||||
e.paths[path] = fCookie
|
||||
e.cookies[&fCookie.cookie] = fCookie
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -830,11 +848,19 @@ func (e *EventPort) DissociatePath(path string) error {
|
|||
return fmt.Errorf("%v is not associated with this Event Port", path)
|
||||
}
|
||||
_, err := port_dissociate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(f.fobj)))
|
||||
if err != nil {
|
||||
// If the path is no longer associated with this event port (ENOENT)
|
||||
// we should delete it from our map. We can still return ENOENT to the caller.
|
||||
// But we need to save the cookie
|
||||
if err != nil && err != ENOENT {
|
||||
return err
|
||||
}
|
||||
if err == nil {
|
||||
// dissociate was successful, safe to delete the cookie
|
||||
fCookie := e.paths[path]
|
||||
delete(e.cookies, &fCookie.cookie)
|
||||
}
|
||||
delete(e.paths, path)
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
// AssociateFd wraps calls to port_associate(3c) on file descriptors.
|
||||
|
@ -844,12 +870,13 @@ func (e *EventPort) AssociateFd(fd uintptr, events int, cookie interface{}) erro
|
|||
if _, found := e.fds[fd]; found {
|
||||
return fmt.Errorf("%v is already associated with this Event Port", fd)
|
||||
}
|
||||
pcookie := &cookie
|
||||
_, err := port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(pcookie)))
|
||||
fCookie := &fileObjCookie{nil, cookie}
|
||||
_, err := port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(&fCookie.cookie)))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
e.fds[fd] = pcookie
|
||||
e.fds[fd] = fCookie
|
||||
e.cookies[&fCookie.cookie] = fCookie
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -862,11 +889,16 @@ func (e *EventPort) DissociateFd(fd uintptr) error {
|
|||
return fmt.Errorf("%v is not associated with this Event Port", fd)
|
||||
}
|
||||
_, err := port_dissociate(e.port, PORT_SOURCE_FD, fd)
|
||||
if err != nil {
|
||||
if err != nil && err != ENOENT {
|
||||
return err
|
||||
}
|
||||
if err == nil {
|
||||
// dissociate was successful, safe to delete the cookie
|
||||
fCookie := e.fds[fd]
|
||||
delete(e.cookies, &fCookie.cookie)
|
||||
}
|
||||
delete(e.fds, fd)
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
func createFileObj(name string, stat os.FileInfo) (*fileObj, error) {
|
||||
|
@ -894,26 +926,48 @@ func (e *EventPort) GetOne(t *Timespec) (*PortEvent, error) {
|
|||
return nil, err
|
||||
}
|
||||
p := new(PortEvent)
|
||||
p.Events = pe.Events
|
||||
p.Source = pe.Source
|
||||
e.mu.Lock()
|
||||
defer e.mu.Unlock()
|
||||
switch pe.Source {
|
||||
case PORT_SOURCE_FD:
|
||||
p.Fd = uintptr(pe.Object)
|
||||
cookie := (*interface{})(unsafe.Pointer(pe.User))
|
||||
p.Cookie = *cookie
|
||||
delete(e.fds, p.Fd)
|
||||
case PORT_SOURCE_FILE:
|
||||
p.fobj = (*fileObj)(unsafe.Pointer(uintptr(pe.Object)))
|
||||
p.Path = BytePtrToString((*byte)(unsafe.Pointer(p.fobj.Name)))
|
||||
cookie := (*interface{})(unsafe.Pointer(pe.User))
|
||||
p.Cookie = *cookie
|
||||
delete(e.paths, p.Path)
|
||||
}
|
||||
e.peIntToExt(pe, p)
|
||||
return p, nil
|
||||
}
|
||||
|
||||
// peIntToExt converts a cgo portEvent struct into the friendlier PortEvent
|
||||
// NOTE: Always call this function while holding the e.mu mutex
|
||||
func (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) {
|
||||
peExt.Events = peInt.Events
|
||||
peExt.Source = peInt.Source
|
||||
cookie := (*interface{})(unsafe.Pointer(peInt.User))
|
||||
peExt.Cookie = *cookie
|
||||
switch peInt.Source {
|
||||
case PORT_SOURCE_FD:
|
||||
delete(e.cookies, cookie)
|
||||
peExt.Fd = uintptr(peInt.Object)
|
||||
// Only remove the fds entry if it exists and this cookie matches
|
||||
if fobj, ok := e.fds[peExt.Fd]; ok {
|
||||
if &fobj.cookie == cookie {
|
||||
delete(e.fds, peExt.Fd)
|
||||
}
|
||||
}
|
||||
case PORT_SOURCE_FILE:
|
||||
if fCookie, ok := e.cookies[cookie]; ok && uintptr(unsafe.Pointer(fCookie.fobj)) == uintptr(peInt.Object) {
|
||||
// Use our stashed reference rather than using unsafe on what we got back
|
||||
// the unsafe version would be (*fileObj)(unsafe.Pointer(uintptr(peInt.Object)))
|
||||
peExt.fobj = fCookie.fobj
|
||||
} else {
|
||||
panic("mismanaged memory")
|
||||
}
|
||||
delete(e.cookies, cookie)
|
||||
peExt.Path = BytePtrToString((*byte)(unsafe.Pointer(peExt.fobj.Name)))
|
||||
// Only remove the paths entry if it exists and this cookie matches
|
||||
if fobj, ok := e.paths[peExt.Path]; ok {
|
||||
if &fobj.cookie == cookie {
|
||||
delete(e.paths, peExt.Path)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Pending wraps port_getn(3c) and returns how many events are pending.
|
||||
func (e *EventPort) Pending() (int, error) {
|
||||
var n uint32 = 0
|
||||
|
@ -944,21 +998,7 @@ func (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error)
|
|||
e.mu.Lock()
|
||||
defer e.mu.Unlock()
|
||||
for i := 0; i < int(got); i++ {
|
||||
s[i].Events = ps[i].Events
|
||||
s[i].Source = ps[i].Source
|
||||
switch ps[i].Source {
|
||||
case PORT_SOURCE_FD:
|
||||
s[i].Fd = uintptr(ps[i].Object)
|
||||
cookie := (*interface{})(unsafe.Pointer(ps[i].User))
|
||||
s[i].Cookie = *cookie
|
||||
delete(e.fds, s[i].Fd)
|
||||
case PORT_SOURCE_FILE:
|
||||
s[i].fobj = (*fileObj)(unsafe.Pointer(uintptr(ps[i].Object)))
|
||||
s[i].Path = BytePtrToString((*byte)(unsafe.Pointer(s[i].fobj.Name)))
|
||||
cookie := (*interface{})(unsafe.Pointer(ps[i].User))
|
||||
s[i].Cookie = *cookie
|
||||
delete(e.paths, s[i].Path)
|
||||
}
|
||||
e.peIntToExt(&ps[i], &s[i])
|
||||
}
|
||||
return int(got), err
|
||||
}
|
||||
|
|
4
vendor/golang.org/x/sys/unix/zerrors_linux.go
generated
vendored
4
vendor/golang.org/x/sys/unix/zerrors_linux.go
generated
vendored
|
@ -2135,6 +2135,10 @@ const (
|
|||
PTRACE_SYSCALL_INFO_NONE = 0x0
|
||||
PTRACE_SYSCALL_INFO_SECCOMP = 0x3
|
||||
PTRACE_TRACEME = 0x0
|
||||
P_ALL = 0x0
|
||||
P_PGID = 0x2
|
||||
P_PID = 0x1
|
||||
P_PIDFD = 0x3
|
||||
QNX4_SUPER_MAGIC = 0x2f
|
||||
QNX6_SUPER_MAGIC = 0x68191122
|
||||
RAMFS_MAGIC = 0x858458f6
|
||||
|
|
13
vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
generated
vendored
13
vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
generated
vendored
|
@ -643,17 +643,22 @@ var libc_flistxattr_trampoline_addr uintptr
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
|
||||
_, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
|
||||
func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
|
||||
var _p0 *byte
|
||||
_p0, err = BytePtrFromString(path)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
var libc_setattrlist_trampoline_addr uintptr
|
||||
var libc_utimensat_trampoline_addr uintptr
|
||||
|
||||
//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
|
||||
//go:cgo_import_dynamic libc_utimensat utimensat "/usr/lib/libSystem.B.dylib"
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
|
|
8
vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
generated
vendored
8
vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
generated
vendored
|
@ -228,11 +228,11 @@ TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0
|
|||
GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8
|
||||
DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB)
|
||||
|
||||
TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0
|
||||
JMP libc_setattrlist(SB)
|
||||
TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0
|
||||
JMP libc_utimensat(SB)
|
||||
|
||||
GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8
|
||||
DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB)
|
||||
GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8
|
||||
DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)
|
||||
|
||||
TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0
|
||||
JMP libc_fcntl(SB)
|
||||
|
|
13
vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
generated
vendored
13
vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
generated
vendored
|
@ -643,17 +643,22 @@ var libc_flistxattr_trampoline_addr uintptr
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
|
||||
_, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
|
||||
func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
|
||||
var _p0 *byte
|
||||
_p0, err = BytePtrFromString(path)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
var libc_setattrlist_trampoline_addr uintptr
|
||||
var libc_utimensat_trampoline_addr uintptr
|
||||
|
||||
//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
|
||||
//go:cgo_import_dynamic libc_utimensat utimensat "/usr/lib/libSystem.B.dylib"
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
|
|
8
vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s
generated
vendored
8
vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s
generated
vendored
|
@ -228,11 +228,11 @@ TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0
|
|||
GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8
|
||||
DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB)
|
||||
|
||||
TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0
|
||||
JMP libc_setattrlist(SB)
|
||||
TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0
|
||||
JMP libc_utimensat(SB)
|
||||
|
||||
GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8
|
||||
DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB)
|
||||
GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8
|
||||
DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)
|
||||
|
||||
TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0
|
||||
JMP libc_fcntl(SB)
|
||||
|
|
26
vendor/golang.org/x/sys/unix/zsyscall_linux.go
generated
vendored
26
vendor/golang.org/x/sys/unix/zsyscall_linux.go
generated
vendored
|
@ -231,6 +231,16 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) {
|
||||
_, _, e1 := Syscall6(SYS_WAITID, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
|
||||
r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
|
||||
ret = int(r0)
|
||||
|
@ -1205,6 +1215,22 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func OpenTree(dfd int, fileName string, flags uint) (r int, err error) {
|
||||
var _p0 *byte
|
||||
_p0, err = BytePtrFromString(fileName)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
r0, _, e1 := Syscall(SYS_OPEN_TREE, uintptr(dfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
|
||||
r = int(r0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||
fd = int(r0)
|
||||
|
|
11
vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
generated
vendored
11
vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
generated
vendored
|
@ -215,6 +215,17 @@ func Listen(s int, n int) (err error) {
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func MemfdSecret(flags int) (fd int, err error) {
|
||||
r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0)
|
||||
fd = int(r0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Pause() (err error) {
|
||||
_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
|
||||
if e1 != 0 {
|
||||
|
|
11
vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
generated
vendored
11
vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
generated
vendored
|
@ -180,6 +180,17 @@ func Listen(s int, n int) (err error) {
|
|||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func MemfdSecret(flags int) (fd int, err error) {
|
||||
r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0)
|
||||
fd = int(r0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func pread(fd int, p []byte, offset int64) (n int, err error) {
|
||||
var _p0 unsafe.Pointer
|
||||
if len(p) > 0 {
|
||||
|
|
2
vendor/golang.org/x/sys/unix/ztypes_linux.go
generated
vendored
2
vendor/golang.org/x/sys/unix/ztypes_linux.go
generated
vendored
|
@ -754,6 +754,8 @@ const (
|
|||
AT_SYMLINK_NOFOLLOW = 0x100
|
||||
|
||||
AT_EACCESS = 0x200
|
||||
|
||||
OPEN_TREE_CLONE = 0x1
|
||||
)
|
||||
|
||||
type OpenHow struct {
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_386.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_386.go
generated
vendored
|
@ -240,6 +240,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
generated
vendored
|
@ -255,6 +255,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
generated
vendored
|
@ -231,6 +231,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
generated
vendored
|
@ -234,6 +234,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
generated
vendored
|
@ -236,6 +236,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
generated
vendored
|
@ -237,6 +237,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
generated
vendored
|
@ -237,6 +237,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
generated
vendored
|
@ -236,6 +236,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go
generated
vendored
|
@ -243,6 +243,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
generated
vendored
|
@ -244,6 +244,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
generated
vendored
|
@ -244,6 +244,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
generated
vendored
|
@ -262,6 +262,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
generated
vendored
|
@ -257,6 +257,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x2000
|
||||
)
|
||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
generated
vendored
|
@ -239,6 +239,10 @@ type EpollEvent struct {
|
|||
Pad int32
|
||||
}
|
||||
|
||||
const (
|
||||
OPEN_TREE_CLOEXEC = 0x400000
|
||||
)
|
||||
|
||||
const (
|
||||
POLLRDHUP = 0x800
|
||||
)
|
||||
|
|
12
vendor/modules.txt
vendored
12
vendor/modules.txt
vendored
|
@ -18,8 +18,8 @@ github.com/Azure/go-ansiterm/winterm
|
|||
# github.com/Graylog2/go-gelf v0.0.0-20191017102106-1550ee647df0
|
||||
## explicit
|
||||
github.com/Graylog2/go-gelf/gelf
|
||||
# github.com/Microsoft/go-winio v0.5.1
|
||||
## explicit; go 1.12
|
||||
# github.com/Microsoft/go-winio v0.5.2
|
||||
## explicit; go 1.13
|
||||
github.com/Microsoft/go-winio
|
||||
github.com/Microsoft/go-winio/backuptar
|
||||
github.com/Microsoft/go-winio/pkg/etw
|
||||
|
@ -223,8 +223,8 @@ github.com/containerd/containerd/snapshots
|
|||
github.com/containerd/containerd/snapshots/proxy
|
||||
github.com/containerd/containerd/sys
|
||||
github.com/containerd/containerd/version
|
||||
# github.com/containerd/continuity v0.2.2
|
||||
## explicit; go 1.13
|
||||
# github.com/containerd/continuity v0.3.0
|
||||
## explicit; go 1.17
|
||||
github.com/containerd/continuity/devices
|
||||
github.com/containerd/continuity/driver
|
||||
github.com/containerd/continuity/fs
|
||||
|
@ -467,7 +467,7 @@ github.com/mistifyio/go-zfs
|
|||
# github.com/mitchellh/hashstructure/v2 v2.0.2
|
||||
## explicit; go 1.14
|
||||
github.com/mitchellh/hashstructure/v2
|
||||
# github.com/moby/buildkit v0.10.1-0.20220327110152-d7744bcb3532
|
||||
# github.com/moby/buildkit v0.10.2
|
||||
## explicit; go 1.17
|
||||
github.com/moby/buildkit/api/services/control
|
||||
github.com/moby/buildkit/api/types
|
||||
|
@ -937,7 +937,7 @@ golang.org/x/sync/errgroup
|
|||
golang.org/x/sync/semaphore
|
||||
golang.org/x/sync/singleflight
|
||||
golang.org/x/sync/syncmap
|
||||
# golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8
|
||||
# golang.org/x/sys v0.0.0-20220405210540-1e041c57c461
|
||||
## explicit; go 1.17
|
||||
golang.org/x/sys/cpu
|
||||
golang.org/x/sys/execabs
|
||||
|
|
Loading…
Add table
Reference in a new issue