<?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>4408</bug_id>
          
          <creation_ts>2013-04-24 10:59:13 +0000</creation_ts>
          <short_desc>multilib: rpm does not install all dependencies</short_desc>
          <delta_ts>2015-11-11 12:15:26 +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>1.5</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>2.0</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Laurentiu Palcu">laurentiu.palcu</reporter>
          <assigned_to name="Robert Yang">liezhi.yang</assigned_to>
          <cc>bluelightning</cc>
    
    <cc>bogdanx.a.voiculescu</cc>
    
    <cc>jessica.zhang</cc>
    
    <cc>liezhi.yang</cc>
    
    <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
          
          <qa_contact name="Cristina Agurida">cristina-danielax.agurida</qa_contact>
          <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>32575</commentid>
    <comment_count>0</comment_count>
    <who name="Laurentiu Palcu">laurentiu.palcu</who>
    <bug_when>2013-04-24 10:59:13 +0000</bug_when>
    <thetext>Problem description: lib32 dependencies are not all installed into the final image.

Latest master commit tested: 361d686408b9a0b2ab2f1caf2b74adfe1ad1020c

Steps to reproduce:
1. Add the following to your local.conf:

MACHINE ??= &quot;qemux86&quot;
PACKAGE_CLASSES ?= &quot;package_rpm&quot;
require conf/multilib.conf
MULTILIBS = &quot;multilib:lib32&quot;
DEFAULTTUNE_virtclass-multilib-lib32 = &quot;x86&quot;
IMAGE_INSTALL_append = &quot; lib32-gtk+&quot;

2. bitbake core-image-sato

Expected result:
 * all lib32-gtk+ dependencies should end up on the final image (for example: lib32-gdk-pixbuf-loader-*)

Actual result:
 * lib32-gdk-pixbuf-loader-* packages are not in the final image


Notes:
 * if you change PACKAGE_CLASSES ?= &quot;package_ipk&quot; and repeat step 2, all the packages are properly installed to the final image;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32585</commentid>
    <comment_count>1</comment_count>
    <who name="Paul Eggleton">bluelightning</who>
    <bug_when>2013-04-24 14:54:20 +0000</bug_when>
    <thetext>So this is an issue with RRECOMMENDS; I noticed the same thing recently with RDEPENDS when building apache2 from meta-webserver in a lib32 multilib configuration - lib32-libgcc wasn&apos;t installed on the target when lib32-apache2 was installed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32961</commentid>
    <comment_count>2</comment_count>
    <who name="Paul Eggleton">bluelightning</who>
    <bug_when>2013-05-08 16:21:42 +0000</bug_when>
    <thetext>Some further info - with my above test case i.e. lib32-apache2 and libgcc, the dependency as far as the RPM spec file goes ends up being libgcc1 for both apache2 and lib32-apache2, so you get the 64-bit version of libgcc1 installed in both cases which is not correct. For a normal shared library dependency, rpmdeps adds FILERDEPENDS that include/exclude the word size e.g. &quot;(64bit)&quot; thus ensuring the correct package gets installed, however this is a manually added RDEPENDS and thus those are not present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33114</commentid>
    <comment_count>3</comment_count>
    <who name="Paul Eggleton">bluelightning</who>
    <bug_when>2013-05-16 13:32:13 +0000</bug_when>
    <thetext>Moving to 1.5 after discussion with Saul/Richard/Mark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36683</commentid>
    <comment_count>4</comment_count>
    <who name="Paul Eggleton">bluelightning</who>
    <bug_when>2013-09-13 13:59:52 +0000</bug_when>
    <thetext>I still don&apos;t have a viable fix for this. At this point it&apos;s probably going to be a 1.6 task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52063</commentid>
    <comment_count>5</comment_count>
    <who name="Robert Yang">liezhi.yang</who>
    <bug_when>2015-07-01 06:31:35 +0000</bug_when>
    <thetext>(In reply to comment #2)
&gt; Some further info - with my above test case i.e. lib32-apache2 and libgcc,
&gt; the dependency as far as the RPM spec file goes ends up being libgcc1 for
&gt; both apache2 and lib32-apache2, so you get the 64-bit version of libgcc1
&gt; installed in both cases which is not correct. For a normal shared library
&gt; dependency, rpmdeps adds FILERDEPENDS that include/exclude the word size
&gt; e.g. &quot;(64bit)&quot; thus ensuring the correct package gets installed, however
&gt; this is a manually added RDEPENDS and thus those are not present.

After more investigations:
1) I think that the mulitlib like the following one doesn&apos;t make any sense since the bsp is 32 bit, and the multilib is also 32 bit:
MACHINE ??= &quot;qemux86&quot;
PACKAGE_CLASSES ?= &quot;package_rpm&quot;
require conf/multilib.conf
MULTILIBS = &quot;multilib:lib32&quot;
DEFAULTTUNE_virtclass-multilib-lib32 = &quot;x86&quot;
IMAGE_INSTALL_append = &quot; lib32-gtk+&quot;

