diff options
| author | George Sapkin | 2026-01-06 01:50:37 +0000 |
|---|---|---|
| committer | Robert Marko | 2026-01-12 13:28:52 +0000 |
| commit | 470e030a5eae77e94192e0dd933d7b1b657f7b2c (patch) | |
| tree | fe4117c01e4cb731fad5e1b1d09d44eb167031c6 | |
| parent | 1dec4683f6a91cb0734e97186738b0ea413bb356 (diff) | |
| download | openwrt-470e030a5eae77e94192e0dd933d7b1b657f7b2c.tar.gz | |
build: add default priority to ABI-versioned packages
If a package has an ABI version defined, set priority to 10. The enables
packages with an ABI version to be installed by their base name instead
of a name and an ABI version, e.g.:
libfoo3, where 3 is the ABI version can be installed by just libfoo.
This affects manual installation only, as the dependency resolution
takes care of ABI versions.
Refactor apk priority logic into a helper define.
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
| -rw-r--r-- | include/package-pack.mk | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/include/package-pack.mk b/include/package-pack.mk index 3fcab2da02..723d23e201 100644 --- a/include/package-pack.mk +++ b/include/package-pack.mk @@ -245,6 +245,29 @@ $(strip ) endef +# Get apk provider priority +# +# - if a package is marked as a default variant, set it to 100. +# +# - if a package has an ABI version defined, set it to 10. +# The enables packages with an ABI version to be installed by their base name +# instead of a name and an ABI version, e.g.: +# libfoo3, where 3 is the ABI version can be installed by just libfoo. +# This affects manual installation only, as the dependency resolution takes +# care of ABI versions. +# +# - otherwise return nothing, i.e. package will have the default priority 0. +# +# 1: Default variant +# 2: ABI version +define GetProviderPriority +$(strip + $(if $(1),100, + $(if $(2),10) + ) +) +endef + ifneq ($(PKG_NAME),toolchain) define CheckDependencies @( \ @@ -384,6 +407,7 @@ endif Package/$(1)/PROVIDES := $$(filter-out $(1)$$(ABIV_$(1)),$$(Package/$(1)/PROVIDES)$$(if $$(ABIV_$(1)), $(1) $$(foreach provide,$$(Package/$(1)/PROVIDES),$$(provide)$$(ABIV_$(1))))) else Package/$(1)/PROVIDES := $$(call FormatProvides,$(1),$(VERSION),$(ABI_VERSION),$(PROVIDES)) + Package/$(1)/PRIORITY := $$(call GetProviderPriority,$(DEFAULT_VARIANT),$(ABI_VERSION)) endif $(_define) Package/$(1)/CONTROL @@ -577,7 +601,7 @@ else --info "url:$(URL)" \ --info "maintainer:$(MAINTAINER)" \ $$(if $$(Package/$(1)/PROVIDES),--info "provides:$$(Package/$(1)/PROVIDES)") \ - $(if $(DEFAULT_VARIANT),--info "provider-priority:100") \ + $$(if $$(Package/$(1)/PRIORITY),--info "provider-priority:$$(Package/$(1)/PRIORITY)") \ $$(APK_SCRIPTS_$(1)) \ --info "depends:$$(foreach depends,$$(subst $$(comma),$$(space),$$(subst $$(space),,$$(subst $$(paren_right),,$$(subst $$(paren_left),,$$(Package/$(1)/DEPENDS))))),$$(depends))" \ --files "$$(IDIR_$(1))" \ |