From patchwork Mon Sep 22 07:47:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Kauffmann X-Patchwork-Id: 70670 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 A9A58CAC592 for ; Mon, 22 Sep 2025 07:47:57 +0000 (UTC) Received: from PA4PR04CU001.outbound.protection.outlook.com (PA4PR04CU001.outbound.protection.outlook.com [52.103.46.77]) by mx.groups.io with SMTP id smtpd.web10.46188.1758527267626788610 for ; Mon, 22 Sep 2025 00:47:47 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@hotmail.com header.s=selector1 header.b=mZzeGW2M; spf=pass (domain: hotmail.com, ip: 52.103.46.77, mailfrom: johanneskauffmann@hotmail.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PrIjxM2gZ8Zb/SRnMdHsdcaUcNR94eLd+j2E0aO+ipW0PkuolCEchgn1asEb2QKCYslZqSzSqE0aoeH8dCydgf5b2nwbe9ZR1i4DMT/hMkn3/geZUrVP3mzv6Z36eC3/6Ad04k50t+SaXc52QGlKdlmhBqDivPH9r+uvCxxn+SoTaJSv9s/WLwKhp9WlVfv8Jn/LCI7h2+Vi9KjesOiaWh5cyJ7n0aYwNlkRQDF0gVXFxiwivbrYJJnf3COPKx7j2t90ZaCZg6ILSulba0X2KcSbQt+rcyJGUlw2av+szq7j0A/oWiVNADPVZ+EMDt5vbZyR4jf6kva0AF8rzI9GOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RVBz7ZZHmkHOyygzARhGE3oUQBTjonY4C+yEsN06ulE=; b=HsVTMh70Y2REEREyUPw1BgYiTz7Bf2CcdtsSlbm2f+QbGoJHTtimUfecdsbewEBkT0wgdsDbNWXjjFd0lsVbiO6jmZ3EEbJuWLq/XGVzMBU0/ffpnz3YNJft12j07gHDF4Qwb/jY8Ws57SbSS4zRClcBqXGP7e7mCHC0X9jcYUufOAF/QQAOemxB82aNwbeJxQwgHf+hrghIWQ96xP+SgDAZfJETiMM6d66RkgYaNDXHm6Zs4aHgyiiXz9PBrdg68YANoYYZoKefWT+ZhRc+yqihRsRvB8aQaedZ9ORo7dLT6XqeAUE72qHrhzy9BcD81JJQO8BzSOu55L2LJsOnIQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RVBz7ZZHmkHOyygzARhGE3oUQBTjonY4C+yEsN06ulE=; b=mZzeGW2MS5AWSPrVkta3x3ZzubzcDCKq0LF6vPKvvcX7Xsenc9ReVEFPVpyU7RgaW9ooqvGoQebdl5JzvyclWLv2kSGVK73Jqxo8aKBBalcU57wwGCdbRu5DzFNSHvccOxisA/J3ZjpSEJtmzdA8qjU3Jpzk+wXXFH9A2H24o7ptzeAYgE62OiXD8jlBtgmAmikq6Ao2BPVsWDs1vT4DvxyO6+sZusht/L1Qb08FRavMTPzl5LYfCXLsHfHGp5BeCtN6vAL1ldMdQ2S2QLf6toNYuIzNn1vkhqsVPjRGjcQD1JxncfLswo1bJ0MmX+AaATvMD3Pj953ZAVKxJHF4ww== Received: from AM0PR02MB5764.eurprd02.prod.outlook.com (2603:10a6:208:18d::22) by AS8PR02MB9434.eurprd02.prod.outlook.com (2603:10a6:20b:5a2::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.20; Mon, 22 Sep 2025 07:47:44 +0000 Received: from AM0PR02MB5764.eurprd02.prod.outlook.com ([fe80::5b5c:aeb7:184f:e2b2]) by AM0PR02MB5764.eurprd02.prod.outlook.com ([fe80::5b5c:aeb7:184f:e2b2%6]) with mapi id 15.20.9137.018; Mon, 22 Sep 2025 07:47:44 +0000 Message-ID: Date: Mon, 22 Sep 2025 09:47:43 +0200 User-Agent: Mozilla Thunderbird Content-Language: nl-NL To: bitbake-devel@lists.openembedded.org From: Johannes Kauffmann Subject: [PATCH] fetch2/repo: add support for fetching submodules X-ClientProxiedBy: AS4PR10CA0025.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5d8::14) To AM0PR02MB5764.eurprd02.prod.outlook.com (2603:10a6:208:18d::22) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR02MB5764:EE_|AS8PR02MB9434:EE_ X-MS-Office365-Filtering-Correlation-Id: c6aa0bac-b4ae-43d5-ef74-08ddf9ac5071 X-Microsoft-Antispam: BCL:0;ARA:14566002|5062599005|8060799015|19110799012|6090799003|23021999003|15080799012|5072599009|461199028|440099028|51005399003|39105399003|40105399003|3412199025; X-Microsoft-Antispam-Message-Info: =?utf-8?q?tJoyaQlbuAqMynSIdGU5gN46hchAr8c?= =?utf-8?q?9oLIKkzqv9OLLMsc1ujreIOg3hCD5qYaf9GE/sLmu1nz2vcFEBIYVxT+9ZtpqytSL?= =?utf-8?q?XqLHPNCtwiN6zVY1ovJUun74XqIvW47gUoqw/9/tJG2Ljjra/6XibgUndIdXW+Pvy?= =?utf-8?q?dXTomE0C2ok12Li4bhxoYO2Zx/YyW6oWneTlXpjo2eh29UA/MkK9lFIovpgxvRCc1?= =?utf-8?q?VCAc/yPaOL6jpc38u++tfraNXGtlpBW0OM3Q2/CwvOoZ8sRO+/jE/x/0AMvIc/KXA?= =?utf-8?q?AoMpcEdEqfUXXM5M63zZNmdDqmDLzDk65srcXx3agYIVAM5Hh8N5mXehZByjnpAyc?= =?utf-8?q?SqYp5rk6klFAkUNPDMvd0xCWXIUS8Cw/6O9EyIhcmNzQKSgjZ2RfBs3qU+r7tB+mw?= =?utf-8?q?en9O3G0gGpHB/XjGQSyxrbjv091bwZ7iJBTQmykEO6+tWEj+FfX6MW06L1GZYf8h6?= =?utf-8?q?1I4EIDl7ens9VcowTJQj7hN49e0PZeao+TBGhPhAvEgUd3SCk+gAvcZJSES0OELLA?= =?utf-8?q?VuOquumkaFIt1lXTJK9c9W1bhhOSRNU0wl6vz3VQBznYVQjjOXRvd/POGherrxxIQ?= =?utf-8?q?hbiKcZ9Sc+N17epE3hyBokxqoBgQKXV0MS+LeCYaicB/haJPjQcAZQd1wxr8hbon8?= =?utf-8?q?ymlEKsHPOOvfe6aFpg+TCnJxkiFkum5hIzvQQaf+8kyYoa+qBEuerDwj517SHm3if?= =?utf-8?q?e0bNEs3XLAlyVUFzdwnJ7TcmgzyNBT7BKsE8moylFzciMd6PTDJHNo5HE4txockgj?= =?utf-8?q?axB4jKDmsUOvMKP+xNUY/ieduIg8iigzlv5pBB01/L0N0kMSX9h4NObsuP5jBlK/n?= =?utf-8?q?xGPLxYy5GwfqMUFiU1EywDhnMOGOJnzTWt4ENu+8w7Ies5+PxaOtdfFnlVf8Hzu0p?= =?utf-8?q?AKCyLNTJ1gDFvpvmPH54b0l9MVJL7BGc9fHV8SvVW+q7HBfnqpGnB4BK7EEpgTzLk?= =?utf-8?q?Pr2KX/00s+DImAvf6+r3yCuNdBpvJ1ObHsjs7sIXtBju8p2rcOBzqJWjwV24kMA/O?= =?utf-8?q?mIuqOw5ctzjhKxv1epR0cPlJSRMDxnEgGUmspipuBSBCd2dkcjkiBNuV7kxqS+jnu?= =?utf-8?q?eRcEhY1FJZGKFKMcIG7AzyZNOv8pZHtLWol9ipAud0lC5b4QN8P2hMzuYO0x95Ltj?= =?utf-8?q?lQjpFimE7k+WNAV8uh2XnsFAUsTFEWgeq2QNdmsEQDiBIQwicvVZdlzTLY8cCaZQL?= =?utf-8?q?27kZVVmRcFK6KGOR4oAvnm3xzPyM05f2acvA=3D=3D?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?ugXs4t9v/qKLjhdCcvmpE3PwtBe6?= =?utf-8?q?PHoSKxKY/HqQtLt18Ce/oqpajaXDHeJL91yCT+TSFXyEOS6gTP48q5Az5AjgCRCBy?= =?utf-8?q?KGtxVRuq8kKnkHIjAaU4kJMCeEtz052llBTq5Gi3e/nbq0VwSzyvGP4yGN3QIvBX6?= =?utf-8?q?gq2NSK/CHIacAiGoZgDE0ICxHAjYMg+l30KwpuuicVSRwgQZsfryFduiev2JIrOGi?= =?utf-8?q?zy2Wo0/NCwuo3U5o/ZW3KJWJvkw/iPnQJX3zFwAnCs+0L+2gTj+3cYyRR0buXplnV?= =?utf-8?q?jLOHv0TNvBBtOPDVRhNaWb7T+YPYModk+9mJK1VCZPHDVZX7H6bKv8owPLpWoy59Y?= =?utf-8?q?srARhO9pdrMODbXwWpy74rbBv8LP0tDbGTKMbbzSLexjYFrL4jzCPWd3SfVxvWI1i?= =?utf-8?q?CdvJLQb7MysOe8ljlJBrSnsbjkdCmx5V2CF761zAh4Mm+T3z9WON/Y1F3z5lrTKXw?= =?utf-8?q?4ttUFiWYJSvX0A8JXZdmS1hNAFswVzwbeEu8+CHcxCuERnqlS2suf9qx7QBX7AE4s?= =?utf-8?q?xkpb34rTH63ys7WNwZGo2IH7T09r6aHslMUDWocUCb8gMTdFmIdHSDZ5xhgUijyqL?= =?utf-8?q?+1LnJBf5OvTk8h8277Ebhft9lHexd8M8QBsAIHtAqeWio2fkvy024FlY3aSFTJARV?= =?utf-8?q?sez0iSjLt85RhMrhV8Vl+E+w/EouM9nPqmQS05InVQSgjyQ9ZCZBEp7O8vz1Lfy1c?= =?utf-8?q?ZvLOmo53TyJdPXro1lBDcFpiu8qb0mgzgRq4IpGJv4/Nw9Rv0PSevrM42cK0szjwB?= =?utf-8?q?LSb3AsGuQbtXkSnwuKdGRHwURjN4a6cHR4BzL+1VDIrMM7gkgqab5jGYN6z7FPn1K?= =?utf-8?q?aa27/c1m5ixHcrwZXNVg3PNHEErBSBL1dcIS4dPeLrIdTMBAYBsJ3Uixu0biwpTpb?= =?utf-8?q?GC09XHrQyEWmQ2LYdNofsI/+r6/fake1MUQoWsF/dlhTCCiqMPnQ3rHFriwyD1DMP?= =?utf-8?q?HBAvz45Z02w2ZdAq7Dk7sG1OOJ1ng54QjuIDSNazBDtwx44q6yPKGfkQxU7dvskQB?= =?utf-8?q?YLzndbSzx1Islf6oxtY3pMxmKxMTNmQvlWJdA+bFgie1Ctq7gW2tkITVTp3DcKnt7?= =?utf-8?q?/BQ1TqS3gmzYouEWWYsVyhUqJ2atWfX6WoWlyIQBfzsEXyHobs+7t7duTmNj8WmlN?= =?utf-8?q?yPX8UhV3bpom32B3TP1RwiqMmZmjInVNCFoCg5yZfI6rEXtcc07P7/N5dZcgsF6Pr?= =?utf-8?q?BBrzb9Fh0lM/YbSsdgbdASktjWlhgeyy/V1o0DQ=3D=3D?= X-OriginatorOrg: sct-15-20-8534-20-msonline-outlook-5faa0.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: c6aa0bac-b4ae-43d5-ef74-08ddf9ac5071 X-MS-Exchange-CrossTenant-AuthSource: AM0PR02MB5764.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 07:47:44.1380 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR02MB9434 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 07:47:57 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/18065 Add the fetch_submodules parameter, which allows fetching submodules of projects by passing the --fetch-submodules option to repo sync. Signed-off-by: Johannes Kauffmann --- doc/bitbake-user-manual/bitbake-user-manual-fetching.rst | 4 +++- lib/bb/fetch2/repo.py | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst b/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst index f357765b7..e1781085f 100644 --- a/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst +++ b/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst @@ -658,10 +658,12 @@ This fetcher supports the following parameters: - *"manifest":* Name of the manifest file (default: ``default.xml``). +- *"fetch_submodules":* Whether to fetch Git submodules of a project on the server (default: ``0``). + Here are some example URLs:: SRC_URI = "repo://REPOROOT;protocol=git;branch=some_branch;manifest=my_manifest.xml" - SRC_URI = "repo://REPOROOT;protocol=file;branch=some_branch;manifest=my_manifest.xml" + SRC_URI = "repo://REPOROOT;protocol=file;branch=some_branch;manifest=my_manifest.xml;fetch_submodules=1" .. _az-fetcher: diff --git a/lib/bb/fetch2/repo.py b/lib/bb/fetch2/repo.py index fa4cb8149..de01bcb66 100644 --- a/lib/bb/fetch2/repo.py +++ b/lib/bb/fetch2/repo.py @@ -38,6 +38,7 @@ class Repo(FetchMethod): ud.proto = ud.parm.get('protocol', 'git') ud.branch = ud.parm.get('branch', 'master') ud.manifest = ud.parm.get('manifest', 'default.xml') + ud.fetch_submodules = ud.parm.get('fetch_submodules', '0') == '1' if not ud.manifest.endswith('.xml'): ud.manifest += '.xml' @@ -65,8 +66,12 @@ class Repo(FetchMethod): bb.fetch2.check_network_access(d, "%s init -m %s -b %s -u %s://%s%s%s" % (ud.basecmd, ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), ud.url) runfetchcmd("%s init -m %s -b %s -u %s://%s%s%s" % (ud.basecmd, ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), d, workdir=repodir) - bb.fetch2.check_network_access(d, "%s sync %s" % (ud.basecmd, ud.url), ud.url) - runfetchcmd("%s sync" % ud.basecmd, d, workdir=repodir) + sync_cmd = "sync" + if ud.fetch_submodules: + sync_cmd = "%s --fetch-submodules" % sync_cmd + + bb.fetch2.check_network_access(d, "%s %s %s" % (ud.basecmd, sync_cmd, ud.url), ud.url) + runfetchcmd("%s %s" % (ud.basecmd, sync_cmd), d, workdir=repodir) scmdata = ud.parm.get("scmdata", "") if scmdata == "keep":