[OE-core] [oe-core][PATCH 1/1] systemd-compat-units: pkg_postinst() does not work

Joe Slater jslater at windriver.com
Mon Aug 15 23:04:53 UTC 2016


The test for various files is wrong and will always be
true, even if init.d does not exist.

Exit if init.d does not exist, and correctly test for
file existence otherwise.

Signed-off-by: Joe Slater <jslater at windriver.com>
---
 meta/recipes-core/systemd/systemd-compat-units.bb |   19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/meta/recipes-core/systemd/systemd-compat-units.bb b/meta/recipes-core/systemd/systemd-compat-units.bb
index 0b8ff09..8ad10ae 100644
--- a/meta/recipes-core/systemd/systemd-compat-units.bb
+++ b/meta/recipes-core/systemd/systemd-compat-units.bb
@@ -3,7 +3,7 @@ SUMMARY = "Enhances systemd compatilibity with existing SysVinit scripts"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
 
-PR = "r29"
+PR = "r30"
 
 DEPENDS = "systemd-systemctl-native"
 
@@ -23,21 +23,24 @@ SYSTEMD_DISABLED_SYSV_SERVICES = " \
 "
 
 pkg_postinst_${PN} () {
-	cd $D${sysconfdir}/init.d
 
-	echo "Disabling the following sysv scripts: "
+	cd $D${sysconfdir}/init.d  ||  exit 0
 
-	OPTS=""
+	echo "Disabling the following sysv scripts: "
 
 	if [ -n "$D" ]; then
 		OPTS="--root=$D"
+	else
+		OPTS=""
 	fi
 
 	for i in ${SYSTEMD_DISABLED_SYSV_SERVICES} ; do
-		if [ \( -e $i -o $i.sh \) -a ! \( -e $D${sysconfdir}/systemd/system/$i.service -o  -e $D${systemd_unitdir}/system/$i.service \) ] ; then
-			echo -n "$i: " ; systemctl ${OPTS} mask $i.service
+		if [ -e $i -o -e $i.sh ]  &&   ! [ -e $D${sysconfdir}/systemd/system/$i.service -o -e $D${systemd_unitdir}/system/$i.service ] ; then
+			echo -n "$i: "
+			systemctl $OPTS mask $i.service
 		fi
-	done ; echo
+	done
+	echo
 }
 
-RDPEPENDS_${PN} = "systemd"
+RDEPENDS_${PN} = "systemd"
-- 
1.7.9.5




More information about the Openembedded-core mailing list