diff options
| author | Martin Jansa <Martin.Jansa@gmail.com> | 2012-04-24 15:11:44 +0200 |
|---|---|---|
| committer | Martin Jansa <Martin.Jansa@gmail.com> | 2012-04-26 13:47:32 +0200 |
| commit | 154d0bb399ce6a0bdc2bf756d1a8a9c77dd0a755 (patch) | |
| tree | 223e5e4b232c60a83d3c8abd695477a43871645b /meta-oe/classes | |
| parent | 21d048aecfe72b6f15965906db988e9300fad68a (diff) | |
| download | meta-openembedded-154d0bb399ce6a0bdc2bf756d1a8a9c77dd0a755.tar.gz | |
systemd.bbclass: allow recipe to inherit systemd with empty SYSTEMD_SERVICE
* I have use case where common recipe does inherit systemd and only some BSP's are bbappending some SERVICEs to it
* install was moved intentionaly, so that /lib/systemd/system is not
created if there is no .service file (causing QA Warning about
unpackaged dir)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-oe/classes')
| -rw-r--r-- | meta-oe/classes/systemd.bbclass | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/meta-oe/classes/systemd.bbclass b/meta-oe/classes/systemd.bbclass index d8e30f4af9..db35717f63 100644 --- a/meta-oe/classes/systemd.bbclass +++ b/meta-oe/classes/systemd.bbclass | |||
| @@ -58,8 +58,6 @@ def systemd_after_parse(d): | |||
| 58 | for pkg_systemd in systemd_pkgs.split(): | 58 | for pkg_systemd in systemd_pkgs.split(): |
| 59 | service_pkg = 'SYSTEMD_SERVICE' + "_" + pkg_systemd | 59 | service_pkg = 'SYSTEMD_SERVICE' + "_" + pkg_systemd |
| 60 | systemd_services = d.getVar(service_pkg, 1) or d.getVar('SYSTEMD_SERVICE', 1) or "" | 60 | systemd_services = d.getVar(service_pkg, 1) or d.getVar('SYSTEMD_SERVICE', 1) or "" |
| 61 | if systemd_services == "": | ||
| 62 | raise bb.build.FuncFailed, "\n\n%s inherits systemd but doesn't set SYSTEMD_SERVICE / %s" % (bb_filename, service_pkg) | ||
| 63 | 61 | ||
| 64 | # prepend systemd-packages not already included | 62 | # prepend systemd-packages not already included |
| 65 | def systemd_create_package(pkg_systemd): | 63 | def systemd_create_package(pkg_systemd): |
| @@ -84,11 +82,11 @@ python __anonymous() { | |||
| 84 | 82 | ||
| 85 | # automatically install all *.service and *.socket supplied in recipe's SRC_URI | 83 | # automatically install all *.service and *.socket supplied in recipe's SRC_URI |
| 86 | do_install_append() { | 84 | do_install_append() { |
| 87 | install -d ${D}${systemd_unitdir}/system | ||
| 88 | for service in `find ${WORKDIR} -maxdepth 1 -name '*.service' -o -name '*.socket'` ; do | 85 | for service in `find ${WORKDIR} -maxdepth 1 -name '*.service' -o -name '*.socket'` ; do |
| 89 | # ensure installing systemd-files only (e.g not avahi *.service) | 86 | # ensure installing systemd-files only (e.g not avahi *.service) |
| 90 | if grep -q '\[Unit\]' $service ; then | 87 | if grep -q '\[Unit\]' $service ; then |
| 91 | install -m 644 $service ${D}${systemd_unitdir}/system | 88 | install -d ${D}${systemd_unitdir}/system |
| 89 | install -m 644 $service ${D}${systemd_unitdir}/system | ||
| 92 | fi | 90 | fi |
| 93 | done | 91 | done |
| 94 | } | 92 | } |
| @@ -203,7 +201,8 @@ python populate_packages_prepend () { | |||
| 203 | # run all modifications once when creating package | 201 | # run all modifications once when creating package |
| 204 | if os.path.exists('${D}'): | 202 | if os.path.exists('${D}'): |
| 205 | for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split(): | 203 | for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split(): |
| 206 | systemd_generate_package_scripts(pkg_systemd) | 204 | if d.getVar('SYSTEMD_SERVICE' + "_" + pkg_systemd, 1) and d.getVar('SYSTEMD_SERVICE' + "_" + pkg_systemd, 1).strip(): |
| 207 | systemd_add_rdepends(pkg_systemd) | 205 | systemd_generate_package_scripts(pkg_systemd) |
| 206 | systemd_add_rdepends(pkg_systemd) | ||
| 208 | systemd_check_services() | 207 | systemd_check_services() |
| 209 | } | 208 | } |
