meta-digi-containers: add trimmed container runtime recipes

Add dedicated trimmed runtime wrappers for LXC and Podman in
meta-digi-containers so dey-image-container-manager can install
reduced container runtimes without affecting other DEY images.

https://onedigi.atlassian.net/browse/DEL-9996

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
This commit is contained in:
Isaac Hermida 2026-03-11 13:00:47 +01:00
parent 2da298408e
commit 17a6ba59cd
2 changed files with 118 additions and 0 deletions

View File

@ -0,0 +1,72 @@
# Copyright (C) 2026, Digi International Inc.
FILESEXTRAPATHS:prepend := "${COREBASE}/../meta-virtualization/recipes-containers/lxc/files:"
require recipes-containers/lxc/lxc_git.bb
DESCRIPTION = "Trimmed LXC runtime for dey-image-container-manager"
FILES:${PN} += "${libdir}/lxc/rootfs"
RDEPENDS:${PN}:remove = " \
rsync curl gzip xz tar \
bridge-utils dnsmasq \
gmp libidn gnutls nettle \
perl-module-strict perl-module-getopt-long perl-module-vars \
perl-module-exporter perl-module-constant perl-module-overload \
perl-module-exporter-heavy \
"
PACKAGECONFIG:remove = "templates systemd selinux"
SYSTEMD_PACKAGES = ""
SYSTEMD_SERVICE:${PN} = ""
SYSTEMD_SERVICE:${PN}-networking = ""
do_install:append() {
for bin in \
lxc-autostart \
lxc-cgroup \
lxc-checkconfig \
lxc-checkpoint \
lxc-config \
lxc-console \
lxc-copy \
lxc-create \
lxc-device \
lxc-execute \
lxc-freeze \
lxc-monitor \
lxc-snapshot \
lxc-top \
lxc-unfreeze \
lxc-unshare \
lxc-update-config \
lxc-usernsexec \
lxc-wait \
; do
rm -f ${D}${bindir}/$bin
done
rm -f ${D}${datadir}/lxc/lxc-patch.py
rm -f ${D}${datadir}/lxc/lxc.functions
rm -f ${D}${libexecdir}/lxc/lxc-apparmor-load
rm -f ${D}${libexecdir}/lxc/lxc-containers
rm -f ${D}${libexecdir}/lxc/lxc-net
rm -f ${D}${libexecdir}/lxc/lxc-user-nic
rm -f ${D}${sbindir}/init.lxc
rm -f ${D}${sbindir}/init.lxc.static
rm -f ${D}${sysconfdir}/default/lxc
rm -f ${D}${sysconfdir}/default/volatiles/99_lxc
rm -f ${D}${sysconfdir}/init.d/lxc-containers
rm -f ${D}${sysconfdir}/lxc/default.conf
rm -rf ${D}${datadir}/bash-completion
rm -rf ${D}${datadir}/doc
rm -rf ${D}${datadir}/lxc/config
rm -rf ${D}${datadir}/lxc/hooks
rm -rf ${D}${libexecdir}/lxc/hooks
rm -rf ${D}${sysconfdir}/dnsmasq.d
rmdir ${D}${sbindir} 2>/dev/null || true
}

View File

@ -0,0 +1,46 @@
# Copyright (C) 2026, Digi International Inc.
FILESEXTRAPATHS:prepend := "${COREBASE}/../meta-virtualization/recipes-containers/podman/podman:"
require recipes-containers/podman/podman_git.bb
DESCRIPTION = "Trimmed Podman runtime for dey-image-container-manager"
# No CNI implies no isolated or custom network support, no NAT and no forwarding.
# Host networking still works, and Podman uses netavark/aardvark-dns in this setup.
VIRTUAL-RUNTIME_container_networking = ""
RDEPENDS:${PN}:append = " \
netavark \
aardvark-dns \
"
RDEPENDS:${PN}:remove = " \
iptables \
libdevmapper \
"
PACKAGECONFIG:remove = "rootless docker"
do_install:append() {
rm -f ${D}${bindir}/docker
rm -f ${D}${bindir}/docker-runc
rm -f ${D}${bindir}/podman-remote
rm -f ${D}${bindir}/podmansh
rm -f ${D}${libexecdir}/podman/quadlet
rm -f ${D}${libexecdir}/podman/rootlessport
rm -f ${D}${sysconfdir}/profile.d/podman-docker.csh
rm -f ${D}${sysconfdir}/profile.d/podman-docker.sh
rm -rf ${D}${systemd_system_unitdir}
rm -rf ${D}${systemd_user_unitdir}
rm -rf ${D}${nonarch_libdir}
rm -rf ${D}${datadir}/user-tmpfiles.d
}
SYSTEMD_SERVICE:${PN} = ""
FILES:${PN}:remove = " \
${systemd_system_unitdir} \
${systemd_user_unitdir} \
${nonarch_libdir} \
"