include $(TOPDIR)/rules.mk PKG_NAME:=oci-runtime-tools PKG_VERSION:=1.0.0-pre20210326 PKG_RELEASE:=3 PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=LICENSE PKG_SOURCE_PROTO:=git PKG_SOURCE_NAME:=runtime-tools PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/opencontainers/runtime-tools.git PKG_SOURCE_VERSION:=59cdde06764be8d761db120664020f0415f36045 PKG_MIRROR_HASH:=ef331e3ad5f99220583399fe1c2ded243f4b01f8dabc7acd152d46304da70f6f PKG_MAINTAINER:=Daniel Golle PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_BUILD_FLAGS:=no-mips16 GO_PKG:=github.com/opencontainers/runtime-tools/ GO_PKG_LDFLAGS_X:=main.gitCommit=$(PKG_SOURCE_VERSION) main.version=$(PKG_SOURCE_VERSION) BUSYBOX_STATIC_VERSION:=1.31.0 include $(INCLUDE_DIR)/package.mk include ../../lang/golang/golang-package.mk define Download/busybox-static-armv8l URL:=https://busybox.net/downloads/binaries/$$(BUSYBOX_STATIC_VERSION)-defconfig-multiarch-musl/ URL_FILE:=busybox-armv8l FILE:=busybox-$(BUSYBOX_STATIC_VERSION)-static-armv8l HASH:=141adb1b625a6f44c4b114f76b4387b4ea4f7ab802b88eb40e0d2f6adcccb1c3 endef define Package/oci-runtime-tool SECTION:=utils CATEGORY:=Utilities TITLE:=oci-runtime-tool URL:=https://github.com/opencontainers/runtime-tools DEPENDS:=$(GO_ARCH_DEPENDS) endef define Package/oci-runtime-tool/description OCI (Open Container Initiative) runtime tools Generate OCI runtime spec configuration files and validate OCI bundles. endef define Package/oci-runtime-tests SECTION:=utils CATEGORY:=Utilities TITLE:=OCI runtimetest tool URL:=https://github.com/opencontainers/runtime-tools DEPENDS:=@(aarch64||i386||i686||x86_64) oci-runtime-tool +tar endef define Package/oci-runtime-tests/description OCI (Open Container Initiative) runtime tools This package provides test cases as well as artifacts required to validate an OCI runtime. Best used in combination with a TAP consumer like 'node-tap', installable via npm. endef GO_PKG_BUILD_VARS += GO111MODULE=auto define Build/Prepare $(call Build/Prepare/Default) ifdef CONFIG_aarch64 $(eval $(call Download,busybox-static-armv8l)) ( \ mkdir -p $(PKG_BUILD_DIR)/rootfs-armv8l ;\ cd $(PKG_BUILD_DIR)/rootfs-armv8l ;\ $(TAR) xzf ../rootfs-amd64.tar.gz ;\ $(CP) $(DL_DIR)/busybox-$(BUSYBOX_STATIC_VERSION)-static-armv8l bin/busybox ;\ chmod 0755 bin/busybox ;\ $(TAR) czf ../rootfs-arm64.tar.gz . ;\ ) endif endef define Build/Compile $(call GoPackage/Build/Compile) $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) endef define Package/oci-runtime-tool/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/oci-runtime-tool $(1)/usr/bin endef define Package/oci-runtime-tests/install $(INSTALL_DIR) $(1)/usr/libexec/oci-runtime-test $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/runtimetest $(1)/usr/libexec/oci-runtime-test/ ( cd $(PKG_BUILD_DIR) ; $(FIND) ./validation/ -name *.go | grep -v util | \ xargs -I'%' -n 1 basename % .go | while read testbin; do \ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$$$${testbin} \ $(1)/usr/libexec/oci-runtime-test/$$$${testbin}.t ; \ done ) ifdef CONFIG_x86 $(INSTALL_DATA) $(PKG_BUILD_DIR)/rootfs-386.tar.gz $(1)/usr/libexec/oci-runtime-test ifdef CONFIG_x86_64 $(INSTALL_DATA) $(PKG_BUILD_DIR)/rootfs-amd64.tar.gz $(1)/usr/libexec/oci-runtime-test endif endif ifdef CONFIG_aarch64 $(INSTALL_DATA) $(PKG_BUILD_DIR)/rootfs-arm64.tar.gz $(1)/usr/libexec/oci-runtime-test endif endef $(eval $(call GoBinPackage,oci-runtime-tools)) $(eval $(call BuildPackage,oci-runtime-tool)) $(eval $(call BuildPackage,oci-runtime-tests))