[oe-commits] Andreas Müller : systemd.bbclass: automatically extend RDEPENDS for *-systemd packages

git at git.openembedded.org git at git.openembedded.org
Thu Feb 23 17:02:31 UTC 2012


Module: meta-openembedded.git
Branch: master
Commit: 114cefffb9879b9e52c3323872a7dfac03d626a9
URL:    http://git.openembedded.org/?p=meta-openembedded.git&a=commit;h=114cefffb9879b9e52c3323872a7dfac03d626a9

Author: Andreas Müller <schnitzeltony at googlemail.com>
Date:   Wed Feb 22 16:03:20 2012 +0100

systemd.bbclass: automatically extend RDEPENDS for *-systemd packages

* append systemd functionalty moved into systemd_add_rdepends
* append base-pgk in case receipe does not set RDEPENDS for *-systemd package

Signed-off-by: Andreas Müller <schnitzeltony at googlemail.com>
Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>

---

 meta-oe/classes/systemd.bbclass |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/meta-oe/classes/systemd.bbclass b/meta-oe/classes/systemd.bbclass
index c712e17..dd423b5 100644
--- a/meta-oe/classes/systemd.bbclass
+++ b/meta-oe/classes/systemd.bbclass
@@ -122,10 +122,6 @@ python populate_packages_prepend () {
 		postrm += bb.data.getVar('systemd_postrm', localdata, 1)
 		bb.data.setVar('pkg_postrm_%s' % pkg, postrm, d)
 
-		rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 0) or bb.data.getVar('RDEPENDS', d, 0) or "")
-		rdepends.append("systemd")
-		bb.data.setVar('RDEPENDS_' + pkg, " " + " ".join(rdepends), d)
-
 	# add files to FILES_*-systemd if existent and not already done
 	def systemd_append_file(pkg_systemd, file_append):
 		appended = False
@@ -185,10 +181,27 @@ python populate_packages_prepend () {
 					raise bb.build.FuncFailed, "\n\nFor package %s SYSTEMD_SERVICE-entry %s does not exist" % \
 						(pkg_systemd, service)
 
+	# *-systemd packages get RDEPENDS to systemd and their base package
+	def systemd_add_rdepends(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)
+
 
 	# run all modifications once when creating package
 	if os.path.exists('${D}'):
 		for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
 			systemd_generate_package_scripts(pkg_systemd)
+			systemd_add_rdepends(pkg_systemd)
 		systemd_check_services()
 }





More information about the Openembedded-commits mailing list