From de875cb8893fd8372dd77babaef54ab2d790693d Mon Sep 17 00:00:00 2001 From: Chen Qi Date: Thu, 23 Jan 2014 20:12:35 +0800 Subject: update-rc.d: automatically rdepend on initscripts-funtions Automatically add 'initscripts-functions' to packages when needed. This extra dependency is added only when the package's init script would be used at system start-up. In other words, in a systemd based image, if the package has already got its service files, it will not have this extra dependency. Signed-off-by: Chen Qi Signed-off-by: Saul Wold --- meta/classes/update-rc.d.bbclass | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'meta/classes/update-rc.d.bbclass') diff --git a/meta/classes/update-rc.d.bbclass b/meta/classes/update-rc.d.bbclass index c9bf04c4f8..ad803c2d82 100644 --- a/meta/classes/update-rc.d.bbclass +++ b/meta/classes/update-rc.d.bbclass @@ -71,6 +71,16 @@ PACKAGESPLITFUNCS_prepend = "populate_packages_updatercd " populate_packages_updatercd[vardeps] += "updatercd_prerm updatercd_postrm updatercd_preinst updatercd_postinst" python populate_packages_updatercd () { + def update_rcd_auto_depend(pkg): + import subprocess + import os + path = d.expand("${D}${INIT_D_DIR}/${INITSCRIPT_NAME}") + if not os.path.exists(path): + return + statement = "grep -q -w '/etc/init.d/functions' %s" % path + if subprocess.call(statement, shell=True) == 0: + d.appendVar('RDEPENDS_' + pkg, ' initscripts-functions') + def update_rcd_package(pkg): bb.debug(1, 'adding update-rc.d calls to preinst/postinst/prerm/postrm for %s' % pkg) @@ -79,6 +89,8 @@ python populate_packages_updatercd () { localdata.setVar("OVERRIDES", "%s:%s" % (pkg, overrides)) bb.data.update_data(localdata) + update_rcd_auto_depend(pkg) + preinst = d.getVar('pkg_preinst_%s' % pkg, True) if not preinst: preinst = '#!/bin/sh\n' -- cgit 1.2.3-korg