diff options
Diffstat (limited to 'recipes-containers/umoci/umoci_git.bb')
-rw-r--r-- | recipes-containers/umoci/umoci_git.bb | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/recipes-containers/umoci/umoci_git.bb b/recipes-containers/umoci/umoci_git.bb new file mode 100644 index 00000000..2ed0af7d --- /dev/null +++ b/recipes-containers/umoci/umoci_git.bb @@ -0,0 +1,85 @@ +HOMEPAGE = "https://github.com/openSUSE/umoci" +SUMMARY = "umoci modifies Open Container images" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57" + +RDEPENDS:${PN} = "skopeo" +RDEPENDS:${PN}:class-native = "" + +SRCREV_umoci = "33ec00665c66321f1b1f34ca7e6f370ac35c1233" +SRC_URI = "git://github.com/opencontainers/umoci.git;branch=main;name=umoci;destsuffix=github.com/opencontainers/umoci;protocol=https \ + " + +PV = "v0.4.7+git" +S = "${WORKDIR}/github.com/opencontainers/umoci" +GO_IMPORT = "github.com/opencontainers/umoci" + +inherit goarch +inherit go + +COMPATIBLE_HOST = "^(?!mips).*" + +# This disables seccomp and apparmor, which are on by default in the +# go package. +EXTRA_OEMAKE="BUILDTAGS=''" + + +do_compile:class-native () { + export GOARCH="${BUILD_GOARCH}" + + # Pass the needed cflags/ldflags so that cgo can find the needed headers files and libraries + export CGO_ENABLED="1" + export CFLAGS="${BUILD_CFLAGS}" + export LDFLAGS="${BUILD_LDFLAGS}" + export CGO_CFLAGS="${BUILD_CFLAGS}" + + # as of go 1.15.5, there are some flags the CGO doesn't like. Rather than + # clearing them all, we sed away the ones we don't want. + # export CGO_LDFLAGS="$(echo ${BUILD_LDFLAGS} | sed 's/-Wl,-O1//g' | sed 's/-Wl,--dynamic-linker.*?( \|$\)//g')" + export CC="${BUILD_CC}" + export LD="${BUILD_LD}" + + export GOPATH="${WORKDIR}/git/" + export GO111MODULE=off + + export STATIC_BUILD_FLAGS="-trimpath" + + cd ${S} + + # why static ? patchelf will be run on dynamic binaries and it breaks + # the executable (coredump) + # https://forum.snapcraft.io/t/patchelf-broke-my-binary/4928 + # https://github.com/NixOS/patchelf/issues/146 + oe_runmake umoci.static + + # so the common install can find our binary + cp umoci.static umoci +} + +do_compile() { + export GOARCH="${TARGET_GOARCH}" + export GOPATH="${WORKDIR}/git/" + + # Pass the needed cflags/ldflags so that cgo + # can find the needed headers files and libraries + export CGO_ENABLED="1" + export CFLAGS="" + export LDFLAGS="" + export CGO_CFLAGS="${TARGET_CFLAGS}" + export CGO_LDFLAGS="${TARGET_LDFLAGS}" + + export GO111MODULE=off + + export BUILD_FLAGS="-trimpath" + cd ${S} + + oe_runmake umoci +} + +do_install() { + install -d ${D}/${sbindir} + install ${S}/umoci ${D}/${sbindir} +} + +INSANE_SKIP:${PN} += "ldflags already-stripped" +BBCLASSEXTEND = "native nativesdk" |