summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Fahlgren2025-06-09 23:59:13 +0000
committerRobert Marko2025-06-22 09:41:23 +0000
commita61a2a9291eed08d735a499828f4f2c7f7744a45 (patch)
tree6a69000b5be8f9b5b2e78a4c455a15caaa2aabfb
parenta944a6d6b1e1f4db635f76e481841260739b7860 (diff)
downloadopenwrt-a61a2a9291eed08d735a499828f4f2c7f7744a45.tar.gz
package: include abiversion tag in package metadata
OpenWrt library packages are often named using their ABI version, for example 'libubus20250102'. Updates that cause the ABI version to change result in changes to the package name. This makes it impossible for downstream tools to determine when a package update is available without further information. The opkg package manager stores the ABI version as part of its package metadata in the ABIVersion field. This makes extraction of the canonical name of the package possible, allowing various versions of a package to be associated with one another, their versions or build dates compared. We add a custom tag 'openwrt:abiversion=<ABI version>' to the apk v3 package metadata, restoring the status quo and making it functionally backwards compatible with opkg (the tag format was selected per the guidelines in the apk-tools documentation). Links: https://gitlab.alpinelinux.org/alpine/apk-tools/-/commit/1925de55beef8859c987f72c3b2727d756296ddb Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com> Link: https://github.com/openwrt/openwrt/pull/19082 Signed-off-by: Robert Marko <robimarko@gmail.com>
-rw-r--r--include/package-pack.mk1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/package-pack.mk b/include/package-pack.mk
index d784d0ac3b..925c4ca4c7 100644
--- a/include/package-pack.mk
+++ b/include/package-pack.mk
@@ -376,6 +376,7 @@ else
$(FAKEROOT) $(STAGING_DIR_HOST)/bin/apk mkpkg \
--info "name:$(1)$$(ABIV_$(1))" \
--info "version:$(VERSION)" \
+ $$(if $$(ABIV_$(1)),--info "tags:openwrt:abiversion=$$(ABIV_$(1))") \
--info "description:$$(call description_escape,$$(strip $$(Package/$(1)/description)))" \
$(if $(findstring all,$(PKGARCH)),--info "arch:noarch",--info "arch:$(PKGARCH)") \
--info "license:$(LICENSE)" \