]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
build: fix implicit self-provides
authorGeorge Sapkin <george@sapk.in>
Mon, 5 Jan 2026 02:03:00 +0000 (04:03 +0200)
committerRobert Marko <robimarko@gmail.com>
Mon, 12 Jan 2026 13:28:52 +0000 (14:28 +0100)
Fix setting implicit self-provides for packages when they don't have any
PROVIDES specified.

Remove redundant self-provide for kmods, since kmods are packages and
will have a self-provide added already.

Fixes: 5ed650a ("build: add support for virtual provides")
Fixes: 9b37b71 ("build: provide virtual self in kmods")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
include/kernel.mk
include/package-pack.mk
include/package.mk

index 4f75033b455052128e7c59c010b04a1161fe39bf..abf2651330548a8508a855c4f71df8a7a5791959 100644 (file)
@@ -219,15 +219,6 @@ define KernelPackage
     $(call KernelPackage/$(1))
     $(call KernelPackage/$(1)/$(BOARD))
     $(call KernelPackage/$(1)/$(BOARD)/$(SUBTARGET))
-
-    # Add an implicit self-provide. apk can't handle self provides, be it
-    # versioned or virtual, so opt for a prefix and a suffix instead. Package
-    # name without a prefix/suffix is too generic and might conflict with other
-    # packages, e.g. wireguard. This allows several variants to provide the same
-    # virtual package without adding extra provides to the default one, e.g.
-    # r8169 implicitly provides kmod-r8169-any and is marked as default, so
-    # r8125 can explicitly provide @kmod-r8169-any as well.
-    PROVIDES+=@kmod-$(1)-any
   endef
 
   ifdef KernelPackage/$(1)/conffiles
index ee71c0367e047e64e3a63ba9d0de532152bcb654..6a80d3d9709a2d116720dd70215bd3e5ebc8a9e0 100644 (file)
@@ -195,10 +195,9 @@ endef
 #   self. Filter it out, but keep virtual self provides, in the form of
 #   @(kmod-)?${package_name}-any.
 #
-# - Packages implicitly add a virtual @${package_name}-any provide in Package.
-#
-# - kmods implicitly add a virtual @kmod-${package_name}-any provide in
-#   KernelPackage.
+# - Packages implicitly add a virtual @${package_name}-any provide in Package,
+#   which implies that kmods, which are also packages, will have a virtual
+#   @kmod-${package_name}-any provide.
 #
 # - Aside from the two aforementioned implicit provides, packages are expected
 #   to manage their provides themselves.
index 087e374ea929799b55306385833c269e172ea085..a8278d067209999f68e5f29001eaba7d97f7ff4b 100644 (file)
@@ -337,7 +337,7 @@ define BuildPackage
   # variants to provide the same virtual package without adding extra provides
   # to the default one, e.g. wget implicitly provides wget-any and is marked as
   # default, so wget-ssl can explicitly provide @wget-any as well.
-  PROVIDES+=@$(1)-any
+  $(eval PROVIDES:=$(strip @$(1)-any $(PROVIDES)))
 
 ifdef DESCRIPTION
 $$(error DESCRIPTION:= is obsolete, use Package/PKG_NAME/description)