systemd.bbclass: Check for existence of the symlink too

If the packages' service file is a link to parameterized service file
provided by different package [1] then link is dangling link at
do_package stage and os.path.exists(path) returns False even if the link
exists. Replace os.path.exists with lexists to fix this issue.

[1]
An example:
  Package A provides myservice@.service

  Package B depends and rdepends on A and provides:
  myservice@B.service -> myservice@.service

(From OE-Core rev: e2b638dcd6b7c51f7ee2cd4bc051d6b12e642d6c)

Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Pavel Zhukov
2024-02-09 20:27:28 +01:00
committed by Richard Purdie
parent 9e6e34210a
commit 0010d9fbd2

View File

@@ -170,7 +170,7 @@ python systemd_populate_packages() {
base = service[:at] + '@' + service[ext:]
for path in searchpaths:
if os.path.exists(oe.path.join(d.getVar("D"), path, service)):
if os.path.lexists(oe.path.join(d.getVar("D"), path, service)):
path_found = path
break
elif base is not None: