[meta-virtualization] [PATCH 6/6] podmon: add the Pod Manager tool
Bruce Ashfield
bruce.ashfield at gmail.com
Tue Sep 3 10:26:55 PDT 2019
I'm assuming the subject should be "podman" and not "podmon".
On Sun, Sep 1, 2019 at 4:34 PM Stefan Agner <stefan at agner.ch> wrote:
>
> From: Stefan Agner <stefan.agner at toradex.com>
>
> 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.
>
> This patch adds the initial recipe for podman. Currently a minimal
> feature set is supported. It seems that libseccomp is mandatory, which
> makes meta-security a mandatory dependency for this recipe.
>
> Signed-off-by: Stefan Agner <stefan.agner at toradex.com>
> ---
> recipes-containers/podman/podman_git.bb | 91 +++++++++++++++++++++++++
> 1 file changed, 91 insertions(+)
> create mode 100644 recipes-containers/podman/podman_git.bb
>
> diff --git a/recipes-containers/podman/podman_git.bb b/recipes-containers/podman/podman_git.bb
> new file mode 100644
> index 0000000..6f4e7d4
> --- /dev/null
> +++ b/recipes-containers/podman/podman_git.bb
> @@ -0,0 +1,91 @@
> +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`. \
> + "
> +
> +DEPENDS = " \
> + go-metalinter-native \
> + go-md2man-native \
> + gpgme \
> + libseccomp \
> + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
> +"
> +
> +SRCREV = "00057929f5acfd98341964d85722383363376d52"
> +SRC_URI = " \
> + git://github.com/containers/libpod.git;branch=master \
> +"
> +
> +LICENSE = "Apache-2.0"
> +LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
> +
> +GO_IMPORT = "import"
> +
> +S = "${WORKDIR}/git"
> +
> +PV = "1.5.1+git${SRCREV}"
> +
> +PACKAGES =+ "${PN}-contrib"
> +
> +PODMAN_PKG = "github.com/containers/libpod"
> +BUILDTAGS = "seccomp systemd exclude_graphdriver_btrfs exclude_graphdriver_devicemapper"
On my other similar recipes, I've been asked to make this a ?= so it
can be easily overridden. Is that possible here ?
> +
> +# overide LDFLAGS to allow criu to build without: "x86_64-poky-linux-ld: unrecognized option '-Wl,-O1'"
Is this a debug statement left in, or is it relevant to podman ?
> +export LDFLAGS=""
> +
> +inherit go goarch
> +inherit systemd pkgconfig
> +
> +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 \
> +"
> +
> +do_compile() {
> + # Set GOPATH. See 'PACKAGERS.md'. Don't rely on
> + # docker to download its dependencies but rather
> + # use dependencies packaged independently.
> + 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 GOPATH="${S}/src/.gopath"
> + export GOROOT="${STAGING_DIR_NATIVE}/${nonarch_libdir}/${HOST_SYS}/go"
> +
> + cd ${S}/src/.gopath/src/"${PODMAN_PKG}"
> +
> + make cmd/podman/varlink/iopodman.go GO=go
I've been trying to squash out all the raw calls to make. Does this
work if oe_runmake is used ?
Also, out of curiosity, if GO=go isn't set .. what executable does it
try to run ?
> +
> + # 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}"
> +
> + make BUILDTAGS="${BUILDTAGS}"
Same here. Does oe_runmake work ?
Bruce
> +}
> +
> +do_install() {
> + cd ${S}/src/.gopath/src/"${PODMAN_PKG}"
> +
> + oe_runmake install install.docker DESTDIR="${D}"
> +}
> +
> +FILES_${PN} += " \
> + ${systemd_unitdir}/system/* \
> + ${systemd_unitdir}/user/* \
> + ${nonarch_libdir}/tmpfiles.d/* \
> + ${sysconfdir}/docker \
> +"
> +
> +RDEPENDS_${PN} += "conmon runc-opencontainers iptables cni skopeo"
> --
> 2.20.1
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization
--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
More information about the meta-virtualization
mailing list