Skip to contentSkip to conversation

util-linux: Make pam specific logic apply to target recipe alone

PATCH In review Khem Raj 2 participants 3 messages Aug 15, 2019

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

PATCH v2 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 62df6610eab9c1b1a17d7132943507641c8538690
f26186843c86144d4598e64
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

---
v2:
- Add missing do_install append qualifier
- No need to mark ALTERNATIVE_${PN}-doc target specific

 meta/recipes-core/util-linux/util-linux.inc | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
meta/recipes-core/util-linux/util-linux.inc +3 -4
index 84c7012752..1fa82363b1 100644
@@ -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_append_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 () {
Signature · 1 line
2.22.0
author
#1 lore raw

PATCH v2 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

---
v2: Rebase

 meta/classes/systemd.bbclass | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
meta/classes/systemd.bbclass +5 -2
index d1cb17dc8d..747055b8fa 100644
@@ -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
#2 lore raw

✗ patchtest: failure for "[V2] util-linux: Make pam spec..." and 1 more

In reply to Khem Raj

== Series Details ==

Series: "[V2] util-linux: Make pam spec..." and 1 more
Revision: 1
URL : https://patchwork.openembedded.org/series/19285/
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