[OE-core] [PATCH] glibc-locale: add runtime dependency on glibc

Khem Raj raj.khem at gmail.com
Mon Sep 11 23:04:07 UTC 2017


On Mon, Sep 11, 2017 at 10:05 AM, Martin Jansa <martin.jansa at gmail.com> wrote:
> * the libc.so.6 dependency is detected always:
>   $ grep FILERDEPENDS BUILD-*/pkgdata/qemux86/runtime/localedef
>   BUILD-bad/pkgdata/qemux86/runtime/localedef:FILERDEPENDSFLIST_localedef: /usr/bin/localedef
>   BUILD-bad/pkgdata/qemux86/runtime/localedef:FILERDEPENDS_/usr/bin/localedef_localedef: libc.so.6(GLIBC_2.15) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.0) libc.so.6
>   BUILD-ok/pkgdata/qemux86/runtime/localedef:FILERDEPENDSFLIST_localedef: /usr/bin/localedef
>   BUILD-ok/pkgdata/qemux86/runtime/localedef:FILERDEPENDS_/usr/bin/localedef_localedef: libc.so.6(GLIBC_2.15) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.0) libc.so.6
>
> * but in some builds the glibc dependency isn't built soon enough:
>   $ diff -uNr BUILD-*/pkgdata/qemux86/runtime/localedef
>   --- BUILD-bad/pkgdata/qemux86/runtime/localedef 2017-09-02 21:17:50.000000000 +0000
>   +++ BUILD-ok/pkgdata/qemux86/runtime/localedef  2017-09-11 10:15:49.954381592 +0000
>   @@ -6,6 +6,7 @@
>    LICENSE: GPLv2 & LGPLv2.1
>    DESCRIPTION_localedef: glibc: compile locale definition files
>    SUMMARY: Locale data from glibc
>   +RDEPENDS_localedef: glibc (>= 2.26)
>    SECTION: base
>    PKG_localedef: localedef
>    FILES_localedef: /usr/bin/localedef
>   and the build fails with QA issues:
>   http://errors.yoctoproject.org/Errors/Details/155529/
>
>   ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.0), but no providers found in RDEPENDS_localedef? [file-rdeps]
>   ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.15), but no providers found in RDEPENDS_localedef? [file-rdeps]
>   ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.3), but no providers found in RDEPENDS_localedef? [file-rdeps]
>   ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.2), but no providers found in RDEPENDS_localedef? [file-rdeps]
>   ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.1), but no providers found in RDEPENDS_localedef? [file-rdeps]
>   ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6, but no providers found in RDEPENDS_localedef? [file-rdeps]
>   ERROR: QA run found fatal errors. Please consider fixing them.
>
> * easily reproducible with empty TMPDIR and:
>   bitbake -c cleansstate glibc-locale && bitbake -c package_qa glibc-locale
>
> * reproducible with Yocto 2.2 Morty as well, with slightly different
>   error message:
>   ERROR: glibc-locale-2.24-r0 do_package_qa: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.4), but no providers found in RDEPENDS_localedef? [file-rdeps]
>
> * with Yocto 2.3 Pyro it's not reproducible by default, because rpmdeps
>   aren't enabled to populate FILERDEPENDS, but once you add:
>   ENABLE_RPM_FILEDEPS_FOR_PYRO = "1"
>   similar QA issue is shown as well:
>   ERROR: glibc-locale-2.25-r0 do_package_qa: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.15), but no providers found in RDEPENDS_localedef? [file-rdeps]
>   ERROR: glibc-locale-2.25-r0 do_package_qa: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.4), but no providers found in RDEPENDS_localedef? [file-rdeps]
>   ERROR: glibc-locale-2.25-r0 do_package_qa: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6, but no providers found in RDEPENDS_localedef? [file-rdeps]
>
> Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
> ---
>  meta/recipes-core/glibc/glibc-locale.inc | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/meta/recipes-core/glibc/glibc-locale.inc b/meta/recipes-core/glibc/glibc-locale.inc
> index 70e2b3a16b..75ababea68 100644
> --- a/meta/recipes-core/glibc/glibc-locale.inc
> +++ b/meta/recipes-core/glibc/glibc-locale.inc
> @@ -12,6 +12,10 @@ BINUTILSDEP = "virtual/${MLPREFIX}${TARGET_PREFIX}binutils:do_populate_sysroot"
>  BINUTILSDEP_class-nativesdk = "virtual/${TARGET_PREFIX}binutils-crosssdk:do_populate_sysroot"
>  do_package[depends] += "${BINUTILSDEP}"
>
> +# localedef links with libc.so and glibc-collateral.incinhibits all default deps
> +# cannot add virtual/libc to DEPENDS, because it would conflict with libc-initial in RSS
> +RDEPENDS_localedef += "glibc"
> +

looks good to me.



More information about the Openembedded-core mailing list