From: Alexander Kanavin Date: Wed, 4 Dec 2024 06:48:50 +0000 (+0100) Subject: systemd-compat-units: execute postinst on target X-Git-Tag: yocto-5.2~1022 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e88f22da19a7f3f9bf23f2a607ffde6b5b1a3265;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git systemd-compat-units: execute postinst on target There is a race here where postinst relies on existence of various files from other packages on the target rootfs to operate properly, but doesn't ensure that it runs after all of those packages have been installed. Adding dependencies on those packages is not a solution as the recipe is not supposed to bring them into rootfs, only make adjustments if they are present. This commit moves postinst execution to the first boot; another solution would be to replace the whole recipe with ROOTFS_POSTPROCESS_COMMAND. This was exposed with rpm 4.20 which rearranges the order in which packages are installed, and exposes the issue. Signed-off-by: Alexander Kanavin Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-core/systemd/systemd-compat-units.bb b/meta/recipes-core/systemd/systemd-compat-units.bb index b9295458237..33257395440 100644 --- a/meta/recipes-core/systemd/systemd-compat-units.bb +++ b/meta/recipes-core/systemd/systemd-compat-units.bb @@ -26,7 +26,7 @@ SYSTEMD_DISABLED_SYSV_SERVICES = " \ syslog.busybox \ " -pkg_postinst:${PN} () { +pkg_postinst_ontarget:${PN} () { test -d $D${sysconfdir}/init.d || exit 0 cd $D${sysconfdir}/init.d