diff options
author | Jacob Kroon <jacob.kroon@gmail.com> | 2013-10-30 01:57:11 +0100 |
---|---|---|
committer | Saul Wold <sgw@linux.intel.com> | 2013-10-31 23:57:04 -0700 |
commit | 2d9114aaf130179cb13c20c8b045c2694eca6fd9 (patch) | |
tree | 86137649cc217a2134422a1183ab566b7499b12c | |
parent | a896ac91109ab3f2a6b8c7253c6da3e3e60203b6 (diff) | |
download | openembedded-core-2d9114aaf130179cb13c20c8b045c2694eca6fd9.tar.gz openembedded-core-2d9114aaf130179cb13c20c8b045c2694eca6fd9.tar.bz2 openembedded-core-2d9114aaf130179cb13c20c8b045c2694eca6fd9.zip |
update-rc.d.bbclass: Cleanup package scripts
* Add proper preinst script
* Use -n "$D"/-z "$D" checks throughout the scripts
* Only set OPT in cases where its used
* Don't pass unnecessary -f to update-rc.d in postrm script
* Remove outdated comment
Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
-rw-r--r-- | meta/classes/update-rc.d.bbclass | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/meta/classes/update-rc.d.bbclass b/meta/classes/update-rc.d.bbclass index 9437e9cc31..29b5a8ea27 100644 --- a/meta/classes/update-rc.d.bbclass +++ b/meta/classes/update-rc.d.bbclass @@ -12,13 +12,11 @@ INITSCRIPT_PARAMS ?= "defaults" INIT_D_DIR = "${sysconfdir}/init.d" -updatercd_postinst() { -# test if there is a previous init script there, ie, we are updating the package -# if so, we stop the service and remove it before we install from the new package +updatercd_preinst() { +if [ -z "$D" -a -f "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then + ${INIT_D_DIR}/${INITSCRIPT_NAME} stop +fi if type update-rc.d >/dev/null 2>/dev/null; then - if [ -z "$D" -a -f "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then - ${INIT_D_DIR}/${INITSCRIPT_NAME} stop - fi if [ -n "$D" ]; then OPT="-f -r $D" else @@ -26,30 +24,32 @@ if type update-rc.d >/dev/null 2>/dev/null; then fi update-rc.d $OPT ${INITSCRIPT_NAME} remove fi +} -if [ -n "$D" ]; then - OPT="-r $D" -else - OPT="-s" -fi +updatercd_postinst() { if type update-rc.d >/dev/null 2>/dev/null; then + if [ -n "$D" ]; then + OPT="-r $D" + else + OPT="-s" + fi update-rc.d $OPT ${INITSCRIPT_NAME} ${INITSCRIPT_PARAMS} fi } updatercd_prerm() { -if test "x$D" = "x"; then +if [ -z "$D" ]; then ${INIT_D_DIR}/${INITSCRIPT_NAME} stop fi } updatercd_postrm() { -if test "$D" != ""; then - OPT="-f -r $D" -else - OPT="" -fi if type update-rc.d >/dev/null 2>/dev/null; then + if [ -n "$D" ]; then + OPT="-r $D" + else + OPT="" + fi update-rc.d $OPT ${INITSCRIPT_NAME} remove fi } @@ -68,22 +68,23 @@ python __anonymous() { PACKAGESPLITFUNCS_prepend = "populate_packages_updatercd " -populate_packages_updatercd[vardeps] += "updatercd_prerm updatercd_postrm updatercd_postinst" +populate_packages_updatercd[vardeps] += "updatercd_prerm updatercd_postrm updatercd_preinst updatercd_postinst" 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. - """ + bb.debug(1, 'adding update-rc.d calls to preinst/postinst/prerm/postrm for %s' % pkg) localdata = bb.data.createCopy(d) overrides = localdata.getVar("OVERRIDES", True) localdata.setVar("OVERRIDES", "%s:%s" % (pkg, overrides)) bb.data.update_data(localdata) + preinst = d.getVar('pkg_preinst_%s' % pkg, True) + if not preinst: + preinst = '#!/bin/sh\n' + preinst += localdata.getVar('updatercd_preinst', True) + d.setVar('pkg_preinst_%s' % pkg, preinst) + postinst = d.getVar('pkg_postinst_%s' % pkg, True) if not postinst: postinst = '#!/bin/sh\n' |