glibc-locale: add runtime dependency on glibc
PATCH 1/1 glibc-locale: add runtime dependency on glibc
* 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]
--- meta/recipes-core/glibc/glibc-locale.inc | 4 ++++ 1 file changed, 4 insertions(+)
meta/recipes-core/glibc/glibc-locale.inc +4 -0
@@ -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" + # Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION # is set. The idea is to avoid running localedef on the target (at first boot) # to decrease initial boot time and avoid localedef being killed by the OOM
Signature · 1 line
2.14.1
Quoted 55 lines · Martin Jansa
* 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/localedefcontained in package localedef requires libc.so.6(GLIBC_2.0), but no providers found inRDEPENDS_localedef? [file-rdeps]
ERROR: QA Issue:/usr/bin/localedefcontained in package localedef requires libc.so.6(GLIBC_2.15), but no providers found inRDEPENDS_localedef? [file-rdeps]
ERROR: QA Issue:/usr/bin/localedefcontained in package localedef requires libc.so.6(GLIBC_2.3), but no providers found inRDEPENDS_localedef? [file-rdeps]
ERROR: QA Issue:/usr/bin/localedefcontained in package localedef requires libc.so.6(GLIBC_2.2), but no providers found inRDEPENDS_localedef? [file-rdeps]
ERROR: QA Issue:/usr/bin/localedefcontained in package localedef requires libc.so.6(GLIBC_2.1), but no providers found inRDEPENDS_localedef? [file-rdeps]
ERROR: QA Issue:/usr/bin/localedefcontained in package localedef requires libc.so.6, but no providers found inRDEPENDS_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 -cpackage_qaglibc-locale* reproducible with Yocto 2.2 Morty as well, with slightly different
error message:
ERROR: glibc-locale-2.24-r0do_package_qa: QA Issue:/usr/bin/localedefcontained in package localedef requires libc.so.6(GLIBC_2.4), but no providers found inRDEPENDS_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-r0do_package_qa: QA Issue:/usr/bin/localedefcontained in package localedef requires libc.so.6(GLIBC_2.15), but no providers found inRDEPENDS_localedef? [file-rdeps]
ERROR: glibc-locale-2.25-r0do_package_qa: QA Issue:/usr/bin/localedefcontained in package localedef requires libc.so.6(GLIBC_2.4), but no providers found inRDEPENDS_localedef? [file-rdeps]
ERROR: glibc-locale-2.25-r0do_package_qa: QA Issue:/usr/bin/localedefcontained in package localedef requires libc.so.6, but no providers found inRDEPENDS_localedef? [file-rdeps]Signed-off-by Martin Jansa <[email protected]>--- meta/recipes-core/glibc/glibc-locale.inc | 4 ++++ 1 file changed, 4 insertions(+)meta/recipes-core/glibc/glibc-locale.inc +0
-0
meta/recipes-core/glibc/glibc-locale.inc BINUTILSDEP = "virtual/${MLPREFIX}${TARGET_PREFIX}binutils:do_populate_sysroot" · line 18
Quoted 7 lines
meta/recipes-core/glibc/glibc-locale.inc +4
-0@@ -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.