Download raw body.
sysutils/docker-cli: update to 25.0.3
On 2024/02/08 15:40:08 +0100, Kirill A. Korinsky <kirill@korins.ky> wrote:
> On Thu, 08 Feb 2024 10:27:05 +0100,
> Kirill A. Korinsky wrote:
> >
> > I'd like a share that future patch is required for docker.
> >
> > Right now any use of docker cli plugin produces (and not removed!) unix socker
> > with name @docker_clo_[UUID].
> >
>
> Here the updated diff which updated docker-cli and introduces docker-compose and
> docker-buildx. Probably the last one should be dependency for the docker-cli.
>
> An updated includes a ptach to cleanup @docker_cli_[UUID] files which was
> backported to upstream [1].
>
> Thus, I've made some digging and seems that patch with replacing syscall.EBADMSG
> to syscall.Errno(0x5c) doesn't required anymore [2], it simple exists inside
> vendor.mod and vendor.sum, but I haven't found any trace of it's using.
this is a bit strange indeed. 0x5C is 92, so at least the errno number
is right, but it reads strange.
> But this patches are required in docker-buildx and docker-compose.
>
> Shall it be simple included into go port to avoid patching almost each go
> application which uses fsutils?
not sure if a port would help. from my understanding how of go works,
we'd need to feed diffs upstream and wait for all consumers to make new
releases after bumping the dependencies.
Now, regarding the ports: for new ports, please send a tarball. diffs
are used only for updates to existing ports.
Some early comments on docker-cli:
- don't remove @conflict from the PLIST
- we can update it to use DIST_TUPLES while here
and on docker-buildx:
- switch to DIST_TUPLES while here too
- no need to re-define DISTFILES (it's not needed neither with GH_*)
- no need to USE_GMAKE, we use the go toolchain to build it
- needs a make update-plist to add the directories
- the patches to change syscall.EBADMSG to syscall.Errno(0x5c) are
strange indeed. if it's not needed (haven't tried), it should be
removed.
and on docker-compose:
- switch to DIST_TUPLES here too
- no need to set DISTFILES, only DISTFILES.a and SITES.a, although it
could use a more descriptive name (DISTFILES.vendor ?)
- I'd really prefer if we used go.port.mk and the go toolchain to drive
the build, without going through make. go is already painful to deal
with as-is without the need to add another layer.
Some flags are not being propagated (like -v).
- if we really have to go thrugh make, the git machinery they use should
be killed with fire
I'm reattaching the diff for docker-cli and a tarball for the new ports.
I haven't had the time to properly test them yet, will do during the
weekend, but wanted to give a first round of feedback. docker-cli and
buildx looks fine to me however, so OK op@ if someone wants to go ahead
and import them.
Index: Makefile
===================================================================
RCS file: /home/cvs/ports/sysutils/docker-cli/Makefile,v
diff -u -p -r1.9 Makefile
--- Makefile 20 Nov 2022 16:14:43 -0000 1.9
+++ Makefile 8 Feb 2024 15:12:14 -0000
@@ -1,10 +1,8 @@
COMMENT = command-line tool for controlling Docker
-V = 20.10.21
+V = 25.0.3
-GH_ACCOUNT = docker
-GH_PROJECT = cli
-GH_TAGNAME = v${V}
+DIST_TUPLE = github docker cli v${V} .
PKGNAME = docker-${DISTNAME}
CATEGORIES = sysutils
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/sysutils/docker-cli/distinfo,v
diff -u -p -r1.5 distinfo
--- distinfo 20 Nov 2022 16:14:43 -0000 1.5
+++ distinfo 8 Feb 2024 15:06:03 -0000
@@ -1,2 +1,2 @@
-SHA256 (cli-20.10.21.tar.gz) = 8PYsocgOj9W54UDKZO8+ddx896KAQLPRCyYDBxKJRug=
-SIZE (cli-20.10.21.tar.gz) = 7633967
+SHA256 (docker-cli-v25.0.3.tar.gz) = BK0M6pkqZdsgyxsNv20c4yxwXOh53lGyIJX+jSgDCBU=
+SIZE (docker-cli-v25.0.3.tar.gz) = 6864551
Index: patches/patch-cli-plugins_socket_socket_nodarwin_go
===================================================================
RCS file: patches/patch-cli-plugins_socket_socket_nodarwin_go
diff -N patches/patch-cli-plugins_socket_socket_nodarwin_go
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-cli-plugins_socket_socket_nodarwin_go 8 Feb 2024 15:01:21 -0000
@@ -0,0 +1,17 @@
+Index: cli-plugins/socket/socket_nodarwin.go
+--- cli-plugins/socket/socket_nodarwin.go.orig
++++ cli-plugins/socket/socket_nodarwin.go
+@@ -1,4 +1,4 @@
+-//go:build !darwin
++//go:build !darwin && !openbsd
+
+ package socket
+
+@@ -15,5 +15,6 @@ func listen(socketname string) (*net.UnixListener, err
+
+ func onAccept(conn *net.UnixConn, listener *net.UnixListener) {
+ // do nothing
+- // while on darwin we would unlink here; on non-darwin the socket is abstract and not present on the filesystem
++ // while on darwin and OpenBSD we would unlink here;
++ // on non-darwin the socket is abstract and not present on the filesystem
+ }
Index: patches/patch-cli-plugins_socket_socket_openbsd_go
===================================================================
RCS file: patches/patch-cli-plugins_socket_socket_openbsd_go
diff -N patches/patch-cli-plugins_socket_socket_openbsd_go
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-cli-plugins_socket_socket_openbsd_go 8 Feb 2024 15:01:21 -0000
@@ -0,0 +1,23 @@
+Index: cli-plugins/socket/socket_openbsd.go
+--- cli-plugins/socket/socket_openbsd.go.orig
++++ cli-plugins/socket/socket_openbsd.go
+@@ -0,0 +1,19 @@
++//go:build openbsd
++
++package socket
++
++import (
++ "net"
++ "syscall"
++)
++
++func listen(socketname string) (*net.UnixListener, error) {
++ return net.ListenUnix("unix", &net.UnixAddr{
++ Name: "@" + socketname,
++ Net: "unix",
++ })
++}
++
++func onAccept(conn *net.UnixConn, listener *net.UnixListener) {
++ syscall.Unlink(listener.Addr().String())
++}
Index: patches/patch-vendor_github_com_containerd_containerd_content_local_store_unix_go
===================================================================
RCS file: patches/patch-vendor_github_com_containerd_containerd_content_local_store_unix_go
diff -N patches/patch-vendor_github_com_containerd_containerd_content_local_store_unix_go
--- patches/patch-vendor_github_com_containerd_containerd_content_local_store_unix_go 11 Mar 2022 19:57:21 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
-Index: vendor/github.com/containerd/containerd/content/local/store_unix.go
---- vendor/github.com/containerd/containerd/content/local/store_unix.go.orig
-+++ vendor/github.com/containerd/containerd/content/local/store_unix.go
-@@ -1,4 +1,4 @@
--// +build linux solaris darwin freebsd netbsd
-+// +build linux solaris darwin freebsd netbsd openbsd
-
- /*
- Copyright The containerd Authors.
Index: patches/patch-vendor_github_com_containerd_continuity_fs_stat_openbsd_go
===================================================================
RCS file: patches/patch-vendor_github_com_containerd_continuity_fs_stat_openbsd_go
diff -N patches/patch-vendor_github_com_containerd_continuity_fs_stat_openbsd_go
--- patches/patch-vendor_github_com_containerd_continuity_fs_stat_openbsd_go 11 Mar 2022 19:57:21 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,48 +0,0 @@
-Index: vendor/github.com/containerd/containerd/sys/stat_openbsd.go
---- vendor/github.com/containerd/containerd/sys/stat_openbsd.go.orig
-+++ vendor/github.com/containerd/containerd/sys/stat_openbsd.go
-@@ -0,0 +1,44 @@
-+// +build openbsd
-+/*
-+ 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 sys
-+
-+import (
-+ "syscall"
-+ "time"
-+)
-+
-+// StatAtime returns the Atim
-+func StatAtime(st *syscall.Stat_t) syscall.Timespec {
-+ return st.Atim
-+}
-+
-+// StatCtime returns the Ctim
-+func StatCtime(st *syscall.Stat_t) syscall.Timespec {
-+ return st.Ctim
-+}
-+
-+// StatMtime returns the Mtim
-+func StatMtime(st *syscall.Stat_t) syscall.Timespec {
-+ return st.Mtim
-+}
-+
-+// StatATimeAsTime returns st.Atim as a time.Time
-+func StatATimeAsTime(st *syscall.Stat_t) time.Time {
-+ // The int64 conversions ensure the line compiles for 32-bit systems as well.
-+ return time.Unix(int64(st.Atim.Sec), int64(st.Atim.Nsec)) // nolint: unconvert
-+}
Index: patches/patch-vendor_github_com_moby_sys_mount_mounter_bsd_go
===================================================================
RCS file: patches/patch-vendor_github_com_moby_sys_mount_mounter_bsd_go
diff -N patches/patch-vendor_github_com_moby_sys_mount_mounter_bsd_go
--- patches/patch-vendor_github_com_moby_sys_mount_mounter_bsd_go 11 Mar 2022 19:57:21 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
-Index: vendor/github.com/moby/sys/mount/mounter_bsd.go
---- vendor/github.com/moby/sys/mount/mounter_bsd.go.orig
-+++ vendor/github.com/moby/sys/mount/mounter_bsd.go
-@@ -1,4 +1,4 @@
--// +build freebsd,cgo openbsd,cgo
-+// +build freebsd,cgo
-
- package mount
-
Index: patches/patch-vendor_github_com_moby_sys_mount_mounter_openbsd_go
===================================================================
RCS file: patches/patch-vendor_github_com_moby_sys_mount_mounter_openbsd_go
diff -N patches/patch-vendor_github_com_moby_sys_mount_mounter_openbsd_go
--- patches/patch-vendor_github_com_moby_sys_mount_mounter_openbsd_go 11 Mar 2022 19:57:21 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,69 +0,0 @@
-Index: vendor/github.com/moby/sys/mount/mounter_openbsd.go
---- vendor/github.com/moby/sys/mount/mounter_openbsd.go.orig
-+++ vendor/github.com/moby/sys/mount/mounter_openbsd.go
-@@ -0,0 +1,65 @@
-+// +build openbsd,cgo
-+
-+package mount
-+
-+/*
-+#include <sys/types.h>
-+#include <sys/mount.h>
-+*/
-+import "C"
-+
-+import (
-+ "fmt"
-+ "syscall"
-+ "unsafe"
-+)
-+
-+func createExportInfo(readOnly bool) C.struct_export_args {
-+ exportFlags := C.int(0)
-+ if readOnly {
-+ exportFlags = C.MNT_EXRDONLY
-+ }
-+ out := C.struct_export_args{
-+ ex_root: 0,
-+ ex_flags: exportFlags,
-+ }
-+ return out
-+}
-+
-+func createUfsArgs(device string, readOnly bool) unsafe.Pointer {
-+ out := &C.struct_ufs_args{
-+ fspec: C.CString(device),
-+ export_info: createExportInfo(readOnly),
-+ }
-+ return unsafe.Pointer(out)
-+}
-+
-+func mount(device, target, mType string, flag uintptr, data string) error {
-+ readOnly := flag&RDONLY == 1
-+
-+ var fsArgs unsafe.Pointer
-+
-+ if mType == "ffs" {
-+ fsArgs = createUfsArgs(device, readOnly)
-+ } else {
-+ return &mountError{
-+ op: "mount",
-+ source: device,
-+ target: target,
-+ flags: flag,
-+ err: fmt.Errorf("unsupported type"),
-+ }
-+ }
-+
-+ if errno := C.mount(C.CString(mType), C.CString(target), C.int(flag), fsArgs); errno != 0 {
-+ return &mountError{
-+ op: "mount",
-+ source: device,
-+ target: target,
-+ flags: flag,
-+ err: syscall.Errno(errno),
-+ }
-+ }
-+
-+ return nil
-+}
Index: patches/patch-vendor_github_com_tonistiigi_fsutil_diskwriter_go
===================================================================
RCS file: patches/patch-vendor_github_com_tonistiigi_fsutil_diskwriter_go
diff -N patches/patch-vendor_github_com_tonistiigi_fsutil_diskwriter_go
--- patches/patch-vendor_github_com_tonistiigi_fsutil_diskwriter_go 11 Mar 2022 19:57:21 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: vendor/github.com/tonistiigi/fsutil/diskwriter.go
---- vendor/github.com/tonistiigi/fsutil/diskwriter.go.orig
-+++ vendor/github.com/tonistiigi/fsutil/diskwriter.go
-@@ -104,7 +104,7 @@ func (dw *DiskWriter) HandleChange(kind ChangeKind, p
-
- stat, ok := fi.Sys().(*types.Stat)
- if !ok {
-- return errors.WithStack(&os.PathError{Path: p, Err: syscall.EBADMSG, Op: "change without stat info"})
-+ return errors.WithStack(&os.PathError{Path: p, Err: syscall.Errno(0x5c), Op: "change without stat info"})
- }
-
- statCopy := *stat
Index: patches/patch-vendor_github_com_tonistiigi_fsutil_fs_go
===================================================================
RCS file: patches/patch-vendor_github_com_tonistiigi_fsutil_fs_go
diff -N patches/patch-vendor_github_com_tonistiigi_fsutil_fs_go
--- patches/patch-vendor_github_com_tonistiigi_fsutil_fs_go 11 Mar 2022 19:57:21 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: vendor/github.com/tonistiigi/fsutil/fs.go
---- vendor/github.com/tonistiigi/fsutil/fs.go.orig
-+++ vendor/github.com/tonistiigi/fsutil/fs.go
-@@ -80,7 +80,7 @@ func (fs *subDirFS) Walk(ctx context.Context, fn filep
- if err := d.FS.Walk(ctx, func(p string, fi os.FileInfo, err error) error {
- stat, ok := fi.Sys().(*types.Stat)
- if !ok {
-- return errors.WithStack(&os.PathError{Path: d.Stat.Path, Err: syscall.EBADMSG, Op: "fileinfo without stat info"})
-+ return errors.WithStack(&os.PathError{Path: d.Stat.Path, Err: syscall.Errno(0x5c), Op: "fileinfo without stat info"})
- }
- stat.Path = path.Join(d.Stat.Path, stat.Path)
- if stat.Linkname != "" {
Index: patches/patch-vendor_github_com_tonistiigi_fsutil_hardlinks_go
===================================================================
RCS file: patches/patch-vendor_github_com_tonistiigi_fsutil_hardlinks_go
diff -N patches/patch-vendor_github_com_tonistiigi_fsutil_hardlinks_go
--- patches/patch-vendor_github_com_tonistiigi_fsutil_hardlinks_go 11 Mar 2022 19:57:21 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: vendor/github.com/tonistiigi/fsutil/hardlinks.go
---- vendor/github.com/tonistiigi/fsutil/hardlinks.go.orig
-+++ vendor/github.com/tonistiigi/fsutil/hardlinks.go
-@@ -29,7 +29,7 @@ func (v *Hardlinks) HandleChange(kind ChangeKind, p st
-
- stat, ok := fi.Sys().(*types.Stat)
- if !ok {
-- return errors.WithStack(&os.PathError{Path: p, Err: syscall.EBADMSG, Op: "change without stat info"})
-+ return errors.WithStack(&os.PathError{Path: p, Err: syscall.Errno(0x5c), Op: "change without stat info"})
- }
-
- if fi.IsDir() || fi.Mode()&os.ModeSymlink != 0 {
Index: patches/patch-vendor_github_com_tonistiigi_fsutil_send_go
===================================================================
RCS file: patches/patch-vendor_github_com_tonistiigi_fsutil_send_go
diff -N patches/patch-vendor_github_com_tonistiigi_fsutil_send_go
--- patches/patch-vendor_github_com_tonistiigi_fsutil_send_go 11 Mar 2022 19:57:21 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: vendor/github.com/tonistiigi/fsutil/send.go
---- vendor/github.com/tonistiigi/fsutil/send.go.orig
-+++ vendor/github.com/tonistiigi/fsutil/send.go
-@@ -150,7 +150,7 @@ func (s *sender) walk(ctx context.Context) error {
- }
- stat, ok := fi.Sys().(*types.Stat)
- if !ok {
-- return errors.WithStack(&os.PathError{Path: path, Err: syscall.EBADMSG, Op: "fileinfo without stat info"})
-+ return errors.WithStack(&os.PathError{Path: path, Err: syscall.Errno(0x5c), Op: "fileinfo without stat info"})
- }
-
- p := &types.Packet{
Index: patches/patch-vendor_github_com_tonistiigi_fsutil_tarwriter_go
===================================================================
RCS file: patches/patch-vendor_github_com_tonistiigi_fsutil_tarwriter_go
diff -N patches/patch-vendor_github_com_tonistiigi_fsutil_tarwriter_go
--- patches/patch-vendor_github_com_tonistiigi_fsutil_tarwriter_go 11 Mar 2022 19:57:21 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: vendor/github.com/tonistiigi/fsutil/tarwriter.go
---- vendor/github.com/tonistiigi/fsutil/tarwriter.go.orig
-+++ vendor/github.com/tonistiigi/fsutil/tarwriter.go
-@@ -21,7 +21,7 @@ func WriteTar(ctx context.Context, fs FS, w io.Writer)
- }
- stat, ok := fi.Sys().(*types.Stat)
- if !ok {
-- return errors.WithStack(&os.PathError{Path: path, Err: syscall.EBADMSG, Op: "fileinfo without stat info"})
-+ return errors.WithStack(&os.PathError{Path: path, Err: syscall.Errno(0x5c), Op: "fileinfo without stat info"})
- }
- hdr, err := tar.FileInfoHeader(fi, stat.Linkname)
- if err != nil {
sysutils/docker-cli: update to 25.0.3