[OE-core] [PATCH 1/1] systemd.class - Allow enabling of parameterised services
Bob Ham
bob.ham at collabora.com
Thu Nov 19 11:24:00 UTC 2015
Currently the systemd.class will check whether a service exists when
it is requested to enabled it. However, its check does not take into
account that a service like 'foo at eth0.service' can be enabled from a
service named 'foo at .service'. This patch alters the check function in
systemd.class to look for 'foo at .service' if the normal check fails.
Signed-off-by: Bob Ham <bob.ham at collabora.com>
---
meta/classes/systemd.bbclass | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/meta/classes/systemd.bbclass b/meta/classes/systemd.bbclass
index 46e72c7..db7873f 100644
--- a/meta/classes/systemd.bbclass
+++ b/meta/classes/systemd.bbclass
@@ -59,6 +59,8 @@ systemd_populate_packages[vardepsexclude] += "OVERRIDES"
python systemd_populate_packages() {
+ import re
+
if not bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d):
return
@@ -144,10 +146,22 @@ python systemd_populate_packages() {
for pkg_systemd in systemd_packages.split():
for service in get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd).split():
path_found = ''
+
+ # Deal with adding, for example, 'ifplugd at eth0.service' from
+ # 'ifplugd at .service'
+ base = None
+ if service.find('@') != -1:
+ base = re.sub('@[^.]+.', '@.', service)
+
for path in searchpaths:
if os.path.exists(oe.path.join(d.getVar("D", True), path, service)):
path_found = path
break
+ elif base is not None:
+ if os.path.exists(oe.path.join(d.getVar("D", True), path, base)):
+ path_found = path
+ break
+
if path_found != '':
systemd_add_files_and_parse(pkg_systemd, path_found, service, keys)
else:
--
2.1.4
More information about the Openembedded-core
mailing list