[OE-core] coreutils-native and util-linux-native conflicting with meta-micro

ChenQi Qi.Chen at windriver.com
Mon Mar 5 08:06:35 UTC 2018


On 03/04/2018 05:26 AM, Mike Crowe wrote:
> I have a recipe which uses both base64 from coreutils-native and hexdump
> from util-linux-native so I've put both in my recipe DEPENDS.
>
> Unfortunately do_prepare_sysroot is failing with:
>
> Exception: FileExistsError: [Errno 17] File exists: '/home/mac/src/oe2/build-bcm7425/tmp-glibc/sysroots-components/x86_64/coreutils-native/bin/kill' -> '/home/mac/src/oe2/build-bcm7425/tmp-glibc/work/impala-oe-linux-gnueabi/verify-rootfs/1.0-r3/recipe-sysroot-native/bin/kill'
>
> since both coreutils and util-linux provide /bin/kill.
>
> This doesn't cause a problem in a standard oe-core build since coreutils
> installs all its binaries in ${bindir} whereas util-linux puts kill in
> ${base_bindir}.
>
> Unfortunately, with meta-micro ${bindir} and ${base_bindir} are the same
> directory. :(
>
> Both coreutils and util-linux already appear to use the alternatives
> mechanism for kill, but that doesn't seem to help for -native.
>
> I can easily locally nobble kill in one of the recipes to solve this
> problem, but that doesn't seem very elegant.
>
> What's the correct way to solve this problem?
>
> Thanks.
>
> Mike.

I'd suggest you remove conflict items in do_install in case of native. 
An example is in coreutils recipe as below.

do_install_class-native() {
     autotools_do_install
     # remove groups to fix conflict with shadow-native
     rm -f ${D}${STAGING_BINDIR_NATIVE}/groups
     # The return is a must since native doesn't need the
     # do_install_append() in the below.
     return
}

You can create a bbappend file in your layer and do similar things.

Best Regards,

Chen Qi




More information about the Openembedded-core mailing list