]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
build: provide virtual self in kmods
authorGeorge Sapkin <george@sapk.in>
Sun, 28 Dec 2025 15:22:41 +0000 (17:22 +0200)
committerRobert Marko <robimarko@gmail.com>
Wed, 31 Dec 2025 17:16:48 +0000 (18:16 +0100)
Add an implicit self-provide to kmods. 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.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
Signed-off-by: Robert Marko <robimarko@gmail.com>
include/kernel.mk
include/package-pack.mk

index 7d09e90656e4caabcaef880a9bfbd91bf5adb496..4f75033b455052128e7c59c010b04a1161fe39bf 100644 (file)
@@ -219,6 +219,15 @@ 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
@@ -306,4 +315,3 @@ kernel_patchver_ge=$(call kernel_version_cmp,-ge,$(KERNEL_PATCHVER),$(1))
 kernel_patchver_eq=$(call kernel_version_cmp,-eq,$(KERNEL_PATCHVER),$(1))
 kernel_patchver_le=$(call kernel_version_cmp,-le,$(KERNEL_PATCHVER),$(1))
 kernel_patchver_lt=$(call kernel_version_cmp,-lt,$(KERNEL_PATCHVER),$(1))
-
index 853832d90ffaba19aafcbe465162ef66d98e1644..15c06fab0bcb978de3492a8f6575f7d3597cfca8 100644 (file)
@@ -134,10 +134,13 @@ endef
 #
 # - apk doesn't like it when packages specify a redundant provide pointing to
 #   self. Filter it out, but keep virtual self provides, in the form of
-#   @${package_name}-any.
+#   @(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.
+#
 # 1: package name
 # 2: package version
 # 3: list of provides