<?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>12511</bug_id>
          
          <creation_ts>2018-01-26 07:23:04 +0000</creation_ts>
          <short_desc>multilib/rpm: core-image-sato-sdk do_rootfs: Function failed when installed lib32-glib-2.0</short_desc>
          <delta_ts>2018-07-02 21:35:30 +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>Meta-yocto</product>
          <component>meta-yocto</component>
          <version>2.4</version>
          <rep_platform>Other</rep_platform>
          <op_sys>x86_64</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>4.99</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Preeti Sachan">preetixx.sachan</reporter>
          <assigned_to name="Richard Purdie">richard.purdie</assigned_to>
          <cc>poky.bs.watcher</cc>
    
    <cc>poky.watcher</cc>
    
    <cc>randy.macleod</cc>
    
    <cc>stephano</cc>
    
    <cc>xerofoify</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>79227</commentid>
    <comment_count>0</comment_count>
    <who name="Preeti Sachan">preetixx.sachan</who>
    <bug_when>2018-01-26 07:23:04 +0000</bug_when>
    <thetext>I have reproduced this bug for poky (pyro, rocko and master branch)
I used poky and meta-intel meta layer (use same branch for both (poky &amp; meta-intel) either pyro, rocko OR master). I made yocto build to create multilib image for core-image-sato-sdk. Added below lines to local.conf for multilib image:

# Please uncomment the 4 lines below to enable multilib support.
require conf/multilib.conf
DEFAULTTUNE = &quot;corei7-64&quot;
MULTILIBS = &quot;multilib:lib32&quot;
DEFAULTTUNE_virtclass-multilib-lib32 = &quot;corei7-32&quot;
IMAGE_INSTALL_append = &quot; lib32-glib-2.0 lib32-gcc&quot;

and run $ bitbake core-image-sato-sdk

It is giving do_rootfs error when using IMAGE_INSTALL_append = &quot; lib32-glib-2.0&quot; for core-image-sato-sdk. Also this error is coming for rpm package manager (local.conf: PACKAGE_CLASSES = &quot;package_rpm&quot;).

Here is error:

ERROR: core-image-sato-sdk-1.0-r0 do_rootfs: Could not invoke dnf. Command .......
....
Running transaction test
Error: Transaction check error:
  file /usr/bin/python3.5m-config from install of lib32-python3-core-3.5.3-r1.0.corei7_32 conflicts with file from package python3-core-3.5.3-r1.0.corei7_64
  file /usr/include/gmp.h from install of lib32-libgmp-dev-6.1.2-r0.corei7_32 conflicts with file from package libgmp-dev-6.1.2-r0.corei7_64
  file /usr/share/pkgconfig/xtrans.pc from install of lib32-xtrans-dev-1:1.3.5-r0.corei7_32 conflicts with file from package xtrans-dev-1:1.3.5-r0.corei7_64

Error Summary
-------------
ERROR: core-image-sato-sdk-1.0-r0 do_rootfs: Function failed: do_rootfs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79269</commentid>
    <comment_count>1</comment_count>
    <who name="Preeti Sachan">preetixx.sachan</who>
    <bug_when>2018-01-30 02:30:27 +0000</bug_when>
    <thetext>It seems to be issue of DNF tool. From Yocto 2.3( pyro), the smart tool (rpm manager for YOCTO) is replaced by DNF tool. Earlier, the smart tool was taking it as warning message and removing installation of lib32 rpm in case of conflict in files (from package corei7_32 &amp; corei7_64) happens.
But the dnf tool is not handling this issue properly and Yocto build for multilib image is breaking.

Here is error message in details:

dnf.log:

Traceback (most recent call last):
  File &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/usr/lib/python3.5/site-packages/dnf/cli/main.py&quot;, line 64, in main
    return _main(base, args, cli_class, option_parser_class)
  File &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/usr/lib/python3.5/site-packages/dnf/cli/main.py&quot;, line 99, in _main
    return cli_run(cli, base)
  File &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/usr/lib/python3.5/site-packages/dnf/cli/main.py&quot;, line 123, in cli_run
    ret = resolving(cli, base)
  File &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/usr/lib/python3.5/site-packages/dnf/cli/main.py&quot;, line 154, in resolving
    base.do_transaction(display=displays)
  File &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/usr/lib/python3.5/site-packages/dnf/cli/cli.py&quot;, line 238, in do_transaction
    super(BaseCli, self).do_transaction(display)
  File &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/usr/lib/python3.5/site-packages/dnf/base.py&quot;, line 716, in do_transaction
    self._trans_error_summary(errstring))
dnf.exceptions.Error: Transaction check error:
  file /usr/bin/python3.5m-config from install of lib32-python3-core-3.5.3-r1.0.corei7_32 conflicts with file from package python3-core-3.5.3-r1.0.corei7_64
  file /usr/include/gmp.h from install of lib32-libgmp-dev-6.1.2-r0.corei7_32 conflicts with file from package libgmp-dev-6.1.2-r0.corei7_64
  file /usr/share/pkgconfig/xtrans.pc from install of lib32-xtrans-dev-1:1.3.5-r0.corei7_32 conflicts with file from package xtrans-dev-1:1.3.5-r0.corei7_64

