update-rcd.bbclass: fix host/target test

"update-rc: Stop and remove service if updating package" (oe-core d91b08) had a
bug in it's implementation of a "host or target" test which always resulted in
"target", so the rootfs scripts were attempting to restart daemons on the host.

(From OE-Core rev: 2b179d90eacc58f0b217f64407782a9174362850)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2013-10-16 14:07:51 +01:00
committed by Richard Purdie
parent 68a41d2afd
commit 529bf977e9

View File

@@ -13,15 +13,13 @@ INITSCRIPT_PARAMS ?= "defaults"
INIT_D_DIR = "${sysconfdir}/init.d"
updatercd_postinst() {
IN_TARGET=`test "x$D" = "x"`
# 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
if type update-rc.d >/dev/null 2>/dev/null; then
if [ $IN_TARGET -a `test -f "${INIT_D_DIR}/${INITSCRIPT_NAME}"` ]; then
if [ -z "$D" -a `test -f "${INIT_D_DIR}/${INITSCRIPT_NAME}"` ]; then
${INIT_D_DIR}/${INITSCRIPT_NAME} stop
fi
if [ ! $IN_TARGET ]; then
if [ -n "$D" ]; then
OPT="-f -r $D"
else
OPT="-f"
@@ -29,7 +27,7 @@ if type update-rc.d >/dev/null 2>/dev/null; then
update-rc.d $OPT ${INITSCRIPT_NAME} remove
fi
if [ ! $IN_TARGET ]; then
if [ -n "$D" ]; then
OPT="-r $D"
else
OPT="-s"