mirror of
https://git.yoctoproject.org/poky
synced 2026-04-30 03:32:12 +02:00
Prepending to populate_packages is rather ugly and means its hard to trace errors and also profiling informaiton is summed together in one function. This patch starts to split out the prepends to become separate functions to avoid these issues. This is generally a neater way to write functions than prepending to where there can sometimes be variable scope issues and we've been bitten by whitespace issues in the past. (From OE-Core rev: 4f9963d1d82ee896fe9491d6a8b32be42cd06f14) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
87 lines
2.6 KiB
Plaintext
87 lines
2.6 KiB
Plaintext
UPDATERCPN ?= "${PN}"
|
|
|
|
DEPENDS_append = " update-rc.d-native"
|
|
UPDATERCD = "update-rc.d"
|
|
UPDATERCD_virtclass-cross = ""
|
|
UPDATERCD_class-native = ""
|
|
UPDATERCD_class-nativesdk = ""
|
|
|
|
RDEPENDS_${UPDATERCPN}_append = " ${UPDATERCD}"
|
|
|
|
INITSCRIPT_PARAMS ?= "defaults"
|
|
|
|
INIT_D_DIR = "${sysconfdir}/init.d"
|
|
|
|
updatercd_postinst() {
|
|
if test "x$D" != "x"; then
|
|
OPT="-r $D"
|
|
else
|
|
OPT="-s"
|
|
fi
|
|
update-rc.d $OPT ${INITSCRIPT_NAME} ${INITSCRIPT_PARAMS}
|
|
}
|
|
|
|
updatercd_prerm() {
|
|
if test "x$D" = "x"; then
|
|
${INIT_D_DIR}/${INITSCRIPT_NAME} stop
|
|
fi
|
|
}
|
|
|
|
updatercd_postrm() {
|
|
if [ "$D" != "" ]; then
|
|
update-rc.d -f -r $D ${INITSCRIPT_NAME} remove
|
|
else
|
|
update-rc.d ${INITSCRIPT_NAME} remove
|
|
fi
|
|
}
|
|
|
|
|
|
def update_rc_after_parse(d):
|
|
if d.getVar('INITSCRIPT_PACKAGES') == None:
|
|
if d.getVar('INITSCRIPT_NAME') == None:
|
|
raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_NAME" % d.getVar('FILE')
|
|
if d.getVar('INITSCRIPT_PARAMS') == None:
|
|
raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_PARAMS" % d.getVar('FILE')
|
|
|
|
python __anonymous() {
|
|
update_rc_after_parse(d)
|
|
}
|
|
|
|
PACKAGESPLITFUNCS_prepend = "populate_packages_updatercd "
|
|
|
|
python populate_packages_updatercd () {
|
|
def update_rcd_package(pkg):
|
|
bb.debug(1, 'adding update-rc.d calls to postinst/postrm for %s' % pkg)
|
|
"""
|
|
update_rc.d postinst is appended here because pkg_postinst may require to
|
|
execute on the target. Not doing so may cause update_rc.d postinst invoked
|
|
twice to cause unwanted warnings.
|
|
"""
|
|
postinst = d.getVar('pkg_postinst_%s' % pkg, True) or d.getVar('pkg_postinst', True)
|
|
if not postinst:
|
|
postinst = '#!/bin/sh\n'
|
|
postinst += d.getVar('updatercd_postinst', True)
|
|
d.setVar('pkg_postinst_%s' % pkg, postinst)
|
|
|
|
prerm = d.getVar('pkg_prerm_%s' % pkg, True) or d.getVar('pkg_prerm', True)
|
|
if not prerm:
|
|
prerm = '#!/bin/sh\n'
|
|
prerm += d.getVar('updatercd_prerm', True)
|
|
d.setVar('pkg_prerm_%s' % pkg, prerm)
|
|
|
|
postrm = d.getVar('pkg_postrm_%s' % pkg, True) or d.getVar('pkg_postrm', True)
|
|
if not postrm:
|
|
postrm = '#!/bin/sh\n'
|
|
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)
|
|
}
|