]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
package: include abiversion tag in package metadata 19082/head
authorEric Fahlgren <ericfahlgren@gmail.com>
Mon, 9 Jun 2025 23:59:13 +0000 (16:59 -0700)
committerRobert Marko <robimarko@gmail.com>
Sun, 22 Jun 2025 09:41:23 +0000 (11:41 +0200)
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>
include/package-pack.mk

index d784d0ac3bbe7da63db2d5b97c5ea9e9d173978a..925c4ca4c75c2c657f346b2266034c174b7921d0 100644 (file)
@@ -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)" \