git: d45ed3450e5a - main - sysutils/podman: Update to v5.8.4

From: Dave Cottlehuber <dch_at_FreeBSD.org>
Date: Tue, 30 Jun 2026 10:14:45 UTC
The branch main has been updated by dch:

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

commit d45ed3450e5af783cf465a3987ab729de2f31ff8
Author:     Dave Cottlehuber <dch@FreeBSD.org>
AuthorDate: 2026-06-30 10:14:39 +0000
Commit:     Dave Cottlehuber <dch@FreeBSD.org>
CommitDate: 2026-06-30 10:14:39 +0000

    sysutils/podman: Update to v5.8.4
    
    Include merged https://github.com/podman-container-tools/container-libs/pull/935
    
    Approved by:    dfr
    Obtained from:  Michael Johnson <buhnux@gmail.com>
    Sponsored by:   SkunkWerks, GmbH
    Differential Revision:  https://reviews.freebsd.org/D57946
    
    Reported by:
---
 sysutils/podman/Makefile                           |  2 +-
 sysutils/podman/distinfo                           |  6 ++--
 ...o.podman.io_storage_pkg_archive_archive__bsd.go | 38 ++++++++++++++++++++++
 3 files changed, 42 insertions(+), 4 deletions(-)

diff --git a/sysutils/podman/Makefile b/sysutils/podman/Makefile
index 01b690ee7e28..71f838d8e9b2 100644
--- a/sysutils/podman/Makefile
+++ b/sysutils/podman/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	podman
 DISTVERSIONPREFIX=	v
-DISTVERSION=	5.8.3
+DISTVERSION=	5.8.4
 CATEGORIES=	sysutils
 
 MAINTAINER=	dfr@FreeBSD.org
diff --git a/sysutils/podman/distinfo b/sysutils/podman/distinfo
index ace15dedcb26..91688d3e23f3 100644
--- a/sysutils/podman/distinfo
+++ b/sysutils/podman/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1782119625
-SHA256 (containers-podman-v5.8.3_GH0.tar.gz) = c54a2ec4b4fb5577288992aaa78684397ec3552fb2d1234d910ec50097d05c0f
-SIZE (containers-podman-v5.8.3_GH0.tar.gz) = 20826467
+TIMESTAMP = 1782813721
+SHA256 (containers-podman-v5.8.4_GH0.tar.gz) = be01c20923ed7642a5ad039f83252e3b7d09f0e3431d01284a5beff6c123671c
+SIZE (containers-podman-v5.8.4_GH0.tar.gz) = 20610699
diff --git a/sysutils/podman/files/patch-vendor_go.podman.io_storage_pkg_archive_archive__bsd.go b/sysutils/podman/files/patch-vendor_go.podman.io_storage_pkg_archive_archive__bsd.go
new file mode 100644
index 000000000000..cf40b07daa40
--- /dev/null
+++ b/sysutils/podman/files/patch-vendor_go.podman.io_storage_pkg_archive_archive__bsd.go
@@ -0,0 +1,38 @@
+Fix loss of setuid/setgid/sticky bits during BSD untar.
+
+Directly casting Go's os.FileMode to uint32 in handleLChmod silently
+dropped setuid/setgid/sticky bits on BSD systems, since they are
+high-order bits that don't map to POSIX chmod(2) bit positions.
+
+https://github.com/podman-container-tools/container-libs/pull/935
+
+--- vendor/go.podman.io/storage/pkg/archive/archive_bsd.go.orig	2025-06-28 00:00:00 UTC
++++ vendor/go.podman.io/storage/pkg/archive/archive_bsd.go
+@@ -9,10 +9,26 @@ import (
+ 	"golang.org/x/sys/unix"
+ )
+
++// syscallMode maps a Go os.FileMode to chmod(2) bits, preserving the
++// setuid/setgid/sticky bits that a raw uint32(FileMode) cast silently drops.
++func syscallMode(i os.FileMode) (o uint32) {
++	o = uint32(i.Perm())
++	if i&os.ModeSetuid != 0 {
++		o |= unix.S_ISUID
++	}
++	if i&os.ModeSetgid != 0 {
++		o |= unix.S_ISGID
++	}
++	if i&os.ModeSticky != 0 {
++		o |= unix.S_ISVTX
++	}
++	return o
++}
++
+ func handleLChmod(hdr *tar.Header, path string, hdrInfo os.FileInfo, forceMask *os.FileMode) error {
+ 	permissionsMask := hdrInfo.Mode()
+ 	if forceMask != nil {
+ 		permissionsMask = *forceMask
+ 	}
+-	return unix.Fchmodat(unix.AT_FDCWD, path, uint32(permissionsMask), unix.AT_SYMLINK_NOFOLLOW)
++	return unix.Fchmodat(unix.AT_FDCWD, path, syscallMode(permissionsMask), unix.AT_SYMLINK_NOFOLLOW)
+ }