From patchwork Wed Mar 11 11:15:25 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 4963 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Wed, 11 Mar 2026 12:15:44 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f64.google.com (mail-wm1-f64.google.com [209.85.128.64]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 62BBFh6p022624 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 11 Mar 2026 12:15:44 +0100 Received: by mail-wm1-f64.google.com with SMTP id 5b1f17b1804b1-4853ac455b2sf29287555e9.1 for ; Wed, 11 Mar 2026 04:15:44 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1773227738; cv=pass; d=google.com; s=arc-20240605; b=XtOxbNRsQ9x2lSWMkJacWXggVpXCyc9NZs1CTunm6m8CMW+5zFkDpMdqCibiN0pqlq MdlGvg/ekRHjSpq4g/iEpxSJnV9wdZLon28an+XclzLBFnFrVnpoxib6aDv57NltlsXc 9YVfJN1byC+eqnETL3c2OVYmUuaC48/UNTLyxCvv7AucpT4whvk23RJ3uKdkYWfWT0a7 xp3JvKQq10HjDskisKgqyWQYQ2XJHix0slTW9QEeaRZxU5reJ7phronHeuccydjuLE/9 bZ/yQ7Zf3WX5ONmZEWqYvOQOFy0uOCtrMUCVfootkRKBDf1JDORia7MVPc4W+TMtDHqH ynPQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=MLjp7bZo32PuO5k/O/DKzld+cqmJU53/75YrIwTp+3Q=; fh=SkOwxwJgBb3k1S3vTo+XPdIn4H8WHlunHLlDjNlqLO8=; b=OXmR4hXcqTKZxtig1LQSTqQvnEgaJFZv8IdVEB+BwMEUbMhsw17G1OaSIcRKOuXelA ufbExa7U9WmFnLDn0FPJ1CxfBLHQUEdAZ5fGN2GYegNIYRAS7ebA8tZVGVxk7TCPyxDN 7386v9Rd75mjVzGsmhPwzX3IbNUqtnLAXvikKfasJPA38NV4WbCrdakJEZrru8v6fqmI Krio3uCgxTeB1xyF4Y9btgfv2AfaT0AZmjCkgsvyAACQsIAyfvEamOutxL6q13s6ybfH AxpMJpvAwFofAIu1T1Z0O4w5gO45eb8Ru7D3UMNc8asFMOyNqeAiEzB/9NrGxriX+fKk h+3Q==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1773227738; x=1773832538; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:sender:from:to:cc:subject:date:message-id :reply-to; bh=MLjp7bZo32PuO5k/O/DKzld+cqmJU53/75YrIwTp+3Q=; b=aHhnJWT9e7XY43SGXy/F4gtW6CDoxc6tHTKsb5cHuMtTwY5KrLXF20Ud3AlQMEeM/x fF7hf0bMBmEiOhKiaOurxfyZ0OrswCC9dapy5uhYCSQ3epIn98NPneua/e+x7oLkk575 FzJDhdduPhtAnxsO9AVbqowCyxlfKdzXC/07Yx6z7jaE+b4Pl8wCz2yeleclaSg2Xg+f ZrwDTHZrcCb7hETML8GpeAYYNMR9bCAozA/gCs3f3FPuDOHLHCpXYzXsp+Tnu5iPjNBU hAkn9y9kYojVWpdyjQYfvdznUEwVvbCBTs8ECqk62EyD4a3l+AX+oMpT0WO6tuSJ9RdS PMXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773227738; x=1773832538; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:sender:from:to:cc:subject:date :message-id:reply-to; bh=MLjp7bZo32PuO5k/O/DKzld+cqmJU53/75YrIwTp+3Q=; b=OrlzGMbbILeQ7OVLQfNlh8DYf4r+S8eq2rLnk4iZt7qHVSCbHvO4F/QD8oidTBeFLQ aNsd7XizfGJHQv4MBUHKqDUtekzxEqzqz3IXtSAO36k9r5s9WQ2ihoe5Q4mHQxDFFJAm VPvjYWM8gR0Rtssc0l3zFuqbINEu7sHVfDPbQgNdmbDsWbP4yMQjbFzXU6TmadkKnjOw SgMbKtyei1k2vnoUbHXC49vJsBCXLiuLSxAQm5wD7t810nEHhsWC0YmmgqTMkKyHSO26 TxyX4tD9Qvm/A0vHhnBK1nLJ1XZG9gJCyO9wqbaugR3H9RqF5Yre6BF6j/hrfA09X6HO E6gw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCWDzJUk7lwteJybrmWUs4fszlPy5tzDgT1oa9ifpoBVzQ9s8Wk1z3fTpQMgv0V6H4hTt6UdUX8=@isar-build.org X-Gm-Message-State: AOJu0YxmWiVNMdzdCmWp6naWyF0qz/S541sx3HNNQstRDU4/mLYR4ovk NMDmalv98HsJClK/R7MN63t56E+GQQttbJWYBVLL/NoYq49DJpHK+n+a X-Received: by 2002:a05:600c:3103:b0:485:2a4b:7bc3 with SMTP id 5b1f17b1804b1-4854b0acc9amr37463985e9.4.1773227738141; Wed, 11 Mar 2026 04:15:38 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+Go5MFedRe5IlN7spHtXkN0SqmHSz8rgYt/Jikycjj7yw==" Received: by 2002:a05:6000:402c:b0:439:bc79:9f78 with SMTP id ffacd0b85a97d-439cd357f01ls5104499f8f.2.-pod-prod-08-eu; Wed, 11 Mar 2026 04:15:35 -0700 (PDT) X-Received: by 2002:a5d:584a:0:b0:439:ad2d:99f1 with SMTP id ffacd0b85a97d-439f843cd0dmr4114460f8f.54.1773227735690; Wed, 11 Mar 2026 04:15:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773227735; cv=none; d=google.com; s=arc-20240605; b=aUbBRaSbQFjR+2Yw67/A2giiOoMjzphRmXEvbVYI/vH0AjJhx4LZ6oJvT2OoT8J8B6 KCpmL15NEDSLxd4VFk1YoqrzfMpKxOQqxNOv7Sh9M/SVLgcwV9+E85TMj1NFDcoF+cgy +wqWPexM3cjY9+bg7pg4AhdZ2B5fLkouG4UAB1WYtR1T9xmm8khDN4qLAJG7mvjwBkRy KDsBBLsXgR7K1RlWEbai/+0N+chV0eK/WU2M/MrlxCEXDevCLyt1W78TgtTcyDryi/Jh kLDdrjuSr1KtMrmQgv2rsv7tAHViYnV0B0rTGmcN8FkAuzANh9d4PNpFqqulDy1UBAqP B34A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=tqkZwwcZGNGR1AfAIKSxjHS416CuK9CcZjxaVneOdts=; fh=uAtSGsxYTjI+qIwE3Ssx7GuIasH1hdZr0hmhOPe1vDA=; b=B3iwmdYQGlwenyJVRbOzb+onp0+i90Q8tpoG7/I2MEooD1EDy1e00jXk7USBdOGWyy aZn6l1u+2Tw4C7EVcFVeY4qmOBr6Za3oXoPmSGQ53REpcTv2NWDYbY3A62IWKvWYWDwH 6jkSDdRiNMM0aTuRNkcNPbr/CgqFQ9QBOj3Q8TGXlTXKMhkYw1OFVi1zZdYK3NXPWpto UaRZrfhHJVt0LjuF3eJOkm/r1QsB8eZmuril7MaaSPkBxIO0SmVl54iLTTNtecEcYelQ I+8hzXk73kanPi6sbnrK4cwI+Nu8hAcOWfoP5/Yjh9myifbIioF8CCyF516KdU0kHJWr 5NTw==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id ffacd0b85a97d-439f81ac92fsi39239f8f.2.2026.03.11.04.15.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 11 Mar 2026 04:15:35 -0700 (PDT) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Received: from user-B660.promwad.corp ([159.148.83.123]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 62BBFXNh022597 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 11 Mar 2026 12:15:34 +0100 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: "MOESSBAUER, Felix" Subject: [PATCH v3 1/2] partial revert of "Bitbake: use LAYERDIR_RE when setting BBFILE_PATTERN_x" Date: Wed, 11 Mar 2026 13:15:25 +0200 Message-Id: <20260311111526.665094-2-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311111526.665094-1-amikan@ilbers.de> References: <20260311111526.665094-1-amikan@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-Original-Sender: amikan@ilbers.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: "MOESSBAUER, Felix" This partially reverts commit 457b394c124890f03501529812eb95a38e860888. We must not patch inside the bitbake directory, as this is a 1:1 copy of the upstream bitbake stable branch. We revert the changes inside the bitbake dir while keeping the fixes in isar. Signed-off-by: Felix Moessbauer --- bitbake/lib/layerindexlib/tests/testdata/layer1/conf/layer.conf | 2 +- bitbake/lib/layerindexlib/tests/testdata/layer2/conf/layer.conf | 2 +- bitbake/lib/layerindexlib/tests/testdata/layer3/conf/layer.conf | 2 +- bitbake/lib/layerindexlib/tests/testdata/layer4/conf/layer.conf | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bitbake/lib/layerindexlib/tests/testdata/layer1/conf/layer.conf b/bitbake/lib/layerindexlib/tests/testdata/layer1/conf/layer.conf index c7a372d7..966d5319 100644 --- a/bitbake/lib/layerindexlib/tests/testdata/layer1/conf/layer.conf +++ b/bitbake/lib/layerindexlib/tests/testdata/layer1/conf/layer.conf @@ -4,7 +4,7 @@ BBPATH .= ":${LAYERDIR}" BBFILES += "${LAYERDIR}/recipes-*/*/*.bb" BBFILE_COLLECTIONS += "core" -BBFILE_PATTERN_core = "^${LAYERDIR_RE}/" +BBFILE_PATTERN_core = "^${LAYERDIR}/" BBFILE_PRIORITY_core = "5" LAYERSERIES_CORENAMES = "sumo" diff --git a/bitbake/lib/layerindexlib/tests/testdata/layer2/conf/layer.conf b/bitbake/lib/layerindexlib/tests/testdata/layer2/conf/layer.conf index dc9d36a6..7569d1c2 100644 --- a/bitbake/lib/layerindexlib/tests/testdata/layer2/conf/layer.conf +++ b/bitbake/lib/layerindexlib/tests/testdata/layer2/conf/layer.conf @@ -6,7 +6,7 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "networking-layer" -BBFILE_PATTERN_networking-layer := "^${LAYERDIR_RE}/" +BBFILE_PATTERN_networking-layer := "^${LAYERDIR}/" BBFILE_PRIORITY_networking-layer = "5" # This should only be incremented on significant changes that will diff --git a/bitbake/lib/layerindexlib/tests/testdata/layer3/conf/layer.conf b/bitbake/lib/layerindexlib/tests/testdata/layer3/conf/layer.conf index 54ddee90..7089071f 100644 --- a/bitbake/lib/layerindexlib/tests/testdata/layer3/conf/layer.conf +++ b/bitbake/lib/layerindexlib/tests/testdata/layer3/conf/layer.conf @@ -5,7 +5,7 @@ BBPATH .= ":${LAYERDIR}" BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend" BBFILE_COLLECTIONS += "meta-python" -BBFILE_PATTERN_meta-python := "^${LAYERDIR_RE}/" +BBFILE_PATTERN_meta-python := "^${LAYERDIR}/" BBFILE_PRIORITY_meta-python = "7" # This should only be incremented on significant changes that will diff --git a/bitbake/lib/layerindexlib/tests/testdata/layer4/conf/layer.conf b/bitbake/lib/layerindexlib/tests/testdata/layer4/conf/layer.conf index 4646c234..6649ee02 100644 --- a/bitbake/lib/layerindexlib/tests/testdata/layer4/conf/layer.conf +++ b/bitbake/lib/layerindexlib/tests/testdata/layer4/conf/layer.conf @@ -5,7 +5,7 @@ BBPATH .= ":${LAYERDIR}" BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "openembedded-layer" -BBFILE_PATTERN_openembedded-layer := "^${LAYERDIR_RE}/" +BBFILE_PATTERN_openembedded-layer := "^${LAYERDIR}/" # Define the priority for recipes (.bb files) from this layer, # choosing carefully how this layer interacts with all of the From patchwork Wed Mar 11 11:15:26 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 4964 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Wed, 11 Mar 2026 12:15:46 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-ej1-f58.google.com (mail-ej1-f58.google.com [209.85.218.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 62BBFjvt022638 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 11 Mar 2026 12:15:45 +0100 Received: by mail-ej1-f58.google.com with SMTP id a640c23a62f3a-b8f5bce308dsf1226129566b.1 for ; Wed, 11 Mar 2026 04:15:45 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1773227740; cv=pass; d=google.com; s=arc-20240605; b=RieqRmnHcG+YqFss2oh1KXIHervgia6etVzZxJJyhvnIRHLN9TCKdcaYjvAYa4eBNF Onb9g+VOu5HylbvUwpkogO9E5ca5AKVDv68ratBomri7/WAU+sVG5HnCb1YqYHpPaiZY qMmWQ4gQDKLUpbJL7K5qGiDQHs4A2TIxzkAJjRI3WX+wyVE/b87MYe0c3+QWqvAuiKfd 91mgFEvqFJrJQY45Rld+6e4lMVa/OdYC70tPcKaKjs60dRbrNg8ABg0dobg7bfc6IQ/D q88QkkhBqaYZAm7WuipyfG2w9SQfVvivC1ytxpk8h6/LdSE9cMUp2YlAzDM6dwnOv7sP j6NQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=0VKETf9KlRRKaOVsmIIX5Uu9OvD2ALc4ehNaj61FzDg=; fh=/kMoEG2fw6lZWZgPmwMM6OpwD/MDlSryYLYgWEscGAs=; b=KDumxgi5hhTijIQgF/sVcYdGD2ygKgUy16uTkv2YtmBFKwn7c03UZaxvGhnquLjWxH /fORAMkGTnvxGmrZSqsaeeEIlo2J1h5/TrGcTZnhyr24bb0saXHlDuVVyD7fBBQ3oT+K aByKHW9tdK2EFE3fJLUJ1nJ+mjReCIvbtfkMma/1Fi2wJgC3iF1gPJi8LTcQvr4893zd 0FJTb1Z07Xj+IikOk3S7MKZkNPFYTgGnoCa0N4Rz13iHOogj2ksPVqLHK8weUZ8ocFth vO55OZNT+iFSIYLVl3atwgnqJ3mcnVOACM8yGCbJ/SDF2I4zmCB9GmhhwAp5pWAu2co3 O2Mg==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1773227740; x=1773832540; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:sender:from:to:cc:subject:date:message-id :reply-to; bh=0VKETf9KlRRKaOVsmIIX5Uu9OvD2ALc4ehNaj61FzDg=; b=tmNGGrccXcpZOIjzHeOSYzoAzpWgAxJGOcs99UQE8mIeH4A1bXEd2HU4CaHeaGPlPw +dAyKyc62U3kdY3diTsTPmG5szTgZ4fHrcIHTOM5bE1KatxdZErEkmvS1Yp0BC99SEO0 A+IrIhyz+cfXd6TEE+/0lwsHrNqp31EWj5DIrmN4KOOC7a6GGJfJNPDOsFlVrM4nBMmU DOdxF5uaHE/1LuWb2iS5yMZPYugbuNwTzDWoAuylA2z/temhnFzOOq9RuDcbUAPLqJZi wxd4kq7bw26JdQG3Q81mgvybCb40ZCYvpplIHI04/6tEeDJEnqAdH4kidCXD8iCjRKjB l1XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773227740; x=1773832540; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:sender:from:to:cc:subject:date :message-id:reply-to; bh=0VKETf9KlRRKaOVsmIIX5Uu9OvD2ALc4ehNaj61FzDg=; b=aMWBW2dIy/4IbDbaJpRegkYjQKvV3e8H1yV7Fy8mOgN2W9PZoGc1xbL3eBJUf+sJjv 7i/rAKOHu/Yy+WEQRNJa4WvhM3xX5duXXAqnHRl+Gp7UV0c/Pj1YZjCMBj3xVUUUqlcV h1Kg2edHF+GM61NCEVS1g5KeFu4cz46sRW+N+UaURf5JT6DA2WKCweFsK0hkjyWwv2zs YokRNOIZdmwzBY+eyr6cmWTp0ktIDI9bIU/7iMsStUCXK1iKMQ8+B5yn0GHCZtpABMnm CRo9E/TG/+OAKoxISmYIfxDZR5BNXVaim3ukr2Jwroa3pK4onZGGPfWeiPRJu7ZizfPO CmHg== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCVzxPp8mjbXlFF2NfKMVQw+sTOSDrpr+vDYc7o9NLJ309pKxis3UgTqGxexxqEWPDtQiNBPfyc=@isar-build.org X-Gm-Message-State: AOJu0Yy6zzLbdkrezK/72pDR2unj0p0NLkhFvwfhXQr8mBHsaT+K2eLn Qkx+P2hmmg0zXHbj324St5h4cpIyCcJ6i33kvr+Jd6d47nHUPXLXuXmp X-Received: by 2002:a05:6402:1471:b0:661:39a2:f530 with SMTP id 4fb4d7f45d1cf-663196d11a0mr1198466a12.12.1773227739607; Wed, 11 Mar 2026 04:15:39 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+EglF+/im+F0quVuTeWTRD9eSZVL+M5dc2jM98H0hMWEA==" Received: by 2002:aa7:cccd:0:b0:658:2f63:8d83 with SMTP id 4fb4d7f45d1cf-6612ead24cbls2526101a12.0.-pod-prod-01-eu; Wed, 11 Mar 2026 04:15:37 -0700 (PDT) X-Received: by 2002:a05:6402:3785:b0:662:b0cf:b997 with SMTP id 4fb4d7f45d1cf-66319cd6b9bmr1079731a12.16.1773227737467; Wed, 11 Mar 2026 04:15:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773227737; cv=none; d=google.com; s=arc-20240605; b=gDmC2zm7eXckASUAurb4uAhWZvFHEb1cmV6se0adeYpG31QuUkPVxim07M9FOnp2eT bFMQbTabRuw+g0UsDcMTo+J7D41asCtYu2+YMfaAuO99v5uTTdKCP/mrARBoMVH5NOTs CnzSdlXWz0m50YqC0QEZxCcb1YjsXKGHH+1xbnVG6HTsRCy7mBPBwk38ZdukpcUu8c/u DhugXXQhgTzRpx9eq8pPgjMsZePTH0XgDynsymZ6K1kLvbvC1HElmllEdAa4ooCRWm90 BqVTS5JTvDNhtH/L/PjcEpKKmNHLTXkJForeKxh3aLswMhM9aBrHOnxuAMrID7cEh49M 1gkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=U2TH5qdsLgWZuOcrnxmlOAd1Idpsv1KEtU7/GECASpo=; fh=PHAUAmPq/1fgjgwS4i7Spq2ceipXP7+JEnvrX42Opjg=; b=j/yQ4QMtPUuN33Y+yexiu/93j1+UhZuKgGQLWaBKuHkzdjcMaIDD/qjxAuQdHzR3tK KRrQobetKrox5sdIiLo+qSqRYQwf7dgZruxfnJngbb7pjKKW21SlUmZGgUXxGS+z+iRF fyQbHZQTpSG0lGTDTD6uY4uKISXxgprtoiaoFKR1stNVfpFaE1cmlkWtWFEg5yZ30TEG uFlX+o5oc23dHFHbhtXiYG18gpQzY6b9UwKoGTYDKsztbVlZVTf6n81yxjshIJJGPyHS Tf/TJrACsojNaXxC53Bw4fRLTUC3W1l9lnETSzthl9z/GWmTGlEx0cueG9BzDDBzienH Y1Vw==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id 4fb4d7f45d1cf-66315322b64si45746a12.7.2026.03.11.04.15.37 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 11 Mar 2026 04:15:37 -0700 (PDT) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Received: from user-B660.promwad.corp ([159.148.83.123]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 62BBFXNi022597 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 11 Mar 2026 12:15:35 +0100 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Joshua Watt , Richard Purdie , Felix Moessbauer Subject: [PATCH v3 2/2] bitbake: Remove custom exception backtrace formatting Date: Wed, 11 Mar 2026 13:15:26 +0200 Message-Id: <20260311111526.665094-3-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311111526.665094-1-amikan@ilbers.de> References: <20260311111526.665094-1-amikan@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-Original-Sender: amikan@ilbers.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Joshua Watt Backport of upstream bitbake patch c25e7ed128b9fd5b53d28d678238e2f3af52ef8b. Removes the code in bitbake to show custom backtrace formatting for exceptions. In particular, the bitbake exception code prints function arguments, which while helpful is a security problem when passwords and other secrets can be passed as function arguments. As it turns out, the handling of the custom serialized exception stack frames was pretty much made obsolete by d7db75020ed ("event/msg: Pass formatted exceptions"), which changed the events to pass a preformatted stacktrack list of strings, but the passing of the serialized data was never removed. Change all the code to use the python traceback API to format exceptions instead of the custom code; conveniently traceback.format_exception() also returns a list of stack trace strings, so it can be used as a drop in replacement for bb.exception.format_exception() [Felix: adjusted to bitbake path in isar repo] Signed-off-by: Joshua Watt Signed-off-by: Richard Purdie Signed-off-by: Felix Moessbauer --- bitbake/lib/bb/cooker.py | 32 +++++++++--- bitbake/lib/bb/event.py | 9 +--- bitbake/lib/bb/exceptions.py | 96 ----------------------------------- bitbake/lib/bb/msg.py | 4 -- bitbake/lib/bb/ui/teamcity.py | 5 -- 5 files changed, 25 insertions(+), 121 deletions(-) delete mode 100644 bitbake/lib/bb/exceptions.py diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index c5bfef55..701cf51b 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -17,7 +17,7 @@ import threading from io import StringIO, UnsupportedOperation from contextlib import closing from collections import defaultdict, namedtuple -import bb, bb.exceptions, bb.command +import bb, bb.command from bb import utils, data, parse, event, cache, providers, taskdata, runqueue, build import queue import signal @@ -2098,7 +2098,6 @@ class Parser(multiprocessing.Process): except Exception as exc: tb = sys.exc_info()[2] exc.recipe = filename - exc.traceback = list(bb.exceptions.extract_traceback(tb, context=3)) return True, None, exc # Need to turn BaseExceptions into Exceptions here so we gracefully shutdown # and for example a worker thread doesn't just exit on its own in response to @@ -2299,8 +2298,12 @@ class CookerParser(object): return False except ParsingFailure as exc: self.error += 1 - logger.error('Unable to parse %s: %s' % - (exc.recipe, bb.exceptions.to_string(exc.realexception))) + + exc_desc = str(exc) + if isinstance(exc, SystemExit) and not isinstance(exc.code, str): + exc_desc = 'Exited with "%d"' % exc.code + + logger.error('Unable to parse %s: %s' % (exc.recipe, exc_desc)) self.shutdown(clean=False) return False except bb.parse.ParseError as exc: @@ -2309,20 +2312,33 @@ class CookerParser(object): self.shutdown(clean=False, eventmsg=str(exc)) return False except bb.data_smart.ExpansionError as exc: + def skip_frames(f, fn_prefix): + while f and f.tb_frame.f_code.co_filename.startswith(fn_prefix): + f = f.tb_next + return f + self.error += 1 bbdir = os.path.dirname(__file__) + os.sep - etype, value, _ = sys.exc_info() - tb = list(itertools.dropwhile(lambda e: e.filename.startswith(bbdir), exc.traceback)) + etype, value, tb = sys.exc_info() + + # Remove any frames where the code comes from bitbake. This + # prevents deep (and pretty useless) backtraces for expansion error + tb = skip_frames(tb, bbdir) + cur = tb + while cur: + cur.tb_next = skip_frames(cur.tb_next, bbdir) + cur = cur.tb_next + logger.error('ExpansionError during parsing %s', value.recipe, exc_info=(etype, value, tb)) self.shutdown(clean=False) return False except Exception as exc: self.error += 1 - etype, value, tb = sys.exc_info() + _, value, _ = sys.exc_info() if hasattr(value, "recipe"): logger.error('Unable to parse %s' % value.recipe, - exc_info=(etype, value, exc.traceback)) + exc_info=sys.exc_info()) else: # Most likely, an exception occurred during raising an exception import traceback diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py index 4761c868..952c85c0 100644 --- a/bitbake/lib/bb/event.py +++ b/bitbake/lib/bb/event.py @@ -19,7 +19,6 @@ import sys import threading import traceback -import bb.exceptions import bb.utils # This is the pid for which we should generate the event. This is set when @@ -759,13 +758,7 @@ class LogHandler(logging.Handler): def emit(self, record): if record.exc_info: - etype, value, tb = record.exc_info - if hasattr(tb, 'tb_next'): - tb = list(bb.exceptions.extract_traceback(tb, context=3)) - # Need to turn the value into something the logging system can pickle - record.bb_exc_info = (etype, value, tb) - record.bb_exc_formatted = bb.exceptions.format_exception(etype, value, tb, limit=5) - value = str(value) + record.bb_exc_formatted = traceback.format_exception(*record.exc_info) record.exc_info = None fire(record, None) diff --git a/bitbake/lib/bb/exceptions.py b/bitbake/lib/bb/exceptions.py deleted file mode 100644 index 801db9c8..00000000 --- a/bitbake/lib/bb/exceptions.py +++ /dev/null @@ -1,96 +0,0 @@ -# -# Copyright BitBake Contributors -# -# SPDX-License-Identifier: GPL-2.0-only -# - -import inspect -import traceback -import bb.namedtuple_with_abc -from collections import namedtuple - - -class TracebackEntry(namedtuple.abc): - """Pickleable representation of a traceback entry""" - _fields = 'filename lineno function args code_context index' - _header = ' File "{0.filename}", line {0.lineno}, in {0.function}{0.args}' - - def format(self, formatter=None): - if not self.code_context: - return self._header.format(self) + '\n' - - formatted = [self._header.format(self) + ':\n'] - - for lineindex, line in enumerate(self.code_context): - if formatter: - line = formatter(line) - - if lineindex == self.index: - formatted.append(' >%s' % line) - else: - formatted.append(' %s' % line) - return formatted - - def __str__(self): - return ''.join(self.format()) - -def _get_frame_args(frame): - """Get the formatted arguments and class (if available) for a frame""" - arginfo = inspect.getargvalues(frame) - - try: - if not arginfo.args: - return '', None - # There have been reports from the field of python 2.6 which doesn't - # return a namedtuple here but simply a tuple so fallback gracefully if - # args isn't present. - except AttributeError: - return '', None - - firstarg = arginfo.args[0] - if firstarg == 'self': - self = arginfo.locals['self'] - cls = self.__class__.__name__ - - arginfo.args.pop(0) - del arginfo.locals['self'] - else: - cls = None - - formatted = inspect.formatargvalues(*arginfo) - return formatted, cls - -def extract_traceback(tb, context=1): - frames = inspect.getinnerframes(tb, context) - for frame, filename, lineno, function, code_context, index in frames: - formatted_args, cls = _get_frame_args(frame) - if cls: - function = '%s.%s' % (cls, function) - yield TracebackEntry(filename, lineno, function, formatted_args, - code_context, index) - -def format_extracted(extracted, formatter=None, limit=None): - if limit: - extracted = extracted[-limit:] - - formatted = [] - for tracebackinfo in extracted: - formatted.extend(tracebackinfo.format(formatter)) - return formatted - - -def format_exception(etype, value, tb, context=1, limit=None, formatter=None): - formatted = ['Traceback (most recent call last):\n'] - - if hasattr(tb, 'tb_next'): - tb = extract_traceback(tb, context) - - formatted.extend(format_extracted(tb, formatter, limit)) - formatted.extend(traceback.format_exception_only(etype, value)) - return formatted - -def to_string(exc): - if isinstance(exc, SystemExit): - if not isinstance(exc.code, str): - return 'Exited with "%d"' % exc.code - return str(exc) diff --git a/bitbake/lib/bb/msg.py b/bitbake/lib/bb/msg.py index 3e18596f..4f616ff4 100644 --- a/bitbake/lib/bb/msg.py +++ b/bitbake/lib/bb/msg.py @@ -89,10 +89,6 @@ class BBLogFormatter(logging.Formatter): msg = logging.Formatter.format(self, record) if hasattr(record, 'bb_exc_formatted'): msg += '\n' + ''.join(record.bb_exc_formatted) - elif hasattr(record, 'bb_exc_info'): - etype, value, tb = record.bb_exc_info - formatted = bb.exceptions.format_exception(etype, value, tb, limit=5) - msg += '\n' + ''.join(formatted) return msg def colorize(self, record): diff --git a/bitbake/lib/bb/ui/teamcity.py b/bitbake/lib/bb/ui/teamcity.py index fca46c28..7eeaab8d 100644 --- a/bitbake/lib/bb/ui/teamcity.py +++ b/bitbake/lib/bb/ui/teamcity.py @@ -30,7 +30,6 @@ import bb.build import bb.command import bb.cooker import bb.event -import bb.exceptions import bb.runqueue from bb.ui import uihelper @@ -102,10 +101,6 @@ class TeamcityLogFormatter(logging.Formatter): details = "" if hasattr(record, 'bb_exc_formatted'): details = ''.join(record.bb_exc_formatted) - elif hasattr(record, 'bb_exc_info'): - etype, value, tb = record.bb_exc_info - formatted = bb.exceptions.format_exception(etype, value, tb, limit=5) - details = ''.join(formatted) if record.levelno in [bb.msg.BBLogFormatter.ERROR, bb.msg.BBLogFormatter.CRITICAL]: # ERROR gets a separate errorDetails field