libsmi: use /bin/sh instead of ${base_bindir}/sh to silence QA error with usrmerge

* with usrmerge ${base_bindir} is /usr/bin/sh and libsmi fails with:
  ERROR: libsmi-0.5.0-r0 do_package_qa: QA Issue: /usr/bin/smistrip contained in package libsmi requires /usr/bin/sh, but no providers found in RDEPENDS_libsmi? [file-rdeps]
  ERROR: libsmi-0.5.0-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.

* this is a bit strange as busybox does install /usr/bin/sh file:
  ./1.33.0-r0.usrmerge/image/usr/bin/sh
  ./1.33.0-r0.default/image/bin/sh

  but also adds /bin/sh to RPROVIDES_${PN} for usrmerge in DISTRO_FEATURES:
  RPROVIDES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sh', '', d)}"
  added in:
  https://git.openembedded.org/openembedded-core/commit/?id=1f6c14939c8daa5e09103789c3ff5031cc888d16

  and 1.33.0-r0.usrmerge/pkgdata/runtime/busybox:FILERPROVIDES_/usr/bin/busybox.nosuid_busybox
  correctly contains /usr/bin/sh

* adding runtime dependency on busybox as /usr/bin/sh provider would silence the QA warning
  but people might not like adding busybox to their image

* using /bin/sh silences the QA warning as well, because /bin/sh is explicitly ignored in file-rdeps insane.bbclass:
  https://git.openembedded.org/openembedded-core/tree/meta/classes/insane.bbclass?id=1f6c14939c8daa5e09103789c3ff5031cc888d16#n907

  if "file-rdeps" not in skip:
    ignored_file_rdeps = set(['/bin/sh', '/usr/bin/env', 'rtld(GNU_HASH)'])

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit 08fad9f3a6)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
Martin Jansa 2021-04-06 16:26:16 +02:00 committed by Armin Kuster
parent a5ab08adbc
commit 66adbbce87

View File

@ -16,7 +16,7 @@ RDEPENDS_${PN} += "wget"
inherit autotools
EXTRA_OECONF = "ac_cv_path_SH=${base_bindir}/sh ac_cv_path_WGET=${bindir}/wget ac_cv_path_AWK=${bindir}/awk"
EXTRA_OECONF = "ac_cv_path_SH=/bin/sh ac_cv_path_WGET=${bindir}/wget ac_cv_path_AWK=${bindir}/awk"
do_install_append () {
install -d ${D}${sysconfdir}