systemd.bbclass: Allow enabling of parameterised services
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@eth0.service' can be enabled from a service named 'foo@.service'. This patch alters the check function in systemd.class to look for 'foo@.service' if the normal check fails. (From OE-Core rev: 4ce15271dad3520e5de2500c609b05d5a511e453) Signed-off-by: Bob Ham <bob.ham@collabora.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
551cda0bd5
commit
7cf7156b2c
|
@ -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@eth0.service' from
|
||||
# 'ifplugd@.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:
|
||||
|
|
Loading…
Reference in New Issue