From 7cf9f48ffdaa8a8fc86864652b93857471c25da4 Mon Sep 17 00:00:00 2001 From: Paul Holzinger Date: Thu, 4 Sep 2025 15:12:39 +0200 Subject: [PATCH] common: fix pkg/timezone to only work on linux/freebsd The other platforms do not use that package as we don't support running containers on them. As such only define the code for linux/freebsd and cause compile errors for other platforms if someone tries to import it there. Signed-off-by: Paul Holzinger --- common/pkg/timezone/timezone.go | 6 +++++- common/pkg/timezone/timezone_freebsd.go | 7 +++++++ common/pkg/timezone/timezone_linux.go | 5 ++--- common/pkg/timezone/timezone_unix.go | 13 ------------- common/pkg/timezone/timezone_windows.go | 5 ----- go.work.sum | 4 ++++ 6 files changed, 18 insertions(+), 22 deletions(-) create mode 100644 common/pkg/timezone/timezone_freebsd.go delete mode 100644 common/pkg/timezone/timezone_unix.go delete mode 100644 common/pkg/timezone/timezone_windows.go diff --git a/common/pkg/timezone/timezone.go b/common/pkg/timezone/timezone.go index 2dd55d8358..40333841e2 100644 --- a/common/pkg/timezone/timezone.go +++ b/common/pkg/timezone/timezone.go @@ -1,4 +1,4 @@ -//go:build !windows +//go:build linux || freebsd package timezone @@ -104,3 +104,7 @@ func copyTimezoneFile(containerRunDir, zonePath string) (string, error) { } return localtimeCopy, err } + +func openDirectory(path string) (fd int, err error) { + return unix.Open(path, unix.O_RDONLY|O_PATH|unix.O_CLOEXEC, 0) +} diff --git a/common/pkg/timezone/timezone_freebsd.go b/common/pkg/timezone/timezone_freebsd.go new file mode 100644 index 0000000000..008b474f72 --- /dev/null +++ b/common/pkg/timezone/timezone_freebsd.go @@ -0,0 +1,7 @@ +//go:build !windows && !linux + +package timezone + +// O_PATH value on freebsd. We must define O_PATH ourselves +// until https://github.com/golang/go/issues/54355 is fixed. +const O_PATH = 0x00400000 //nolint:staticcheck // ST1003: should not use ALL_CAPS diff --git a/common/pkg/timezone/timezone_linux.go b/common/pkg/timezone/timezone_linux.go index ef096af59d..56e5eaa718 100644 --- a/common/pkg/timezone/timezone_linux.go +++ b/common/pkg/timezone/timezone_linux.go @@ -4,6 +4,5 @@ import ( "golang.org/x/sys/unix" ) -func openDirectory(path string) (fd int, err error) { - return unix.Open(path, unix.O_RDONLY|unix.O_PATH|unix.O_CLOEXEC, 0) -} +// O_PATH value on linux. +const O_PATH = unix.O_PATH //nolint:staticcheck // ST1003: should not use ALL_CAPS diff --git a/common/pkg/timezone/timezone_unix.go b/common/pkg/timezone/timezone_unix.go deleted file mode 100644 index 705556e266..0000000000 --- a/common/pkg/timezone/timezone_unix.go +++ /dev/null @@ -1,13 +0,0 @@ -//go:build !windows && !linux - -package timezone - -import ( - "golang.org/x/sys/unix" -) - -func openDirectory(path string) (fd int, err error) { - // FIXME: If O_PATH is not defined on a platform, it probably doesn't work. E.g. on macOS, this is actually O_DSYNC. - const O_PATH = 0x00400000 //nolint:staticcheck // ST1003: should not use ALL_CAPS - return unix.Open(path, unix.O_RDONLY|O_PATH|unix.O_CLOEXEC, 0) -} diff --git a/common/pkg/timezone/timezone_windows.go b/common/pkg/timezone/timezone_windows.go deleted file mode 100644 index d89090eeb9..0000000000 --- a/common/pkg/timezone/timezone_windows.go +++ /dev/null @@ -1,5 +0,0 @@ -package timezone - -func ConfigureContainerTimeZone(timezone, containerRunDir, mountPoint, etcPath, containerID string) (string, error) { - return "", nil -} diff --git a/go.work.sum b/go.work.sum index 614095bae3..ca28494fb1 100644 --- a/go.work.sum +++ b/go.work.sum @@ -114,6 +114,7 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/certificate-transparency-go v1.3.1/go.mod h1:gg+UQlx6caKEDQ9EElFOujyxEQEfOiQzAt6782Bvi8k= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -121,6 +122,7 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= @@ -282,6 +284,8 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=