Bug 8801

Summary: There is a conflict when installing ncurses-dev and lib32-ncurses-dev in sdk
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Liu Jian <jian.liu>
Component: coreAssignee: Ross Burton <ross.burton>
Status: VERIFIED FIXED QA Contact: Bogdan Alexandru Voiculescu <bogdanx.a.voiculescu>
Severity: normal    
Priority: Medium+ CC: alexandru.c.georgescu, bogdanx.a.voiculescu, liu.ming50, meta.mr.watcher, meta.watcher
Version: 2.2   
Target Milestone: 2.1 M3   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Liu Jian 2015-12-14 07:58:48 UTC
Machine: qemu-x86-64
Image bb: core-image-minimal.bb
Others: Add the following line in image bb file
         IMAGE_INSTALL += "ncurses-dev"
         IMAGE_INSTALL += "lib32-ncurses"

When I build sdk, there is a warning,
  warning: Removing ncurses-dev-5.9-r15.1@lib32_x86 due to file /usr/bin/ncurses5-config conflicting with ncurses-dev-5.9-r15.1@core2_64

I check the manifest of sdk, lib32-ncurses is not installed.


But if I add the following line in image bb file
  IMAGE_INSTALL += "ncurses"
  IMAGE_INSTALL += "lib32-ncurses"

lib32-ncurses is installed in sdk.
Comment 1 Liu Jian 2015-12-14 08:07:57 UTC
I analysis it, reason may be,

For the first time, installing step is like,
   smart install ncurses-dev lib32-ncurses-dev

But for the second time, installing step is like,
  smart install ncurses-dev
  smart install lib32-ncurses-dev


smart can not handle conflicts if conflicting packages are not conveyed at the same time.
Comment 3 Ming Liu 2015-12-28 14:00:46 UTC
As of b09080dc8a81bd76c473f8937d224830eb4626c0 patch merged into master.
Comment 4 Ming Liu 2015-12-28 14:03:01 UTC
As of b09080dc8a81bd76c473f8937d224830eb4626c0 patch merged into master.
Comment 5 Bogdan Alexandru Voiculescu 2016-01-11 13:46:24 UTC
Adding in conf.local.conf

require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
and using 
IMAGE_INSTALL_append = " ncurses-dev lib32-ncurses"


seems to fix the dependencies build problem.
Packages are in SDK image.

poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.host.manifest:nativesdk-libncurses5 x86_64-nativesdk 5.9
poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.host.manifest:nativesdk-libncursesw5 x86_64-nativesdk 5.9
poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.host.manifest:nativesdk-ncurses-terminfo-base x86_64-nativesdk 5.9
poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.target.manifest:lib32-ncurses x86 5.9
poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.target.manifest:lib32-ncurses-dbg x86 5.9
poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.target.manifest:lib32-ncurses-dev x86 5.9
poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.target.manifest:libncurses5 core2-64 5.9
poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.target.manifest:libncursesw5 core2-64 5.9
poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.target.manifest:ncurses core2-64 5.9
poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.target.manifest:ncurses-dbg core2-64 5.9
poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.target.manifest:ncurses-dev core2-64 5.9
poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.0+snapshot.target.manifest:ncurses-terminfo-base core2-64 5.9