From patchwork Thu Nov 12 14:27:54 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Purdie X-Patchwork-Id: 103882 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.14406.1794493680246825804 for ; Thu, 12 Nov 2026 06:28:00 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@linuxfoundation.org header.s=google header.b=e34d9gPZ; spf=pass (domain: linuxfoundation.org, ip: 209.85.221.48, mailfrom: richard.purdie@linuxfoundation.org) Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-490c3ae81d3so2887887f8f.2 for ; Thu, 12 Nov 2026 06:27:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; t=1794493678; x=1795098478; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=Jrc58uSbBXhTCAuNJpZi+l4s+UEdNbNIXGayTGWE3R8=; b=e34d9gPZvLvljo8KXNEmfmFZBAJMgFAabTZhmIF4W/7WEAxA+Rdf2gcshkdhCxJG9f FwYkX9/AsQj3K/Hc6a14VEzaIuIDAYnLYZeNAaeaQ/QKv8Z1iyT/VnXpPCG39o7CF+3D 5Qug0O4oM2A+La4PupOHLjQfxBZiypBk1jcwo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794493678; x=1795098478; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=Jrc58uSbBXhTCAuNJpZi+l4s+UEdNbNIXGayTGWE3R8=; b=A/30m2spuanJSLqnZUtxCfoeeaZqAMGvEh9zD+BPSJKIV1SBNTtfvaW3vhFQfENpXM mAMJru86SQBSAmIRQTS38uRKzdnRhYbhw7FLP6+YUVgR8bHRi2Ea/1hTMN7kPViH5R6N FSWE7rxpB5qaW85hQSLUL2odd3T3HNWcSHSJLAy2CY8njfHItWYHsWKRziZpmk0EBydT D/kkDAtR55JgYgFsD2do0TE7dMCW5AikIpA+LwXAA9xJUVsDzPGDadT0Mv1hIlo5cfoC OkTka1L7d9//8Qcbv/IeKRcnAz8hMAZjO6HCuw0C2IqzxabYZoy0+xSCcMCSo0ElGWpp PY2w== X-Gm-Message-State: APuU4Z+PLkG4WLuEq5iymNxgIVZ2mSnkfBlZedFtuNeRa1J0FsddlRO3 fx1qDgjPF4P+rgoud/nsNdD4adIjSQ5EZp7MyyfCa1l+2167nDvNKS0KVKRvIqQ+YyAqvPhZtro REkEiVik= X-Gm-Gg: AYBFou0sOv3L8+9N/cGPznmsjkpaoyZ0UrUY3h/8JsSyn2lGPYr0yfgLWwTn6nulel4 Cl2gmOixlmP/7AWiFQtNOMEfktgijn/ura1GwOd5w7f7H3si9hziWT5mVllgPB0BxzknNa9g6XY sfiwGVAB+iBANUCzwPvWmvSIANyMI5jtKZ0ldbKO7zNiSKe/XAFUkFK0Zc6Klx2NCBA1ANZV6cB Tw4IeuFOqgszqAiUBsGYIwja5r9EGwBz6DJWaDizkqbKJvbZ3dLsAFO0q4YRlg2heQiRFY6j/3C jnxHjKAOpjChslOy2wouC1mEHP3QZW7PVCgJPwP7v7lN6QX8JbNgcF1yWva09XgyFbu/2gIad2j jf3azSlNLluIpDL+Z0FwnMn/MijbDhyfbnGUGnHnNSjnDq1M5iDR0gThb5+bLkzdcsPkHeP+HCn 5evaUJbsl4LToVtnbFRO0vhCfLcAAklji1BG2Bu+C/RjyhXkgVd7ACkoz9wilp5WNeNdRg86PLb kg7UKh5jqLJOlh5/lgvQYYiAyW3f0Fh8HRfskY2jiUJf7hSNu6QUAipvRmw+qGDHIN9SNBvuY0o 8SO4pCXPDrFJX6kQryQbnLnQsZuCRs6dpNSxtJgWnPK9KHhhYqH0RCskyg== X-Received: by 2002:a05:600c:4f55:b0:4a7:8fe8:130c with SMTP id 5b1f17b1804b1-4ba0938197dmr127672945e9.28.1794493678031; Thu, 12 Nov 2026 06:27:58 -0800 (PST) Return-Path: Received: from max.int.rpsys.net ([2001:8b0:aba:5f3c:1562:9f61:e354:1b51]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4bb4e2593e4sm83090325e9.5.2026.11.12.06.27.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Nov 2026 06:27:56 -0800 (PST) From: Richard Purdie To: bitbake-devel@lists.openembedded.org Subject: [PATCH 1/2] cooker: Fix corner cases where BBFILES globbed directories were not expanded Date: Thu, 12 Nov 2026 14:27:54 +0000 Message-ID: <20261112142755.3343305-1-richard.purdie@linuxfoundation.org> X-Mailer: git-send-email 2.55.0 MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Thu, 12 Nov 2026 14:28:09 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/20425 If the BBFILES glob expands into directories instead of files, the directories are not traversed and the files are not added. This is in contrast to the behaviour if a directory is explictly listed and I believe an oversight in the implementation. Rearrange the code so that directories resolved by globs are traversed. Signed-off-by: Richard Purdie --- lib/bb/cooker.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index 8a422e50621..af53135353e 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -1890,19 +1890,20 @@ class CookerCollectFiles(object): # Can't use set here as order is important newfiles = [] for f in files: - if os.path.isdir(f): - dirfiles = self.find_bbfiles(f) - for g in dirfiles: - if g not in newfiles: - newfiles.append(g) + globbed = [] + if os.path.exists(f): + globbed = [f] else: - globbed = glob.glob(f) - if not globbed and os.path.exists(f): - globbed = [f] # glob gives files in order on disk. Sort to be deterministic. - for g in sorted(globbed): - if g not in newfiles: - newfiles.append(g) + globbed = sorted(glob.glob(f)) + for g in globbed: + if os.path.isdir(g): + dirfiles = self.find_bbfiles(g) + for g in dirfiles: + if g not in newfiles: + newfiles.append(g) + elif g not in newfiles: + newfiles.append(g) finally: os.listdir = origlistdir if hasattr(os, 'scandir'): From patchwork Thu Nov 12 14:27:55 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Purdie X-Patchwork-Id: 103883 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.14349.1794493681665015980 for ; Thu, 12 Nov 2026 06:28:02 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@linuxfoundation.org header.s=google header.b=d+LWHs1T; spf=pass (domain: linuxfoundation.org, ip: 209.85.128.52, mailfrom: richard.purdie@linuxfoundation.org) Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4a3517554f7so45982735e9.2 for ; Thu, 12 Nov 2026 06:28:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; t=1794493680; x=1795098480; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=Z5dmY5i+SI6llfk4KsgAqBZXwNSnRaA+vY1dL68qNK0=; b=d+LWHs1TmpGpw+LmvKEHMn6/uqecYdEUDoOWpqLZXTaixRUAzt+KZTgL+Km7yewBbP y6ZgdwHVlTxFz6yPSe7oVlbsxuN74vp3wflZjWs/0hjsgLT/XxJOMK9EzOqheJg46V9Q Q18sY2lYFaUvadoUhP/b6QnLYRxGzQmhfLmng= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794493680; x=1795098480; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=Z5dmY5i+SI6llfk4KsgAqBZXwNSnRaA+vY1dL68qNK0=; b=U009v4oXmSh0iNbFUaAAHncl72IkEfUzhlRGfXQ6kKXeoCL59xNEb2cBGYgfXm6/Ho 2xRXPOUzi2bzALRvjauA5rhi0ly3Eqp0i1FeU/eK6LM2GDsHTjoLSNZRkff//Chc6w4d XYrGo10Ju2rOqG7QvVDHdWqttqnwXkOd15eLW1QbObkEilZrVV5zcgKYZX21WV7umnXh 0r8m04dgURqJmKjWRXydMHGMzQofiI/0dSiJhDHGddJOKHU0686AnwiF2riMJWHPxzPy 0rIh5N/YLAwITUpCydwM3RHC7oWVS2qh46jhx42OyGyFbmxMhEvS90PCcVNETHee9Q2F d5fA== X-Gm-Message-State: APuU4Z+RHKDmFBpODIIYFQSJs3UoHlXbTbswtIjTBM2+m68uMqlCiddU RnbbUgJX8CPGvvQtUZAU3C1bjqt8lIN1VBHYPtqcSznHst9yjR8+MAddjkpDaGQxpjqppHNMdoo 0pWXnjGs= X-Gm-Gg: AYBFou1C/l7GmtwN9WuwWdPpXBd0AqoIjX1Px1PcOlRlRJRBf150x4AvlIarXKdpvmo MeY+xTQMqEvUM96RkU0RuQ4qOMgV03bhpvPNHTILczmNr7lz4f9/xxnmVxodDWuM4QGpcsYhBHc DDlpWZVHOJ+eoC0Wq+OrM+jEcHUuAtY564wBHCFuejujCsX+J8+LeZioYIGrP1Vw38jiaijyJYm oxkDv3txLyelmVIG27O/CUjTO9JPaVsQqpn9JfgV0S9mz8ixmUNF4NmrAKd0ii9qkSWIbEV+ycP ouWdSXZtjsk77JESLFE4H5A2677rcKEwHHy3VdAKHr14t/CrY+HgpQ2SFe/HqN4VwE12fWHtWbz y6NEEMVn0k8PWtkR6/NobogbJrdqm06ANxPoxV8OSBOlT5mKUpYlF2VNfyMMxrrFyO+g4+RHVWc 2tiqerfolvAL1TqicOBNDNzQSNmBxBYDAe/piRYqG19pp75/DSQTc7SYa4kvOXH1PaG5zQAqppL /uc4ZwgIt25dfCRz2x4HcHqgk19DEyeVojjWGClGGp4oEleieesOR1+DTY5AujwL/IIqPAPv/F7 MyGkJjjVRPAHksSpt+vEOg8HkFWD6w1pkBH15dyE8PZFJOQSQfSv2wkSiA== X-Received: by 2002:a05:600c:3b86:b0:4a1:df52:3e36 with SMTP id 5b1f17b1804b1-4ba0939aef5mr125711225e9.27.1794493679733; Thu, 12 Nov 2026 06:27:59 -0800 (PST) Return-Path: Received: from max.int.rpsys.net ([2001:8b0:aba:5f3c:1562:9f61:e354:1b51]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4bb4e2593e4sm83090325e9.5.2026.11.12.06.27.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Nov 2026 06:27:58 -0800 (PST) From: Richard Purdie To: bitbake-devel@lists.openembedded.org Subject: [PATCH 2/2] cooker/runqueue: Add and switch to use get_layername API Date: Thu, 12 Nov 2026 14:27:55 +0000 Message-ID: <20261112142755.3343305-2-richard.purdie@linuxfoundation.org> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20261112142755.3343305-1-richard.purdie@linuxfoundation.org> References: <20261112142755.3343305-1-richard.purdie@linuxfoundation.org> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Thu, 12 Nov 2026 14:28:09 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/20426 Rather that using one of the fields of calc_bbfile_priority, add a new dedicated function since we want the layername more often than not. Signed-off-by: Richard Purdie --- lib/bb/command.py | 2 +- lib/bb/cooker.py | 14 ++++++++++---- lib/bb/runqueue.py | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/bb/command.py b/lib/bb/command.py index 068d95c1649..f49ebb19d8e 100644 --- a/lib/bb/command.py +++ b/lib/bb/command.py @@ -583,7 +583,7 @@ class CommandsSync: appendfiles = command.cooker.collections[mc].get_file_appends(fn) else: appendfiles = [] - layername = command.cooker.collections[mc].calc_bbfile_priority(fn)[2] + layername = command.cooker.collections[mc].get_layername(fn) # We are calling bb.cache locally here rather than on the server, # but that's OK because it doesn't actually need anything from # the server barring the global datastore (which we have a remote diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index af53135353e..bac0e7205b8 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -590,7 +590,7 @@ You can also remove the BB_HASHSERVE_UPSTREAM setting, but this may result in si if fn: try: - layername = self.collections[mc].calc_bbfile_priority(fn)[2] + layername = self.collections[mc].get_layername(fn) envdata = self.databuilder.parseRecipe(fn, self.collections[mc].get_file_appends(fn), layername) except Exception as e: parselog.exception("Unable to read %s", fn) @@ -1391,7 +1391,7 @@ You can also remove the BB_HASHSERVE_UPSTREAM setting, but this may result in si bb_caches = bb.cache.MulticonfigCache(self.databuilder, self.databuilder.data_hash, self.caches_array) - layername = self.collections[mc].calc_bbfile_priority(fn)[2] + layername = self.collections[mc].get_layername(fn) infos = bb_caches[mc].parse(fn, self.collections[mc].get_file_appends(fn), layername) infos = dict(infos) @@ -1825,6 +1825,12 @@ class CookerCollectFiles(object): return pri, regex, layername return 0, None, None + def get_layername(self, filename): + for layername, _, _, _ in self.bbfile_config_priorities: + if regex.match(filename): + return layername + return None + def get_bbfiles(self): """Get list of default .bb files by reading out the current directory""" path = os.getcwd() @@ -2181,7 +2187,7 @@ class CookerParser(object): for mc in self.cooker.multiconfigs: for filename in self.mcfilelist[mc]: appends = self.cooker.collections[mc].get_file_appends(filename) - layername = self.cooker.collections[mc].calc_bbfile_priority(filename)[2] + layername = self.cooker.collections[mc].get_layername(filename) if not self.bb_caches[mc].cacheValid(filename, appends): self.willparse.append((mc, self.bb_caches[mc], filename, appends, layername)) else: @@ -2426,7 +2432,7 @@ class CookerParser(object): bb.cache.SiggenRecipeInfo.reset() to_reparse = set() for mc in self.cooker.multiconfigs: - layername = self.cooker.collections[mc].calc_bbfile_priority(filename)[2] + layername = self.cooker.collections[mc].get_layername(filename) to_reparse.add((mc, filename, self.cooker.collections[mc].get_file_appends(filename), layername)) for mc, filename, appends, layername in to_reparse: diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py index ef95eb46bf9..a1e6487a6de 100644 --- a/lib/bb/runqueue.py +++ b/lib/bb/runqueue.py @@ -2307,7 +2307,7 @@ class RunQueueExecute: 'unihash' : self.rqdata.get_task_unihash(task), 'quieterrors' : True, 'appends' : self.cooker.collections[mc].get_file_appends(taskfn), - 'layername' : self.cooker.collections[mc].calc_bbfile_priority(realfn)[2], + 'layername' : self.cooker.collections[mc].get_layername(realfn), 'taskdepdata' : self.sq_build_taskdepdata(task), 'dry_run' : False, 'taskdep': taskdep, @@ -2401,7 +2401,7 @@ class RunQueueExecute: 'unihash' : self.rqdata.get_task_unihash(task), 'quieterrors' : False, 'appends' : self.cooker.collections[mc].get_file_appends(taskfn), - 'layername' : self.cooker.collections[mc].calc_bbfile_priority(realfn)[2], + 'layername' : self.cooker.collections[mc].get_layername(realfn), 'taskdepdata' : self.build_taskdepdata(task), 'dry_run' : self.rqdata.setscene_enforce, 'taskdep': taskdep,