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