util-linux: Make pam specific logic apply to target recipe alone
PATCH 1/2 util-linux: Make pam specific logic apply to target recipe alone
This helps with a case where a distro builds one image with systemd and another with sysvinit, it ends up recompiling almost everything since python3-native gets rebuilt and tracing dependencies with bitbake-diffsigs shows that the chain ends at util-linux-native being recompiled because distro features now does or does not have 'pam'
Hash for dependent task python/python3_3.7.4.bb:do_prepare_recipe_sysroot:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-devt ools/python/python3_3.7.4.bb changed from 8befaac4f995aaff3f95d27c9caaf1006f86e1344b02c1ae82f5d12f885f2240 to 2a45fe0cd0d3640a88c4a5c8b1880c4e9 a089cc7446a91d2a920c1cef6fa916a
Hash for dependent task util-linux/util-linux_2.34.bb:do_populate_sysroot:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-
core/util-linux/util-linux_2.34.bb changed from 0db292cb2e37d5788bdcf51038b2802d748b719d860aca3a26d7a793b0cf3905 to 15d6e165f025f10c2c455df8a87 5cafe021eaed4214c793e708d4827a58ca89d
Hash for dependent task util-linux/util-linux_2.34.bb:do_install:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-core/util-linux/util-linux_2.34.bb changed from 54bb4ee6bdb5c7fc260dabddb4932cb0e554a62cd92aba080a18306291fb470b to e25b1119ce8dd7ca43fbd2db771e04fa
6ff6b9d701fd78ac6c443224b036ed9f basehash changed from 8e8687a866689a697001dedc0a43f478e68e6efe270bd77362f24c6000f9e882 to 62df6610eab9c1b1a17d7132943507641c8538690f26186843c86144d4598e64
Variable do_install value changed:
rm -f ${D}${bindir}/chkdupexe
- if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
+ if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then
install -d ${D}${sysconfdir}/pam.d
install -m 0644 ${WORKDIR}/runuser.pamd ${D}${sysconfdir}/pam.d/runuser
install -m 0644 ${WORKDIR}/runuser-l.pamd ${D}${sysconfdir}/pam.d/runuser-l@@ -47,5 +47,4 @@
rm -f ${D}${base_sbindir}/nologin
rm -f ${D}${base_bindir}/kill
-DISTRO_FEATURES{pam} = Unset
PACKAGECONFIG{pam} = Unset
So far it seems this pam conditional code in util-linux is target specific and would not apply to native or nativesdk recipes
--- meta/recipes-core/util-linux/util-linux.inc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
meta/recipes-core/util-linux/util-linux.inc +4 -5
@@ -190,20 +190,19 @@ do_install () { echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall rm -f ${D}${bindir}/chkdupexe +} - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then +do_install_class-target () { + if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then install -d ${D}${sysconfdir}/pam.d install -m 0644 ${WORKDIR}/runuser.pamd ${D}${sysconfdir}/pam.d/runuser install -m 0644 ${WORKDIR}/runuser-l.pamd ${D}${sysconfdir}/pam.d/runuser-l - fi - if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then # Required for "su -" aka "su --login" because # otherwise it uses "other", which has "auth pam_deny.so" # and thus prevents the operation. ln -s su ${D}${sysconfdir}/pam.d/su-l fi } - # nologin causes a conflict with shadow-native # kill causes a conflict with coreutils-native (if ${bindir}==${base_bindir}) do_install_append_class-native () {
@@ -267,7 +266,7 @@ ALTERNATIVE_${PN}-doc = "\ blkid.8 eject.1 findfs.8 fsck.8 kill.1 last.1 lastb.1 libblkid.3 logger.1 mesg.1 \ mountpoint.1 nologin.8 rfkill.8 sulogin.8 utmpdump.1 uuid.3 wall.1\ " -ALTERNATIVE_${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'pam', 'su.1', '', d)}" +ALTERNATIVE_${PN}-doc_append_class-target = "${@bb.utils.contains('PACKAGECONFIG', 'pam', ' su.1', '', d)}" ALTERNATIVE_LINK_NAME[blkid.8] = "${mandir}/man8/blkid.8" ALTERNATIVE_LINK_NAME[eject.1] = "${mandir}/man1/eject.1"
Signature · 1 line
2.22.0
PATCH 2/2 systemd.bbclass: Limit rm_sysvinit_initddir and rm_systemd_unitdir to target alone
These postfuncs cause native recipes to rebuild when changing system init provider between sysvinit and systemd. Some of these native recipes are pretty early in dependency chain ( e.g. util-linux ) which can casue rebuild of pretty much everything including compiler.
Found with bitbake-diffsigs
Hash for dependent task python/python3_3.7.4.bb:do_prepare_recipe_sysroot:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-devt ools/python/python3_3.7.4.bb changed from 2a45fe0cd0d3640a88c4a5c8b1880c4e9a089cc7446a91d2a920c1cef6fa916a to bc2a0921cce50da1b7be3b59a3d8211ec 2a31262493ffa5909acbb7116fad3bf
Hash for dependent task util-linux/util-linux_2.34.bb:do_populate_sysroot:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-
core/util-linux/util-linux_2.34.bb changed from 15d6e165f025f10c2c455df8a875cafe021eaed4214c793e708d4827a58ca89d to 54e542d5da99cacfc9290ef5d27 9de50bdcb9195f67ae6dfff59fe41d10f7bd2
Hash for dependent task util-linux/util-linux_2.34.bb:do_install:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-core/
util-linux/util-linux_2.34.bb changed from e25b1119ce8dd7ca43fbd2db771e04fa6ff6b9d701fd78ac6c443224b036ed9f to bb5b172a83e7edd272402a9dcd80c4e1 29aa1ecb824c2cfa388086cfed24fef5
basehash changed from 62df6610eab9c1b1a17d7132943507641c8538690f26186843c86144d4598e64 to 80471f7c0bded9d1b593da69708b0e0f10882db08
5e1bf769edb3018e6c744d0
Variable rm_sysvinit_initddir value changed:
@@ -11,4 +11,4 @@
shutil.rmtree(sysv_initddir)
DISTRO_FEATURES{systemd} = Unset
-DISTRO_FEATURES{sysvinit} = Set
+DISTRO_FEATURES{sysvinit} = Unset
--- meta/classes/systemd.bbclass | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
meta/classes/systemd.bbclass +5 -2
@@ -214,7 +214,6 @@ python rm_systemd_unitdir (){ if (os.path.exists(systemd_libdir) and not os.listdir(systemd_libdir)): os.rmdir(systemd_libdir) } -do_install[postfuncs] += "rm_systemd_unitdir " python rm_sysvinit_initddir (){ import shutil
@@ -229,4 +228,8 @@ python rm_sysvinit_initddir (){ if (os.path.exists(systemd_system_unitdir) and os.listdir(systemd_system_unitdir)): shutil.rmtree(sysv_initddir) } -do_install[postfuncs] += "rm_sysvinit_initddir " + +do_install[postfuncs] += "${RMINITDIR} " +RMINITDIR_class-target = " rm_sysvinit_initddir rm_systemd_unitdir " +RMINITDIR = "" +
Signature · 1 line
2.22.0
✗ patchtest: failure for "util-linux: Make pam specific ..." and 1 more
In reply to Khem Raj== Series Details ==
Series: "util-linux: Make pam specific ..." and 1 more
Revision: 1
URL : https://patchwork.openembedded.org/series/19284/
State : failure
== Summary ==
Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures:
* Issue Series cannot be parsed correctly due to malformed diff lines [test_mbox_format]
Suggested fix Create the series again using git-format-patch and ensure it can be applied using git am
Diff line @@ -47,5 +47,4 @@
If you believe any of these test results are incorrect, please reply to the mailing list ([email protected]) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...).
---
Guidelines: https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe