<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&#39;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&#39;t find rdep_data with &quot;rdep_data = oe.packagedata.read_subpkgdata(rdepend, d)&quot;, 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=&quot;en_US.UTF-8&quot;<br></div><div>set in our builds.</div><div><br></div><div>I&#39;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 = &quot; locale-base-fr-fr locale-base-de-de&quot;<br></div><div>and doesn&#39;t trigger the QA errors in our builds, and I&#39;ve discovered that I&#39;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&amp;id=70e544452b6825686f06484d994936ded677825f">http://git.openembedded.org/openembedded-core/commit/?h=rocko&amp;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&#39;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 = &quot;en_US.UTF-8&quot;</div><div># meta-distro2/conf/distro/include/distro2-toolchain.inc:GLIBC_GENERATE_LOCALES = &quot;en_US.UTF-8&quot;</div><div>RDEPENDS_${PN}-ptest_remove_libc-glibc = &quot;locale-base-fr-fr locale-base-de-de&quot;</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&#39;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&#39;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 = &quot;en_GB.UTF-8 en_US.UTF-8&quot;</div><div>#IMAGE_LINGUAS ?= &quot;en-gb&quot;</div></div><div><br></div><div>I&#39;ll send patch for that.</div><div><br></div><div>There is locale-base-fr-fr listed twice in glib.inc, I&#39;ll send patch for that as well.</div><div><br></div><div>I wonder why locale-base isn&#39;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>#     &quot;make&quot;</div><div>#   override[class-native]:rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div>#     &quot;&quot;</div><div>#   override[class-nativesdk]:rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div>#     &quot;&quot;</div><div># pre-expansion value:</div><div>#   &quot;make&quot;</div><div>RDEPENDS_bash-ptest=&quot;make&quot;</div></div><div><br></div><div>There isn&#39;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=&quot;make&quot;</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=&quot;&quot;</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=&quot;&quot;</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>#     &quot; make&quot;</div><div>#   override[class-native]:rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div>#     &quot;&quot;</div><div>#   override[class-nativesdk]:rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div>#     &quot;&quot;</div><div># pre-expansion value:</div><div>#   &quot; make locale-base-fr-fr locale-base-de-de&quot;</div><div>RDEPENDS_bash-ptest=&quot; make locale-base-fr-fr locale-base-de-de&quot;</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=&quot; make locale-base-fr-fr locale-base-de-de&quot;</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=&quot;&quot;</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=&quot;&quot;</div></div><div><div><br></div><div>$ grep locale-base env.bash</div><div>#   &quot; make locale-base-fr-fr locale-base-de-de&quot;</div><div>RDEPENDS_bash-ptest=&quot; make locale-base-fr-fr locale-base-de-de&quot;</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>#     &quot; gnome-desktop-testing             dbus             gnome-desktop-testing             tzdata             tzdata-americas             tzdata-asia             tzdata-europe             tzdata-posix             shared-mime-info            &quot;</div><div>#   override[class-native]:rename from RDEPENDS_${PN}-ptest_class-native data_smart.py:641 [renameVar]</div><div>#     &quot;&quot;</div><div>#   override[class-nativesdk]:rename from RDEPENDS_${PN}-ptest_class-nativesdk data_smart.py:641 [renameVar]</div><div>#     &quot;&quot;</div><div># pre-expansion value:</div><div>#   &quot; 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            &quot;</div><div>RDEPENDS_glib-2.0-ptest=&quot; 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            &quot;</div></div><div><br></div><div>It just magically appears in pre-expansion value.</div><div><br></div><div>Shouldn&#39;t bitbake -e show that &quot;locale-base-fr-fr locale-base-de-de&quot; were appended (and in the build with bbappend that they were appended and then removed)? That would help me to find out what&#39;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 &lt;<a href="mailto:richard.purdie@linuxfoundation.org" target="_blank">richard.purdie@linuxfoundation.org</a>&gt; 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>
&gt; Hi,<br>
&gt; <br>
&gt; sorry for delay, I was first testing a bit more specific fix:<br>
&gt; DEPENDS_append_libc-glibc = &quot;${@bb.utils.contains(&#39;PTEST_ENABLED&#39;,<br>
&gt; &#39;1&#39;, &#39;&#39;, &#39; virtual/libc-locale&#39;, d)}&quot;<br>
&gt; <br>
&gt; but unfortunately this nor your shorter version work.<br>
&gt; <br>
&gt; and it&#39;s reproducible without the multilib enabled as well:<br>
&gt; <br>
&gt; 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&#39;t a build dependency? [build-deps]<br>
&gt; 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&#39;t a build dependency? [build-deps]<br>
&gt; 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&#39;t a build dependency? [build-deps]<br>
<br>
What is also puzzling me is that we&#39;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&#39;re not...<br>
<br>
I&#39;m not sure what that means but it suggests there is something going<br>
on here we&#39;re not quite seeing...<br>
<br>
Cheers,<br>
<br>
Richard<br>
<br>
<br>
</blockquote></div>