systemd: pass --root in prerm if running on host
authorRoss Burton <ross.burton@intel.com>
Wed, 18 Dec 2013 16:20:06 +0000 (16:20 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 18 Dec 2013 17:08:06 +0000 (17:08 +0000)
If a systemd image is built without a package manager then packages will be
removed from an image during rootfs generation, but without passing --root the
systemctl will look on the *host* system.

(From OE-Core rev: d01da862d10d9544f8da846b577cf955041d4c0c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/systemd.bbclass

index efc1adc..2bd63a4 100644 (file)
@@ -38,12 +38,18 @@ fi
 }
 
 systemd_prerm() {
+OPTS=""
+
+if [ -n "$D" ]; then
+    OPTS="--root=$D"
+fi
+
 if type systemctl >/dev/null 2>/dev/null; then
        if [ -z "$D" ]; then
                systemctl stop ${SYSTEMD_SERVICE}
        fi
 
-       systemctl disable ${SYSTEMD_SERVICE}
+       systemctl $OPTS disable ${SYSTEMD_SERVICE}
 fi
 }