mirror of
https://git.yoctoproject.org/poky
synced 2026-04-18 03:32:13 +02:00
systemd: allow dots in arguments to template units
When installing systemd template units with an argument, the current code
removes characters between the '@' and the '.' from service names in
SYSTEMD_SERVICE_${PN}, e.g.:
getty@tty1.service -> getty@.service
This fails for services with dots in the argument (which is perfectly
legal in systemd), since the code searches only until the first dot.
E.g.:
vlan@eth0.1.service -> vlan@1.service
This is obviously wrong, and fails in systemd_populate_packages(), where
it fails to find the unit file.
Fix this by reworking the removal of the argument part of the service
name, so that parts before '@' and after teh last '.' are used as base
name.
(From OE-Core rev: 4704bd91458a728f28cbdc57dcf78f5d04cfd0cd)
Signed-off-by: Martin Hundebøll <mnhu@prevas.dk>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
74dd4daf7c
commit
8592a02f49
@@ -154,8 +154,10 @@ python systemd_populate_packages() {
|
||||
# Deal with adding, for example, 'ifplugd@eth0.service' from
|
||||
# 'ifplugd@.service'
|
||||
base = None
|
||||
if service.find('@') != -1:
|
||||
base = re.sub('@[^.]+.', '@.', service)
|
||||
at = service.find('@')
|
||||
if at != -1:
|
||||
ext = service.rfind('.')
|
||||
base = service[:at] + '@' + service[ext:]
|
||||
|
||||
for path in searchpaths:
|
||||
if os.path.exists(oe.path.join(d.getVar("D"), path, service)):
|
||||
|
||||
Reference in New Issue
Block a user