Error Summary
-------------

2018-01-25T03:51:32Z CRITICAL Error: Transaction check error:
  file /usr/bin/python3.5m-config from install of lib32-python3-core-3.5.3-r1.0.corei7_32 conflicts with file from package python3-core-3.5.3-r1.0.corei7_64
  file /usr/include/gmp.h from install of lib32-libgmp-dev-6.1.2-r0.corei7_32 conflicts with file from package libgmp-dev-6.1.2-r0.corei7_64
  file /usr/share/pkgconfig/xtrans.pc from install of lib32-xtrans-dev-1:1.3.5-r0.corei7_32 conflicts with file from package xtrans-dev-1:1.3.5-r0.corei7_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80092</commentid>
    <comment_count>2</comment_count>
    <who name="">xerofoify</who>
    <bug_when>2018-04-04 11:20:44 +0000</bug_when>
    <thetext>(In reply to comment #1)
&gt; It seems to be issue of DNF tool. From Yocto 2.3( pyro), the smart tool (rpm
&gt; manager for YOCTO) is replaced by DNF tool. Earlier, the smart tool was
&gt; taking it as warning message and removing installation of lib32 rpm in case
&gt; of conflict in files (from package corei7_32 &amp; corei7_64) happens.
&gt; But the dnf tool is not handling this issue properly and Yocto build for
&gt; multilib image is breaking.
&gt; 
&gt; Here is error message in details:
&gt; 
&gt; dnf.log:
&gt; 
&gt; Traceback (most recent call last):
&gt;   File
&gt; &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/
&gt; intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/
&gt; usr/lib/python3.5/site-packages/dnf/cli/main.py&quot;, line 64, in main
&gt;     return _main(base, args, cli_class, option_parser_class)
&gt;   File
&gt; &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/
&gt; intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/
&gt; usr/lib/python3.5/site-packages/dnf/cli/main.py&quot;, line 99, in _main
&gt;     return cli_run(cli, base)
&gt;   File
&gt; &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/
&gt; intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/
&gt; usr/lib/python3.5/site-packages/dnf/cli/main.py&quot;, line 123, in cli_run
&gt;     ret = resolving(cli, base)
&gt;   File
&gt; &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/
&gt; intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/
&gt; usr/lib/python3.5/site-packages/dnf/cli/main.py&quot;, line 154, in resolving
&gt;     base.do_transaction(display=displays)
&gt;   File
&gt; &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/
&gt; intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/
&gt; usr/lib/python3.5/site-packages/dnf/cli/cli.py&quot;, line 238, in do_transaction
&gt;     super(BaseCli, self).do_transaction(display)
&gt;   File
&gt; &quot;/home/ilab/Preeti-Work/ApolloLake/rocko-test/yocto_build/build/tmp/work/
&gt; intel_corei7_64-poky-linux/core-image-sato-sdk/1.0-r0/recipe-sysroot-native/
&gt; usr/lib/python3.5/site-packages/dnf/base.py&quot;, line 716, in do_transaction
&gt;     self._trans_error_summary(errstring))
&gt; dnf.exceptions.Error: Transaction check error:
&gt;   file /usr/bin/python3.5m-config from install of
&gt; lib32-python3-core-3.5.3-r1.0.corei7_32 conflicts with file from package
&gt; python3-core-3.5.3-r1.0.corei7_64
&gt;   file /usr/include/gmp.h from install of
&gt; lib32-libgmp-dev-6.1.2-r0.corei7_32 conflicts with file from package
&gt; libgmp-dev-6.1.2-r0.corei7_64
&gt;   file /usr/share/pkgconfig/xtrans.pc from install of
&gt; lib32-xtrans-dev-1:1.3.5-r0.corei7_32 conflicts with file from package
&gt; xtrans-dev-1:1.3.5-r0.corei7_64
&gt; 
&gt; Error Summary
&gt; -------------
&gt; 
&gt; 2018-01-25T03:51:32Z CRITICAL Error: Transaction check error:
&gt;   file /usr/bin/python3.5m-config from install of
&gt; lib32-python3-core-3.5.3-r1.0.corei7_32 conflicts with file from package
&gt; python3-core-3.5.3-r1.0.corei7_64
&gt;   file /usr/include/gmp.h from install of
&gt; lib32-libgmp-dev-6.1.2-r0.corei7_32 conflicts with file from package
&gt; libgmp-dev-6.1.2-r0.corei7_64
&gt;   file /usr/share/pkgconfig/xtrans.pc from install of
&gt; lib32-xtrans-dev-1:1.3.5-r0.corei7_32 conflicts with file from package
&gt; xtrans-dev-1:1.3.5-r0.corei7_64

Greetings Preeti,

Firstly a few things to try. Can you try the newest version and report back with a trace on that if it occurs. I am also wondering if it&apos;s a issue with dnf or append itself so can you try += rather than IMAGE_INSTALL_append to see if that helps too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80163</commentid>
    <comment_count>3</comment_count>
    <who name="Preeti Sachan">preetixx.sachan</who>
    <bug_when>2018-04-08 21:01:25 +0000</bug_when>
    <thetext>Hi,

