aboutsummaryrefslogtreecommitdiffstats
path: root/meta-systemd
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2013-02-13 17:25:34 +0000
committerMartin Jansa <Martin.Jansa@gmail.com>2013-04-12 18:48:42 +0200
commit0afa2a51d2720ed1d6c06aaef17bd90248ef650e (patch)
tree7cd9308d58e8991c248cb8b10d81d3f008ea7ea6 /meta-systemd
parented4ef208ef4dccad79d68ad6ee43b63b606b6ea8 (diff)
downloadmeta-openembedded-0afa2a51d2720ed1d6c06aaef17bd90248ef650e.tar.gz
Delete systemd class.
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-systemd')
-rw-r--r--meta-systemd/classes/systemd.bbclass233
1 files changed, 0 insertions, 233 deletions
diff --git a/meta-systemd/classes/systemd.bbclass b/meta-systemd/classes/systemd.bbclass
deleted file mode 100644
index 4069367426..0000000000
--- a/meta-systemd/classes/systemd.bbclass
+++ /dev/null
@@ -1,233 +0,0 @@
-DEPENDS_append = " systemd-systemctl-native"
-
-SYSTEMD_AUTO_ENABLE ??= "enable"
-
-SYSTEMD_AUTO_RRECOMMENDS ??= "enable"
-
-systemd_postinst() {
-OPTS=""
-
-if [ -n "$D" ]; then
- OPTS="--root=$D"
-fi
-
-systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE}
-
-if [ -z "$D" -a ${SYSTEMD_AUTO_ENABLE} = "enable" ]; then
- systemctl start ${SYSTEMD_SERVICE}
-fi
-}
-
-systemd_prerm() {
-if [ -z "$D" ]; then
- systemctl stop ${SYSTEMD_SERVICE}
-fi
-
-systemctl disable ${SYSTEMD_SERVICE}
-}
-
-def get_package_var(d, var, pkg):
- val = (d.getVar('%s_%s' % (var, pkg), 1) or "").strip()
- if val == "":
- val = (d.getVar(var, 1) or "").strip()
- return val
-
-def systemd_after_parse(d):
- features = d.getVar("DISTRO_FEATURES", True).split()
- # If the distro features have systemd but not sysvinit, inhibit update-rcd
- # from doing any work so that pure-systemd images don't have redundant init
- # files.
- if "systemd" in features:
- if "sysvinit" not in features:
- d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
-
- def systemd_check_vars():
- if d.getVar('BB_WORKERCONTEXT', True) is not None:
- return
-
- bb_filename = d.getVar('FILE')
- packages = d.getVar('PACKAGES', 1)
-
- # check SYSTEMD_PACKAGES
- systemd_pkgs = d.getVar('SYSTEMD_PACKAGES', 1) or ""
- if systemd_pkgs == "":
- raise bb.build.FuncFailed, "\n\n%s inherits systemd but doesn't set SYSTEMD_PACKAGES" % bb_filename
- for pkg_systemd in systemd_pkgs.split():
- if pkg_systemd.find("-systemd") == -1:
- if pkg_systemd != d.getVar('PN', 1):
- raise bb.build.FuncFailed, \
- "\n\n%s: %s in SYSTEMD_PACKAGES does not match <existing-package>-systemd or ${PN}" % \
- (bb_filename, pkg_systemd)
- else:
- pkg_systemd_base = pkg_systemd
- if pkg_systemd_base.endswith('-systemd'):
- pkg_systemd_base = pkg_systemd[:-8]
- if pkg_systemd_base not in packages:
- raise bb.build.FuncFailed, \
- "\n\n%s: %s in SYSTEMD_PACKAGES does not match <existing-package>-systemd or ${PN}" % \
- ( bb_filename, pkg_systemd)
-
- # prepend systemd-packages not already included
- def systemd_create_package(pkg_systemd):
- packages = d.getVar('PACKAGES', 1)
- if not pkg_systemd in packages:
- packages = "%s %s" % (pkg_systemd, packages)
- d.setVar('PACKAGES', packages)
-
-
- bpn = d.getVar('BPN', 1)
- ml = d.getVar('MLPREFIX', 1) or ""
- if bpn + "-native" != d.getVar('PN', 1) and \
- bpn + "-cross" != d.getVar('PN', 1) and \
- ml + bpn == d.getVar('PN', 1) and \
- "nativesdk-" + bpn != d.getVar('PN', 1):
- systemd_check_vars()
- for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
- systemd_create_package(pkg_systemd)
-
-
-python __anonymous() {
- systemd_after_parse(d)
-}
-
-# automatically install all *.service and *.socket supplied in recipe's SRC_URI
-do_install_append() {
- for service in `find ${WORKDIR} -maxdepth 1 -name '*.service' -o -name '*.socket'` ; do
- # ensure installing systemd-files only (e.g not avahi *.service)
- if grep -q '\[Unit\]' $service ; then
- install -d ${D}${systemd_unitdir}/system
- install -m 644 $service ${D}${systemd_unitdir}/system
- fi
- done
-}
-
-python populate_packages_prepend () {
- def systemd_generate_package_scripts(pkg):
- bb.debug(1, 'adding systemd calls to postinst/postrm for %s' % pkg)
- localdata = d.createCopy()
- overrides = localdata.getVar("OVERRIDES", 1)
- localdata.setVar("OVERRIDES", "%s:%s" % (pkg, overrides))
- bb.data.update_data(localdata)
-
- """
- systemd postinst is appended here because pkg_postinst may require to
- execute on the target. Not doing so may cause systemd postinst invoked
- twice to cause unwanted warnings.
- """
- postinst = localdata.getVar('pkg_postinst', 1)
- if not postinst:
- postinst = '#!/bin/sh\n'
- postinst += localdata.getVar('systemd_postinst', 1)
- d.setVar('pkg_postinst_%s' % pkg, postinst)
-
- prerm = localdata.getVar('pkg_prerm', 1)
- if not prerm:
- prerm = '#!/bin/sh\n'
- prerm += localdata.getVar('systemd_prerm', 1)
- d.setVar('pkg_prerm_%s' % pkg, prerm)
-
- # add files to FILES_*-systemd if existent and not already done
- def systemd_append_file(pkg_systemd, file_append):
- appended = False
- if os.path.exists('${D}' + file_append):
- var_name = "FILES_" + pkg_systemd
- files = d.getVar(var_name, 0) or ""
- if file_append not in files.split():
- d.setVar(var_name, "%s %s" % (files, file_append))
- appended = True
- return appended
-
- # add systemd files to FILES_*-systemd, parse for Also= and follow recursive
- def systemd_add_files_and_parse(pkg_systemd, path, service, keys):
- # avoid infinite recursion
- if systemd_append_file(pkg_systemd, path + service):
- fullpath = '${D}' + path + service
- if service.find('.socket') != -1:
- # for *.socket add *.service and *@.service
- service_base = service.replace('.socket', '')
- systemd_add_files_and_parse(pkg_systemd, path, service_base + '.service', keys)
- systemd_add_files_and_parse(pkg_systemd, path, service_base + '@.service', keys)
- for key in keys.split():
- # recurse all dependencies found in keys ('Also';'Conflicts';..) and add to files
- cmd = "grep %s %s | sed 's,%s=,,g' | tr ',' '\\n'" % (key, fullpath, key)
- pipe = os.popen(cmd, 'r')
- line = pipe.readline()
- while line:
- line = line.replace('\n', '')
- systemd_add_files_and_parse(pkg_systemd, path, line, keys)
- line = pipe.readline()
- pipe.close()
-
- # check service-files and call systemd_add_files_and_parse for each entry
- def systemd_check_services():
- base_libdir = d.getVar('base_libdir', 1)
- searchpaths = '/etc/systemd/system/' + ' '
- searchpaths += '/lib/systemd/system/' + ' '
- searchpaths += '/usr/lib/systemd/system/' + ' '
- systemd_packages = d.getVar('SYSTEMD_PACKAGES', 1)
- has_exactly_one_service = len(systemd_packages.split()) == 1
- if has_exactly_one_service:
- has_exactly_one_service = len(get_package_var(d, 'SYSTEMD_SERVICE', systemd_packages).split()) == 1
-
- keys = 'Also' # Conflicts??
- if has_exactly_one_service:
- # single service gets also the /dev/null dummies
- keys = 'Also Conflicts'
- # scan for all in SYSTEMD_SERVICE[]
- for pkg_systemd in systemd_packages.split():
- for service in get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd).split():
- path_found = ''
- for path in searchpaths.split():
- if os.path.exists('${D}' + path + service):
- path_found = path
- if path_found != '':
- systemd_add_files_and_parse(pkg_systemd, path_found, service, keys)
- else:
- raise bb.build.FuncFailed, "\n\nFor package %s SYSTEMD_SERVICE-entry %s does not exist" % \
- (pkg_systemd, service)
-
- """ Setup rdepends / rrecommmends as:
-
- -----------------------------
- | pkg_systemd_base: 'foo' |
- -----------------------------
- | ^
- | | --------------
- rrecommends | | rdepends | 'systemd' |
- | | ->--------------
- V | / rdepends
- ------------------------------/
- | pkg_systemd: 'foo-systemd' |
- ------------------------------
- """
- def systemd_add_rdepends_rrecommends(pkg_systemd):
- # RDEPENDS_${pkg_systemd} += pkg_systemd_base systemd
- rdepends = d.getVar('RDEPENDS_' + pkg_systemd, 1) or ""
- rdepends_arr = rdepends.split()
- if not 'systemd' in rdepends_arr:
- rdepends = '%s %s' % (rdepends, 'systemd')
- pkg_systemd_base = pkg_systemd.replace('-systemd', '')
- # no automatism for:
- # recipes setting rdepends themselves AND
- # not rdepending myself AND
- # avoid double entries
- if len(rdepends_arr) == 0 and pkg_systemd != '${PN}' and not pkg_systemd_base in rdepends:
- rdepends = '%s %s' % (rdepends, pkg_systemd_base)
- d.setVar('RDEPENDS_' + pkg_systemd, rdepends)
- auto_rrecommends = d.getVar('SYSTEMD_AUTO_RRECOMMENDS', 1) or 'enable'
- if auto_rrecommends == 'enable':
- # RRECOMMENDS_${pkg_systemd_base} += pkg_systemd systemd
- rrecommends = d.getVar('RRECOMMENDS_' + pkg_systemd_base, 1) or ""
- # not rrecommending myself AND avoid double entries
- if pkg_systemd != pkg_systemd_base and not pkg_systemd in rrecommends.split():
- rrecommends = '%s %s' % (rrecommends, pkg_systemd)
- d.setVar('RRECOMMENDS_' + pkg_systemd_base, rrecommends)
-
- # run all modifications once when creating package
- if os.path.exists('${D}'):
- for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
- if get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd) != "":
- systemd_generate_package_scripts(pkg_systemd)
- systemd_add_rdepends_rrecommends(pkg_systemd)
- systemd_check_services()
-}