[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