diff options
| -rw-r--r-- | conf/distro/include/meta-virt-container-podman.inc | 2 | ||||
| -rw-r--r-- | recipes-containers/podman/podman_git.bb | 18 | ||||
| -rw-r--r-- | recipes-containers/vcontainer/vpdmn-rootfs-image.bb | 9 |
3 files changed, 14 insertions, 15 deletions
diff --git a/conf/distro/include/meta-virt-container-podman.inc b/conf/distro/include/meta-virt-container-podman.inc index b57eaaca..96ea7d7b 100644 --- a/conf/distro/include/meta-virt-container-podman.inc +++ b/conf/distro/include/meta-virt-container-podman.inc | |||
| @@ -2,6 +2,8 @@ include meta-virt-container.inc | |||
| 2 | 2 | ||
| 3 | VIRTUAL-RUNTIME_container_engine ?= "podman" | 3 | VIRTUAL-RUNTIME_container_engine ?= "podman" |
| 4 | VIRTUAL-RUNTIME_container_runtime ?= "crun" | 4 | VIRTUAL-RUNTIME_container_runtime ?= "crun" |
| 5 | # netavark is the only supported network backend since podman 6.0 | ||
| 6 | # (containers/common removed CNI support entirely) | ||
| 5 | VIRTUAL-RUNTIME_container_networking ?= "netavark" | 7 | VIRTUAL-RUNTIME_container_networking ?= "netavark" |
| 6 | VIRTUAL-RUNTIME_container_dns ?= "aardvark-dns" | 8 | VIRTUAL-RUNTIME_container_dns ?= "aardvark-dns" |
| 7 | VIRTUAL-RUNTIME_container_orchestration ?= "" | 9 | VIRTUAL-RUNTIME_container_orchestration ?= "" |
diff --git a/recipes-containers/podman/podman_git.bb b/recipes-containers/podman/podman_git.bb index 75e2fae3..36c80c0e 100644 --- a/recipes-containers/podman/podman_git.bb +++ b/recipes-containers/podman/podman_git.bb | |||
| @@ -36,13 +36,10 @@ PACKAGES =+ "${PN}-contrib" | |||
| 36 | 36 | ||
| 37 | PODMAN_PKG = "github.com/containers/podman" | 37 | PODMAN_PKG = "github.com/containers/podman" |
| 38 | 38 | ||
| 39 | # Include the cni build tag unless the distro explicitly selects netavark-only. | 39 | # Podman's vendored containers/common library removed CNI support entirely |
| 40 | # The runtime backend is selected via containers.conf (network_backend), | 40 | # (commit 8d1f636e40, March 2026). The network backend is now unconditionally |
| 41 | # but podman must be compiled with the cni tag to support it at all. | 41 | # netavark — the cni build tag is a no-op. |
| 42 | # Previously this was gated on VIRTUAL-RUNTIME_container_networking == "cni", | 42 | BUILDTAGS_EXTRA ?= "" |
| 43 | # which excluded cni in vruntime builds where that variable is intentionally | ||
| 44 | # blank (vpdmn-rootfs-image installs cni packages directly in IMAGE_INSTALL). | ||
| 45 | BUILDTAGS_EXTRA ?= "${@'' if d.getVar('VIRTUAL-RUNTIME_container_networking') == 'netavark' else 'cni'}" | ||
| 46 | BUILDTAGS ?= "seccomp varlink \ | 43 | BUILDTAGS ?= "seccomp varlink \ |
| 47 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ | 44 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ |
| 48 | exclude_graphdriver_btrfs exclude_graphdriver_devicemapper ${BUILDTAGS_EXTRA}" | 45 | exclude_graphdriver_btrfs exclude_graphdriver_devicemapper ${BUILDTAGS_EXTRA}" |
| @@ -137,7 +134,6 @@ FILES:${PN} += " \ | |||
| 137 | ${systemd_user_unitdir}/* \ | 134 | ${systemd_user_unitdir}/* \ |
| 138 | ${nonarch_libdir}/tmpfiles.d/* \ | 135 | ${nonarch_libdir}/tmpfiles.d/* \ |
| 139 | ${datadir}/user-tmpfiles.d/* \ | 136 | ${datadir}/user-tmpfiles.d/* \ |
| 140 | ${sysconfdir}/cni \ | ||
| 141 | " | 137 | " |
| 142 | 138 | ||
| 143 | SYSTEMD_SERVICE:${PN} = "podman.service podman.socket" | 139 | SYSTEMD_SERVICE:${PN} = "podman.service podman.socket" |
| @@ -148,9 +144,13 @@ VIRTUAL-RUNTIME_base-utils-nsenter ?= "util-linux-nsenter" | |||
| 148 | 144 | ||
| 149 | COMPATIBLE_HOST = "^(?!mips).*" | 145 | COMPATIBLE_HOST = "^(?!mips).*" |
| 150 | 146 | ||
| 147 | # netavark is the only supported network backend since podman 6.0 | ||
| 148 | VIRTUAL-RUNTIME_container_networking = "netavark" | ||
| 149 | VIRTUAL-RUNTIME_container_dns = "aardvark-dns" | ||
| 150 | |||
| 151 | RDEPENDS:${PN} += "\ | 151 | RDEPENDS:${PN} += "\ |
| 152 | catatonit conmon ${VIRTUAL-RUNTIME_container_runtime} gpgme iptables libdevmapper \ | 152 | catatonit conmon ${VIRTUAL-RUNTIME_container_runtime} gpgme iptables libdevmapper \ |
| 153 | ${VIRTUAL-RUNTIME_container_dns} ${VIRTUAL-RUNTIME_container_networking} ${VIRTUAL-RUNTIME_base-utils-nsenter} \ | 153 | ${VIRTUAL-RUNTIME_container_networking} ${VIRTUAL-RUNTIME_container_dns} ${VIRTUAL-RUNTIME_base-utils-nsenter} \ |
| 154 | " | 154 | " |
| 155 | RRECOMMENDS:${PN} += "slirp4netns \ | 155 | RRECOMMENDS:${PN} += "slirp4netns \ |
| 156 | kernel-module-xt-masquerade \ | 156 | kernel-module-xt-masquerade \ |
diff --git a/recipes-containers/vcontainer/vpdmn-rootfs-image.bb b/recipes-containers/vcontainer/vpdmn-rootfs-image.bb index f061ce08..cca9191f 100644 --- a/recipes-containers/vcontainer/vpdmn-rootfs-image.bb +++ b/recipes-containers/vcontainer/vpdmn-rootfs-image.bb | |||
| @@ -50,7 +50,8 @@ IMAGE_INSTALL = " \ | |||
| 50 | crun \ | 50 | crun \ |
| 51 | skopeo \ | 51 | skopeo \ |
| 52 | conmon \ | 52 | conmon \ |
| 53 | cni \ | 53 | netavark \ |
| 54 | aardvark-dns \ | ||
| 54 | busybox \ | 55 | busybox \ |
| 55 | iproute2 \ | 56 | iproute2 \ |
| 56 | iptables \ | 57 | iptables \ |
| @@ -121,13 +122,9 @@ additionalimagestores = [] | |||
| 121 | EOF | 122 | EOF |
| 122 | 123 | ||
| 123 | # Create containers.conf for podman engine settings | 124 | # Create containers.conf for podman engine settings |
| 124 | # Use CNI instead of netavark — netavark's dependency chain | ||
| 125 | # (nmap → libpcap → bluez5 → python3-pygobject → cairo) is too | ||
| 126 | # heavy for the vruntime BBMASK environment. | ||
| 127 | cat > ${IMAGE_ROOTFS}/etc/containers/containers.conf << 'EOF' | 125 | cat > ${IMAGE_ROOTFS}/etc/containers/containers.conf << 'EOF' |
| 128 | [network] | 126 | [network] |
| 129 | network_backend = "cni" | 127 | network_backend = "netavark" |
| 130 | cni_plugin_dirs = ["/opt/cni/bin", "/usr/libexec/cni"] | ||
| 131 | EOF | 128 | EOF |
| 132 | 129 | ||
| 133 | # Prevent libnss_systemd segfaults — systemd is not running in the | 130 | # Prevent libnss_systemd segfaults — systemd is not running in the |
