From patchwork Mon Dec 15 12:51:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 76532 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 0D35DD5B174 for ; Mon, 15 Dec 2025 12:51:45 +0000 (UTC) Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.47585.1765803098268244679 for ; Mon, 15 Dec 2025 04:51:38 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Cw2A4oko; spf=pass (domain: gmail.com, ip: 209.85.221.49, mailfrom: alex.kanavin@gmail.com) Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-430f57cd471so736355f8f.0 for ; Mon, 15 Dec 2025 04:51:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765803097; x=1766407897; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=88DyCTX7gk9ZmFdeorby2vwHd0QBXf1c0H62zPiJ+u8=; b=Cw2A4okoesEiLM7OCHfBI2x4ZHhcPVT2y5JrC7Lipkc3kQnWWe4mHwutMRwUu/7zQp Ei4H4JF54r7fu+UrxIvR0IHMuHT6dhPTsSyrFAvzMCIID4R+QnrD7dwC6qJ7Cg1xJFcr 0JHR3dWG01irycCinK4ewhYE7br4ZqAY8Bzm5LbWMwSN4OtqwxZS5jxg04eVO0JKP4JJ CrjyECzzJ/b+i5q2e0vccm9tHgH5kMZhE7TWLx5787r5CwmIJNDQ+oQlOPYDh1uurynU 7kEvGrddbgAsQvEIZbZyUlM8vJYlVZY3hoRbTvFRblQseoMb2Z0tJ7w8MkVcoMetlRj7 M4dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765803097; x=1766407897; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=88DyCTX7gk9ZmFdeorby2vwHd0QBXf1c0H62zPiJ+u8=; b=KxYkWYMQ5D97Kf4SZ/DduBfbhphWEnmuBNoMChQaBFpUZYTqo7QqR3cI7VYKc7bkST kjkURiwXUz63xU67SqkB4D11BryiKac8QGH1p9/5VGVRkdHBnyb6eRIRsohexLksyV4x f9XKLvbprXL3XcduCIEEaFHc219dWX60iUMJ2neZ5PWHcEWtm2ozsODb7cJ1tGGRMq2m 4AKkym295QhuylBFmaX27BEH05IS8m7MNUO4Pqj/TPaGWgSRGavStMfLkTDLeVQf5z5W T0ZJBW+O1Y0qk3qTjAH/ZTxPd9dsnmXbJucq7HVQyDT65ehpT60FfY6SnJDUMqP0udz0 IeCA== X-Gm-Message-State: AOJu0YwCJfim2VCgz1bdaELc22ETgXlXCBWwNb0ZvReWsywJVhleOBcd jNStG5LVQ6e55MDFZ3UV1A0sGhEaVFaWvrOmA4WGnj2ZvkxXQvPgIl62qIBsGA== X-Gm-Gg: AY/fxX4HE3zHXo4f+0v1KYQOWzFkTWqH8gzgW5BYpnOkIFQXZz1qIPzOafXduwJCUmA QKNstvHdrLJ1cQCsthJQ0fKZE2sVzcHTXj/DxOuhhACVm+ejjVNfa4Qw1ThRJZUogRA5fIVXfP8 hCeYDyjaaH+dcuBZtCbn1FYPYGIQA/cQaDOyElqiaJCgdeEg0HdrvTVx8zX4EnU/tUVWmkPQaA8 LGEj05e0YwoLQkp+lCrjuXvMrsgWrCWEGS2yqvrcKZfA7fMUm2Gpn5Nm3RTpE4lO8my0Ou9wIwU kYyS/6LjFM+10mafzinTojUIraWVxd285QjA3KQICUCfcz+ABCC0Nso/uhXbj5t4lKs0spqIIC7 rUfSuKE7gFfsnAyX7f/HWFOTFdTZIWlBFkqzvobIoYeNRX13w6MtZSlIpBUDbVQNIuzD/918ABg /7iewoHqn13cu85LzHojvZKFuWxVQidVgrr4XxGxJi0n0hBpo= X-Google-Smtp-Source: AGHT+IGqj+2An4Cpb4NqNPtUpYP8Q+2i85RhMoYSJC+W+hZDP3rpukugTp9MpPYoT1hoqdlCJR1tBw== X-Received: by 2002:a05:6000:2502:b0:430:f41f:bd42 with SMTP id ffacd0b85a97d-430f41fcb93mr7173029f8f.57.1765803096332; Mon, 15 Dec 2025 04:51:36 -0800 (PST) Received: from Zen2.lab.linutronix.de. (drugstore.linutronix.de. [80.153.143.164]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42fa8a09fbesm29303342f8f.0.2025.12.15.04.51.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 04:51:36 -0800 (PST) From: Alexander Kanavin To: bitbake-devel@lists.openembedded.org Cc: paul@pbarker.dev, antonin.godard@bootlin.com, Alexander Kanavin Subject: [PATCH v2 1/5] setup-schema/layers.schema.json: correct indentation Date: Mon, 15 Dec 2025 13:51:23 +0100 Message-ID: <20251215125127.2660714-1-alex.kanavin@gmail.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.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 ; Mon, 15 Dec 2025 12:51:45 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/18591 From: Alexander Kanavin Shift one of the inner blocks 8 spaces to the left, so that everything is indented by 4 spaces. Signed-off-by: Alexander Kanavin --- setup-schema/layers.schema.json | 72 ++++++++++++++++----------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/setup-schema/layers.schema.json b/setup-schema/layers.schema.json index 144ea6d9f..9a0b4ed61 100644 --- a/setup-schema/layers.schema.json +++ b/setup-schema/layers.schema.json @@ -27,44 +27,44 @@ "type": "boolean" }, "git-remote": { - "description": "A remote git source from which to fetch", + "description": "A remote git source from which to fetch", + "type": "object", + "additionalProperties": false, + "required": [ + "rev" + ], + "properties": { + "branch": { + "description": "The git branch to fetch (optional)", + "type": "string" + }, + "rev": { + "description": "The git revision to checkout", + "type": "string" + }, + "describe": { + "description": "The output of 'git describe' (human readable description of the revision using tags in revision history).", + "type": "string" + }, + "remotes": { + "description": "The dict of git remotes to add to this repository", "type": "object", - "additionalProperties": false, - "required": [ - "rev" - ], - "properties": { - "branch": { - "description": "The git branch to fetch (optional)", - "type": "string" - }, - "rev": { - "description": "The git revision to checkout", - "type": "string" - }, - "describe": { - "description": "The output of 'git describe' (human readable description of the revision using tags in revision history).", - "type": "string" - }, - "remotes": { - "description": "The dict of git remotes to add to this repository", - "type": "object", - "patternProperties": { ".*" : { - "description": "A git remote", - "type": "object", - "addtionalProperties": false, - "required": [ - "uri" - ], - "properties": { - "uri": { - "description": "The URI for the remote, using git URL syntax", - "type": "string" - } - } - }} + "patternProperties": { ".*" : { + "description": "A git remote", + "type": "object", + "addtionalProperties": false, + "required": [ + "uri" + ], + "properties": { + "uri": { + "description": "The URI for the remote, using git URL syntax", + "type": "string" + } } - } + }} + } + } } } } From patchwork Mon Dec 15 12:51:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 76534 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 2F4A8D5B175 for ; Mon, 15 Dec 2025 12:51:45 +0000 (UTC) Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.47792.1765803098828779092 for ; Mon, 15 Dec 2025 04:51:39 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=MtCzcyk3; spf=pass (domain: gmail.com, ip: 209.85.221.51, mailfrom: alex.kanavin@gmail.com) Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-42e2d02a3c9so2313343f8f.3 for ; Mon, 15 Dec 2025 04:51:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765803097; x=1766407897; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6w+MKpO1iFq+PRm1njJInaGAotTj17Qh3O4toYc/64w=; b=MtCzcyk35c2kMjiVqF7sNoi7LhMAZo4VNn7Yh2H70MYbfXDusd5XbsjCeFIUjZlFvl fKPGKHHXDFRrkLQ/j7t6sP9GWM9oG8wt+1l5kQ2kYxCBUlsy8uF0qpN5TN7tcjYUB4Fh LYw12VQhqXMXV0TR9/f2FcxsM0SEPKxzvq68IyMfdImCZo1jLrVGYnlUJbwSmHWZ7G1D knnUPlA33DGULI0JRCoF+AZWPe+FjlRsjl/FfTE3rrjRoNRokHY8Yx9bCGudG8oQjYHU YtvlA1du5JTX8+Q/Dw4D2z0+JMq+pL+EEm4reC2o1LyDWwXcK9GCTs7d6SHv5cCoditP T7gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765803097; x=1766407897; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6w+MKpO1iFq+PRm1njJInaGAotTj17Qh3O4toYc/64w=; b=YBc/HqHwav2gpTI9/ChvEdOpDDQ0wEjG5IeCQkHGTgaBkompMMA35OYHJyc9JSHYpd oaGBDgSq4oaf/HOtS7+c1qCueLMZinv44p9OEg9prizAvWvHRSWCw1+HXp2SgGX2YrYl V50p/+Zm72B/Eemy3uSkW/baffm03Ndmx2sWZYPK2zdkRwmoVtN+9QdMIdmTvsSEXj3A 7CT6BgefeXV/b78Phy/d8+FzSuE/hoEGjfcpa1zsdFOjQroMrPiWDZIaf1aP2YbktymU m/7bIJpn8NrzJIC7mTI3oE1MzQryA9xLG+3kebWEofTM7GCxV8uouHFSa0SLiGf9P2cr KUAQ== X-Gm-Message-State: AOJu0YyA70tFq74C+zqOo7w/x/PwG+DP1j17kbcY0UkZVZIqAdq8YaSB g5XxDmZVKc2XZqs0vA79DabQTeh5aZkZI//jmiHVrNpSvA2SYuD35d046JZ6zw== X-Gm-Gg: AY/fxX7Hlf/fqxXaboZnzmsiopnTwc77vs7m56LI9mzNBRUrUg7iPUGrj32ic8IF/W3 KXaS8SkJ3eplH1wlX0hOBtDL+skU8lqbuSgyDjXZ2PxBX+hYJtW7N6pC2s3Lb4ZXxgfqzBTkSCR v2hbBVLriKEfJ2koP6FO411sJbZ+MZsljftNLS2q20crZVnYZZDtv+xGv+AarkTpOrd0vOEXGbS 9h4pRzcdLxDnpfHqYYuXC6o/rO/mkTMLlLfDOFHf9NZZC+k5PfW8v/OGXC76GlxS4Bbg7JfqqeE rAfOmIkDt7spgkjzoA7i+EGPdyS311lc4jwmMaQwZY/pTSQiyCXBJ5JRnycD60EKKzr64azvDvr aC5iHkQgIjaLrOA3vsu8xhiwvBjfqDX2spA3JNK+wY9QBzk9tLJ0+8xrX/rtBVWEIxiT29O/D1X xNaOJKVX8JqBk7bclt8JCTvx33zC8PAEESxY7F426ilMr+/RY= X-Google-Smtp-Source: AGHT+IHABIRq9rzApx+Bz3Jf0VtqNqtVeyLUm0lOuIDF92p635elYSxmL3Lx2NwmG1O9wDqsb4I5yw== X-Received: by 2002:a05:6000:420e:b0:430:f241:a11f with SMTP id ffacd0b85a97d-430f241a3cfmr8690821f8f.30.1765803097092; Mon, 15 Dec 2025 04:51:37 -0800 (PST) Received: from Zen2.lab.linutronix.de. (drugstore.linutronix.de. [80.153.143.164]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42fa8a09fbesm29303342f8f.0.2025.12.15.04.51.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 04:51:36 -0800 (PST) From: Alexander Kanavin To: bitbake-devel@lists.openembedded.org Cc: paul@pbarker.dev, antonin.godard@bootlin.com, Alexander Kanavin Subject: [PATCH v2 2/5] bitbake-setup: override complete source entries, not just the git-remote properties Date: Mon, 15 Dec 2025 13:51:24 +0100 Message-ID: <20251215125127.2660714-2-alex.kanavin@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251215125127.2660714-1-alex.kanavin@gmail.com> References: <20251215125127.2660714-1-alex.kanavin@gmail.com> MIME-Version: 1.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 ; Mon, 15 Dec 2025 12:51:45 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/18592 From: Alexander Kanavin The code was assuming that a source entry always contains a git-remote property, and that is the only property that should be replaced. With upcoming introduction of local sources (using 'local' as a property as an alternative to the existing 'git-remote' property) that is no longer true. Signed-off-by: Alexander Kanavin --- bin/bitbake-setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/bitbake-setup b/bin/bitbake-setup index b1d751899..8d4e9769a 100755 --- a/bin/bitbake-setup +++ b/bin/bitbake-setup @@ -323,7 +323,7 @@ def update_build(config, confdir, setupdir, layerdir, d, update_bb_conf="prompt" layer_overrides = config["source-overrides"]["sources"] for k,v in layer_overrides.items(): if k in layer_config: - layer_config[k]["git-remote"] = v["git-remote"] + layer_config[k] = v sources_fixed_revisions = checkout_layers(layer_config, layerdir, d) bitbake_config = config["bitbake-config"] thisdir = os.path.dirname(config["path"]) if config["type"] == 'local' else None From patchwork Mon Dec 15 12:51:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 76535 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 22292D5B16E for ; Mon, 15 Dec 2025 12:51:45 +0000 (UTC) Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.47793.1765803099575927937 for ; Mon, 15 Dec 2025 04:51:39 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=JRGAT7HL; spf=pass (domain: gmail.com, ip: 209.85.221.54, mailfrom: alex.kanavin@gmail.com) Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-42fb2314f52so1505280f8f.0 for ; Mon, 15 Dec 2025 04:51:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765803098; x=1766407898; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1HNK/TxNpJubyDtqPcCZV8/we3jKM3rhzgOwlqyknJE=; b=JRGAT7HLG5NZlFHRCFXfkc+IHcmaOnGYatDQdGQ00Dq84Xg2A79ctuVDHaT/p/PDld vlM+NtKHb4ZAbuTB5EjZURBjDfNjU+oujaAOe65DcIdNHRnBbm2hvMshmYR7/FYi26IB 0/Lo15lxLkk4PCKE+4jjcG4SEtNgJY3e8QohKlVwuD8SQc7HKSuVaJ2FO+Jn8ZxKqUey +D29goVSw/Q3c2pjHXSUtLmRoi55/I0XF2BUcQ284FeK3SxEzM493JuApLYugvMf0QTz 9VYw0quH1r/rJ6beyq/ER+BCKopr51Tf0vmeTiYj9c9VM4Q/8HgwpaqhXC8I4hZVNoXQ dO3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765803098; x=1766407898; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1HNK/TxNpJubyDtqPcCZV8/we3jKM3rhzgOwlqyknJE=; b=Hs9yI0/KyefBPUJLtGUhyl66DJDkOxygTe2HazSq6eweQZBG5iobu1kyk6SBp1509H OO8O1eTLcphSk0OqgtGLSEp30dwT3MUs2WL6M/k+iGc89Fe4svIV/7cQojkGHobzsPHi bqX9cin62So77IfdhjuESRcMC56vmQLGbfiwTWOX2oNSidev8O+RtC1f/8+KOCniopD/ ayS44grQW1Qy65Ge/iFh5PWHRk1XXFCzidq4nUFd5Q6qWk1JlcnZEOlBzoFSNgdC2CJ+ 26W/t6cnqhHJGW9nqt+b9FlYsqxAPSPbzAHF42dahALofqALFb+GGTrGRWfPKHuUnn9F 5ERQ== X-Gm-Message-State: AOJu0Yzm6Nn8kR6N4PR+42wrT4qaLUpCgujADrxFUGbKAyMh4GLExkKp lgS784LKwcL+IL9BDSDeHcrUNfuHG6XaakVBYd8AFLBXO/OZBUlfMBHe3iPJJA== X-Gm-Gg: AY/fxX5YkQY/JdtxZdxADS8Qd5VR4TdznJNwEFqlW0FqJ9pYPN6UUQtPPiO8e6p09Vs mhMX0v1z8DCoEli/ymmaraReeEWQ8VJ1ZLs4MbZZx/H75dSr5V/aWLpEjHQLMg4yBFMYevZkeHf rQ1DKYqJmB+uOecjpLNT4YGo8yMNwOBSGU8hqFKCjgfuZnns2M8NGW9k1bQO8l63rB8UFp7d8AQ amVKLhJiBgT86YsLcIkQHYoSn4Tkk6ihDbdCjMOzqYVlvFc5/qNdDUE8qYLs2G/Ub74Hmhky+kT 5f9JCB/jwtL85ryJuqt47O0OxADW6j+2H7GnUcqy7xC8U3xjLQYoC7dHp0AyHvAyESg82/WgMcN PWhnB5Uxjvvtcev4zcOgxyoO9YvC6RQ1U9CRb54h1/tbCta5pGz6ZWPZo4o0lvNh5xjpioOmYM4 s5Hpr5cFQerbXbIv/Jp0MXAhwlWMp52LjEvQQpiJTjwtPTDsV9Wb2DqdFXTA== X-Google-Smtp-Source: AGHT+IH5TjsMon0tTo3RfOPpPILBaHXf2VJd/sbFTveYh2VSZI8J0L6vPyXh0pbOBu8SiJXW/xq29w== X-Received: by 2002:a05:6000:1ac9:b0:430:8583:d182 with SMTP id ffacd0b85a97d-4308583d321mr9259639f8f.29.1765803097797; Mon, 15 Dec 2025 04:51:37 -0800 (PST) Received: from Zen2.lab.linutronix.de. (drugstore.linutronix.de. [80.153.143.164]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42fa8a09fbesm29303342f8f.0.2025.12.15.04.51.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 04:51:37 -0800 (PST) From: Alexander Kanavin To: bitbake-devel@lists.openembedded.org Cc: paul@pbarker.dev, antonin.godard@bootlin.com, Alexander Kanavin Subject: [PATCH v2 3/5] bitbake-setup: use separate functions for git-specific operations Date: Mon, 15 Dec 2025 13:51:25 +0100 Message-ID: <20251215125127.2660714-3-alex.kanavin@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251215125127.2660714-1-alex.kanavin@gmail.com> References: <20251215125127.2660714-1-alex.kanavin@gmail.com> MIME-Version: 1.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 ; Mon, 15 Dec 2025 12:51:45 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/18593 From: Alexander Kanavin This prepares the code for adding different type of sources than git remotes: - put git-specific operations into their own functions (no behavior changes) - call them only if a git-remote entry actually exists in the configuration; do not assume it is always there. Signed-off-by: Alexander Kanavin --- bin/bitbake-setup | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/bin/bitbake-setup b/bin/bitbake-setup index 8d4e9769a..1f83b1b2a 100755 --- a/bin/bitbake-setup +++ b/bin/bitbake-setup @@ -90,16 +90,7 @@ def _write_layer_list(dest, repodirs): json.dump({"version":"1.0","layers":layers}, f, sort_keys=True, indent=4) def checkout_layers(layers, layerdir, d): - layers_fixed_revisions = copy.deepcopy(layers) - repodirs = [] - oesetupbuild = None - print("Fetching layer/tool repositories into {}".format(layerdir)) - for r_name in layers: - r_data = layers[r_name] - repodir = r_data.get("path", r_name) - repodirs.append(repodir) - - r_remote = r_data['git-remote'] + def _checkout_git_remote(r_remote, repodir, layers_fixed_revisions): rev = r_remote['rev'] branch = r_remote.get('branch', None) remotes = r_remote['remotes'] @@ -118,6 +109,19 @@ def checkout_layers(layers, layerdir, d): revision = urldata.revision layers_fixed_revisions[r_name]['git-remote']['rev'] = revision + layers_fixed_revisions = copy.deepcopy(layers) + repodirs = [] + oesetupbuild = None + print("Fetching layer/tool repositories into {}".format(layerdir)) + for r_name in layers: + r_data = layers[r_name] + repodir = r_data.get("path", r_name) + repodirs.append(repodir) + + r_remote = r_data.get('git-remote') + if r_remote: + _checkout_git_remote(r_remote, repodir, layers_fixed_revisions) + if os.path.exists(os.path.join(layerdir, repodir, 'scripts/oe-setup-build')): oesetupbuild = os.path.join(layerdir, repodir, 'scripts/oe-setup-build') oeinitbuildenvdir = os.path.join(layerdir, repodir) @@ -563,12 +567,8 @@ def get_diff(file1, file2): return None def are_layers_changed(layers, layerdir, d): - changed = False - for r_name in layers: - r_data = layers[r_name] - repodir = r_data.get("path", r_name) - - r_remote = r_data['git-remote'] + def _is_git_remote_changed(r_remote, repodir): + changed = False rev = r_remote['rev'] branch = r_remote.get('branch', None) remotes = r_remote['remotes'] @@ -586,6 +586,16 @@ def are_layers_changed(layers, layerdir, d): if upstream_revision != local_revision: changed = True print('Layer repository {} checked out into {} updated revision {} from {} to {}'.format(remotes[remote]["uri"], os.path.join(layerdir, repodir), rev, local_revision, upstream_revision)) + return changed + + changed = False + for r_name in layers: + r_data = layers[r_name] + repodir = r_data.get("path", r_name) + + git_remote = r_data.get('git-remote', repodir) + if git_remote: + changed = changed | _is_git_remote_changed(git_remote, repodir) return changed From patchwork Mon Dec 15 12:51:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 76536 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 227B8D5B176 for ; Mon, 15 Dec 2025 12:51:45 +0000 (UTC) Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.47586.1765803100386705741 for ; Mon, 15 Dec 2025 04:51:40 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=JMe8XFbx; spf=pass (domain: gmail.com, ip: 209.85.128.54, mailfrom: alex.kanavin@gmail.com) Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4779cb0a33fso41763555e9.0 for ; Mon, 15 Dec 2025 04:51:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765803099; x=1766407899; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QeT1nAr44svKu2DUW1+dhEnHSm8g3xfDG1mPCmbP+UM=; b=JMe8XFbxOzRsjo30aRZuVhc1oOjsFMB88pWeA2eJpLT5JNPixN4TXCAP7BuN7K9IGh szOHCMwFRHQYExRnw4R04kASpXPQSvym+fOVH87waODpVknxEDRzV0U4AUdo3/Xa11Br AeAqld/jX0ROIEfDx2QB1RlF9LcwyW/4wr8LcdkUiKjkuwQUj/Vj3jpT7CoFKmLGDI6d 4zE40E455Mwwo2hSR86cyVCXW4f5MDRd+kBqRS4QvvwMMi9xZaDqQ19b56mflW2zkBGN SE8+gVUhODjlXjDtTNoK9hEqa1VOVgJsckMhmevBnQkyXSgOmJ7//Lhl7nBxmp31po+D 5IrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765803099; x=1766407899; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=QeT1nAr44svKu2DUW1+dhEnHSm8g3xfDG1mPCmbP+UM=; b=hICveMZiWqaAuIKvM/cOxxd/2CSMcxUZyUqwUorFkionl+fLqowPm0ZBYTgrB6C7Fd 0avyr/kr2i6qCdSeim2DTmxxWrWRpzVyY0tAC6r+M1sttoTE6SvrgWFJAYQMFxyWOe4i ZDLaOb0zBpel26QL7COYQ5jDoHcY/xZ5YZb2gXqiM67hiVrc7RY0XQBhc59IAAGNqeLz aTim/eYIFXV8Imdbqur5JAmSC0rAGKVtCN2G834mVk8L2gMRaUVE1zIV7vmniTTFHV7/ IFevRgsaHHRViz5a3DdK6RmeT+pBrVR/z0/J5rOtGciL4KduME5b9frerE0tHfRvdV4Q siag== X-Gm-Message-State: AOJu0Ywdyqqr61DGMiW6hl15lA0/2H+2KD5HvV/AyWTeMwIsPZ9XicZ9 WYIsIFxZTDIQkJuZ8VD6yLP+H+0+TUyJuS5YHyh1KUXfVfFUE7pqWcgNBjO2nA== X-Gm-Gg: AY/fxX7bEGNnKpS1yGYQcvJBDrjv8iuUsDhV1Aj52tUhocZTGMBZNcoCn5TduVMrvWa b6PZTH/0Y95acSJAWo1LzgwR0Fst2f9JjtB1IVaOU7l5CjxeObP0UihW2gmMqVAqAqpzPfNVJY8 N1E2MhsFwHyN6Rsr/Z/XWp2bZdZdaHAOaVQqrPPANLYF82ywHkqogE/oJEKff0Y29UBVyoEfUHf nXIjABi2l38xZnxFHYbD9CKoZNGXGozl+gD+gN3/QiDJ/dM/tesBLv+BKTHMW2645wWiuvGnKhX GnZPuF92hZch9/h/4bBoXRmQyWYSXaWEHnD5l0eC8FqNLCtjS6AxW7bfzG97bbyyeDhDJPsQFPb zbyAPiAArQSHn3tbmDeCKRmuVXiNE1XdGJnUO33DTic9gw6xtRtXmorAgbLnA6R29UJu/33CuQJ /z1ygHGCUSvOHOy+IVVRCPeE4SxTJV2K2CqKoN0oU1D00pRPQ= X-Google-Smtp-Source: AGHT+IFwBFw+GrVBTIMVtoLVI8b6AwlCk3taMo8tgGgfLwNcca+PQjnqYbzfDm28E9GySRzx/xkaeg== X-Received: by 2002:a05:600c:3e85:b0:477:7a87:48d1 with SMTP id 5b1f17b1804b1-47a8f90cf6fmr109089235e9.30.1765803098573; Mon, 15 Dec 2025 04:51:38 -0800 (PST) Received: from Zen2.lab.linutronix.de. (drugstore.linutronix.de. [80.153.143.164]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42fa8a09fbesm29303342f8f.0.2025.12.15.04.51.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 04:51:38 -0800 (PST) From: Alexander Kanavin To: bitbake-devel@lists.openembedded.org Cc: paul@pbarker.dev, antonin.godard@bootlin.com, Alexander Kanavin Subject: [PATCH v2 4/5] bitbake-setup: implement symlinking local sources into builds Date: Mon, 15 Dec 2025 13:51:26 +0100 Message-ID: <20251215125127.2660714-4-alex.kanavin@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251215125127.2660714-1-alex.kanavin@gmail.com> References: <20251215125127.2660714-1-alex.kanavin@gmail.com> MIME-Version: 1.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 ; Mon, 15 Dec 2025 12:51:45 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/18594 From: Alexander Kanavin The feature and the use case were proposed here: https://lists.openembedded.org/g/bitbake-devel/message/18373 The implementation extends the schema with a 'local' source type, and simply symlinks them into the setup directory during 'init'. 'status' or 'update' do not consider or modify the symlinks. The overrides support is extended to add a command line 'shortcut' for overriding sources with a local path, and massaging relative or ~-containing paths as appropriate. Documentation is extended to describe the local sources and show examples. The json properties for sources are also grouped correctly to show what is git-specific, what is local-specific and what is common. Tests are extended to cover a few things that weren't previously tested: source overrides, custom setup directory names, and tests for local sources are added as well. Signed-off-by: Alexander Kanavin --- bin/bitbake-setup | 31 +++++++- .../bitbake-user-manual-environment-setup.rst | 71 +++++++++++++++---- lib/bb/tests/setup.py | 28 ++++++++ setup-schema/layers.schema.json | 14 ++++ 4 files changed, 128 insertions(+), 16 deletions(-) diff --git a/bin/bitbake-setup b/bin/bitbake-setup index 1f83b1b2a..6f7dba16c 100755 --- a/bin/bitbake-setup +++ b/bin/bitbake-setup @@ -109,6 +109,10 @@ def checkout_layers(layers, layerdir, d): revision = urldata.revision layers_fixed_revisions[r_name]['git-remote']['rev'] = revision + def _symlink_local(src, dst): + print("Making a symbolic link {} pointing to {}".format(dst, src)) + os.symlink(src, dst) + layers_fixed_revisions = copy.deepcopy(layers) repodirs = [] oesetupbuild = None @@ -119,8 +123,13 @@ def checkout_layers(layers, layerdir, d): repodirs.append(repodir) r_remote = r_data.get('git-remote') + r_local = r_data.get('local') + if r_remote and r_local: + raise Exception("Source {} contains both git-remote and local properties.".format(r_name)) if r_remote: _checkout_git_remote(r_remote, repodir, layers_fixed_revisions) + if r_local: + _symlink_local(os.path.expanduser(r_local["path"]), os.path.join(layerdir,repodir)) if os.path.exists(os.path.join(layerdir, repodir, 'scripts/oe-setup-build')): oesetupbuild = os.path.join(layerdir, repodir, 'scripts/oe-setup-build') @@ -485,6 +494,24 @@ def obtain_config(top_dir, settings, args, source_overrides, d): upstream_config['skip-selection'] = args.skip_selection return upstream_config +def obtain_overrides(args): + overrides = {'sources':{}} + if args.source_overrides: + overrides = json.load(open(args.source_overrides)) + overrides_dir = os.path.dirname(os.path.abspath(args.source_overrides)) + for s,v in overrides['sources'].items(): + local = v.get('local') + if local: + path = os.path.expanduser(local['path']) + if not os.path.isabs(path): + overrides['sources'][s]['local']['path'] = os.path.join(overrides_dir, path) + + for local_name, local_path in args.use_local_source: + overrides['sources'][local_name] = {'local':{'path':os.path.abspath(os.path.expanduser(local_path))}} + + return overrides + + def init_config(top_dir, settings, args): create_siteconf(top_dir, args.non_interactive, settings) @@ -495,7 +522,7 @@ def init_config(top_dir, settings, args): progress = event.progress if event.progress > 0 else 0 print("{}% {} ".format(progress, rate), file=stdout, end='\r') - source_overrides = json.load(open(args.source_overrides)) if args.source_overrides else {'sources':{}} + source_overrides = obtain_overrides(args) upstream_config = obtain_config(top_dir, settings, args, source_overrides, d) print("\nRun 'bitbake-setup init --non-interactive {}' to select this configuration non-interactively.\n".format(" ".join(upstream_config['non-interactive-cmdline-options']))) @@ -904,6 +931,8 @@ def main(): parser_init.add_argument('--source-overrides', action='store', help='Override sources information (repositories/revisions) with values from a local json file.') parser_init.add_argument('--setup-dir-name', action='store', help='A custom setup directory name under the top directory.') parser_init.add_argument('--skip-selection', action='append', help='Do not select and set an option/fragment from available choices; the resulting bitbake configuration may be incomplete.') + parser_init.add_argument('-L', '--use-local-source', default=[], action='append', nargs=2, metavar=('SOURCE_NAME', 'PATH'), + help='Symlink local source into a build, instead of getting it as prescribed by a configuration (useful for local development).') parser_init.set_defaults(func=init_config) parser_status = subparsers.add_parser('status', help='Check if the setup needs to be synchronized with configuration') 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 12b29241f..35aa43f9b 100644 --- a/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst +++ b/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst @@ -317,6 +317,17 @@ In addition, the command can take the following arguments: - ``--skip-selection``: can be used to skip some of the choices (which may result in an incomplete :term:`Setup`!) +- ``-L`` or ``--use-local-source``: instead of getting a source as prescribed in + a configuration, symlink it into a :term:`Setup` from a path on local disk. This + is useful for local development where that particular source directory is managed + separately, and bitbake-setup will include it in a build but will not otherwise + touch or modify it. This option can be specified multiple times to specify multiple + local sources. + + The option can be seen as a command line shortcut to providing an override file + with a ``local`` source in it. See the :ref:`ref-bbsetup-source-overrides` section + for more information on source overrides. + ``bitbake-setup init`` Examples ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -339,7 +350,7 @@ In addition, the command can take the following arguments: - This example initializes a :term:`Setup` with: - A custom :ref:`ref-bbsetup-setting-top-dir-prefix` and :ref:`ref-bbsetup-setting-top-dir-name` - - A :term:`source override`. + - A :term:`source override`, and additionally overriding openembedded-core with a locally managed directory. - A standalone :term:`generic configuration` file. - Choices passed on the command-line, applied non-interactively. @@ -351,6 +362,7 @@ In addition, the command can take the following arguments: init \ --non-interactive \ --source-overrides develop-branch.json \ + -L openembedded-core ~/development/openembedded-core-gadget \ ./gadget_master.conf.json \ gadget distro/gadget machine/gadget @@ -649,7 +661,8 @@ They contain the following sections: "description": "OpenEmbedded - 'nodistro' basic configuration" } -- ``sources`` (*optional*): Git repositories to fetch. +- ``sources`` (*optional*): sources, such as git repositories that should be provided + under ``layers/`` directory of a :term:`Setup`. Example: @@ -669,28 +682,51 @@ They contain the following sections: "rev": "master" }, "path": "bitbake" + }, + "openembedded-core": { + "local": { + "path": "~/path/to/local/openembedded-core" + } } } } Sources can be specified with the following options: - - ``uri`` (**required**): a URI that follows the git URI syntax. - See https://git-scm.com/docs/git-clone#_git_urls for more information. + - ``path`` (*optional*): where the source is extracted, relative to the + ``layers/`` directory of a :term:`Setup`. If unspecified, the name of the + source is used. - - ``rev`` (**required**): the revision to checkout. Can be the name of the - branch to checkout on the latest revision of the specified ``branch``. + - ``git-remote`` (*optional*): specifies URI, branch and revision of a git + repository to fetch from. - If the value is the branch name, ``bitbake-setup`` will check out the - latest revision on that branch, and keep it updated when using the - :ref:`ref-bbsetup-command-update` command. + ``git-remote`` entries are specified with the following options: - - ``branch`` (**required**): the Git branch, used to check that the - specified ``rev`` is indeed on that branch. + - ``uri`` (**required**): a URI that follows the git URI syntax. + See https://git-scm.com/docs/git-clone#_git_urls for more information. - - ``path`` (*optional*): where the source is extracted, relative to the - ``layers/`` directory of a :term:`Setup`. If unspecified, the name of the - source is used. + - ``rev`` (**required**): the revision to checkout. Can be the name of the + branch to checkout on the latest revision of the specified ``branch``. + + If the value is the branch name, ``bitbake-setup`` will check out the + latest revision on that branch, and keep it updated when using the + :ref:`ref-bbsetup-command-update` command. + + - ``branch`` (**required**): the Git branch, used to check that the + specified ``rev`` is indeed on that branch. + + - ``local`` (*optional*): specifies a path on local disk that should be symlinked + to under ``layers/``. This is useful for local development, where some layer + or other component used in a build is managed separately, but should still be + available for bitbake-setup driven builds. + + ``local`` entries are specified with the following options: + + - ``path`` (**required**): the path on local disk where the externally + managed source tree is. ``~`` and ``~user`` are expanded to that user's home + directory. Paths in configuration files must be absolute (after possible + ~ expansion), paths in override files can be relative to the directory where + the override file is. - ``expires`` (*optional*): Expiration date of the configuration. This date should be in :wikipedia:`ISO 8601 ` format (``YYYY-MM-DDTHH:MM:SS``). @@ -868,7 +904,7 @@ The ``--source-overrides`` option can be passed multiple times, in which case th overrides are applied in the order specified in the command-line. Here is an example file that overrides the branch of the BitBake repository to -"master-next": +"master-next", and provides openembedded-core as a symlink to a path on local disk: .. code-block:: json @@ -885,6 +921,11 @@ Here is an example file that overrides the branch of the BitBake repository to }, "rev": "master-next" } + }, + "openembedded-core": { + "local": { + "path": "~/path/to/local/openembedded-core" + } } }, "version": "1.0" diff --git a/lib/bb/tests/setup.py b/lib/bb/tests/setup.py index 8b6d8bce6..933178c84 100644 --- a/lib/bb/tests/setup.py +++ b/lib/bb/tests/setup.py @@ -320,6 +320,34 @@ print("BBPATH is {{}}".format(os.environ["BBPATH"])) out = self.runbbsetup("update --update-bb-conf='yes'") self.assertIn("Configuration in {} has not changed".format(setuppath), out[0]) + # check source overrides, local sources provided with symlinks, and custom setup dir name + source_override_content = """ +{ + "sources": { + "test-repo": { + "local": { + "path": "." + } + } + } +}""" + override_filename = 'source-overrides.json' + custom_setup_dir = 'special-setup-dir' + self.add_file_to_testrepo(override_filename, source_override_content) + out = self.runbbsetup("init --non-interactive --source-overrides {} --setup-dir-name {} test-config-1 gadget".format(os.path.join(self.testrepopath, override_filename), custom_setup_dir)) + custom_setup_path = os.path.join(self.tempdir, 'bitbake-builds', custom_setup_dir) + custom_layer_path = os.path.join(custom_setup_path, 'layers', 'test-repo') + self.assertTrue(os.path.islink(custom_layer_path)) + self.assertEqual(self.testrepopath, os.path.realpath(custom_layer_path)) + + # same but use command line options to specify local overrides + custom_setup_dir = 'special-setup-dir-with-cmdline-overrides' + out = self.runbbsetup("init --non-interactive -L test-repo {} --setup-dir-name {} test-config-1 gadget".format(self.testrepopath, custom_setup_dir)) + custom_setup_path = os.path.join(self.tempdir, 'bitbake-builds', custom_setup_dir) + custom_layer_path = os.path.join(custom_setup_path, 'layers', 'test-repo') + self.assertTrue(os.path.islink(custom_layer_path)) + self.assertEqual(self.testrepopath, os.path.realpath(custom_layer_path)) + # install buildtools out = self.runbbsetup("install-buildtools") self.assertIn("Buildtools installed into", out[0]) diff --git a/setup-schema/layers.schema.json b/setup-schema/layers.schema.json index 9a0b4ed61..1a0255435 100644 --- a/setup-schema/layers.schema.json +++ b/setup-schema/layers.schema.json @@ -65,6 +65,20 @@ }} } } + }, + "local": { + "description": "A local directory that should be made available for builds via symlinking", + "type": "object", + "additionalProperties": false, + "required": [ + "path" + ], + "properties": { + "path": { + "description": "The path to the directory", + "type": "string" + } + } } } } From patchwork Mon Dec 15 12:51:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 76533 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 0BB5AD5B16F for ; Mon, 15 Dec 2025 12:51:45 +0000 (UTC) Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.47587.1765803101210799227 for ; Mon, 15 Dec 2025 04:51:41 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=OhgshmjK; spf=pass (domain: gmail.com, ip: 209.85.128.41, mailfrom: alex.kanavin@gmail.com) Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-47789cd2083so17695545e9.2 for ; Mon, 15 Dec 2025 04:51:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765803099; x=1766407899; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pOA7jdb7VMS1AP03P6V6D3fejhob3fBniwiRuAG9NOY=; b=OhgshmjKZ6BNEwRKLxu+5XBQFmGGgZK2DHXncWwOl3byPmZvcTDqxeZtD8XTaaPDUO /+pZCwWO0IYojobTcsW3HWJZAqBxgfczYh553WMSAyXndDixIyai93VNbA/fh7NC7jpF eKVTW/m0HkOH+Cjdbjy4a53szGFYdEPHOluMp8/51EK6CYslJ1o6uOdvMfzhgA3ita19 JmgVWNOmseYVqFz57kNBav95OjWkj1Lx395LzCZg/NGbkR5NZU0EcQuvwZisPAGkPKv7 Kr2k9qpgK2YWdOx4fAcSYSUy+A9TMDyY8l3Kc36pifrl/1/wBq0z23UeTFhBhAPgG9Jc hkTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765803100; x=1766407900; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pOA7jdb7VMS1AP03P6V6D3fejhob3fBniwiRuAG9NOY=; b=uR+9fQWUShNKQTfJfJj86uQACNNQO/Jjd+PqCFr7KBKSy4kH0oaL9WWcQxPisp6ZxL mf/zu4rU+ukUAILvAlnto5PX0KcqHkTKr4nSZdK4oUcJZqtPROwqTks90I02IynXZqdT Tm/fj9W3Ipu5kKm6X9jVgHEEY0KFWbLxR9rTHWmGzFFwHVKXB44it3CFPokPqabfoQLS FZ4FhjmIjaw1RT4mi2Aa9ilJe6ek1Gf2AWnY8lE8IRom0is0XayJUSaS4el4NmrRT/Dp QYezoMo209tIVBg4hS69PuDoHshIhRSqX3GMqNmPWoK0bEPy8HCCKcXtxaByFKrOxjeb hYFg== X-Gm-Message-State: AOJu0YzVtoojyCNNWmpWLxY9bAB50jWL9RuTM1luhpRSljQAPzXJxqAR 9Hikklri+PTqoNbwhND8wDdmzg5lY5aFXAFKyry9uw5QjdI8oXraEyFm2J9WEQ== X-Gm-Gg: AY/fxX66+tbsl6ujJ/8YsFf6FjhULf9DqNrcd0Zq5SJm81qOkIase3KQaAisvJ9ihkS W6D0ybb+5jq2aAe/UdutSZQXGlJmwTl3EIXUfKcFzULHqmAWdJCLAL9kZpXzYjGM5a3hRs+PtOb nqLKcrZh565G/KTRtZSQuqQ8SHl1GH7CESG1xHJXy9oyaxnfYJYgIZEuCVHKag49tQrv+bz7ahT PoXjuRzGP13y/CMJlVFM+98bFsfmG1/hH79JeRgWzExULbeiCxHnJL46g21BJVD/X7/CjLdjyUc XNCmP2o3H6ix+bB7g5hRJKqBcK4qEH3dTYsn7kP2/FkiJ4xZV86hP8wQAJIvEjd+RMzOxX6CVkk 8xwho0Ibxjah5VwbVUlunoFMJUnMIKwKMFiTJ15NRLAGyzveykndTRb1pN72feOm8+lKZkkrun4 921E8zCQCpwM2LDVsfsew6XH4pfZJcMAcspRY4bS8H6TH6GdQ= X-Google-Smtp-Source: AGHT+IGonLle4z6DnY7qyxaEQbNHKY3JWqoQ7nDlTsVRjZx3hWFdpNTQlX15sC3Av9rvuOgvBAe4Yw== X-Received: by 2002:a05:600c:c172:b0:46e:37a7:48d1 with SMTP id 5b1f17b1804b1-47a8f915c34mr98254365e9.34.1765803099254; Mon, 15 Dec 2025 04:51:39 -0800 (PST) Received: from Zen2.lab.linutronix.de. (drugstore.linutronix.de. [80.153.143.164]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42fa8a09fbesm29303342f8f.0.2025.12.15.04.51.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 04:51:38 -0800 (PST) From: Alexander Kanavin To: bitbake-devel@lists.openembedded.org Cc: paul@pbarker.dev, antonin.godard@bootlin.com, Alexander Kanavin Subject: [PATCH v2 5/5] bitbake-setup: adjust the decription of git-remote properties to correctly describe remotes Date: Mon, 15 Dec 2025 13:51:27 +0100 Message-ID: <20251215125127.2660714-5-alex.kanavin@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251215125127.2660714-1-alex.kanavin@gmail.com> References: <20251215125127.2660714-1-alex.kanavin@gmail.com> MIME-Version: 1.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 ; Mon, 15 Dec 2025 12:51:45 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/18595 From: Alexander Kanavin Specifically, 'uri' property is not on the top level (for now), but inside a remote, which itself is in a 'remotes' dictionary. Signed-off-by: Alexander Kanavin --- .../bitbake-user-manual-environment-setup.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 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 35aa43f9b..ec1bdeecd 100644 --- a/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst +++ b/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst @@ -702,8 +702,9 @@ They contain the following sections: ``git-remote`` entries are specified with the following options: - - ``uri`` (**required**): a URI that follows the git URI syntax. - See https://git-scm.com/docs/git-clone#_git_urls for more information. + - ``remotes`` (**required**): a dictionary of git remote names, each containing a ``uri`` property + with a URI that follows the git URI syntax. See https://git-scm.com/docs/git-clone#_git_urls + and https://git-scm.com/docs/git-remote for more information. - ``rev`` (**required**): the revision to checkout. Can be the name of the branch to checkout on the latest revision of the specified ``branch``.