Re: [OE-core] [PATCH 5/5] systemd: add RRECOMMENDS for weak dependencies, if enabled

Andre McCurdy
2020-12-11T20:55:41Z

On Thu, Dec 10, 2020 at 4:53 AM Luca Bocassi <luca.boccassi@gmail.com> wrote:
>
> From: Luca Boccassi <luca.boccassi@microsoft.com>
>
> Some libraries are now dlopen'ed and skipped at runtime if
> not available. Add them to the RRECOMMENDS list, to allow
> users to exclude them for smaller images even if generally
> enabled at build time.

This seems to imply that these options have some basic level of
functionality even when the corresponding shared library isn't found
at runtime. Is that right?

If there's no functionality at all without the corresponding shared
library then these should just be regular dependencies (and users who
need smaller images should disable via the PACKAGECONFIG rather than
leaving the PACKAGECONFIG enabled but then excluding the shared
library).

Note also that PACKAGECONFIG gives a way to express recommended
dependencies (the 5th argument).

https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#var-PACKAGECONFIG

> Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
> ---
> meta/recipes-core/systemd/systemd_247.1.bb | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/meta/recipes-core/systemd/systemd_247.1.bb b/meta/recipes-core/systemd/systemd_247.1.bb
> index f20e86d94b..951bffa23f 100644
> --- a/meta/recipes-core/systemd/systemd_247.1.bb
> +++ b/meta/recipes-core/systemd/systemd_247.1.bb
> @@ -603,6 +603,13 @@ RRECOMMENDS_${PN} += "systemd-extra-utils \
> systemd-conf \
> "
>
> +# Weak dlopen-style dependencies: if explicitly requested via PACKAGECONFIG, recommend them
> +RRECOMMENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'qrencode', 'qrencode', '', d)} \
> + ${@bb.utils.contains('PACKAGECONFIG', 'libidn', 'libidn', '', d)} \
> + ${@bb.utils.contains('PACKAGECONFIG', 'libidn2', 'libidn2', '', d)} \
> + ${@bb.utils.contains('PACKAGECONFIG', 'cryptsetup', 'cryptsetup', '', d)} \
> +"
> +
> INSANE_SKIP_${PN} += "dev-so libdir"
> INSANE_SKIP_${PN}-dbg += "libdir"
> INSANE_SKIP_${PN}-doc += " libdir"
> --
> 2.29.2
>
>
>
>