git: 89819fbca064 - main - sysutils/podman: update 5.6.2 -> 5.7.0

From: Sergey A. Osokin <osa_at_FreeBSD.org>
Date: Mon, 17 Nov 2025 16:18:04 UTC
The branch main has been updated by osa:

URL: https://cgit.FreeBSD.org/ports/commit/?id=89819fbca06496790caefa22dac09b3d94391950

commit 89819fbca06496790caefa22dac09b3d94391950
Author:     Sergey A. Osokin <osa@FreeBSD.org>
AuthorDate: 2025-11-17 16:13:25 +0000
Commit:     Sergey A. Osokin <osa@FreeBSD.org>
CommitDate: 2025-11-17 16:17:56 +0000

    sysutils/podman: update 5.6.2 -> 5.7.0
    
    Thanks Doug Rabson for his review and an additional patch, that's also
    heading upstream, https://github.com/containers/podman/pull/27545
    
    Approved by:    dfr (maintainer)
    Reviewed by:    dfr (maintainer)
    ChangeLog:      https://github.com/containers/podman/compare/v5.6.2...v5.7.0
    PR:             291014
    
    Sponsored by:   tipi.work
---
 sysutils/podman/Makefile                           |  4 +-
 sysutils/podman/distinfo                           |  6 +-
 .../patch-pkg_specgen_generate_oci__freebsd.go     | 70 ++++++++++++++++++++++
 3 files changed, 75 insertions(+), 5 deletions(-)

diff --git a/sysutils/podman/Makefile b/sysutils/podman/Makefile
index 70553226b1bb..2c696b60d18d 100644
--- a/sysutils/podman/Makefile
+++ b/sysutils/podman/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	podman
 DISTVERSIONPREFIX=	v
-DISTVERSION=	5.6.2
+DISTVERSION=	5.7.0
 CATEGORIES=	sysutils
 
 MAINTAINER=	dfr@FreeBSD.org
@@ -20,7 +20,7 @@ RUN_DEPENDS=	conmon:sysutils/conmon \
 		containers-common>=0:sysutils/containers-common \
 		ocijail:sysutils/ocijail
 
-USES=		gmake go:no_targets,1.23 pkgconfig python:build shebangfix
+USES=		gmake go:no_targets,1.24 pkgconfig python:build shebangfix
 USE_RC_SUBR=	podman podman_service
 
 SHEBANG_FILES=	${WRKSRC}/hack/markdown-preprocess
diff --git a/sysutils/podman/distinfo b/sysutils/podman/distinfo
index 7a9e313a3a9d..c01a0d7ff42e 100644
--- a/sysutils/podman/distinfo
+++ b/sysutils/podman/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759417077
-SHA256 (containers-podman-v5.6.2_GH0.tar.gz) = c6de8f347ee93e4626d7c82e3adcb1b34e64175b5ca9959e790e52a0b4bbf2a1
-SIZE (containers-podman-v5.6.2_GH0.tar.gz) = 20916839
+TIMESTAMP = 1763052179
+SHA256 (containers-podman-v5.7.0_GH0.tar.gz) = 86972a63aaa8a292fff7ee3f18b7445d2e937e83e0c3f3b3904d48065714f07f
+SIZE (containers-podman-v5.7.0_GH0.tar.gz) = 21261077
diff --git a/sysutils/podman/files/patch-pkg_specgen_generate_oci__freebsd.go b/sysutils/podman/files/patch-pkg_specgen_generate_oci__freebsd.go
new file mode 100644
index 000000000000..5f3e7367e198
--- /dev/null
+++ b/sysutils/podman/files/patch-pkg_specgen_generate_oci__freebsd.go
@@ -0,0 +1,70 @@
+pkg/specgen/generate: Fix adding host devices on FreeBSD
+
+This was not working when emulating Linux container images on FreeBSD.
+The code to handle host devices on FreeBSD relies on the container
+having a devfs mount. Unfortunately, the Linux emulation code which adds
+this was happening after the host device handling. This changes the
+logic so that host device management happens after Linux emulation.
+
+Signed-off-by: Doug Rabson <dfr@rabson.org>
+
+--- pkg/specgen/generate/oci_freebsd.go.orig	2025-11-11 13:51:07 UTC
++++ pkg/specgen/generate/oci_freebsd.go
+@@ -50,28 +50,6 @@ func SpecGenToOCI(ctx context.Context, s *specgen.Spec
+ 		g.AddAnnotation(key, val)
+ 	}
+ 
+-	// Devices
+-	var userDevices []spec.LinuxDevice
+-	if !s.IsPrivileged() {
+-		// add default devices from containers.conf
+-		for _, device := range rtc.Containers.Devices.Get() {
+-			if err = DevicesFromPath(&g, device, rtc); err != nil {
+-				return nil, err
+-			}
+-		}
+-		if len(compatibleOptions.HostDeviceList) > 0 && len(s.Devices) == 0 {
+-			userDevices = compatibleOptions.HostDeviceList
+-		} else {
+-			userDevices = s.Devices
+-		}
+-		// add default devices specified by caller
+-		for _, device := range userDevices {
+-			if err = DevicesFromPath(&g, device.Path, rtc); err != nil {
+-				return nil, err
+-			}
+-		}
+-	}
+-
+ 	g.ClearProcessEnv()
+ 	for name, val := range s.Env {
+ 		g.AddProcessEnv(name, val)
+@@ -132,6 +110,28 @@ func SpecGenToOCI(ctx context.Context, s *specgen.Spec
+ 			},
+ 		)
+ 		configSpec.Mounts = mounts
++	}
++
++	// Devices
++	var userDevices []spec.LinuxDevice
++	if !s.IsPrivileged() {
++		// add default devices from containers.conf
++		for _, device := range rtc.Containers.Devices.Get() {
++			if err = DevicesFromPath(&g, device, rtc); err != nil {
++				return nil, err
++			}
++		}
++		if len(compatibleOptions.HostDeviceList) > 0 && len(s.Devices) == 0 {
++			userDevices = compatibleOptions.HostDeviceList
++		} else {
++			userDevices = s.Devices
++		}
++		// add default devices specified by caller
++		for _, device := range userDevices {
++			if err = DevicesFromPath(&g, device.Path, rtc); err != nil {
++				return nil, err
++			}
++		}
+ 	}
+ 
+ 	// BIND MOUNTS