package.bbclass: correct check for /build in copydebugsources()

Newly introduced kirkstone-only commit
https://git.openembedded.org/openembedded-core/commit/?h=kirkstone&id=80839835ec9fcb63069289225a3c1af257ffdef7
broke builds with externalsrc in Gitlab-CI.
This is yocto-4.0.9 regression.

It checks if directory starts with "build" instead of
if checking if it equals to "build".
Gitlab-CI uses directory "/builds" which matches the check
but directory /build does not exist, only /builds.
After successful check it tries to move this non-existent
directory which does not exists and thus do_package fails.

(From OE-Core rev: b67e714b367a08fdeeeff68c2d9495ec9bc07304)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Peter Marko
2023-04-14 17:32:13 +02:00
committed by Steve Sakoman
parent 29f64c072c
commit fa856e0dac

View File

@@ -638,7 +638,7 @@ def copydebugsources(debugsrcdir, sources, d):
if os.path.exists(dvar + debugsrcdir + sdir):
# Special case for /build since we need to move into
# /usr/src/debug/build so rename sdir to build.build
if sdir.find("/build") == 0:
if sdir == "/build" or sdir.find("/build/") == 0:
cmd = "mv %s%s%s %s%s%s" % (dvar, debugsrcdir, "/build", dvar, debugsrcdir, "/build.build")
subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
sdir = sdir.replace("/build", "/build.build", 1)