From patchwork Tue Mar 31 08:14:51 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 84878 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 5F35FFF60E3 for ; Tue, 31 Mar 2026 08:15:14 +0000 (UTC) Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.15384.1774944913356767405 for ; Tue, 31 Mar 2026 01:15:13 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@bootlin.com header.s=dkim header.b=DQqUWxNb; spf=pass (domain: bootlin.com, ip: 185.171.202.116, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 4A650C5994A for ; Tue, 31 Mar 2026 08:15:42 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id D20B76029D; Tue, 31 Mar 2026 08:15:11 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id DE7A010450FD3; Tue, 31 Mar 2026 10:15:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774944911; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=hqJSGJmILKKseQg/nXLbVPNmh2DvQLxN18agS3apG2Y=; b=DQqUWxNbhdL61HxtHeLNseC1yhVPY6WgcVpaxOIban/l4iQJM85wA9y4TN+zV0g0YQ5jvc bC07rijMXS9fUumEzyI7s/ef5cfA7udwYqyNFzI6Dq6aFJ2gcaw4qAUbScHGV+w8Oc0aGP Of/1quiUjVxOisOfAwy8yrFaItOB0NQa2frjpDt9k39NIOnMt9ipoytw9XkZ/0i2tNwg75 foFyN6qH357li2tzE/c/OqVmfSKWLjCnMexZPT7p8f5f1W3M9cZ2xYhKxDJgGsPQfgvU26 Z+xMIkOO0K93+AbQw7lsarX4SvN1NwuE7sznVQL3dglprl5UBZjI2J1EdJin1w== From: Antonin Godard Date: Tue, 31 Mar 2026 10:14:51 +0200 Subject: [PATCH 1/2] bitbake-setup: rename "abort" rebase conflict stragegy to "halt" MIME-Version: 1.0 Message-Id: <20260331-docs-fixes-v1-1-45ee34341e72@bootlin.com> References: <20260331-docs-fixes-v1-0-45ee34341e72@bootlin.com> In-Reply-To: <20260331-docs-fixes-v1-0-45ee34341e72@bootlin.com> To: bitbake-devel@lists.openembedded.org Cc: Thomas Petazzoni , docs@lists.yoctoproject.org, Antonin Godard X-Mailer: b4 0.16-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=7913; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=dw2+8gBHJDJ8fwjM86GXm/kUwCVnX2LPTFHws2eGiqw=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpy4KNh3d6N4vS6Ms69YHCE82H9o5886yNHNN8K dmiug1RuyuJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCacuCjQAKCRDRgEFAKaOo NlTgD/4mnkfmk9m73AC6fhdcbIJWEAud8rYB3MGTMFvO+yL0RzVCKRq+XkCv0/Nmb9gvDJtdQlZ qXM79PlG1EyrrbNvAsjm2ytt43BkcdI7NmcuLSNxQ3I/xFFhJK7+ZAiu+B9WL2f3M9k3EGHmr4e oMglesA2xRSgEB9/0E3XH24Thuz+v+EXnizvF9u/pstCjcLGSmuNNBT3gFJDpqg79EQUgkJn1wF ebza84Gu5K1fymIyw9SUKmYiHTHhifpogC51RB2hsOby33M1irpOnYVy9+dXjbRuZI4nk/L1OdO UvEs0jUbp2ZvAIh6L6unL5Ks5SQ+wDbEVNXUdwfqEWGfqCdIMNnqvuUNN1QRG/irYE/y9vBZNHF c4cj0csolnqBvEqi3tU1xu+8nQc1W6Q9aYEf2FgVYjcBaRrqvVAbNU/MUWOtzDto4AwNkUedkwW 9ZwpYYH4nRf2oM6QL9mj4QKDohSq1ACToRbwPoDQnxdJVZQ5r5HcGyHi1bnlX6PWqndbmie74B8 mBx0CG11yzmjGbIQ9mH5DZElak27pUQxFGUUxIWctW0vY8swsdjVcRyFmPW1MVeeDJhLW8NXsYF BTTAAnBfv4tHBEITiA/v+kkJiThbs/fCwfWpNmIne0B7BIPXSmZOW0fLWGCryCQb219Ydh1I8vA WYjd7e6+sQvfKUQ== X-Developer-Key: i=antonin.godard@bootlin.com; a=openpgp; fpr=8648725188DD401BB9A0D3FFD180414029A3A836 X-Last-TLS-Session-Version: TLSv1.3 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 ; Tue, 31 Mar 2026 08:15:14 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/9143 As per [1], do not use the word "abort" and replace it with "halt" for the rebase conflicts strategy. This is something we try to follow in our documentation. [1]: https://inclusivenaming.org/word-lists/tier-1/abort/ Signed-off-by: Antonin Godard --- bin/bitbake-setup | 8 ++++---- doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst | 6 +++--- doc/bitbake-user-manual/bitbake-user-manual-fetching.rst | 2 +- lib/bb/tests/setup.py | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bin/bitbake-setup b/bin/bitbake-setup index b02cbc2b1c4..33cbefb4914 100755 --- a/bin/bitbake-setup +++ b/bin/bitbake-setup @@ -167,7 +167,7 @@ def _get_remotes(r_remote): return remotes -def checkout_layers(layers, confdir, layerdir, d, rebase_conflicts_strategy='abort'): +def checkout_layers(layers, confdir, layerdir, d, rebase_conflicts_strategy='halt'): def _checkout_git_remote(r_remote, repodir, layers_fixed_revisions): rev = r_remote['rev'] branch = r_remote.get('branch', None) @@ -458,7 +458,7 @@ def merge_overrides_into_sources(sources, overrides): layers[k] = v return layers -def update_build(config, confdir, setupdir, layerdir, d, update_bb_conf="prompt", init_vscode=False, rebase_conflicts_strategy='abort'): +def update_build(config, confdir, setupdir, layerdir, d, update_bb_conf="prompt", init_vscode=False, rebase_conflicts_strategy='halt'): layer_config = merge_overrides_into_sources(config["data"]["sources"], config["source-overrides"]["sources"]) sources_fixed_revisions = checkout_layers(layer_config, confdir, layerdir, d, rebase_conflicts_strategy=rebase_conflicts_strategy) bitbake_config = config["bitbake-config"] @@ -1273,9 +1273,9 @@ def main(): parser_update = subparsers.add_parser('update', help='Update a setup to be in sync with configuration') add_setup_dir_arg(parser_update) parser_update.add_argument('--update-bb-conf', choices=['prompt', 'yes', 'no'], default='prompt', help='Update bitbake configuration files (bblayers.conf, local.conf) (default: prompt)') - parser_update.add_argument('--rebase-conflicts-strategy', choices=['abort', 'backup'], default='abort', + parser_update.add_argument('--rebase-conflicts-strategy', choices=['halt', 'backup'], default='halt', help="What to do when a layer repository has local modifications that prevent " - "an in-place update: 'abort' (default) aborts with an error message; " + "an in-place update: 'halt' (default) halts with an error message; " "'backup' renames the directory to a timestamped backup and re-clones from upstream.") parser_update.set_defaults(func=build_update) 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 c22e19bd665..c7b73001404 100644 --- a/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst +++ b/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst @@ -458,9 +458,9 @@ In addition, the command can take the following arguments: local modifications or commits that prevent an in-place update. Accepted values are: - - ``abort`` (default): stop with an error message describing the problem. + - ``halt`` (default): stop with an error message describing the problem. The repository is left in its previous state (the failed rebase is - automatically aborted). The error message includes a hint to re-run with + automatically halted). The error message includes a hint to re-run with ``--rebase-conflicts-strategy=backup``. - ``backup``: rename the conflicting layer directory to a timestamped ``-backup-`` path (preserving local work), then @@ -523,7 +523,7 @@ In addition, the command can take the following arguments: - This example shows what happens when a layer directory contains local commits that conflict with the incoming upstream changes. The failed rebase - is automatically aborted, and the ``dldir`` remote is left in the repository + is automatically halted, and the ``dldir`` remote is left in the repository for manual resolution: .. code-block:: shell diff --git a/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst b/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst index c2747c40124..fbfc9600f12 100644 --- a/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst +++ b/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst @@ -223,7 +223,7 @@ The method raises an error if: - The working tree contains staged or unstaged changes to tracked files (``LocalModificationsError``). - Local commits cannot be cleanly rebased onto the new upstream - revision (``RebaseError``). A failed rebase is automatically aborted + revision (``RebaseError``). A failed rebase is automatically halted before the exception is raised. - The download cache does not contain a sufficiently recent clone of the repository, or the checkout is a shallow clone. diff --git a/lib/bb/tests/setup.py b/lib/bb/tests/setup.py index 638d56d3bb3..c85013eb4d4 100644 --- a/lib/bb/tests/setup.py +++ b/lib/bb/tests/setup.py @@ -639,14 +639,14 @@ print("BBPATH is {{}}".format(os.environ["BBPATH"])) """Test the --rebase-conflicts-strategy option for the update command. Covers three scenarios not exercised by test_setup: - 1. Uncommitted tracked-file change (LocalModificationsError) + default 'abort' + 1. Uncommitted tracked-file change (LocalModificationsError) + default 'halt' strategy → clean error message containing 'has uncommitted changes' and a hint at --rebase-conflicts-strategy=backup; no backup directory is created. 2. Same uncommitted change + 'backup' strategy → directory is renamed to a timestamped backup and the layer is re-cloned cleanly. 3. Committed local change that conflicts with an incoming upstream commit (RebaseError): - a. Default 'abort' strategy → error containing 'Merge conflict' and the + a. Default 'halt' strategy → error containing 'Merge conflict' and the --rebase-conflicts-strategy=backup hint; no backup directory is created. b. 'backup' strategy → backup + re-clone instead of a hard failure. """ @@ -663,7 +663,7 @@ print("BBPATH is {{}}".format(os.environ["BBPATH"])) layer_path = os.path.join(setuppath, 'layers', 'test-repo') layers_path = os.path.join(setuppath, 'layers') - # Scenario 1: uncommitted tracked change, default 'abort' strategy + # Scenario 1: uncommitted tracked change, default 'halt' strategy # Advance upstream so an update is required. self.add_file_to_testrepo('test-file', 'upstream-v2\n') # Modify the same tracked file in the layer without committing. @@ -677,7 +677,7 @@ print("BBPATH is {{}}".format(os.environ["BBPATH"])) self.assertIn('--rebase-conflicts-strategy=backup', str(ctx.exception)) # No backup directory must have been created. self.assertEqual(self._count_layer_backups(layers_path), 0, - "abort strategy must not create any backup") + "halt strategy must not create any backup") # Scenario 2: same uncommitted change, 'backup' strategy out = self.runbbsetup("update --update-bb-conf='no' --rebase-conflicts-strategy=backup") From patchwork Tue Mar 31 08:14:52 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 84879 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 AF2FAFF60E6 for ; Tue, 31 Mar 2026 08:15:24 +0000 (UTC) Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.15095.1774944914337847742 for ; Tue, 31 Mar 2026 01:15:14 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=nhOd+IbW; spf=pass (domain: bootlin.com, ip: 185.171.202.116, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 1DC26C5994C for ; Tue, 31 Mar 2026 08:15:43 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id A25D86029D; Tue, 31 Mar 2026 08:15:12 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id AC03510450FF2; Tue, 31 Mar 2026 10:15:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774944912; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=6P45JJd0fgE6H5JrxTm9kKaMyNc0mzEFcKSTHRirpTg=; b=nhOd+IbWE7R31dpj1w5aGcFSVuEeTkBEJBsXhC8NgL6RvQeb6CilvNrOo5KJ9WKzb7P3lo oVcLmmNWDWazp/8+2iZXNK6/0r1iNnMr5oAuwdMyo/3H5rikLlzqOikKbywvrfXByC0kOk 2qEQn2rlKBkgx0ouy1skrEDpVH1O0iGji+6lmEI17/pRpM9s8jOGJF6DYUu+5Xedoz5g5M jJKDmmhR7fxiyoycZ5jzjUIvnw31CvZbAxyRIsaarYoaTrxeh1Xq6gc9YbiiV9LILjNPL1 UpOk0dxFWJ+T8CKnTi6V/b5bSpqwAyJh+Ad1TpNVzcmKzNKHCFCUOiR6im0ulQ== From: Antonin Godard Date: Tue, 31 Mar 2026 10:14:52 +0200 Subject: [PATCH 2/2] doc/bitbake-user-manual-environment-setup.rst: replace shell blocks by console MIME-Version: 1.0 Message-Id: <20260331-docs-fixes-v1-2-45ee34341e72@bootlin.com> References: <20260331-docs-fixes-v1-0-45ee34341e72@bootlin.com> In-Reply-To: <20260331-docs-fixes-v1-0-45ee34341e72@bootlin.com> To: bitbake-devel@lists.openembedded.org Cc: Thomas Petazzoni , docs@lists.yoctoproject.org, Antonin Godard X-Mailer: b4 0.16-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=5839; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=sldTZpzHi0cENzuSTCJDMP3kle1yGBxNnajv8r1OP4c=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpy4KNCivgqp+UJ/za2sx7ozz4LY4vrfvkMxyWa 20RirdJIH2JAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCacuCjQAKCRDRgEFAKaOo NkD7D/4nFD3OYD/zbr/jt9IsxnO6xpHTREiC89otOBpjKLjgMczbNz3QRMqUpQJQy0DlVqXYYNf 3FdDey8MbSZrRz9rvRUGC7CBop6yKlMwnac7+itcmQTonsplrDmZY/NXiYugOG2WRCjtNwVK89E 6Nk7xX50LPch8Hi97Yz4LCcMwCIe9O552FIaSAvtl/Op8TIpZNG3qfffm2am1r5w8sO15SMDAv/ e0a9DNW0ddf91g0g2r0KtGSDTvNVrdUgeK6i52dG0Tdszv/njv9jjXCQbhcj0jmZAs6MwQ3FfQA s53nzwGMmJshUysmj4Lz6eqdmM+ECq4jOTdUOTcy1QzWIpcyBh2oyJJXI+vyLKgI9wkmVULicMT JHlaLDDxqx+uOkD+zhVl1Nj+UTJQsbCJ33KFiqC3obnWKM86eZlk1BJz641ATvS9Br1GT9nALcu cYTgQ0syDXJ9TrAO1hKoNsWIFwZbQdJ03RPQO+M5TKlVAmh7BpDGtODCMUTLbSeOSZ0vyh88OdE wwqTM+XXpBVhN2XE5lwOiJUjHKyWs/zD3pCmo6o5r+BNXNZW65v2FdDHVjGnCGhdTaBxChbtUu3 rEf+Hy3UmowuVT00A+pjQ8XSHKAPd1vle81/81h6VNL1RtDGtKN69EWubEC+HNBcEkjphbW9BPZ peHTKSU2L5cr5uw== X-Developer-Key: i=antonin.godard@bootlin.com; a=openpgp; fpr=8648725188DD401BB9A0D3FFD180414029A3A836 X-Last-TLS-Session-Version: TLSv1.3 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 ; Tue, 31 Mar 2026 08:15:24 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/9145 The appropriate lexer to use for command examples is console, not shell. Replace all misuses of this lexer in this document. Signed-off-by: Antonin Godard --- .../bitbake-user-manual-environment-setup.rst | 30 +++++++++++----------- 1 file changed, 15 insertions(+), 15 deletions(-) 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 c7b73001404..ece872ad26c 100644 --- a/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst +++ b/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst @@ -27,7 +27,7 @@ Quick Start #. If you haven't already, clone the BitBake repository: - .. code-block:: shell + .. code-block:: console $ git clone https://git.openembedded.org/bitbake @@ -36,7 +36,7 @@ Quick Start To start, run: - .. code-block:: shell + .. code-block:: console $ ./bitbake/bin/bitbake-setup init @@ -94,7 +94,7 @@ Quick Start #. Source the ``init-build-env`` file present in the :term:`BitBake Build` directory: - .. code-block:: shell + .. code-block:: console $ source ./poky-master-poky-distro_poky-machine_qemux86-64/build/init-build-env @@ -343,7 +343,7 @@ In addition, the command can take the following arguments: - This example prompts the user to choose a :term:`Configuration Template` from a custom registry: - .. code-block:: shell + .. code-block:: console $ ./bitbake/bin/bitbake-setup \ --setting default registry 'git://example.com/bitbake-setup-configurations.git;protocol=https;branch=main;rev=main' \ @@ -352,7 +352,7 @@ In addition, the command can take the following arguments: - This example takes a :term:`Configuration Template` from a remote location (here, one of the default configuration in BitBake): - .. code-block:: shell + .. code-block:: console $ ./bitbake/bin/bitbake-setup init https://git.openembedded.org/bitbake/plain/default-registry/configurations/oe-nodistro-master.conf.json @@ -363,7 +363,7 @@ In addition, the command can take the following arguments: - A standalone :term:`Configuration Template` file. - Choices passed on the command-line, applied non-interactively. - .. code-block:: shell + .. code-block:: console $ ./bitbake/bin/bitbake-setup \ --setting default top-dir-prefix /work/bitbake-setup \ @@ -477,7 +477,7 @@ In addition, the command can take the following arguments: environment. Local commits in any layer directory are rebased on top of the new upstream revision and preserved: - .. code-block:: shell + .. code-block:: console $ bitbake-setup update NOTE: Bitbake-setup is using /path/to/bitbake-builds as top directory. @@ -493,7 +493,7 @@ In addition, the command can take the following arguments: - This example shows what happens when a layer directory contains staged or unstaged changes to tracked files. The update is blocked with an error: - .. code-block:: shell + .. code-block:: console $ bitbake-setup update NOTE: Bitbake-setup is using /path/to/bitbake-builds as top directory. @@ -515,7 +515,7 @@ In addition, the command can take the following arguments: Stashing the changes and re-running resolves the issue: - .. code-block:: shell + .. code-block:: console $ git -C layers/openembedded-core stash $ bitbake-setup update @@ -526,7 +526,7 @@ In addition, the command can take the following arguments: is automatically halted, and the ``dldir`` remote is left in the repository for manual resolution: - .. code-block:: shell + .. code-block:: console $ bitbake-setup update ERROR: Repository at layers/openembedded-core has local commits that could @@ -539,7 +539,7 @@ In addition, the command can take the following arguments: The conflict can be resolved manually using the ``dldir`` remote that ``bitbake-setup`` adds to the repository: - .. code-block:: shell + .. code-block:: console $ git -C layers/openembedded-core rebase dldir/master # fix conflicts in an editor, then stage the resolved files: @@ -552,7 +552,7 @@ In addition, the command can take the following arguments: preserves the conflicting directory under a timestamped backup path and re-clones the layer cleanly from upstream: - .. code-block:: shell + .. code-block:: console $ bitbake-setup update --rebase-conflicts-strategy=backup NOTE: Bitbake-setup is using /path/to/bitbake-builds as top directory. @@ -583,7 +583,7 @@ In addition, the command can take the following arguments: the following commands can be used to apply these commits on top of the new upstream revision in the fresh clone: - .. code-block:: shell + .. code-block:: console $ git -C layers/openembedded-core-backup.20260329160426 log --oneline my-wip a1b2c3d u-boot: fix compilation with newer GCC @@ -620,7 +620,7 @@ In addition, the command can take the following arguments: Once all desired commits have been recovered and verified, the backup directory can be removed: - .. code-block:: shell + .. code-block:: console $ rm -rf layers/openembedded-core-backup.20260329160426 @@ -856,7 +856,7 @@ These files are written in the JSON file format and are stored in a :term:`Registry`. They can also be standalone files directly passed to the :ref:`ref-bbsetup-command-init` command: -.. code-block:: shell +.. code-block:: console $ bitbake-setup init /path/to/config.conf.json