[oe] [meta-oe][v2] 07/22] systemd.bbclass: automatically extend RDEPENDS for *-systemd packages

Andreas Müller schnitzeltony at googlemail.com
Thu Feb 16 02:03:01 UTC 2012


* append systemd:  functionalty moved into systemd_add_rdepends
* append base-pgk: create warning if *-systemd package already rdepends
                   it's base package

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

diff --git a/meta-oe/classes/systemd.bbclass b/meta-oe/classes/systemd.bbclass
index 1e0f3e0..ecd3b8d 100644
--- a/meta-oe/classes/systemd.bbclass
+++ b/meta-oe/classes/systemd.bbclass
@@ -187,8 +187,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):
+		pn_pkg = d.getVar('PN', 1)
+		# RDEPENDS_${pkg_systemd} += pkg_systemd_base systemd
+		rdepends = explode_deps(d.getVar('RDEPENDS_' + pkg_systemd, 1) or "")
+		if not 'systemd' in rdepends:
+			rdepends.append('systemd')
+		pkg_systemd_base = pkg_systemd.replace('-systemd', '')
+		# not rdepending myself
+		if pkg_systemd != pn_pkg:
+			#  avoid double entries
+			if not pkg_systemd_base in rdepends:
+				rdepends.append(pkg_systemd_base)
+			else:
+				bb.warn("%s: it is recommended to remove %s from RDEPENDS_%s since systemd.bbclass takes care" % \
+					(d.getVar('FILE'), pkg_systemd_base, pkg_systemd))
+		d.setVar('RDEPENDS_' + pkg_systemd, " " + " ".join(rdepends))
+
 
 	for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
 		systemd_generate_package_scripts(pkg_systemd)
+		systemd_add_rdepends(pkg_systemd)
 	systemd_check_services()
 }
-- 
1.7.4.4





More information about the Openembedded-devel mailing list