From: Richard Purdie Date: Wed, 15 Sep 2021 21:42:03 +0000 (+0100) Subject: useradd: Ensure preinst data is expanded correctly in pkgdata X-Git-Tag: yocto-3.4~130 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=375430f249e7e0b6622e566e2478b40ba7e606ab;p=openembedded-core.git useradd: Ensure preinst data is expanded correctly in pkgdata The preinst data in pkgdata will not expand out the ${XXX_PARAM} variables since they don't use a package suffix. It happens that the final expansion used for the packages is corrected by a second trip through the datastore. The first version is used for calculation of the task output hash and recent improvements in hash reuse showed this data wasn't using included in the hashes, meaning for example builds with dynamic IDs were mixing sstate with builds using static IDs. The result was a mess. Fix this by expanding the data in the preinst correctly to use the package specific _PARAM values. Signed-off-by: Richard Purdie --- diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass index 287ef84334..20771a0ce5 100644 --- a/meta/classes/useradd.bbclass +++ b/meta/classes/useradd.bbclass @@ -230,6 +230,10 @@ fakeroot python populate_packages:prepend () { preinst += 'perform_useradd () {\n%s}\n' % d.getVar('perform_useradd') preinst += 'perform_groupmems () {\n%s}\n' % d.getVar('perform_groupmems') preinst += d.getVar('useradd_preinst') + # Expand out the *_PARAM variables to the package specific versions + for rep in ["GROUPADD_PARAM", "USERADD_PARAM", "GROUPMEMS_PARAM"]: + val = d.getVar(rep + ":" + pkg) or "" + preinst = preinst.replace("${" + rep + "}", val) d.setVar('pkg_preinst:%s' % pkg, preinst) # RDEPENDS setup