I tried with below configuration:

1. With latest dnf version (dnf_2.7.5.bb ). Used meta-intel and poky, master branch (http://git.yoctoproject.org/cgit.cgi/poky/tree/meta/recipes-devtools/dnf/dnf_2.7.5.bb).

2. Used IMAGE_INSTALL += &quot;lib32-glib-2.0 lib32-gcc&quot; instead of IMAGE_INSTALL_append 

But still the below error is coming:


ERROR: core-image-sato-sdk-1.0-r0 do_rootfs: Could not invoke dnf. Command .......
....
Running transaction test
Error: Transaction check error:
  file /usr/bin/python3.5m-config from install of lib32-python3-core-3.5.3-r1.0.corei7_32 conflicts with file from package python3-core-3.5.3-r1.0.corei7_64
  file /usr/include/gmp.h from install of lib32-libgmp-dev-6.1.2-r0.corei7_32 conflicts with file from package libgmp-dev-6.1.2-r0.corei7_64
  file /usr/share/pkgconfig/xtrans.pc from install of lib32-xtrans-dev-1:1.3.5-r0.corei7_32 conflicts with file from package xtrans-dev-1:1.3.5-r0.corei7_64

Error Summary
-------------
ERROR: core-image-sato-sdk-1.0-r0 do_rootfs: Function failed: do_rootfs\
-------------------------------------------------------------------

To reproduce this error at your end, use below local.conf configuration:


MACHINE = &quot;intel-corei7-64&quot;
require conf/multilib.conf
DEFAULTTUNE = &quot;corei7-64&quot;
MULTILIBS = &quot;multilib:lib32&quot;
DEFAULTTUNE_virtclass-multilib-lib32 =&quot;corei7-32&quot;
IMAGE_INSTALL += &quot;lib32-glib-2.0 lib32-gcc&quot;

---------------------------------------------------

This is bug of dnf tool and need to fix dnf source code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80172</commentid>
    <comment_count>4</comment_count>
    <who name="">xerofoify</who>
    <bug_when>2018-04-09 11:39:43 +0000</bug_when>
    <thetext>Looks like a issue with python and mutlilib yocto recipes actually as the trace is complaining about the same file even through one is 32bit and the other 64bit. 
 file /usr/bin/python3.5m-config from install of lib32-python3-core-3.5.3-r1.0.corei7_32 conflicts with file from package python3-core-3.5.3-r1.0.corei7_64
  file /usr/include/gmp.h from install of lib32-libgmp-dev-6.1.2-r0.corei7_32 conflicts with file from package libgmp-dev-6.1.2-r0.corei7_64

Can you try without your recipes mutlilib enabled as if it works that&apos;s the issue if not than you may be right. Will have to see if it works with other package managers after through.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80566</commentid>
    <comment_count>5</comment_count>
    <who name="Preeti Sachan">preetixx.sachan</who>
    <bug_when>2018-05-11 00:19:02 +0000</bug_when>
    <thetext>Obviously, without mutlilib enabled in local.conf, issue will not come. Earlier till Yocto Poky Jethro branch, smart tool was being used with RPM for packaging/installing rpm files. The smart tool was handling 64bit &amp; 32bit identical file conflict situation properly.
But from Yocto Poky 2.3 (pyro), smart tool has been replaced by dnf tool and dnf tool is not handling this conflicting error properly.

Enabling multilib config is standard configuration and has mentioned in previous Intel BSP&apos;s release note. For example:

https://www.yoctoproject.org/software-overview/layers/bsps/pyro23-halo/ 
https://www.yoctoproject.org/software-overview/layers/bsps/pyro23-xeon/

If user follow steps in above mentioned BSP release note, then will surely encounter this issue for Yocto poky (pyro, rocko and master branch).

Whether it is python or multilib class/recipe or dnf tool issue, could please proceed to fix this issue as installing multilib libraries is standard configuration ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80571</commentid>
    <comment_count>6</comment_count>
    <who name="">xerofoify</who>
    <bug_when>2018-05-11 08:39:47 +0000</bug_when>
    <thetext>Ok that makes sense and was my point. Anyhow try with smart tool and see if it works if not then please tell my what version of dnf you are using and if it&apos;s the most current. As if it&apos;s the case then dnf should be reverted back to smart tool until dnf is properly fixed and I will open a bug report there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80983</commentid>
    <comment_count>7</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2018-06-29 16:46:50 +0000</bug_when>
    <thetext>Patches to address this queued in master-next.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80998</commentid>
    <comment_count>8</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2018-07-02 21:35:30 +0000</bug_when>
    <thetext>Fix the xtrans issue:
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=0609f4fee30494792d7c5b9e9113a6275dc93d1c
and the python issue:
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=69b588ea2ad37f6c798aee8e49c5b375e52b7e81

however once these were fixed there were other multilib issues. This lead to the seven patches ending with http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=7cb125d7ee4b80fb33d87bdd0b257bc6daaff051</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>