From patchwork Fri May 29 15:00:00 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ernest Van Hoecke X-Patchwork-Id: 88906 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9CDA8CD6E50 for ; Fri, 29 May 2026 15:00:19 +0000 (UTC) Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.12172.1780066815802368832 for ; Fri, 29 May 2026 08:00:16 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=SBHKHzZ9; spf=pass (domain: gmail.com, ip: 209.85.221.42, mailfrom: ernestvanhoecke@gmail.com) Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-45ef56d9b67so311494f8f.2 for ; Fri, 29 May 2026 08:00:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780066814; x=1780671614; darn=lists.openembedded.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=OpWQpNkAF4P8cFqIDunGQAng64Y6WrhCZayHLNxCItw=; b=SBHKHzZ99oWh3nl+RJmtBsO+g+G+BJFRVEXNT4HsnOm1BIfNFysKkurrLZckcF3Vkt rpvkPcx3VOjClcyDekx/a+PxiwRwk9c/Ai00qsBT6mn08thwgfR/BvuKdyvMAqiWbBtC ZvTbTvQObMdsfSGrCWYMGYco2wzEmvfSw1J43l4FxZxBQwQI6/+hTXQqM6Dc7m94NRGc y4BKVNLugMQHjP1vRCQDWrGLLjvEkMYGieSFmyfgrzQ9HwjzUAjdnnXJ8WqFZTGl+qpA Cc5AsHY7SNsP1Br+xBMj89RLEEUeiYBwUsNKaVUQu66k39UFp9nNoPrcJLwHps6iM7YS xLiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780066814; x=1780671614; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=OpWQpNkAF4P8cFqIDunGQAng64Y6WrhCZayHLNxCItw=; b=BOqn4JdUPveZ3it1ufnhH8h8rYx7iyodgzMlS4x6qg4AfwLwIrovRLUF2+6feaKUet UNBvK56fGKWYLFKcX3tZ6mBnnxTYJ06S37tbAMBemzLkVlQrxpjgGGGzhle9KejA9Fuw n6apfocgzDo7op4J5mH0bEN1+uWTn1GXpNpxRWpfCGygBqg8GnN7I9109TXvoSchUrLI p52CP1LXgTAZx054DbSYebscKKHmZXmSvRRONysvhLfW7YWRj8DFYU14jfYka73UvPqL pVnv2nFIG6t2E5zVrZFvHInbZtUULVJR/eO6PEbyM8qvBn8OTBwCy3IP2bdNyodH95ux B9Hw== X-Gm-Message-State: AOJu0YxP3Nrhg4XFJJDmlKiYOL77uZxX93y/cXQrf9UVXmaBrNBlaYnq o6B9gWufN17Y0/J1OWaAUUCkxlro0yPmAl+z/BsLJc5cjdx8UrQnHFfE75dYVtTa X-Gm-Gg: Acq92OHiiZQR1/WxOc/GsiujMBIswxmPI/cHheHuadfydiLz1lnLElREHpw5VDksVy3 jS5RsdR0IbNE6w+evxRVcjmJZaFeT41SlaF5IB77+3yJKfFXmQdCsEYvRcsl4WsRZCVWX6qpSSC X9zqZgFD0aFEJc3lrLKOTFEJAL5sWRmU8jxWR4z61BQwx06dkieowcHl3PXC7Xj3Vfry3kpfjE5 8RdxvfVhAtJhxO+lNLSitiU0RLG6POkhzldE+8KBnFfIIOqwIw8yC4Owmg2Ny1kBlkSgdOVrZ9i qSj4TOVoFO+uT3i2i4q7Mar7mq1nOqObaos9V1VHeetZNQdn9bb0JAIOKKdiqYpSLW0/MJeZHcx vevVueSor7zgsbfgWgTi6e5yGh13xq+fLZ1TKjf6dZqL1958Cm9S6sJEkXzlCszf3Txb0oy+hdq 5cSswuxuAoCkuUHmqJm5zPM5MJQN9KYiHQvhwWYzNs+JDH0906vT1ggyEgDqLZgrfwgY3V751Vx 3S2ymz22KLIXjydi9hKap26u5rBRMDkyYV1uw== X-Received: by 2002:a5d:6191:0:b0:45e:eec6:5020 with SMTP id ffacd0b85a97d-45ef6b8ed7emr225346f8f.38.1780066813563; Fri, 29 May 2026 08:00:13 -0700 (PDT) Received: from ernest.hoecke-nb (248.201.173.83.static.wline.lns.sme.cust.swisscom.ch. [83.173.201.248]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3587072sm4285826f8f.34.2026.05.29.08.00.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 08:00:13 -0700 (PDT) From: Ernest Van Hoecke Date: Fri, 29 May 2026 17:00:00 +0200 Subject: [PATCH 1/2] bitbake-setup: clarify configuration merging MIME-Version: 1.0 Message-Id: <20260529-bb-setup-notes-v1-1-a251ef1c5af4@toradex.com> References: <20260529-bb-setup-notes-v1-0-a251ef1c5af4@toradex.com> In-Reply-To: <20260529-bb-setup-notes-v1-0-a251ef1c5af4@toradex.com> To: bitbake-devel@lists.openembedded.org Cc: Alexander Kanavin , docs@lists.yoctoproject.org, Ernest Van Hoecke X-Mailer: b4 0.13.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 29 May 2026 15:00:19 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/19564 From: Ernest Van Hoecke When nested configurations are used and the same key is present in both configs being merged, the Python "+" behaviour is used. This leads to lists being appended and strings being concatenated. The first is an intuitive behaviour when specifying a tree of configs, the latter might not be. Clarify the configuration merging behaviour explicitly in the docs. Signed-off-by: Ernest Van Hoecke --- doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst b/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst index 77fc4c3dcba0..1252f22c823a 100644 --- a/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst +++ b/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst @@ -1068,6 +1068,12 @@ They contain the following sections: configuration choices by putting together information from a leaf configuration and all of its ancestors. + When the same keyword is present in a nested configuration and in one of + its ancestors, the values are merged with Python ``+`` semantics. For + example, lists are appended and strings are concatenated directly. String + values such as ``description`` should include any needed separators in + the configuration data. + - ``bb-env-passthrough-additions`` (*optional*): List of environment variables to include in :term:`BB_ENV_PASSTHROUGH_ADDITIONS`. From patchwork Fri May 29 15:00:01 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ernest Van Hoecke X-Patchwork-Id: 88907 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id AA91CCD6E51 for ; Fri, 29 May 2026 15:00:19 +0000 (UTC) Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.12275.1780066816160687372 for ; Fri, 29 May 2026 08:00:16 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=TDJgT7gX; spf=pass (domain: gmail.com, ip: 209.85.221.47, mailfrom: ernestvanhoecke@gmail.com) Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-45ef1629ff4so646042f8f.0 for ; Fri, 29 May 2026 08:00:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780066814; x=1780671614; darn=lists.openembedded.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=oUZNmOMp9B4F/AcV28+MAzp7N5VSttONZsQAae+ijzA=; b=TDJgT7gXSkIFIHYDRa6ORmj2s227gStCZcngzQJRpfT98ufh4kHdXGFzWr7W8wez7Q 6agG9DWGEkvM+rhncEWEpuuOTL9nq2vyLzteA6uHfdGrI/ScejO7AlRAB63KSaBtcbWh E0AtKadSstfwAHt9ArSLelVC5dbLrsMssUphyebYvXKgFEO/iSV9mG1FLEeaRnHWxvty 9raW/M+P/m7ZdFHCK7fcnnWrFwe4IM+3XX6VLjGKb2keU1XHPRHQPb3EZekBtfxCq/Qz Podr7pH26FTJ5Gi9zAm8+2GbmV0dIzWhZWbBcWz+r9Bfysd1dsV+U7nSMbdeBXljaqD0 D/SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780066814; x=1780671614; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=oUZNmOMp9B4F/AcV28+MAzp7N5VSttONZsQAae+ijzA=; b=PtY07UOong1Q6HhJMhNqS6eMZyPnUQoTlYZVPBH/u8jD2pT3uYBLDsTKW7VZ+wSBQV P/ItBdzI7c7X0f0RUOjNSn9BYrfwJUBpcsZ8pHVH8yvQ8MvfJuqR8mH6BHcBET40FIdb kenq0UfQRwp8sJF+j9PC07neOeTQKRw7W9ycqh0ytVOM+kuUuVmpskqhFO2XBthWIkQF /DXlP4BWfe5+7aONm532zQP05eSeqk4u1i0wfZv9qpKQLToDd1oG2CWzWBBTM0oLWrJu soR+hhLqzIbuD7jyVWlnhPFceUCHNjFJt8sIujz8S8Ege+4VVrrly8PEsVGFatfruiDF ZZLg== X-Gm-Message-State: AOJu0YwaVw8YdMCO5wLrMqY1bvZ+1lpig34Bo25jl5V1zjVXgxLVg1+0 90ytaP9WTNrhDj3PLQ7gGStimYHsDfu4X9IRsYSQxFe4G5yoA78Z4wWAVrwmOKmZ X-Gm-Gg: Acq92OEmZop5JtyQ5HjgdZcorFi90LRMNKGwUymn1aTW+AiIu6eGz1BwUluG+mdeE4r oHS4ZacsjX5dvLndS6uzbYq1WajWlGf/ASzX4cqYGCE7Dv0nZCV1rncVPyojCaub2UYgIoyGU7d i594FUykm4qvTdGqQCxRsv0n6i2toWIq+RrR+muSxmn29E5kUaMbsv5nQnvvbModlInZ3ogZXGG Jj6okNjHah54j6rbOSOagMX38ZS1MZ9YtCaUp+5jtZSilKkwVLPJ5FTzs3WJZ5E6bX0KtfH9qGJ b18uJargvRRCss/U2PxKPfzdJOd5ofmH3co+aPc905wCXosjvISeV6J3qZvNq99LPH7zG4OW3pz afz2riwxQhG1Tz1azNPRZnaHjTBmm6zRGxOLUwiJ7tnO+Q4Ah+IrRqQPTmDWBmeDJhLoPDrQ5Pu 0SApRjYxr5VPSJYMwzaWcS61faVB7fViTVm+19QYp3fAIa8Mowa/1T8P6w/OYITA5iFiCVtJZCs /c1/KgdhmaG599aPcPmCni6LBqcLTfVoosVRg== X-Received: by 2002:a05:6000:1285:b0:452:65d:e108 with SMTP id ffacd0b85a97d-45ef6af6ce7mr341211f8f.3.1780066814257; Fri, 29 May 2026 08:00:14 -0700 (PDT) Received: from ernest.hoecke-nb (248.201.173.83.static.wline.lns.sme.cust.swisscom.ch. [83.173.201.248]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef3587072sm4285826f8f.34.2026.05.29.08.00.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 08:00:13 -0700 (PDT) From: Ernest Van Hoecke Date: Fri, 29 May 2026 17:00:01 +0200 Subject: [PATCH 2/2] bitbake-setup: write notes for generated build configs MIME-Version: 1.0 Message-Id: <20260529-bb-setup-notes-v1-2-a251ef1c5af4@toradex.com> References: <20260529-bb-setup-notes-v1-0-a251ef1c5af4@toradex.com> In-Reply-To: <20260529-bb-setup-notes-v1-0-a251ef1c5af4@toradex.com> To: bitbake-devel@lists.openembedded.org Cc: Alexander Kanavin , docs@lists.yoctoproject.org, Ernest Van Hoecke X-Mailer: b4 0.13.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 29 May 2026 15:00:19 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/19565 From: Ernest Van Hoecke For bb-layers configurations, bitbake-setup currently writes an empty "conf-notes.txt". Configurations using "oe-template" get this file from the template. Add an optional field called "notes" to configurations that populates this field when "bb-layers" is used instead of "oe-template". Signed-off-by: Ernest Van Hoecke --- bin/bitbake-setup | 3 ++- doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst | 5 +++++ lib/bb/tests/setup.py | 4 ++++ setup-schema/bitbake-setup.schema.json | 4 ++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/bin/bitbake-setup b/bin/bitbake-setup index 220540f7f9ca..e22e5b77bde1 100755 --- a/bin/bitbake-setup +++ b/bin/bitbake-setup @@ -301,7 +301,8 @@ def setup_bitbake_build(bitbake_config, layerdir, setupdir, thisdir, update_bb_c f.write(bitbake_config["description"] + "\n") with open(os.path.join(build_conf_dir, "conf-notes.txt"), 'w') as f: - f.write("") + notes = bitbake_config.get("notes") + f.write(notes + "\n" if notes else "") def _make_init_build_env(builddir, oeinitbuildenvdir): builddir = os.path.realpath(builddir) diff --git a/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst b/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst index 1252f22c823a..e99cf7b3415d 100644 --- a/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst +++ b/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst @@ -1057,6 +1057,11 @@ They contain the following sections: snippet. This is what is prompted during the :ref:`ref-bbsetup-command-init` command execution. + - ``notes`` (*optional*): additional information written to + ``build/conf/conf-notes.txt`` when ``bitbake-setup`` generates the build + configuration from ``bb-layers``. For ``oe-template`` configurations, + this file is provided by the template. + - ``configurations``: Configurations can recursively contain as many nested configurations as needed. This will create more choices when running the :ref:`ref-bbsetup-command-init` command. diff --git a/lib/bb/tests/setup.py b/lib/bb/tests/setup.py index 638d56d3bb32..ffe390db1bda 100644 --- a/lib/bb/tests/setup.py +++ b/lib/bb/tests/setup.py @@ -136,6 +136,7 @@ print("BBPATH is {{}}".format(os.environ["BBPATH"])) { "name": "gadget-notemplate", "description": "Gadget notemplate configuration", + "notes": "Gadget notemplate notes", "bb-layers": ["layerA","layerB/meta-layer"], "oe-fragments": ["test-fragment-1"] }, @@ -249,6 +250,9 @@ print("BBPATH is {{}}".format(os.environ["BBPATH"])) else: with open(os.path.join(bb_conf_path, 'conf-summary.txt')) as f: self.assertIn(bitbake_config["description"], f.read()) + with open(os.path.join(bb_conf_path, 'conf-notes.txt')) as f: + expected_notes = bitbake_config.get("notes") + self.assertEqual(f.read(), expected_notes + "\n" if expected_notes else "") with open(os.path.join(bb_conf_path, 'bblayers.conf')) as f: bblayers = f.read() for l in bitbake_config["bb-layers"]: diff --git a/setup-schema/bitbake-setup.schema.json b/setup-schema/bitbake-setup.schema.json index be8772db1b2d..6a39e66a0ae4 100644 --- a/setup-schema/bitbake-setup.schema.json +++ b/setup-schema/bitbake-setup.schema.json @@ -41,6 +41,10 @@ "type": "string", "description": "Human-readable description of the configuration" }, + "notes": { + "type": "string", + "description": "Extra notes that populate conf-notes.txt when bb-layers is used" + }, "bb-layers": { "type": "array", "description": "List of BitBake layer paths to include, relative to the layers download directory",