From 49fc31903306c346fcda862800f40d5e94cff5b0 Mon Sep 17 00:00:00 2001 From: George Sapkin Date: Fri, 2 Jan 2026 17:07:52 +0200 Subject: [PATCH] build: remove default provider priority Remove default provider priority since packages are expected to explicitly declare virtual provides and set default variants. With default priority some package variants without PROVIDES and not marked as default end up with priority 0 and are not picked for installation. Before the change dnsmasq-dhcpv6 is selected for dnsmasq, because the former has higher priority: name selected from selectable list select_package: dnsmasq (requirers=1, autosel=1, iif=0, order_id=0x4000005f) consider dnsmasq-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0 prefer existing package choose as new provider consider dnsmasq-dhcpv6-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=1, installed=0 prefer highest declared provider priority choose as new provider consider dnsmasq-full-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=1, installed=0 prefer lowest available repository selecting: dnsmasq-dhcpv6-2.91-r2, available: 1 assign dnsmasq-dhcpv6 to dnsmasq-dhcpv6-2.91-r2 assign dnsmasq to dnsmasq-dhcpv6-2.91-r2 disqualify_package: dnsmasq-2.91-r2 (conflicting provides) disqualify_package: dnsmasq-full-2.91-r2 (conflicting provides) apply_constraint: libc apply_constraint: provider: libc-1.2.5-r5: 1 After the change dnsmasq is selected for dnsmasq based on lexicographical order: name selected from selectable list select_package: dnsmasq (requirers=1, autosel=1, iif=0, order_id=0x4000005f) consider dnsmasq-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0 prefer existing package choose as new provider consider dnsmasq-dhcpv6-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0 prefer lowest available repository consider dnsmasq-full-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0 prefer lowest available repository selecting: dnsmasq-2.91-r2, available: 1 assign dnsmasq to dnsmasq-2.91-r2 disqualify_package: dnsmasq-dhcpv6-2.91-r2 (conflicting provides) disqualify_package: dnsmasq-full-2.91-r2 (conflicting provides) apply_constraint: libc apply_constraint: provider: libc-1.2.5-r5: 1 Fixes: dea8397 ("include/package-pack: add default 'provider_priority' for APK packages") Signed-off-by: George Sapkin Link: https://github.com/openwrt/openwrt/pull/21369 Signed-off-by: Robert Marko --- include/package-pack.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/package-pack.mk b/include/package-pack.mk index 0c01112b27..c648ead53b 100644 --- a/include/package-pack.mk +++ b/include/package-pack.mk @@ -522,7 +522,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 $(PROVIDES),--info "provider-priority:1")) \ + $(if $(DEFAULT_VARIANT),--info "provider-priority:100") \ $$(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))" \