mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-05 05:15:25 +02:00

Bumping libpod to version v5.0.1-4-gbb81e85a4, which comprises the following commits: 63f6a78eb Packit: Enable CentOS Stream 10 update job e22c9dd65 Bump to v5.0.2-dev 946d055df Bump to v5.0.1 131f3d089 Add release notes for v5.0.1 2967eb9a2 [v5.0] libpod: restart always reconfigure the netns 92b3cda79 [v5.0] use new c/common pasta2 setup logic to fix dns b1dbd477e [v5.0] Bump Buildah to v1.35.3 ebe3f395b hyperv: error if not admin 4b54d1824 libpod: don't warn about cgroupsv1 on FreeBSD 312313872 Use built-in ssh impl for all non-pty operations 70fe2a1c9 fix remote build isolation on client side bfc63cc32 fix remote build isolation when server runs as root Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
177 lines
5.5 KiB
BlitzBasic
177 lines
5.5 KiB
BlitzBasic
HOMEPAGE = "https://podman.io/"
|
|
SUMMARY = "A daemonless container engine"
|
|
DESCRIPTION = "Podman is a daemonless container engine for developing, \
|
|
managing, and running OCI Containers on your Linux System. Containers can \
|
|
either be run as root or in rootless mode. Simply put: \
|
|
`alias docker=podman`. \
|
|
"
|
|
|
|
inherit features_check
|
|
REQUIRED_DISTRO_FEATURES ?= "seccomp ipv6"
|
|
|
|
DEPENDS = " \
|
|
go-metalinter-native \
|
|
gpgme \
|
|
libseccomp \
|
|
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
|
|
gettext-native \
|
|
"
|
|
|
|
SRCREV = "bb81e85a430fa95d23a15b77c717fd68bf06ebf2"
|
|
SRC_URI = " \
|
|
git://github.com/containers/libpod.git;branch=v5.0;protocol=https \
|
|
${@bb.utils.contains('PACKAGECONFIG', 'rootless', 'file://50-podman-rootless.conf', '', d)} \
|
|
file://run-ptest \
|
|
"
|
|
|
|
LICENSE = "Apache-2.0"
|
|
LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=3d9b931fa23ab1cacd0087f9e2ee12c0"
|
|
|
|
GO_IMPORT = "import"
|
|
|
|
S = "${WORKDIR}/git"
|
|
|
|
PV = "5.0.1+git"
|
|
|
|
CVE_STATUS[CVE-2022-2989] = "fixed-version: fixed since v4.3.0"
|
|
CVE_STATUS[CVE-2023-0778] = "fixed-version: fixed since v4.5.0"
|
|
|
|
PACKAGES =+ "${PN}-contrib"
|
|
|
|
PODMAN_PKG = "github.com/containers/libpod"
|
|
|
|
BUILDTAGS_EXTRA ?= "${@bb.utils.contains('VIRTUAL-RUNTIME_container_networking','cni','cni','',d)}"
|
|
BUILDTAGS ?= "seccomp varlink \
|
|
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
|
|
exclude_graphdriver_btrfs exclude_graphdriver_devicemapper ${BUILDTAGS_EXTRA}"
|
|
|
|
# overide LDFLAGS to allow podman to build without: "flag provided but not # defined: -Wl,-O1
|
|
export LDFLAGS=""
|
|
|
|
# https://github.com/llvm/llvm-project/issues/53999
|
|
TOOLCHAIN = "gcc"
|
|
|
|
# podmans Makefile expects BUILDFLAGS to be set but go.bbclass defines them in GOBUILDFLAGS
|
|
export BUILDFLAGS="${GOBUILDFLAGS}"
|
|
|
|
inherit go goarch
|
|
inherit systemd pkgconfig ptest
|
|
|
|
do_configure[noexec] = "1"
|
|
|
|
EXTRA_OEMAKE = " \
|
|
PREFIX=${prefix} BINDIR=${bindir} LIBEXECDIR=${libexecdir} \
|
|
ETCDIR=${sysconfdir} TMPFILESDIR=${nonarch_libdir}/tmpfiles.d \
|
|
SYSTEMDDIR=${systemd_unitdir}/system USERSYSTEMDDIR=${systemd_unitdir}/user \
|
|
"
|
|
|
|
# remove 'docker' from the packageconfig if you don't want podman to
|
|
# build and install the docker wrapper. If docker is enabled in the
|
|
# packageconfig, the podman package will rconfict with docker.
|
|
PACKAGECONFIG ?= "docker"
|
|
|
|
do_compile() {
|
|
cd ${S}/src
|
|
rm -rf .gopath
|
|
mkdir -p .gopath/src/"$(dirname "${PODMAN_PKG}")"
|
|
ln -sf ../../../../import/ .gopath/src/"${PODMAN_PKG}"
|
|
|
|
ln -sf "../../../import/vendor/github.com/varlink/" ".gopath/src/github.com/varlink"
|
|
|
|
export GOARCH="${BUILD_GOARCH}"
|
|
export GOPATH="${S}/src/.gopath"
|
|
export GOROOT="${STAGING_DIR_NATIVE}/${nonarch_libdir}/${HOST_SYS}/go"
|
|
|
|
cd ${S}/src/.gopath/src/"${PODMAN_PKG}"
|
|
|
|
# Pass the needed cflags/ldflags so that cgo
|
|
# can find the needed headers files and libraries
|
|
export GOARCH=${TARGET_GOARCH}
|
|
export CGO_ENABLED="1"
|
|
export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
|
|
export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
|
|
|
|
# podman now builds go-md2man and requires the host/build details
|
|
export NATIVE_GOOS=${BUILD_GOOS}
|
|
export NATIVE_GOARCH=${BUILD_GOARCH}
|
|
|
|
oe_runmake NATIVE_GOOS=${BUILD_GOOS} NATIVE_GOARCH=${BUILD_GOARCH} BUILDTAGS="${BUILDTAGS}"
|
|
}
|
|
|
|
do_install() {
|
|
cd ${S}/src/.gopath/src/"${PODMAN_PKG}"
|
|
|
|
export GOARCH="${BUILD_GOARCH}"
|
|
export GOPATH="${S}/src/.gopath"
|
|
export GOROOT="${STAGING_DIR_NATIVE}/${nonarch_libdir}/${HOST_SYS}/go"
|
|
|
|
oe_runmake install DESTDIR="${D}"
|
|
if ${@bb.utils.contains('PACKAGECONFIG', 'docker', 'true', 'false', d)}; then
|
|
oe_runmake install.docker DESTDIR="${D}"
|
|
fi
|
|
|
|
# Silence docker emulation warnings.
|
|
mkdir -p ${D}/etc/containers
|
|
touch ${D}/etc/containers/nodocker
|
|
|
|
if ${@bb.utils.contains('PACKAGECONFIG', 'rootless', 'true', 'false', d)}; then
|
|
install -d "${D}${sysconfdir}/sysctl.d"
|
|
install -m 0644 "${WORKDIR}/50-podman-rootless.conf" "${D}${sysconfdir}/sysctl.d"
|
|
fi
|
|
}
|
|
|
|
do_install_ptest () {
|
|
cp ${S}/src/import/Makefile ${D}${PTEST_PATH}
|
|
install -d ${D}${PTEST_PATH}/test
|
|
cp -r ${S}/src/import/test/system ${D}${PTEST_PATH}/test
|
|
|
|
# Some compatibility links for the Makefile assumptions.
|
|
install -d ${D}${PTEST_PATH}/bin
|
|
ln -s ${bindir}/podman ${D}${PTEST_PATH}/bin/podman
|
|
ln -s ${bindir}/podman-remote ${D}${PTEST_PATH}/bin/podman-remote
|
|
}
|
|
|
|
FILES:${PN} += " \
|
|
${systemd_unitdir}/system/* \
|
|
${nonarch_libdir}/systemd/* \
|
|
${systemd_unitdir}/user/* \
|
|
${nonarch_libdir}/tmpfiles.d/* \
|
|
${datadir}/user-tmpfiles.d/* \
|
|
${sysconfdir}/cni \
|
|
"
|
|
|
|
SYSTEMD_SERVICE:${PN} = "podman.service podman.socket"
|
|
|
|
# The other option for this is "busybox", since meta-virt ensures
|
|
# that busybox is configured with nsenter
|
|
VIRTUAL-RUNTIME_base-utils-nsenter ?= "util-linux-nsenter"
|
|
|
|
COMPATIBLE_HOST = "^(?!mips).*"
|
|
|
|
RDEPENDS:${PN} += "\
|
|
conmon ${VIRTUAL-RUNTIME_container_runtime} iptables ${VIRTUAL-RUNTIME_container_networking} skopeo ${VIRTUAL-RUNTIME_base-utils-nsenter} \
|
|
${@bb.utils.contains('PACKAGECONFIG', 'rootless', 'fuse-overlayfs slirp4netns', '', d)} \
|
|
"
|
|
RRECOMMENDS:${PN} += "slirp4netns \
|
|
kernel-module-xt-masquerade \
|
|
kernel-module-xt-comment \
|
|
kernel-module-xt-mark \
|
|
kernel-module-xt-addrtype \
|
|
kernel-module-xt-conntrack \
|
|
kernel-module-xt-tcpudp \
|
|
"
|
|
RCONFLICTS:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'docker', 'docker', '', d)}"
|
|
|
|
RDEPENDS:${PN}-ptest += " \
|
|
bash \
|
|
bats \
|
|
buildah \
|
|
catatonit \
|
|
coreutils \
|
|
file \
|
|
gnupg \
|
|
jq \
|
|
make \
|
|
tar \
|
|
"
|