We need the update-rc.d class to work when systemd is being used so that packages that only have SysV init scripts still work. However if a recipe supports both we don't want to install SysV and systemd files under systemd.
To solve this, before doing real work in update-rc.d check if the systemd class has been inherited and don't do anything if it has. Signed-off-by: Ross Burton <[email protected]> --- meta/classes/update-rc.d.bbclass | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/meta/classes/update-rc.d.bbclass b/meta/classes/update-rc.d.bbclass index f9d55fb..51ad8b1 100644 --- a/meta/classes/update-rc.d.bbclass +++ b/meta/classes/update-rc.d.bbclass @@ -75,12 +75,15 @@ python populate_packages_updatercd () { postrm += d.getVar('updatercd_postrm', True) d.setVar('pkg_postrm_%s' % pkg, postrm) - pkgs = d.getVar('INITSCRIPT_PACKAGES', True) - if pkgs == None: - pkgs = d.getVar('UPDATERCPN', True) - packages = (d.getVar('PACKAGES', True) or "").split() - if not pkgs in packages and packages != []: - pkgs = packages[0] - for pkg in pkgs.split(): - update_rcd_package(pkg) + # If the systemd class has also been inherited, then don't do anything as + # the systemd units will override anything created by update-rc.d. + if not d.getVar("SYSTEMD_BBCLASS_ENABLED", True): + pkgs = d.getVar('INITSCRIPT_PACKAGES', True) + if pkgs == None: + pkgs = d.getVar('UPDATERCPN', True) + packages = (d.getVar('PACKAGES', True) or "").split() + if not pkgs in packages and packages != []: + pkgs = packages[0] + for pkg in pkgs.split(): + update_rcd_package(pkg) } -- 1.7.10.4 _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
