On 2019-09-03 19:26, Bruce Ashfield wrote: > I'm assuming the subject should be "podman" and not "podmon".
Whoops, thanks for pointing out. > > On Sun, Sep 1, 2019 at 4:34 PM Stefan Agner <[email protected]> wrote: >> >> From: Stefan Agner <[email protected]> >> >> 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 <[email protected]> >> --- >> 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 ? > Yes, seems to work just fine. >> + >> +# 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 ? > This actually applies to podman as well, so I copied the export and the comment from the criu recipe. Will fix the comment though to mention 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. This comment is actually a leftover so removed this. >> + 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 > After cleaning and rebuilding I actually noticed that the current state does not build. I must have interfered manually to make it build and forgot to fix-up. This make call needs this before executing: export GOARCH="${BUILD_GOARCH}" > I've been trying to squash out all the raw calls to make. Does this > work if oe_runmake is used ? With the above, oe_runmake seems to work just fine. > > Also, out of curiosity, if GO=go isn't set .. what executable does it > try to run ? Without GO=go it seems to use "arm-...-linux-gnueabi-go", and fails with a exec format error: NOTE: make -j 40 PREFIX=/usr BINDIR=/usr/bin LIBEXECDIR=/usr/libexec ETCDIR=/etc TMPFILESDIR=/usr/lib/tmpfiles.d SYSTEMDDIR=/usr/lib/systemd/system USERSYSTEMDDIR=/usr/lib/systemd/user cmd/podman/varlink/iopodman.go GO111MODULE=off arm-tdx-linux-gnueabi-go generate ./cmd/podman/varlink/... fork/exec /home/ags/torizoncore/build-colibri-imx7/tmp-torizon/work/cortexa7t2hf-neon-tdx-linux-gnueabi/podman/1.5.1+git00057929f5acfd98341964d85722383363376d52-r0/go-tmp/go-build868339522/b001/exe/main: exec format error cmd/podman/varlink/generate.go:3: running "go": exit status 1 make: *** [Makefile:475: cmd/podman/varlink/iopodman.go] Error 1 ERROR: oe_runmake failed > >> + >> + # 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 ? Yes, also here oe_runmake seems to do no harm. Thanks for reviewing! -- Stefan > > 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 >> [email protected] >> https://lists.yoctoproject.org/listinfo/meta-virtualization -- _______________________________________________ meta-virtualization mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-virtualization
