aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChen Qi <Qi.Chen@windriver.com>2014-01-22 17:08:41 +0800
committerChen Qi <Qi.Chen@windriver.com>2014-01-23 20:02:47 +0800
commitf1cf5165fbbb4f3d90a6d8f35b26b8ad706e672a (patch)
treeda11795331724c11b608dabbc9c49087c0f82d79
parentbfef8cd680fb9dab2f8bc9788cd4d70b849f83f5 (diff)
downloadopenembedded-core-contrib-f1cf5165fbbb4f3d90a6d8f35b26b8ad706e672a.tar.gz
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 <Qi.Chen@windriver.com>
-rw-r--r--meta/classes/update-rc.d.bbclass12
1 files changed, 12 insertions, 0 deletions
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'