diff options
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/classes/systemd.bbclass | 11 | ||||
| -rw-r--r-- | meta/classes/update-rc.d.bbclass | 8 | 
2 files changed, 10 insertions, 9 deletions
| diff --git a/meta/classes/systemd.bbclass b/meta/classes/systemd.bbclass index cca2152927..42fa554c12 100644 --- a/meta/classes/systemd.bbclass +++ b/meta/classes/systemd.bbclass @@ -10,11 +10,14 @@ SYSTEMD_AUTO_ENABLE ??= "enable"  # even if the systemd DISTRO_FEATURE isn't enabled.  As such don't make any  # changes directly but check the DISTRO_FEATURES first.  python __anonymous() { -    if "systemd" in d.getVar("DISTRO_FEATURES", True).split(): +    features = d.getVar("DISTRO_FEATURES", True).split() +    # If the distro features have systemd but not sysvinit, inhibit update-rcd +    # from doing any work so that pure-systemd images don't have redundant init +    # files. +    if "systemd" in features:          d.appendVar("DEPENDS", " systemd-systemctl-native") -        # Set a variable so that update-rcd.bbclass knows we're active and can -        # disable itself. -        d.setVar("SYSTEMD_BBCLASS_ENABLED", "1") +        if "sysvinit" not in features: +            d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")  }  systemd_postinst() { diff --git a/meta/classes/update-rc.d.bbclass b/meta/classes/update-rc.d.bbclass index 0997702ee9..9f1e28a59d 100644 --- a/meta/classes/update-rc.d.bbclass +++ b/meta/classes/update-rc.d.bbclass @@ -80,12 +80,10 @@ python populate_packages_updatercd () {          postrm += d.getVar('updatercd_postrm', True)          d.setVar('pkg_postrm_%s' % pkg, postrm) -    # Run if the sysvinit feature is present, or if the systemd feature is present -    # but the systemd class hasn't been inherited.  We want to run in the latter case -    # as systemd has sysvinit compatibility, but we don't want to always so that -    # pure systemd images don't have redundent sysvinit files. +    # Check that this class isn't being inhibited (generally, by +    # systemd.bbclass) before doing any work.      if "sysvinit" in d.getVar("DISTRO_FEATURES").split() or \ -       ("systemd" in d.getVar("DISTRO_FEATURES").split() and not d.getVar("SYSTEMD_BBCLASS_ENABLED", True)): +       not d.getVar("INHIBIT_UPDATERCD_BBCLASS", True):          pkgs = d.getVar('INITSCRIPT_PACKAGES', True)          if pkgs == None:              pkgs = d.getVar('UPDATERCPN', True) | 
