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.

(From OE-Core rev: de875cb8893fd8372dd77babaef54ab2d790693d)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chen Qi 2014-01-23 20:12:35 +08:00 committed by Richard Purdie
parent 85b3ba930d
commit 021129ab0b
1 changed files with 12 additions and 0 deletions

View File

@ -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'