lsb: fix usrmerge install paths

${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

(From OE-Core rev: 852c9498ae365bc8c149b5e6df0c8667bd885c79)

Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ioan-Adrian Ratiu
2018-07-20 14:18:16 +03:00
committed by Richard Purdie
parent 594c3d9a42
commit 62f5f01b5b

View File

@@ -34,7 +34,7 @@ S = "${WORKDIR}/lsb-release-1.4"
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
@@ -99,7 +99,9 @@ do_install_append() {
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}