On Wed, 2024-01-10 at 21:03 +0100, Alexander Kanavin wrote:
> shadow 4.14.x adds a number of libraries it dynamically links with
> (md, bsd, attr). This causes troubles in setscene tasks where
> shadow executables are used (such as useradd), as pulling in
> the needed dynamic libraries needs unpleasant special-casing.
> 
> Signed-off-by: Alexander Kanavin <a...@linutronix.de>
> 
> ---
> v2: patch only Makefiles that produce executables and libshadow.a
> (that executables all statically link with), do not patch libsubid/Makefile,
> as patching in .a linking can clash with producing dynamic libraries.
> libsubid is used only in getsubids executable, which is not used in
> setscene user management (or anywhere else from what I can see).
> ---
>  meta/conf/distro/include/no-static-libs.inc | 5 +++++
>  meta/recipes-extended/shadow/shadow.inc     | 9 +++++++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/meta/conf/distro/include/no-static-libs.inc 
> b/meta/conf/distro/include/no-static-libs.inc
> index 75359928a14..8898d53d756 100644
> --- a/meta/conf/distro/include/no-static-libs.inc
> +++ b/meta/conf/distro/include/no-static-libs.inc
> @@ -21,6 +21,11 @@ DISABLE_STATIC:pn-libusb1-native = ""
>  # needed by rust
>  DISABLE_STATIC:pn-musl = ""
>  
> +# needed by shadow-native to build static executables, particularly useradd
> +DISABLE_STATIC:pn-attr-native = ""
> +DISABLE_STATIC:pn-libbsd-native = ""
> +DISABLE_STATIC:pn-libmd-native = ""
> +
>  EXTRA_OECONF:append = "${DISABLE_STATIC}"
>  
>  EXTRA_OECMAKE:append:pn-libical = " -DSHARED_ONLY=True"
> diff --git a/meta/recipes-extended/shadow/shadow.inc 
> b/meta/recipes-extended/shadow/shadow.inc
> index c024746d4ff..e16d3f010d2 100644
> --- a/meta/recipes-extended/shadow/shadow.inc
> +++ b/meta/recipes-extended/shadow/shadow.inc
> @@ -47,6 +47,15 @@ EXTRA_OECONF += "--without-libcrack \
>  
>  CFLAGS:append:libc-musl = " -DLIBBSD_OVERLAY"
>  
> +# Force static linking of utilities so we can use from the sysroot/sstate 
> for useradd
> +# without worrying about the dependency libraries being available
> +do_compile:prepend:class-native () {
> +     sed -i -e 's#\(LIBS.*\)-lbsd#\1 ${STAGING_LIBDIR}/libbsd.a 
> ${STAGING_LIBDIR}/libmd.a#g' \
> +            -e 's#\(LIBBSD.*\)-lbsd#\1 ${STAGING_LIBDIR}/libbsd.a 
> ${STAGING_LIBDIR}/libmd.a#g' \
> +            -e 's#\(LIBATTR.*\)-lattr#\1 ${STAGING_LIBDIR}/libattr.a#g' \
> +               ${B}/lib/Makefile ${B}/src/Makefile
> +}
> +
>  NSCDOPT = ""
>  NSCDOPT:class-native = "--without-nscd"
>  NSCDOPT:class-nativesdk = "--without-nscd"

There is still something not right:

https://autobuilder.yoctoproject.org/typhoon/#/builders/83/builds/6440

:(

Cheers,

Richard

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193536): 
https://lists.openembedded.org/g/openembedded-core/message/193536
Mute This Topic: https://lists.openembedded.org/mt/103648583/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to