diff options
Diffstat (limited to 'sysutils/podman')
| -rw-r--r-- | sysutils/podman/Makefile | 4 | ||||
| -rw-r--r-- | sysutils/podman/distinfo | 6 | ||||
| -rw-r--r-- | sysutils/podman/files/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 |
