summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Sapkin2025-12-28 15:22:41 +0000
committerRobert Marko2025-12-31 17:16:48 +0000
commit9b37b7185c18855f4e017ac573701cdcd92fbcd1 (patch)
tree75a9a79fdfe0d382fe36af9363a86aef6787c85f
parent5ed650acbfd9cfbfd6a381df7db060c9153bacfc (diff)
downloadopenwrt-9b37b7185c18855f4e017ac573701cdcd92fbcd1.tar.gz
build: provide virtual self in kmods
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>
-rw-r--r--include/kernel.mk10
-rw-r--r--include/package-pack.mk5
2 files changed, 13 insertions, 2 deletions
diff --git a/include/kernel.mk b/include/kernel.mk
index 7d09e90656..4f75033b45 100644
--- a/include/kernel.mk
+++ b/include/kernel.mk
@@ -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))
-
diff --git a/include/package-pack.mk b/include/package-pack.mk
index 853832d90f..15c06fab0b 100644
--- a/include/package-pack.mk
+++ b/include/package-pack.mk
@@ -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