Use filesystem-supplied modes for checksumming content
The existing code was spuriously failing unit tests, because it was stripping non-permission bits off the file mode. On examination, the behaviour was inherited from similar code in moby/moby, which was intended to affect the resulting filemodes inside a Linux-based container built from Windows. However, this code path does have that effect in BuildKit as we are only calculating checksums here. Signed-off-by: Paul "TBBle" Hampson <Paul.Hampson@Pobox.com>v0.8
parent
46995ec794
commit
6c824d68f1
|
@ -39,5 +39,5 @@ jobs:
|
|||
- name: Unit test
|
||||
env:
|
||||
SKIP_INTEGRATION_TESTS: 1
|
||||
run: go test -mod=vendor -v ./client/... ./frontend/dockerfile/... ./session/... ./source/... ./util/...
|
||||
run: go test -mod=vendor -v ./cache/... ./client/... ./frontend/dockerfile/... ./session/... ./source/... ./util/...
|
||||
working-directory: src/github.com/moby/buildkit
|
||||
|
|
|
@ -49,7 +49,6 @@ func NewFromStat(stat *fstypes.Stat) (hash.Hash, error) {
|
|||
return nil, err
|
||||
}
|
||||
hdr.Name = "" // note: empty name is different from current has in docker build. Name is added on recursive directory scan instead
|
||||
hdr.Mode = int64(chmodWindowsTarEntry(os.FileMode(hdr.Mode)))
|
||||
hdr.Devmajor = stat.Devmajor
|
||||
hdr.Devminor = stat.Devminor
|
||||
|
||||
|
|
|
@ -12,10 +12,6 @@ import (
|
|||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func chmodWindowsTarEntry(perm os.FileMode) os.FileMode {
|
||||
return perm
|
||||
}
|
||||
|
||||
func setUnixOpt(path string, fi os.FileInfo, stat *fstypes.Stat) error {
|
||||
s := fi.Sys().(*syscall.Stat_t)
|
||||
|
||||
|
|
|
@ -8,16 +8,6 @@ import (
|
|||
fstypes "github.com/tonistiigi/fsutil/types"
|
||||
)
|
||||
|
||||
// chmodWindowsTarEntry is used to adjust the file permissions used in tar
|
||||
// header based on the platform the archival is done.
|
||||
func chmodWindowsTarEntry(perm os.FileMode) os.FileMode {
|
||||
perm &= 0755
|
||||
// Add the x bit: make everything +x from windows
|
||||
perm |= 0111
|
||||
|
||||
return perm
|
||||
}
|
||||
|
||||
func setUnixOpt(path string, fi os.FileInfo, stat *fstypes.Stat) error {
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue