SUMMARY = "Settings DBUS object" DESCRIPTION = "Settings DBUS object" HOMEPAGE = "http://github.com/openbmc/phosphor-settingsd" PR = "r1" inherit allarch inherit obmc-phosphor-license inherit setuptools inherit obmc-phosphor-dbus-service inherit pythonnative include phosphor-settings-manager.inc DBUS_SERVICE_${PN} = "org.openbmc.settings.Host.service" DEPENDS += "python-pyyaml-native" RDEPENDS_${PN} += "python-dbus python-pygobject python-ipy" PROVIDES += "virtual/obmc-settings-mgmt" RPROVIDES_${PN} += "virtual-obmc-settings-mgmt" SRC_URI += "file://merge_settings.py" S = "${WORKDIR}/git" # Collect files in SRC_URI that end in ".override.yml" and call a script that # writes their contents over that of settings.yaml, which is then updated to # the merged data values. # This doesn't correctly handle globs in ".override.yml" entries in SRC_URI. python do_merge_settings () { import subprocess # TODO: Perform the merge in a temporary directory? workdir = d.getVar('WORKDIR', True) cmd = [] cmd.append(os.path.join(workdir, 'merge_settings.py')) cmd.append(os.path.join(d.getVar('S', True), 'settings.yaml')) fetch = bb.fetch2.Fetch([], d) override_urls = filter(lambda f: f.endswith('.override.yml'), fetch.urls) for url in override_urls: bb.debug(2, 'Overriding with source: ' + url) local_base = os.path.basename(fetch.localpath(url)) filename = os.path.join(workdir, local_base) cmd.append(filename) # Invoke the script and don't catch any resulting exception. subprocess.check_call(cmd) } # python-pyyaml-native is installed by do_configure, so put this task after addtask merge_settings after do_configure before do_compile