From 0ad5fb3431b5f5875326d929442124a8fabe0642 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Mon, 16 Jun 2025 11:49:59 +0200 Subject: [PATCH] base.bbclass: drop compatibility moving of sources into workdir Potentially there could be a grace period for fixing recipes (with warnings, etc), on the other hand, changes to git unpacking destination would already break various layers, so we might as well make this a hard qa error and drop the magic at the same time. I commit to sending fixes for layers included in autobuilder testing (meta-oe/arm/intel/virt/agl/aws/mingw/etc). SOURCE_BASEDIR is at the same time adjusted to be calculated relative to UNPACKDIR (previously it only worked if S was set to WORKDIR/something/otherthing, and that is no longer working). It is also no longer removed from the filesystem, as content of unpackdir is managed elsewhere. (From OE-Core rev: 53e9ea30aaf48292307b4cff6964bead74c69fff) Signed-off-by: Alexander Kanavin Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- meta/classes-global/base.bbclass | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass index e55a538e36..b86f50e283 100644 --- a/meta/classes-global/base.bbclass +++ b/meta/classes-global/base.bbclass @@ -183,23 +183,16 @@ python base_do_unpack() { basedir = None unpackdir = d.getVar('UNPACKDIR') - workdir = d.getVar('WORKDIR') - if sourcedir.startswith(workdir) and not sourcedir.startswith(unpackdir): - basedir = sourcedir.replace(workdir, '').strip("/").split('/')[0] + if sourcedir.startswith(unpackdir): + basedir = sourcedir.replace(unpackdir, '').strip("/").split('/')[0] if basedir: - bb.utils.remove(workdir + '/' + basedir, True) - d.setVar("SOURCE_BASEDIR", workdir + '/' + basedir) + d.setVar("SOURCE_BASEDIR", unpackdir + '/' + basedir) try: fetcher = bb.fetch2.Fetch(src_uri, d) fetcher.unpack(d.getVar('UNPACKDIR')) except bb.fetch2.BBFetchException as e: bb.fatal("Bitbake Fetcher Error: " + repr(e)) - - if basedir and os.path.exists(unpackdir + '/' + basedir): - # Compatibility magic to ensure ${WORKDIR}/git and ${WORKDIR}/${BP} - # as often used in S work as expected. - shutil.move(unpackdir + '/' + basedir, workdir + '/' + basedir) } SSTATETASKS += "do_deploy_source_date_epoch"