[1/1] linux-distro: add RPROVIDES for distro kernel packages

Message ID 20250312133955.3771936-1-felix.moessbauer@siemens.com
State Accepted, archived
Headers show
Series [1/1] linux-distro: add RPROVIDES for distro kernel packages | expand

Commit Message

Felix Moessbauer March 12, 2025, 1:39 p.m. UTC
When building a non-distro kernel, all generated packages are also
registered as RPROVIDES, so that downstream user can runtime depend on
them. This however was not implemented for the distro kernel dummy
packages.

We now add RPROVIDES for all distro kernel packages as well. As this
would lead to a lot of code duplication, we generalize the anonymous
python function a bit.

Co-developed-by: Christoph Steiger <christoph.steiger@siemens.com>
Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
 meta/recipes-kernel/linux/linux-distro.bb | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

Comments

Uladzimir Bely March 25, 2025, 4:56 p.m. UTC | #1
On Wed, 2025-03-12 at 14:39 +0100, 'Felix Moessbauer' via isar-users
wrote:
> When building a non-distro kernel, all generated packages are also
> registered as RPROVIDES, so that downstream user can runtime depend
> on
> them. This however was not implemented for the distro kernel dummy
> packages.
> 
> We now add RPROVIDES for all distro kernel packages as well. As this
> would lead to a lot of code duplication, we generalize the anonymous
> python function a bit.
> 
> Co-developed-by: Christoph Steiger <christoph.steiger@siemens.com>
> Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
> ---
>  meta/recipes-kernel/linux/linux-distro.bb | 19 ++++++++++++-------
>  1 file changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/meta/recipes-kernel/linux/linux-distro.bb
> b/meta/recipes-kernel/linux/linux-distro.bb
> index d4f6026d..ffe828f5 100644
> --- a/meta/recipes-kernel/linux/linux-distro.bb
> +++ b/meta/recipes-kernel/linux/linux-distro.bb
> @@ -10,14 +10,19 @@ python() {
>          return
>  
>      distro_kernels = d.getVar('DISTRO_KERNELS') or ""
> +    kernel_img_pkg = d.getVar('KERNEL_IMAGE_PKG')
> +    kernel_headers_pkg = d.getVar('KERNEL_HEADERS_PKG')
> +
>      for kernel in distro_kernels.split():
> -        d.appendVar('PROVIDES', ' linux-image-' + kernel)
> -        d.appendVar('PROVIDES', ' linux-headers-' + kernel)
> -        d.appendVar('PROVIDES', ' linux-kbuild-' + kernel)
> -    if d.getVar('KERNEL_IMAGE_PKG'):
> -        d.appendVar('PROVIDES', ' ' + d.getVar('KERNEL_IMAGE_PKG'))
> -    if d.getVar('KERNEL_HEADERS_PKG'):
> -        d.appendVar('PROVIDES', ' ' +
> d.getVar('KERNEL_HEADERS_PKG'))
> +        for prefix in ['linux-image', 'linux-headers', 'linux-
> kbuild']:
> +            d.appendVar('PROVIDES', ' {}-{}'.format(prefix, kernel))
> +            d.appendVar('RPROVIDES', ' {}-{}'.format(prefix,
> kernel))
> +    if kernel_img_pkg:
> +        d.appendVar('PROVIDES', ' ' + kernel_img_pkg)
> +        d.appendVar('RPROVIDES', ' ' + kernel_img_pkg)
> +    if kernel_headers_pkg:
> +        d.appendVar('PROVIDES', ' ' + kernel_headers_pkg)
> +        d.appendVar('RPROVIDES', ' ' + kernel_headers_pkg)
>  }
>  
>  inherit multiarch
> -- 
> 2.39.5

Applied to next, thanks.

Patch

diff --git a/meta/recipes-kernel/linux/linux-distro.bb b/meta/recipes-kernel/linux/linux-distro.bb
index d4f6026d..ffe828f5 100644
--- a/meta/recipes-kernel/linux/linux-distro.bb
+++ b/meta/recipes-kernel/linux/linux-distro.bb
@@ -10,14 +10,19 @@  python() {
         return
 
     distro_kernels = d.getVar('DISTRO_KERNELS') or ""
+    kernel_img_pkg = d.getVar('KERNEL_IMAGE_PKG')
+    kernel_headers_pkg = d.getVar('KERNEL_HEADERS_PKG')
+
     for kernel in distro_kernels.split():
-        d.appendVar('PROVIDES', ' linux-image-' + kernel)
-        d.appendVar('PROVIDES', ' linux-headers-' + kernel)
-        d.appendVar('PROVIDES', ' linux-kbuild-' + kernel)
-    if d.getVar('KERNEL_IMAGE_PKG'):
-        d.appendVar('PROVIDES', ' ' + d.getVar('KERNEL_IMAGE_PKG'))
-    if d.getVar('KERNEL_HEADERS_PKG'):
-        d.appendVar('PROVIDES', ' ' + d.getVar('KERNEL_HEADERS_PKG'))
+        for prefix in ['linux-image', 'linux-headers', 'linux-kbuild']:
+            d.appendVar('PROVIDES', ' {}-{}'.format(prefix, kernel))
+            d.appendVar('RPROVIDES', ' {}-{}'.format(prefix, kernel))
+    if kernel_img_pkg:
+        d.appendVar('PROVIDES', ' ' + kernel_img_pkg)
+        d.appendVar('RPROVIDES', ' ' + kernel_img_pkg)
+    if kernel_headers_pkg:
+        d.appendVar('PROVIDES', ' ' + kernel_headers_pkg)
+        d.appendVar('RPROVIDES', ' ' + kernel_headers_pkg)
 }
 
 inherit multiarch