PACKAGE_WRITE_DEPS[1] is used to define package dependencies that are needed at rootfs time, for example when a postinst can use a native tool.
We allow distros to build recipes that support both systemd and sysv at the same time, and the post-install script generated by systemd.bbclass will use systemctl (via systemd-systemctl-native) at rootfs time to install the units and thus generate the required symlinks. Presently the dependency on systemctl-native is added to recipes via systemd.bbclass but this results in all recipes that inherit that class having the dependencies. This is actually suboptimal: at rootfs time the key requirement is to install the units if and only if systemd is being used. We can move the PACKAGE_WRITE_DEPS dependency on systemd-systemctl-native from each recipe (via the class) to systemd itself so units are installed if systemd is present, and not otherwise. This means recipes don't depend on systemd-systemctl-native (which has non-trivial build dependencies itself), and the units are not installed in non-systemd deployments. [1] https://docs.yoctoproject.org/ref-manual/variables.html#term-PACKAGE_WRITE_DEPS Signed-off-by: Ross Burton <[email protected]> --- meta/classes-recipe/systemd.bbclass | 1 - meta/recipes-core/systemd/systemd_259.5.bb | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/classes-recipe/systemd.bbclass b/meta/classes-recipe/systemd.bbclass index 26eaaf1922..5d8e6086b2 100644 --- a/meta/classes-recipe/systemd.bbclass +++ b/meta/classes-recipe/systemd.bbclass @@ -22,7 +22,6 @@ python __anonymous() { # redundant init files. if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d): d.appendVar("DEPENDS", " systemd-systemctl-native") - d.appendVar("PACKAGE_WRITE_DEPS", " systemd-systemctl-native") d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") } diff --git a/meta/recipes-core/systemd/systemd_259.5.bb b/meta/recipes-core/systemd/systemd_259.5.bb index f3ec0edae7..594a716812 100644 --- a/meta/recipes-core/systemd/systemd_259.5.bb +++ b/meta/recipes-core/systemd/systemd_259.5.bb @@ -22,6 +22,8 @@ REQUIRED_DISTRO_FEATURES += "systemd" # this and hence we can no longer support it CONFLICT_DISTRO_FEATURES += "sysvinit" +PACKAGE_WRITE_DEPS += "systemd-systemctl-native" + SRC_URI += " \ file://touchscreen.rules \ file://00-create-volatile.conf \ -- 2.43.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#240635): https://lists.openembedded.org/g/openembedded-core/message/240635 Mute This Topic: https://lists.openembedded.org/mt/120205950/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
