<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>8570</bug_id>
          
          <creation_ts>2015-10-26 09:44:52 +0000</creation_ts>
          <short_desc>problems with gdk-pixbuf and pango loading on multilib</short_desc>
          <delta_ts>2017-03-16 06:26:44 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>core</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>2.3 M3</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jussi Kukkonen">jku</reporter>
          <assigned_to name="Robert Yang">liezhi.yang</assigned_to>
          <cc>juro.bystricky</cc>
    
    <cc>liezhi.yang</cc>
    
    <cc>mark.hatle</cc>
    
    <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
    
    <cc>randy.macleod</cc>
    
    <cc>ross.burton</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>55721</commentid>
    <comment_count>0</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2015-10-26 09:44:52 +0000</bug_when>
    <thetext>Can&apos;t say I fully understand this yet but filing a bug as one doesn&apos;t seem to exist yet.

Richard wrote an explanation in email:

&gt; With the recent fixes to gdk-pixbuf loaders, we&apos;re now seeing a 100%
&gt; reproducible problem with the second multilib test on the autobuilder.
&gt; The reproducer is:
&gt;
&gt; require conf/multilib.conf
&gt; MULTILIBS = &quot;multilib:lib32&quot;
&gt; DEFAULTTUNE_virtclass-multilib-lib32 = &quot;x86&quot;
&gt; RPM_PREFER_ELF_ARCH = &quot;1&quot;
&gt; IMAGE_INSTALL_append = &quot; lib32-connman-gnome&quot;
&gt; MACHINE = &quot;qemux86-64&quot;
&gt;
&gt; bitbake core-image-sato
&gt;
&gt; then watch as you see errors trying to run connman-applet due to no
&gt; pixbuf loaders.
&gt;
&gt; The problem is that it installs lib32-gdk-pixbuf and lib32-libgtk+
&gt; however it doesn&apos;t install any lib32 gdk-pixbuf loaders.
&gt;
&gt; Since lib32-libgtk+ RRECOMMENDS several, it probably should, however
&gt; this is crazy rpm mutilib so it assumes the non lib32 variant can
&gt; actually handle its needs when it clearly can&apos;t.

...

&gt; FWIW, I did try:
&gt;
&gt; IMAGE_INSTALL_append = &quot; lib32-connman-gnome lib32-gdk-pixbuf-loader-png lib32-gdk-pixbuf-loader-jpeg&quot;
&gt;
&gt; however whilst this fixed the connman-applet start errors, the icons on
&gt; the desktop disappeared, I worry that the icon cache format is multilib
&gt; specific and you can&apos;t run two different sized libgtk on the same icon
&gt; directory.


So there might be two problems here: 

1. We need to be able to describe the dependencies correctly -- Robert, you had a possible fix for this, correct?

2. We may need separate loader caches for different lib-versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55735</commentid>
    <comment_count>1</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2015-10-26 12:37:22 +0000</bug_when>
    <thetext>&gt; 2. We may need separate loader caches for different lib-versions.

Actually, this seems to work just fine: if I make sure the pixbuf loaders are installed for both lib versions, sato desktop finds the 64 bit ones and the connman applet finds the 32 bit ones.

There is a follow-up bug though: the applet mis-renders all text and says
    Pango-CRITICAL **: no modules found.
    No builtin or dynamically loaded module were found.
    PangoFc will not work correctly

It seems Pango has the same problem: the 32 bit modules are not installed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55743</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Hatle">mark.hatle</who>
    <bug_when>2015-10-26 14:12:24 +0000</bug_when>
    <thetext>Lets take a step back here.  Why are we installing the 32-bit connman and not using the 64-bit?  Is this an issue where we are building a very large multilib system for testing purposes, or is this a real world situation like glibc-std-sato or something?

I don&apos;t believe we have seen this problem very often because multilib is usually used for select implementations of components a user wants to make available for the alternative library format vs building everything for the multilib.