The rpm backend can generate the rootfs, but the ipk can&apos;t, and there would be such errors:
Multilib check error: duplicate files /buildarea/lyang1/t_clutter/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/multilib/lib32/lib/libz.so.1 /buildarea/lyang1/t_clutter/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/rootfs/lib/libz.so.1 is not the same

2) I think that the supported multilib should be something like:
require conf/multilib.conf
MULTILIBS = &quot;multilib:lib32&quot;
DEFAULTTUNE_virtclass-multilib-lib32 = &quot;x86&quot;

When bitbake core-image-sato, only the libgcc1.core2_64.rpm would be installed by default since no one depends on libgcc1.lib32_x86.rpm, In Paul&apos;s usecase, I think that lib32-apache doesn&apos;t depend on it, the one depends on libgcc1.lib32_x86.rpm is the package like lib32-libproxy, so if:

IMAGE_INSTALL_append = &quot; lib32-libproxy&quot;

Then libgcc1.lib32_x86.rpm would be installed (and also libgcc1.core2_64.rpm), so I think that there isn&apos;t anything wrong, or maybe it has been fixed in 1.9.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52064</commentid>
    <comment_count>6</comment_count>
    <who name="Robert Yang">liezhi.yang</who>
    <bug_when>2015-07-01 06:32:34 +0000</bug_when>
    <thetext>Mark it as works for me, please see my previous comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54126</commentid>
    <comment_count>7</comment_count>
    <who name="Robert Yang">liezhi.yang</who>
    <bug_when>2015-09-16 01:59:42 +0000</bug_when>
    <thetext>I understand what happened now, reopen it, and send patches to oe-core mailing list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54723</commentid>
    <comment_count>8</comment_count>
    <who name="Robert Yang">liezhi.yang</who>
    <bug_when>2015-09-28 14:03:12 +0000</bug_when>
    <thetext>Merged into master:
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=eb7b1a58ceaab7fde4dc954eb4df4247d6c7c6d8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56380</commentid>
    <comment_count>9</comment_count>
    <who name="Cristina Agurida">cristina-danielax.agurida</who>
    <bug_when>2015-11-11 12:15:26 +0000</bug_when>
    <thetext>Verified on master: fc45deac89ef63ca1c44e763c38ced7dfd72cbe1

root@qemux86:~# find / -name &quot;*pixbuf*&quot; 2&gt;/dev/null
/usr/share/locale/en_GB/LC_MESSAGES/gdk-pixbuf.mo
/usr/lib/libgdk_pixbuf-2.0.so.0
/usr/lib/libgdk_pixbuf-2.0.so.0.3000.8
/usr/lib/gstreamer-1.0/libgstgdkpixbuf.so
/usr/lib/gdk-pixbuf-2.0
/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jpeg.so
/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-gif.so
/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so
/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
/usr/lib/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>