diff --git a/sysutils/podman/Makefile b/sysutils/podman/Makefile index 271647a2cf49..ec13bac51382 100644 --- a/sysutils/podman/Makefile +++ b/sysutils/podman/Makefile @@ -1,42 +1,43 @@ PORTNAME= podman DISTVERSIONPREFIX= v -DISTVERSION= 4.4.2 -PORTREVISION= 1 +DISTVERSION= 4.5.1 CATEGORIES= sysutils MAINTAINER= dfr@FreeBSD.org COMMENT= Manage Pods, Containers and Container Images WWW= https://podman.io/ LICENSE= GPLv2 BUILD_DEPENDS= bash:shells/bash \ go-md2man:textproc/go-md2man \ gsed:textproc/gsed LIB_DEPENDS= libgpgme.so:security/gpgme RUN_DEPENDS= conmon:sysutils/conmon \ containernetworking-plugins>=0:net/containernetworking-plugins \ containers-common>=0:sysutils/containers-common \ ocijail:sysutils/ocijail USES= gmake go:no_targets pkgconfig python:3.7+,build shebangfix +USE_RC_SUBR= podman SHEBANG_FILES= ${WRKSRC}/hack/markdown-preprocess +MAKE_ARGS= SHELL=${LOCALBASE}/bin/bash # Parallel builds are flaky due to some kind of file race in the # markdown-preprocess phase of the docs build. MAKE_JOBS_UNSAFE= yes USE_GITHUB= yes GH_ACCOUNT= containers GH_PROJECT= podman INSTALL_TARGET= install install.completions # Temporary until https://github.com/containers/podman/pull/16422 lands do-install: - ${GMAKE} -C ${WRKSRC} DESTDIR=${STAGEDIR} GO=${GO_CMD} install - ${GMAKE} -C ${WRKSRC} DESTDIR=${STAGEDIR} GO=${GO_CMD} install.completions + ${GMAKE} -C ${WRKSRC} ${MAKE_ARGS} DESTDIR=${STAGEDIR} GO=${GO_CMD} install + ${GMAKE} -C ${WRKSRC} ${MAKE_ARGS} DESTDIR=${STAGEDIR} GO=${GO_CMD} install.completions ${RM} ${STAGEDIR}${PREFIX}/lib/tmpfiles.d/podman.conf .include diff --git a/sysutils/podman/distinfo b/sysutils/podman/distinfo index 3fb40bc89c3d..2682cd62e28e 100644 --- a/sysutils/podman/distinfo +++ b/sysutils/podman/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1678027489 -SHA256 (containers-podman-v4.4.2_GH0.tar.gz) = 59cec158438efa8a3e651b19e150d9afd90f7e3f07c30605a997e18b8c54b67c -SIZE (containers-podman-v4.4.2_GH0.tar.gz) = 14401422 +TIMESTAMP = 1685884846 +SHA256 (containers-podman-v4.5.1_GH0.tar.gz) = ee2c8b02b7fe301057f0382637b995a9c6c74e8d530692d6918e4c509ade6e39 +SIZE (containers-podman-v4.5.1_GH0.tar.gz) = 17425208 diff --git a/sysutils/podman/files/patch-libpod_container__api.go b/sysutils/podman/files/patch-libpod_container__api.go deleted file mode 100644 index b6573d8a5467..000000000000 --- a/sysutils/podman/files/patch-libpod_container__api.go +++ /dev/null @@ -1,19 +0,0 @@ ---- libpod/container_api.go.orig 2023-02-23 15:59:21 UTC -+++ libpod/container_api.go -@@ -788,10 +788,12 @@ func (c *Container) Cleanup(ctx context.Context) error - - // make sure all the container processes are terminated if we are running without a pid namespace. - hasPidNs := false -- for _, i := range c.config.Spec.Linux.Namespaces { -- if i.Type == spec.PIDNamespace { -- hasPidNs = true -- break -+ if c.config.Spec.Linux != nil { -+ for _, i := range c.config.Spec.Linux.Namespaces { -+ if i.Type == spec.PIDNamespace { -+ hasPidNs = true -+ break -+ } - } - } - if !hasPidNs { diff --git a/sysutils/podman/files/podman.in b/sysutils/podman/files/podman.in new file mode 100755 index 000000000000..89c5a95d4a8f --- /dev/null +++ b/sysutils/podman/files/podman.in @@ -0,0 +1,43 @@ +#!/bin/sh + +# Podman startup script - start all containers with restart policy set to always. + +# PROVIDE: podman +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Add the following to /etc/rc.conf[.local] to enable this service +# +# podman_enable: Set to NO by default. +# Set it to YES to restart containers after restart +# podman_flags: Extra flags for podman command (e.g. to set logging level) +# + +. /etc/rc.subr + +name=podman +rcvar=${name}_enable + +: ${podman_enable:=NO} +: ${podman_flags:="--noout"} + +podman=%%PREFIX%%/bin/${name} +start_cmd="podman_start" +stop_cmd="podman_stop" +restart_cmd="podman_stop && podman_start" + +podman_start() +{ + ${podman} ${podman_flags} start --all --filter restart-policy=always +} + +podman_stop() +{ + list=$(${podman} container ls --filter restart-policy=always -q) + if [ -n "${list}" ]; then + ${podman} ${podman_flags} stop ${list} + fi +} + +load_rc_config ${name} +run_rc_command "$1" diff --git a/sysutils/podman/pkg-message b/sysutils/podman/pkg-message index 30efe34d4a9c..15ff22867c14 100644 --- a/sysutils/podman/pkg-message +++ b/sysutils/podman/pkg-message @@ -1,4 +1,12 @@ The FreeBSD port of the podman container engine is experimental and should be used for evaluation and testing purposes only. $ sudo podman run --rm docker.io/dougrabson/hello + +podman can restart containers after a host is rebooted. To enable this, use: + +$ sudo sysrc podman_enable=YES + +and start the container with a restart policy: + +$ sudo podman run -d --restart=always myimage diff --git a/sysutils/podman/pkg-plist b/sysutils/podman/pkg-plist index 66d6957c1929..6ed5aee4644f 100644 --- a/sysutils/podman/pkg-plist +++ b/sysutils/podman/pkg-plist @@ -1,214 +1,220 @@ bin/podman bin/podman-remote @dir libexec/podman share/bash-completion/completions/podman share/bash-completion/completions/podman-remote share/fish/vendor_completions.d/podman-remote.fish share/fish/vendor_completions.d/podman.fish share/man/man1/podman-attach.1.gz share/man/man1/podman-auto-update.1.gz share/man/man1/podman-build.1.gz share/man/man1/podman-commit.1.gz share/man/man1/podman-completion.1.gz share/man/man1/podman-container-attach.1.gz share/man/man1/podman-container-checkpoint.1.gz share/man/man1/podman-container-cleanup.1.gz share/man/man1/podman-container-clone.1.gz share/man/man1/podman-container-commit.1.gz share/man/man1/podman-container-cp.1.gz share/man/man1/podman-container-create.1.gz share/man/man1/podman-container-diff.1.gz share/man/man1/podman-container-exec.1.gz share/man/man1/podman-container-exists.1.gz share/man/man1/podman-container-export.1.gz share/man/man1/podman-container-init.1.gz share/man/man1/podman-container-inspect.1.gz share/man/man1/podman-container-kill.1.gz share/man/man1/podman-container-list.1.gz share/man/man1/podman-container-logs.1.gz share/man/man1/podman-container-ls.1.gz share/man/man1/podman-container-mount.1.gz share/man/man1/podman-container-pause.1.gz share/man/man1/podman-container-port.1.gz share/man/man1/podman-container-prune.1.gz share/man/man1/podman-container-ps.1.gz share/man/man1/podman-container-rename.1.gz share/man/man1/podman-container-restart.1.gz share/man/man1/podman-container-restore.1.gz share/man/man1/podman-container-rm.1.gz share/man/man1/podman-container-run.1.gz share/man/man1/podman-container-runlabel.1.gz share/man/man1/podman-container-start.1.gz share/man/man1/podman-container-stats.1.gz share/man/man1/podman-container-stop.1.gz share/man/man1/podman-container-top.1.gz share/man/man1/podman-container-umount.1.gz share/man/man1/podman-container-unmount.1.gz share/man/man1/podman-container-unpause.1.gz share/man/man1/podman-container-update.1.gz share/man/man1/podman-container-wait.1.gz share/man/man1/podman-container.1.gz share/man/man1/podman-cp.1.gz share/man/man1/podman-create.1.gz share/man/man1/podman-diff.1.gz share/man/man1/podman-events.1.gz share/man/man1/podman-exec.1.gz share/man/man1/podman-export.1.gz share/man/man1/podman-generate-kube.1.gz share/man/man1/podman-generate-spec.1.gz share/man/man1/podman-generate-systemd.1.gz share/man/man1/podman-generate.1.gz share/man/man1/podman-healthcheck-run.1.gz share/man/man1/podman-healthcheck.1.gz share/man/man1/podman-help.1.gz share/man/man1/podman-history.1.gz share/man/man1/podman-image-build.1.gz share/man/man1/podman-image-diff.1.gz share/man/man1/podman-image-exists.1.gz share/man/man1/podman-image-history.1.gz share/man/man1/podman-image-import.1.gz share/man/man1/podman-image-inspect.1.gz share/man/man1/podman-image-list.1.gz share/man/man1/podman-image-load.1.gz share/man/man1/podman-image-ls.1.gz share/man/man1/podman-image-mount.1.gz share/man/man1/podman-image-prune.1.gz share/man/man1/podman-image-pull.1.gz share/man/man1/podman-image-push.1.gz share/man/man1/podman-image-rm.1.gz share/man/man1/podman-image-save.1.gz share/man/man1/podman-image-scp.1.gz share/man/man1/podman-image-search.1.gz share/man/man1/podman-image-sign.1.gz share/man/man1/podman-image-tag.1.gz share/man/man1/podman-image-tree.1.gz share/man/man1/podman-image-trust.1.gz share/man/man1/podman-image-umount.1.gz share/man/man1/podman-image-unmount.1.gz share/man/man1/podman-image-untag.1.gz share/man/man1/podman-image.1.gz share/man/man1/podman-images.1.gz share/man/man1/podman-import.1.gz share/man/man1/podman-info.1.gz share/man/man1/podman-init.1.gz share/man/man1/podman-inspect.1.gz share/man/man1/podman-kill.1.gz share/man/man1/podman-kube-apply.1.gz share/man/man1/podman-kube-down.1.gz share/man/man1/podman-kube-generate.1.gz share/man/man1/podman-kube-play.1.gz share/man/man1/podman-kube.1.gz share/man/man1/podman-load.1.gz share/man/man1/podman-login.1.gz share/man/man1/podman-logout.1.gz share/man/man1/podman-logs.1.gz share/man/man1/podman-machine-info.1.gz share/man/man1/podman-machine-init.1.gz share/man/man1/podman-machine-inspect.1.gz share/man/man1/podman-machine-list.1.gz share/man/man1/podman-machine-ls.1.gz +share/man/man1/podman-machine-os-apply.1.gz +share/man/man1/podman-machine-os.1.gz share/man/man1/podman-machine-rm.1.gz share/man/man1/podman-machine-set.1.gz share/man/man1/podman-machine-ssh.1.gz share/man/man1/podman-machine-start.1.gz share/man/man1/podman-machine-stop.1.gz share/man/man1/podman-machine.1.gz share/man/man1/podman-manifest-add.1.gz share/man/man1/podman-manifest-annotate.1.gz share/man/man1/podman-manifest-create.1.gz share/man/man1/podman-manifest-exists.1.gz share/man/man1/podman-manifest-inspect.1.gz share/man/man1/podman-manifest-push.1.gz share/man/man1/podman-manifest-remove.1.gz share/man/man1/podman-manifest-rm.1.gz share/man/man1/podman-manifest.1.gz share/man/man1/podman-mount.1.gz share/man/man1/podman-network-connect.1.gz share/man/man1/podman-network-create.1.gz share/man/man1/podman-network-disconnect.1.gz share/man/man1/podman-network-exists.1.gz share/man/man1/podman-network-inspect.1.gz share/man/man1/podman-network-ls.1.gz share/man/man1/podman-network-prune.1.gz share/man/man1/podman-network-reload.1.gz share/man/man1/podman-network-rm.1.gz +share/man/man1/podman-network-update.1.gz share/man/man1/podman-network.1.gz share/man/man1/podman-pause.1.gz share/man/man1/podman-play-kube.1.gz share/man/man1/podman-pod-clone.1.gz share/man/man1/podman-pod-create.1.gz share/man/man1/podman-pod-exists.1.gz share/man/man1/podman-pod-inspect.1.gz share/man/man1/podman-pod-kill.1.gz share/man/man1/podman-pod-logs.1.gz share/man/man1/podman-pod-pause.1.gz share/man/man1/podman-pod-prune.1.gz share/man/man1/podman-pod-ps.1.gz share/man/man1/podman-pod-restart.1.gz share/man/man1/podman-pod-rm.1.gz share/man/man1/podman-pod-start.1.gz share/man/man1/podman-pod-stats.1.gz share/man/man1/podman-pod-stop.1.gz share/man/man1/podman-pod-top.1.gz share/man/man1/podman-pod-unpause.1.gz share/man/man1/podman-pod.1.gz share/man/man1/podman-port.1.gz share/man/man1/podman-ps.1.gz share/man/man1/podman-pull.1.gz share/man/man1/podman-push.1.gz share/man/man1/podman-remote.1.gz share/man/man1/podman-rename.1.gz share/man/man1/podman-restart.1.gz share/man/man1/podman-rm.1.gz share/man/man1/podman-rmi.1.gz share/man/man1/podman-run.1.gz share/man/man1/podman-save.1.gz share/man/man1/podman-search.1.gz share/man/man1/podman-secret-create.1.gz +share/man/man1/podman-secret-exists.1.gz share/man/man1/podman-secret-inspect.1.gz share/man/man1/podman-secret-ls.1.gz share/man/man1/podman-secret-rm.1.gz share/man/man1/podman-secret.1.gz share/man/man1/podman-start.1.gz share/man/man1/podman-stats.1.gz share/man/man1/podman-stop.1.gz share/man/man1/podman-system-connection-add.1.gz share/man/man1/podman-system-connection-default.1.gz share/man/man1/podman-system-connection-list.1.gz share/man/man1/podman-system-connection-remove.1.gz share/man/man1/podman-system-connection-rename.1.gz share/man/man1/podman-system-connection.1.gz share/man/man1/podman-system-events.1.gz share/man/man1/podman-system-df.1.gz share/man/man1/podman-system-info.1.gz share/man/man1/podman-system-migrate.1.gz share/man/man1/podman-system-prune.1.gz share/man/man1/podman-system-renumber.1.gz share/man/man1/podman-system-reset.1.gz share/man/man1/podman-system-service.1.gz share/man/man1/podman-system.1.gz share/man/man1/podman-tag.1.gz share/man/man1/podman-top.1.gz share/man/man1/podman-umount.1.gz share/man/man1/podman-unmount.1.gz share/man/man1/podman-unpause.1.gz share/man/man1/podman-unshare.1.gz share/man/man1/podman-untag.1.gz share/man/man1/podman-update.1.gz share/man/man1/podman-version.1.gz share/man/man1/podman-volume-create.1.gz share/man/man1/podman-volume-exists.1.gz share/man/man1/podman-volume-export.1.gz share/man/man1/podman-volume-import.1.gz share/man/man1/podman-volume-inspect.1.gz share/man/man1/podman-volume-ls.1.gz share/man/man1/podman-volume-mount.1.gz share/man/man1/podman-volume-prune.1.gz share/man/man1/podman-volume-reload.1.gz share/man/man1/podman-volume-rm.1.gz share/man/man1/podman-volume-unmount.1.gz share/man/man1/podman-volume.1.gz share/man/man1/podman-wait.1.gz share/man/man1/podman.1.gz +share/man/man5/quadlet.5.gz +share/man/man5/podman-systemd.unit.5.gz share/zsh/site-functions/_podman share/zsh/site-functions/_podman-remote