Files
Daniel Golle c316c01936 oci-runtime-tools: report the real version string
main.version was linked to PKG_SOURCE_VERSION, the upstream commit
hash, rather than PKG_VERSION, the human-readable string everything
else (the tarball name, the package version, CI's own version probe)
actually means by "version". oci-runtime-tool --version therefore
printed the commit hash twice ("<hash>, commit: <hash>") and never
the string 1.3.0.20260316, which is what CI's generic runtime test
greps stdout for, so the check failed on every push regardless of
this PR's actual content.

gitCommit stays on PKG_SOURCE_VERSION, since that is genuinely what
it is; only version was wrong.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-23 23:37:55 +01:00

128 lines
3.9 KiB
Makefile

include $(TOPDIR)/rules.mk
PKG_NAME:=oci-runtime-tools
PKG_VERSION:=1.3.0.20260316
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:=8a4db579f5c88af5a0d036fad34bddc9c1f703f3
PKG_MIRROR_HASH:=9a7eb014afbef68a9e51ab05b363064984e24b522aca38ab12e108f4467a177c
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
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_VERSION)
BUSYBOX_STATIC_VERSION:=1.31.0
ifdef CONFIG_i386
ROOTFS_ARCHIVE:=rootfs-386.tar.gz
endif
ifdef CONFIG_i686
ROOTFS_ARCHIVE:=rootfs-386.tar.gz
endif
ifdef CONFIG_x86_64
ROOTFS_ARCHIVE:=rootfs-amd64.tar.gz
endif
ifdef CONFIG_aarch64
ROOTFS_ARCHIVE:=rootfs-arm64.tar.gz
endif
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 +unshare
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)
$(GO_GENERAL_BUILD_CONFIG_VARS) \
$(GO_PKG_BUILD_CONFIG_VARS) \
GO_BUILD_PKG="$(GO_PKG)cmd/runtimetest" \
$(GO_PKG_VARS) \
CGO_ENABLED=0 \
$(SHELL) $(GO_INCLUDE_DIR)golang-build.sh build \
-v -buildvcs=false -trimpath -tags "netgo osusergo" \
-ldflags "$(patsubst %,-X %,$(GO_PKG_LDFLAGS_X))"
$(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 )
$(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ROOTFS_ARCHIVE) $(1)/usr/libexec/oci-runtime-test
endef
$(eval $(call GoBinPackage,oci-runtime-tools))
$(eval $(call BuildPackage,oci-runtime-tool))
$(eval $(call BuildPackage,oci-runtime-tests))