In case SYSTEMD_SERVICE contains only one *.service file, the whole folder
${base_libdir}/systemd/system/ is added to FILES_* otherwise only the *.service
files found in SYSTEMD_SERVICE.

Signed-off-by: Andreas Müller <schnitzelt...@googlemail.com>
---
 meta-oe/classes/systemd.bbclass |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/meta-oe/classes/systemd.bbclass b/meta-oe/classes/systemd.bbclass
index 3c1ed14..8927980 100644
--- a/meta-oe/classes/systemd.bbclass
+++ b/meta-oe/classes/systemd.bbclass
@@ -120,7 +120,23 @@ python populate_packages_prepend () {
                rdepends.append("systemd")
                bb.data.setVar('RDEPENDS_' + pkg, " " + " ".join(rdepends), d)
 
+       # add systemd files to FILES_*-systemd
+       def systemd_add_files(pkg_systemd):
+               systemd_services = d.getVar('SYSTEMD_SERVICE' + "_" + 
pkg_systemd, 1) or d.getVar('SYSTEMD_SERVICE', 1)
+               files_append = ""
+               if len(systemd_services.split()) == 1:
+                       # distribute complete ${base_libdir}/systemd/system/ to 
${SYSTEMD_PACKAGES}
+                       files_append = '${base_libdir}/systemd/system/'
+               else:
+                       # distribute files set in SYSTEMD_SERVICE to 
${SYSTEMD_PACKAGES}
+                       for service in systemd_services.split():
+                               files_append += ' 
${base_libdir}/systemd/system/' + service
+
+               var_name = "FILES_" + pkg_systemd
+               files = d.getVar(var_name, 0) or ""
+               d.setVar(var_name, "%s %s" % (files, files_append))
 
        for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
                systemd_prepost_instrm(pkg_systemd)
+               systemd_add_files(pkg_systemd)
 }
-- 
1.7.4.4


_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

Reply via email to