summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>2020-07-09 09:06:15 +0200
committerSteve Sakoman <steve@sakoman.com>2020-07-13 17:14:28 -1000
commitc2ad3af9da9bb3a98c1d5d1b3d21eb8db643c189 (patch)
tree941de573718dc604df075fd680d49839f6b76b02
parent30b4d8b5fd45c78f5da3706dd91c43d795de6eb0 (diff)
downloadopenembedded-core-contrib-c2ad3af9da9bb3a98c1d5d1b3d21eb8db643c189.tar.gz
coreutils: don't split stdbuf to own package with single-binary
Commit 992cec44 (coreutils: Move stdbuf into an own package coreutils-stdbuf) breaks package-qa when the single-binary PACKAGECONFIG is used: ERROR: coreutils-8.32-r0 do_package_qa: QA Issue: /usr/bin/stdbuf contained in package coreutils-stdbuf requires /usr/bin/coreutils, but no providers found in RDEPENDS_coreutils-stdbuf? [file-rdeps] ERROR: coreutils-8.32-r0 do_package_qa: QA run found fatal errors. Please consider fixing them. With that PACKAGECONFIG, /usr/bin/stdbuf is just a simple "script" containing the single line #!/usr/bin/coreutils --coreutils-prog-shebang=stdbuf Since there's no point splitting stdbuf to its own package when all the functionality is in the single big coreutils binary anyway, fix this by not creating the separate stdbuf package for the single-binary case. But also make sure that the coreutils-stdbuf item always exists so recipes can always RDEPEND on coreutils-stdbuf. Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 74d24b5b895198898944260136d05e991a203c11) Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r--meta/recipes-core/coreutils/coreutils_8.31.bb15
1 files changed, 13 insertions, 2 deletions
diff --git a/meta/recipes-core/coreutils/coreutils_8.31.bb b/meta/recipes-core/coreutils/coreutils_8.31.bb
index 2b196b7512..0c8452da98 100644
--- a/meta/recipes-core/coreutils/coreutils_8.31.bb
+++ b/meta/recipes-core/coreutils/coreutils_8.31.bb
@@ -59,9 +59,20 @@ base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill l
sbindir_progs= "chroot"
-PACKAGE_BEFORE_PN_class-target += "coreutils-stdbuf"
+# Split stdbuf into its own package, so one can include
+# coreutils-stdbuf without getting the rest of coreutils, but make
+# coreutils itself pull in stdbuf, so IMAGE_INSTALL += "coreutils"
+# always provides all coreutils
+PACKAGE_BEFORE_PN_class-target += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', '', 'coreutils-stdbuf', d)}"
FILES_coreutils-stdbuf = "${bindir}/stdbuf ${libdir}/coreutils/libstdbuf.so"
-RDEPENDS_coreutils_class-target += "coreutils-stdbuf"
+RDEPENDS_coreutils_class-target += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', '', 'coreutils-stdbuf', d)}"
+
+# However, when the single-binary PACKAGECONFIG is used, stdbuf
+# functionality is built into the single coreutils binary, so there's
+# no point splitting /usr/bin/stdbuf to its own package. Instead, add
+# an RPROVIDE so that rdepending on coreutils-stdbuf will work
+# regardless of whether single-binary is in effect.
+RPROVIDES_coreutils += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', 'coreutils-stdbuf', '', d)}"
# Let aclocal use the relative path for the m4 file rather than the
# absolute since coreutils has a lot of m4 files, otherwise there might