<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>I was checking my builds and here is what I've found.</div><div><br></div>The dependency on virtual/libc-locale is correctly shown in bitbake -e glib-2.0.</div><div dir="ltr"><br></div><div>The glibc-locale is selected as provider for these as expected:</div><div><br></div><div>bitbake -v -v -v glib-2.0</div><div>...</div><div><div>NOTE: selecting glibc-locale to satisfy virtual/libc-locale due to PREFERRED_PROVIDERS</div><div>NOTE: selecting glibc to satisfy virtual/libc due to PREFERRED_PROVIDERS</div><div>NOTE: selecting pkgconfig-native to satisfy pkgconfig-native due to PREFERRED_PROVIDERS</div><div>NOTE: selecting glibc-locale to satisfy runtime locale-base-es-es due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime locale-base-fa-ir due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime locale-base-de-de due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime glibc-gconv-iso8859-15 due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime glibc-localedata-translit-cjk-variants due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime glibc-gconv-cp1255 due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime glibc-charmap-invariant due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime glibc-charmap-utf-8 due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime glibc-gconv-utf-32 due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime glibc-gconv-utf-16 due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime locale-base-en-gb due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime glibc-charmap-cp1255 due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime locale-base-ru-ru due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime locale-base-tr-tr due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime locale-base-lt-lt due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime locale-base-ja-jp.euc-jp due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime locale-base-hr-hr due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime locale-base-fr-fr due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime glibc-gconv-utf-7 due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime glibc-gconv-euc-jp due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime glibc-gconv-iso8859-1 due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div><div>NOTE: selecting glibc-locale to satisfy runtime locale-base-el-gr due to PREFERRED_PROVIDER_virtual/libc-locale = glibc-locale</div></div><div><br></div><div>But then insane.bbclass doesn't find rdep_data with "rdep_data = oe.packagedata.read_subpkgdata(rdepend, d)", because there is locale-base-* only for en-us in our build:</div><div><br></div><div><div>$ ls pkgdata/qemux86/runtime/locale-base-*</div><div>pkgdata/qemux86/runtime/locale-base-en-us pkgdata/qemux86/runtime/locale-base-en-us.packaged</div></div><div><br></div><div>Which leads to:</div><div>GLIBC_GENERATE_LOCALES="en_US.UTF-8"<br></div><div>set in our builds.</div><div><br></div><div>I'm sorry for noise, I wish it would be more obvious, especially because there was still one more mystery with bash recipe which has:</div><div>RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-fr-fr locale-base-de-de"<br></div><div>and doesn't trigger the QA errors in our builds, and I've discovered that I've found about this long time ago and added work around in out bash bbappend:</div><div><br></div><div><div># We need to revert changes from</div><div># <a href="http://git.openembedded.org/openembedded-core/commit/?h=rocko&id=70e544452b6825686f06484d994936ded677825f">http://git.openembedded.org/openembedded-core/commit/?h=rocko&id=70e544452b6825686f06484d994936ded677825f</a></div><div># because as described in:</div><div># <a href="http://lists.openembedded.org/pipermail/openembedded-commits/2017-November/215520.html">http://lists.openembedded.org/pipermail/openembedded-commits/2017-November/215520.html</a></div><div># it doesn't work when GLIBC_GENERATE_LOCALES are restricted like they are in our builds:</div><div># meta-distro1/conf/distro/include/distro1-toolchain.inc:GLIBC_GENERATE_LOCALES = "en_US.UTF-8"</div><div># meta-distro2/conf/distro/include/distro2-toolchain.inc:GLIBC_GENERATE_LOCALES = "en_US.UTF-8"</div><div>RDEPENDS_${PN}-ptest_remove_libc-glibc = "locale-base-fr-fr locale-base-de-de"</div></div><div><br></div><div>So clearly a year is too long for my memory to remember tweaks like this especially when bitbake -e doesn't show them (more about that bellow).</div><div><br></div><div>Maybe we should improve the comment in meta/conf/local.conf.sample.extended to explain possible issues with ptest when GLIBC_GENERATE_LOCALES doesn't include certain locales? Now there is only this paragraph:</div><div><br></div><div><div># Set GLIBC_GENERATE_LOCALES to the locales you wish to generate should you not</div><div># wish to perform the time-consuming step of generating all LIBC locales.</div><div># NOTE: If removing en_US.UTF-8 you will also need to uncomment, and set</div><div># appropriate value for IMAGE_LINGUAS.</div><div># WARNING: this may break localisation!</div><div>#GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"</div><div>#IMAGE_LINGUAS ?= "en-gb"</div></div><div><br></div><div>I'll send patch for that.</div><div><br></div><div>There is locale-base-fr-fr listed twice in glib.inc, I'll send patch for that as well.</div><div><br></div><div>I wonder why locale-base isn't shown at all in bitbake -e bash with my bbappend removing the dependency:</div><div><br></div><div><div># $RDEPENDS_bash-ptest [3 operations]</div><div># rename from RDEPENDS_${PN}-ptest data.py:116 [expandKeys]</div><div># "make"</div><div># override[class-native]:rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div># ""</div><div># override[class-nativesdk]:rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div># ""</div><div># pre-expansion value:</div><div># "make"</div><div>RDEPENDS_bash-ptest="make"</div></div><div><br></div><div>There isn't any history about RDEPENDS_${PN}-ptest before the rename.</div><div><br></div><div><div>$ grep RDEPENDS.*ptest env.bash</div><div># override[bash-ptest]:rename from RDEPENDS_${PN}-ptest data.py:116 [expandKeys]</div><div># override[bash-ptest_class-native]:rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div># override[bash-ptest_class-nativesdk]:rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div># $RDEPENDS_bash-ptest [3 operations]</div><div># rename from RDEPENDS_${PN}-ptest data.py:116 [expandKeys]</div><div># override[class-native]:rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div># override[class-nativesdk]:rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div>RDEPENDS_bash-ptest="make"</div><div># $RDEPENDS_bash-ptest_class-native</div><div># rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div>RDEPENDS_bash-ptest_class-native=""</div><div># $RDEPENDS_bash-ptest_class-nativesdk</div><div># rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div>RDEPENDS_bash-ptest_class-nativesdk=""</div><div><br></div><div>$ grep locale-base env.bash</div></div><div>$</div><div><br></div><div>And in the build without the bbappend:</div><div><br></div><div><div># $RDEPENDS_bash-ptest [3 operations]</div><div># rename from RDEPENDS_${PN}-ptest data.py:116 [expandKeys]</div><div># " make"</div><div># override[class-native]:rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div># ""</div><div># override[class-nativesdk]:rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div># ""</div><div># pre-expansion value:</div><div># " make locale-base-fr-fr locale-base-de-de"</div><div>RDEPENDS_bash-ptest=" make locale-base-fr-fr locale-base-de-de"</div></div><div><br></div><div>but also without the RDEPENDS_${PN}-ptest history:</div><div><br></div><div>$ grep RDEPENDS.*ptest env.bash<br></div><div><div># override[bash-ptest]:rename from RDEPENDS_${PN}-ptest data.py:116 [expandKeys]</div><div># override[bash-ptest_class-native]:rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div># override[bash-ptest_class-nativesdk]:rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div># $RDEPENDS_bash-ptest [3 operations]</div><div># rename from RDEPENDS_${PN}-ptest data.py:116 [expandKeys]</div><div># override[class-native]:rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div># override[class-nativesdk]:rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div>RDEPENDS_bash-ptest=" make locale-base-fr-fr locale-base-de-de"</div><div># $RDEPENDS_bash-ptest_class-native</div><div># rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div>RDEPENDS_bash-ptest_class-native=""</div><div># $RDEPENDS_bash-ptest_class-nativesdk</div><div># rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div>RDEPENDS_bash-ptest_class-nativesdk=""</div></div><div><div><br></div><div>$ grep locale-base env.bash</div><div># " make locale-base-fr-fr locale-base-de-de"</div><div>RDEPENDS_bash-ptest=" make locale-base-fr-fr locale-base-de-de"</div></div><div><br></div><div>The same with glib-2.0:</div><div><div># $RDEPENDS_glib-2.0-ptest [3 operations]</div><div># rename from RDEPENDS_${PN}-ptest data.py:116 [expandKeys]</div><div># " gnome-desktop-testing dbus gnome-desktop-testing tzdata tzdata-americas tzdata-asia tzdata-europe tzdata-posix shared-mime-info "</div><div># override[class-native]:rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div># ""</div><div># override[class-nativesdk]:rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div># ""</div><div># pre-expansion value:</div><div># " gnome-desktop-testing dbus gnome-desktop-testing tzdata tzdata-americas tzdata-asia tzdata-europe tzdata-posix shared-mime-info glibc-gconv-utf-16 glibc-charmap-utf-8 glibc-gconv-cp1255 glibc-charmap-cp1255 glibc-gconv-utf-32 glibc-gconv-utf-7 glibc-gconv-euc-jp glibc-gconv-iso8859-1 glibc-gconv-iso8859-15 glibc-charmap-invariant glibc-localedata-translit-cjk-variants locale-base-tr-tr locale-base-lt-lt locale-base-ja-jp.euc-jp locale-base-fa-ir locale-base-ru-ru locale-base-de-de locale-base-hr-hr locale-base-el-gr locale-base-fr-fr locale-base-fr-fr locale-base-es-es locale-base-en-gb "</div><div>RDEPENDS_glib-2.0-ptest=" gnome-desktop-testing dbus gnome-desktop-testing tzdata tzdata-americas tzdata-asia tzdata-europe tzdata-posix shared-mime-info glibc-gconv-utf-16 glibc-charmap-utf-8 glibc-gconv-cp1255 glibc-charmap-cp1255 glibc-gconv-utf-32 glibc-gconv-utf-7 glibc-gconv-euc-jp glibc-gconv-iso8859-1 glibc-gconv-iso8859-15 glibc-charmap-invariant glibc-localedata-translit-cjk-variants locale-base-tr-tr locale-base-lt-lt locale-base-ja-jp.euc-jp locale-base-fa-ir locale-base-ru-ru locale-base-de-de locale-base-hr-hr locale-base-el-gr locale-base-fr-fr locale-base-fr-fr locale-base-es-es locale-base-en-gb "</div></div><div><br></div><div>It just magically appears in pre-expansion value.</div><div><br></div><div>Shouldn't bitbake -e show that "locale-base-fr-fr locale-base-de-de" were appended (and in the build with bbappend that they were appended and then removed)? That would help me to find out what's going on much faster.</div><div><br></div><div>Cheers,</div><div><br></div><div><br></div><div><br></div><div><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Oct 13, 2018 at 12:29 PM Richard Purdie <<a href="mailto:richard.purdie@linuxfoundation.org" target="_blank">richard.purdie@linuxfoundation.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sat, 2018-10-13 at 02:15 +0200, Martin Jansa wrote:<br>
> Hi,<br>
> <br>
> sorry for delay, I was first testing a bit more specific fix:<br>
> DEPENDS_append_libc-glibc = "${@bb.utils.contains('PTEST_ENABLED',<br>
> '1', '', ' virtual/libc-locale', d)}"<br>
> <br>
> but unfortunately this nor your shorter version work.<br>
> <br>
> and it's reproducible without the multilib enabled as well:<br>
> <br>
> ERROR: glib-2.0-1_2.58.0-r0 do_package_qa: QA Issue: glib-2.0-ptest rdepends on locale-base-de-de, but it isn't a build dependency? [build-deps]<br>
> ERROR: glib-2.0-1_2.58.0-r0 do_package_qa: QA Issue: glib-2.0-ptest rdepends on locale-base-el-gr, but it isn't a build dependency? [build-deps]<br>
> ERROR: glib-2.0-1_2.58.0-r0 do_package_qa: QA Issue: glib-2.0-ptest rdepends on locale-base-en-gb, but it isn't a build dependency? [build-deps]<br>
<br>
What is also puzzling me is that we're not seeing this in OE-Core on<br>
the autobuilders. We recently merged much better warning summary code<br>
so we should see this quite clearly in its output and we're not...<br>
<br>
I'm not sure what that means but it suggests there is something going<br>
on here we're not quite seeing...<br>
<br>
Cheers,<br>
<br>
Richard<br>
<br>
<br>
</blockquote></div>