| Message ID | 20251110110626.309753-1-amikan@ilbers.de |
|---|---|
| State | Superseded |
| Headers | show |
| Series | linux-custom: Sync provides value with build profiles | expand |
Hi,
This could be simplified down to something like this which would avoid
creating new functions and be consistent with other places in
linux-custom.inc:
RECIPE_PROVIDES:append = " ${@ bb.utils.contains('DEB_BUILD_PROFILES',
'nolibcdev', '', 'linux-libc-dev linux-libc-dev-${DISTRO_ARCH}-cross',
d) }"
What do you think?
Cheers,
Isaac
On 10/11/2025 12:06, Anton Mikanovich wrote:
> Packages linux-libc-dev and linux-libc-dev-${DISTRO_ARCH}-cross were
> added to PROVIDES variable unconditionally, while those packages are
> not really built until KERNEL_LIBC_DEV_DEPLOY enabled (which is set to
> "0" by default).
>
> Add libc-dev packages to PROVIDES only if there are no 'nolibcdev'
> Debian build profile used so PROVIDES will be always in sync with real
> set of packages being built.
>
> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
> ---
> meta/recipes-kernel/linux/linux-custom.inc | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc
> index f2892921..cc12725b 100644
> --- a/meta/recipes-kernel/linux/linux-custom.inc
> +++ b/meta/recipes-kernel/linux/linux-custom.inc
> @@ -144,13 +144,24 @@ RECIPE_PROVIDES:class-kbuildtarget = " \
> DEPENDS:class-kbuildtarget = "${BPN}"
> ISAR_CROSS_COMPILE:class-kbuildtarget = "0"
>
> +# Provide linux-libc-dev packages unless nolibcdev profile used
> +def get_libc_dev_provides(d):
> + additional_profiles = get_additional_build_profiles(d)
> + if 'nolibcdev' not in additional_profiles:
> + return d.getVar("RECIPE_PROVIDES_LIBC_DEV")
> + return ""
> +
> +RECIPE_PROVIDES_LIBC_DEV = " \
> + linux-libc-dev \
> + linux-libc-dev-${DISTRO_ARCH}-cross \
> +"
> +
> # Make bitbake know we will be producing linux-image and linux-headers packages
> # Also make it know about other packages from control
> RECIPE_PROVIDES = " \
> linux-image-${KERNEL_NAME_PROVIDED} \
> linux-headers-${KERNEL_NAME_PROVIDED} \
> - linux-libc-dev \
> - linux-libc-dev-${DISTRO_ARCH}-cross \
> + ${@get_libc_dev_provides(d)} \
> linux-image-${KERNEL_NAME_PROVIDED}-dbg \
> linux-kbuild-${KERNEL_NAME_PROVIDED} \
> ${BPN}-pseudo-native \
10/11/2025 13:20, Isaac True wrote: > Hi, > > This could be simplified down to something like this which would avoid > creating new functions and be consistent with other places in > linux-custom.inc: > > RECIPE_PROVIDES:append = " ${@ bb.utils.contains('DEB_BUILD_PROFILES', > 'nolibcdev', '', 'linux-libc-dev linux-libc-dev-${DISTRO_ARCH}-cross', > d) }" > > What do you think? > > Cheers, > Isaac Hello Isaac, The motivation was to keep the same format of deps declare as previously (multi-line list), so it will be easier to maintain in the future. So maybe something hybrid should be better, like: RECIPE_PROVIDES:append = " ${@ bb.utils.contains('DEB_BUILD_PROFILES', 'nolibcdev', '', d.getVar('RECIPE_PROVIDES_LIBC_DEV'), d) }" I'm also not happy with RECIPE_PROVIDES_LIBC_DEV naming, but didn't came up with better one.
On 10.11.25 12:39, Anton Mikanovich wrote: > 10/11/2025 13:20, Isaac True wrote: >> Hi, >> >> This could be simplified down to something like this which would avoid >> creating new functions and be consistent with other places in linux- >> custom.inc: >> >> RECIPE_PROVIDES:append = " ${@ bb.utils.contains('DEB_BUILD_PROFILES', >> 'nolibcdev', '', 'linux-libc-dev linux-libc-dev-${DISTRO_ARCH}-cross', >> d) }" >> >> What do you think? >> >> Cheers, >> Isaac > Hello Isaac, > > The motivation was to keep the same format of deps declare as previously > (multi-line list), so it will be easier to maintain in the future. > So maybe something hybrid should be better, like: > > RECIPE_PROVIDES:append = " ${@ bb.utils.contains('DEB_BUILD_PROFILES', > 'nolibcdev', '', d.getVar('RECIPE_PROVIDES_LIBC_DEV'), d) }" > > I'm also not happy with RECIPE_PROVIDES_LIBC_DEV naming, but didn't came up > with better one. > OVERRIDES:append = "${@bb.utils.contains('DEB_BUILD_PROFILES', 'nolibcdev', '', ''libcdev')}" RECIPE_PROVIDES:append:libcdev = " \ linux-libc-dev \ linux-libc-dev-${DISTRO_ARCH}-cross" That would be truly aligned with the other bits in the file. Jan
diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc index f2892921..cc12725b 100644 --- a/meta/recipes-kernel/linux/linux-custom.inc +++ b/meta/recipes-kernel/linux/linux-custom.inc @@ -144,13 +144,24 @@ RECIPE_PROVIDES:class-kbuildtarget = " \ DEPENDS:class-kbuildtarget = "${BPN}" ISAR_CROSS_COMPILE:class-kbuildtarget = "0" +# Provide linux-libc-dev packages unless nolibcdev profile used +def get_libc_dev_provides(d): + additional_profiles = get_additional_build_profiles(d) + if 'nolibcdev' not in additional_profiles: + return d.getVar("RECIPE_PROVIDES_LIBC_DEV") + return "" + +RECIPE_PROVIDES_LIBC_DEV = " \ + linux-libc-dev \ + linux-libc-dev-${DISTRO_ARCH}-cross \ +" + # Make bitbake know we will be producing linux-image and linux-headers packages # Also make it know about other packages from control RECIPE_PROVIDES = " \ linux-image-${KERNEL_NAME_PROVIDED} \ linux-headers-${KERNEL_NAME_PROVIDED} \ - linux-libc-dev \ - linux-libc-dev-${DISTRO_ARCH}-cross \ + ${@get_libc_dev_provides(d)} \ linux-image-${KERNEL_NAME_PROVIDED}-dbg \ linux-kbuild-${KERNEL_NAME_PROVIDED} \ ${BPN}-pseudo-native \
Packages linux-libc-dev and linux-libc-dev-${DISTRO_ARCH}-cross were added to PROVIDES variable unconditionally, while those packages are not really built until KERNEL_LIBC_DEV_DEPLOY enabled (which is set to "0" by default). Add libc-dev packages to PROVIDES only if there are no 'nolibcdev' Debian build profile used so PROVIDES will be always in sync with real set of packages being built. Signed-off-by: Anton Mikanovich <amikan@ilbers.de> --- meta/recipes-kernel/linux/linux-custom.inc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)