Index | Thread | Search

From:
Kirill A. Korinsky <kirill@korins.ky>
Subject:
Re: sysutils/docker-cli: update to 25.0.3
To:
Omar Polo <op@omarpolo.com>
Cc:
ports@openbsd.org
Date:
Fri, 09 Feb 2024 01:58:42 +0100

Download raw body.

Thread
On Thu, 08 Feb 2024 16:57:20 +0100,
Omar Polo wrote:
>
> > 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 orks,
> we'd need to feed diffs upstream and wait for all consumers to make new
> releases after bumping the dependencies.
>

ok, I'll try to make a patch to go port with example, if that I mean works.

> Some early comments on docker-cli:
>
>  - don't remove @conflict from the PLIST

I'm confused. My idea was to allow install

> and on docker-buildx:
>
>  - 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.
>

Without this patch build fails. I assume it really needed.

>
> 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.

I'm reatttaching the diff and a tarball for docker-compose. Changes:

docker-cli:
 - syncrnize patch with upstream feedback

docker-compose:
 - add new directory into PLIST
 - avoid make-based build
 - fixed version propagation

--
wbr, Kirill
Index: Makefile
===================================================================
RCS file: /cvs/ports/sysutils/docker-cli/Makefile,v
retrieving revision 1.9
diff -u -p -r1.9 Makefile
--- Makefile	20 Nov 2022 16:14:43 -0000	1.9
+++ Makefile	8 Feb 2024 23:36:17 -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: /cvs/ports/sysutils/docker-cli/distinfo,v
retrieving revision 1.5
diff -u -p -r1.5 distinfo
--- distinfo	20 Nov 2022 16:14:43 -0000	1.5
+++ distinfo	8 Feb 2024 23:36:17 -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 23:36:17 -0000
@@ -0,0 +1,9 @@
+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
+
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 23:36:17 -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 @@
++package socket
++
++import (
++	"net"
++	"os"
++	"path/filepath"
++	"syscall"
++)
++
++func listen(socketname string) (*net.UnixListener, error) {
++	return net.ListenUnix("unix", &net.UnixAddr{
++		Name: filepath.Join(os.TempDir(), 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 {