]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
update-rc.d.bbclass: ignore init script return code
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Tue, 11 Oct 2016 12:43:28 +0000 (15:43 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 11 Oct 2016 21:18:36 +0000 (22:18 +0100)
We need to ignore the return code from the init script 'stop' command in
the preinst and prerm scriptlets. Otherwise package upgrade or
deinstallation (at least when opkg is used) is likely to fail if the
daemon is not running. That is because an init script possibly returns
'1' if you try to stop a service that is not running which, in turn,
causes the scriptlet to fail which, in turn, causes the package
(de-)installation to fail.

[YOCTO #10299]

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/update-rc.d.bbclass

index 348f3c0962acf7badbf2abb36a75a8a0c47b34c2..321924bb3eeb92223198ed35ef322d2a9eabffeb 100644 (file)
@@ -13,7 +13,7 @@ INIT_D_DIR = "${sysconfdir}/init.d"
 
 updatercd_preinst() {
 if [ -z "$D" -a -f "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then
-       ${INIT_D_DIR}/${INITSCRIPT_NAME} stop
+       ${INIT_D_DIR}/${INITSCRIPT_NAME} stop || :
 fi
 if type update-rc.d >/dev/null 2>/dev/null; then
        if [ -n "$D" ]; then
@@ -38,7 +38,7 @@ fi
 
 updatercd_prerm() {
 if [ -z "$D" -a -x "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then
-       ${INIT_D_DIR}/${INITSCRIPT_NAME} stop
+       ${INIT_D_DIR}/${INITSCRIPT_NAME} stop || :
 fi
 }