(That is not to say there isn&apos;t a bug here, I&apos;m sure there is...) I&apos;m just worried we&apos;ve moved to an artificial test case that is not likely to affect someone in a more real-world situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55751</commentid>
    <comment_count>3</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2015-10-26 14:55:10 +0000</bug_when>
    <thetext>It&apos;s for sanity testing: can we build a 64-bit image with a select component being 32-bit.  The complication that said component (connman-gnome) uses GTK+, gdk-pixbuf, and Pango, all of which have runtime loadable modules, sure is making this more of a test than you&apos;d expect but it isn&apos;t unusual in my opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55893</commentid>
    <comment_count>4</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2015-10-28 11:22:06 +0000</bug_when>
    <thetext>*** Bug 8580 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55903</commentid>
    <comment_count>5</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2015-10-28 12:38:30 +0000</bug_when>
    <thetext>For those following at home, Roberts python-smartpm patch and related discussion:
http://lists.openembedded.org/pipermail/openembedded-core/2015-October/112050.html


(In reply to comment #2)
&gt; Lets take a step back here.  Why are we installing the 32-bit connman and
&gt; not using the 64-bit?  Is this an issue where we are building a very large
&gt; multilib system for testing purposes, or is this a real world situation like
&gt; glibc-std-sato or something?

I think the choice here is not unreasonable: connman-applet is a pretty basic GUI application (it shouldn&apos;t actually install 32bit connman itself since the API is D-Bus).

That said, maybe this is too ambitious for 2.0? We could change the test case to something that does not use dynamically loaded modules (in other words, not a GTK+ application), and if multilib is in the releases notes mention that the support does not cover that case yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55962</commentid>
    <comment_count>6</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2015-10-29 08:53:03 +0000</bug_when>
    <thetext>(In reply to comment #5)
&gt; That said, maybe this is too ambitious for 2.0? We could change the test
&gt; case to something that does not use dynamically loaded modules (in other
&gt; words, not a GTK+ application), and if multilib is in the releases notes
&gt; mention that the support does not cover that case yet.

As a concrete suggestion:
    IMAGE_INSTALL_append = &quot; lib32-connman-client&quot;
This is the command line connman client instead of the GUI client. It results in installing these 32 bit packages and seems to work fine:

lib32-connman-client x86 1.30
lib32-glibc-locale-en-gb x86 2.22
lib32-libc6 x86 2.22
lib32-libdbus-1-3 x86 1.8.20
lib32-libffi6 x86 3.2.1
lib32-libglib-2.0-0 x86 2.44.1
lib32-libglib-2.0-locale-en-gb x86 2.44.1
lib32-libreadline6 x86 6.3
lib32-libtinfo5 x86 5.9
lib32-libz1 x86 1.2.8

I haven&apos;t really looked if this brings any value on top of the other multilib tests as it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56045</commentid>
    <comment_count>7</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2015-10-30 13:18:44 +0000</bug_when>
    <thetext>Oh, one more workaround option for 2.0.x:

Add both 32 and 64 bit versions of module packages to IMAGE_INSTALL_append by hand:
    lib32-connman-gnome
    gdk-pixbuf-loader-jpeg lib32-gdk-pixbuf-loader-jpeg
    gdk-pixbuf-loader-png  lib32-gdk-pixbuf-loader-png
    pango-module-basic-fc  lib32-pango-module-basic-fc

This makes connman-applet work fine as a 32 bit app.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56078</commentid>
    <comment_count>8</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2015-11-02 11:00:16 +0000</bug_when>
    <thetext>Yes, that last workaround is the best for now.  Can you send a patch for the autobuilder?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56084</commentid>
    <comment_count>9</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2015-11-02 11:56:32 +0000</bug_when>
    <thetext>(In reply to comment #8)
&gt; Yes, that last workaround is the best for now.  Can you send a patch for the
&gt; autobuilder?

Done, bug 8624 is for the workaround.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56578</commentid>
    <comment_count>10</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2015-11-18 13:07:22 +0000</bug_when>
    <thetext>I think I might not be the right assignee anymore? Is roberts python-smartpm work still relevant?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67197</commentid>
    <comment_count>11</comment_count>
    <who name="Robert Yang">liezhi.yang</who>
    <bug_when>2016-10-13 07:01:48 +0000</bug_when>
    <thetext>Move it to 2.3 M2, we may not use smart any more in 2.3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71340</commentid>
    <comment_count>12</comment_count>
    <who name="Robert Yang">liezhi.yang</who>
    <bug_when>2017-03-16 06:26:44 +0000</bug_when>
    <thetext>Smart it gone.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>