summaryrefslogtreecommitdiffstats
path: root/meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2016-07-13 17:56:34 -0400
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2016-07-28 14:35:37 -0400
commit8ffb402ac41c87b3b78c72d979168b0a2ada5fb5 (patch)
tree4e14a4815fe80a57ef202d7994f8e841686dbad7 /meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass
parent49a7698af82650ce5dd87bb4e52d20e0d209d022 (diff)
downloadtalos-openbmc-8ffb402ac41c87b3b78c72d979168b0a2ada5fb5.tar.gz
talos-openbmc-8ffb402ac41c87b3b78c72d979168b0a2ada5fb5.zip
classes-dbus: General refactoring
Take the more idiomatic approach of iterating on DBUS_PACKAGES to find files. Change-Id: I7656316b839f666bd1b25b757bef2c14a2cee326 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass')
-rw-r--r--meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass47
1 files changed, 36 insertions, 11 deletions
diff --git a/meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass b/meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass
index e6132faa7..3277cdb48 100644
--- a/meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass
@@ -1,20 +1,45 @@
-# Common code for applications providing a D-Bus service.
-
-# Class users should define DBUS_SERVICES prior to including.
+# Utilities and shortcuts for recipes providing D-Bus services.
+# Variables:
+# DBUS_PACKAGES ?= "${PN}"
+# The list of packages to which files should be added.
+#
+# DBUS_SERVICE_${PN} += "org.openbmc.Foo"
+# A list of dbus service names. The class will look for a dbus
+# configuration file with the same name with .conf appended.
+#
+inherit dbus-dir
+inherit obmc-phosphor-utils
RDEPENDS_${PN} += "dbus-perms"
+DBUS_PACKAGES ?= "${PN}"
+
+_INSTALL_DBUS_CONFIGS=""
+
python() {
- services = d.getVar('DBUS_SERVICES', True)
- if services:
- uris = " ".join( [ 'file://' + s + '.conf' for s in services.split() ] )
- d.appendVar('SRC_URI', ' ' + uris + ' ')
+ searchpaths = d.getVar('FILESPATH', True)
+
+ def add_dbus_config(d, service, pkg):
+ set_append(d, 'SRC_URI', 'file://%s.conf' % service)
+ set_append(d, 'FILES_%s' % pkg, '%s%s.conf' \
+ % (d.getVar('dbus_system_confdir', True), service))
+ set_append(d, '_INSTALL_DBUS_CONFIGS', '%s.conf' % service)
+
+
+ for pkg in listvar_to_list(d, 'DBUS_PACKAGES'):
+ services = listvar_to_list(d, 'DBUS_SERVICE_%s' % pkg)
+
+ for service in services:
+ add_dbus_config(d, service, pkg)
}
+
do_install_append() {
- # install the service configuration files
- install -d ${D}${sysconfdir}/dbus-1/system.d
- for s in ${DBUS_SERVICES}; do
- install ${WORKDIR}/$s.conf ${D}${sysconfdir}/dbus-1/system.d/$s.conf
+ # install the dbus configuration files
+ [ -z "${_INSTALL_DBUS_CONFIGS}" ] || \
+ install -d ${D}${dbus_system_confdir}
+ for c in ${_INSTALL_DBUS_CONFIGS}; do
+ install -m 0644 ${WORKDIR}/$c \
+ ${D}${dbus_system_confdir}$c
done
}
OpenPOWER on IntegriCloud