summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2013-03-05 14:12:50 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-03-26 22:42:37 +0000
commitac00e56cb9daacef17a6fdebe7b8ca1667b7e1c4 (patch)
tree581c2bbb391709617bcee31142b556c89e1e8927
parent2c403979c03898c679c5a1e1092aec784dbeb77c (diff)
downloadopenembedded-core-ac00e56cb9daacef17a6fdebe7b8ca1667b7e1c4.tar.gz
openembedded-core-ac00e56cb9daacef17a6fdebe7b8ca1667b7e1c4.tar.bz2
openembedded-core-ac00e56cb9daacef17a6fdebe7b8ca1667b7e1c4.zip
systemd: check for systemctl first, and don't force systemd to be installed.
With both sysvinit and systemd features enabled these postinsts may actually run on a target without systemd, so check that systemctl is present before using it. Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--meta/classes/systemd.bbclass27
1 files changed, 11 insertions, 16 deletions
diff --git a/meta/classes/systemd.bbclass b/meta/classes/systemd.bbclass
index 564cd727df..cca2152927 100644
--- a/meta/classes/systemd.bbclass
+++ b/meta/classes/systemd.bbclass
@@ -24,19 +24,23 @@ if [ -n "$D" ]; then
OPTS="--root=$D"
fi
-systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE}
+if type systemctl >/dev/null; then
+ systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE}
-if [ -z "$D" -a "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then
- systemctl start ${SYSTEMD_SERVICE}
+ if [ -z "$D" -a "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then
+ systemctl start ${SYSTEMD_SERVICE}
+ fi
fi
}
systemd_prerm() {
-if [ -z "$D" ]; then
- systemctl stop ${SYSTEMD_SERVICE}
-fi
+if type systemctl >/dev/null; then
+ if [ -z "$D" ]; then
+ systemctl stop ${SYSTEMD_SERVICE}
+ fi
-systemctl disable ${SYSTEMD_SERVICE}
+ systemctl disable ${SYSTEMD_SERVICE}
+fi
}
python systemd_populate_packages() {
@@ -56,14 +60,6 @@ python systemd_populate_packages() {
bb.error('%s does not appear in package list, please add it' % pkg_systemd)
- # Add a runtime dependency on systemd to pkg
- def systemd_add_rdepends(pkg):
- rdepends = d.getVar('RDEPENDS_' + pkg, True) or ""
- if not 'systemd' in rdepends.split():
- rdepends = '%s %s' % (rdepends, 'systemd')
- d.setVar('RDEPENDS_' + pkg, rdepends)
-
-
def systemd_generate_package_scripts(pkg):
bb.debug(1, 'adding systemd calls to postinst/postrm for %s' % pkg)
@@ -156,7 +152,6 @@ python systemd_populate_packages() {
systemd_check_package(pkg)
if d.getVar('SYSTEMD_SERVICE_' + pkg, True):
systemd_generate_package_scripts(pkg)
- systemd_add_rdepends(pkg)
systemd_check_services()
}