${base_prefix} is set in bitbake.conf to empty. This makes lsb_release
always install under /bin which is a problem if usrmerge is in
DISTRO_FEATURES, because it needs to be installed under /usr/bin.
By using ${root_prefix} instead, we fix the usrmerge install path and
the following QA warning goes away while keeping the non-usrmerge path
identical.
WARNING: lsb-5.0-r0 do_package: QA Issue: lsb: Files/directories were
installed but not shipped in any package:
/bin
/bin/lsb_release
Please set FILES such that these items are packaged. Alternatively
if they are unneeded, avoid installing them or delete them within do_install.
lsb: 2 installed and not shipped files. [installed-vs-shipped]
Also if usrmerge is defined don't try to create the lib64 symlink
because base-files handles it to avoid the do_rootfs error
Collected errors:
* check_data_file_clashes: Package lsb wants to install file
tmp-glibc/work/x64-nilrt-linux/test-image/1.0-r0/rootfs/lib64
But that file is already provided by package * base-files
Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
CLEANBROKEN = "1"
do_install() {
- oe_runmake install prefix=${D}${base_prefix} mandir=${D}${datadir}/man/ DESTDIR=${D}
+ oe_runmake install prefix=${D}${root_prefix} mandir=${D}${datadir}/man/ DESTDIR=${D}
# these two dirs are needed by package lsb-dist-checker
mkdir -p ${D}${sysconfdir}/opt
fi
if [ "${TARGET_ARCH}" = "x86_64" ]; then
- if [ "${base_libdir}" != "${base_prefix}/lib64" ]; then
+ # don't symlink if usrmerge is in DISTRO_FEATURES as it manages the symlink
+ if ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','false','true',d)} && \
+ [ "${base_libdir}" != "${base_prefix}/lib64" ]; then
lnr ${D}${base_libdir} ${D}${base_prefix}/lib64
fi
cd ${D}${base_libdir}