From patchwork Mon Dec 22 12:27:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 77126 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 C3936E674A1 for ; Mon, 22 Dec 2025 12:28:21 +0000 (UTC) Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.79092.1766406493342234625 for ; Mon, 22 Dec 2025 04:28:13 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=MJSunG5Y; spf=pass (domain: bootlin.com, ip: 185.246.85.4, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 0DF484E41D30 for ; Mon, 22 Dec 2025 12:28:11 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id C180C606C1; Mon, 22 Dec 2025 12:28:10 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id E8F7110AB0279; Mon, 22 Dec 2025 13:28:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1766406486; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=Z6rGL2rL6WgOp6KGowh4rDLrynd2qdGlEV/8RXmXUDM=; b=MJSunG5YKWtWXVitoZIkbq0VIG45eARz6rw4e/vrDPiXthNqdWx5KIqCLzuGzAtXm2IgVw gDygW07HxqDZPdkg4GkpgHaMi0geDvLCDA17jqNWXc0V9WVEL5n7ph1jFhvh3c2kDF7NV3 JKg6OMX/MA7F+o6TT99PVPqzkyfcUwyITTL6UJow4W7JbpFmqfwhHTHzAiJmFE3BGg022r tgPDB+xU3S4asDHIO9yk+kFteMYODdoJFjs4js7w8llJOZK9DXz1rwRvjhTCNTUBfVYlmM OVzYZEqnImLu1Sai215HjgmyzpSjAsGUf//JYX+82nARgnWZ4xxd2hY195/G1g== From: Antonin Godard Date: Mon, 22 Dec 2025 13:27:47 +0100 Subject: [PATCH 1/8] tools/build-docs-container: guarantee the image to run matches the just-built image MIME-Version: 1.0 Message-Id: <20251222-concurrent-safety-v1-1-e3d86e44cd38@bootlin.com> References: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> In-Reply-To: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> To: docs@lists.yoctoproject.org Cc: Thomas Petazzoni , Quentin Schulz , Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=2657; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=wxbknoXOLBdBxr7+zGmqY+0ewZJk3/vF4046VoCSQow=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpSTlRFyaZhGtl52iwLZpJuhC5dTBhfrIITv085 2Rwqk6z6ZSJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaUk5UQAKCRDRgEFAKaOo NobgEACD+u+htexRm8CVVjlRXKjV14cvczQ31+ARpJyxA0A/EfT7FHkCTnqdHjA5HWqo6zWaasf k0lkajdj8RTeinpoaHNwSZbHdpNXXKsXXZdNlZto9uRoe4wJuT5fdc6DwS5TLirFH1VNNLhZNnD ZeIATzAYUXfwq29Z++pczuuXEVr+G/n91xoGXE0BN9V/p80GApkER6Fge58MyUghfbYdm8xZfEV RrA9jOcyzJPy5fAUBAwoQCGMcnoWHJzMyzkYwt2Eh9rilOgnwjP71pl/a2YtZ3d4joPejJb5moZ 30N08raxcXlOvE6R7c8dMAmf/HuHpkz0SIEIscbi2vttZnXjEX3UYzTcT+hgHkA7M0njF7GqWDu uoQ+7ULOT/KbLOLk2xgj5o+wQ+F8jyMb7v4TuxnRuyBTel0F6KmbY+DCfoAJz68+mR14CvCF7oS yVd/z+z/QsEVslm/6c9/q5L3iii/Hr3NJTYUiV8dQqFJfNxDzM5qZl0n7ACd/TqFSYCVknxn19T 3O8WbEqUEJ3oIzEZ8aerlB5kCzDW7U7w9S4ZVKwLEXsm5/XPupxF6k9xbCL4gyb4HT4WtrrhFp9 1R3DhXYWWCsY4+0lprWjyNt+WCpb4f9N6eEWB+/IoU2DC0+ZuKpM+7mLdWUIeNlkMcT0/c7cUtx xpC2lfLRT0tRp5A== 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 ; Mon, 22 Dec 2025 12:28:21 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/8310 From: Quentin Schulz We aren't that interested in tags actually, the only thing it brings is a belief that we are going to run exactly what we just built. The issue is that this is incorrect. Indeed, one could simply run the script in parallel for the same image. Script runtime A will build the image A and tag it X, Script runtime B will build the image B and tag it X, Script runtime B will run the tag X (image B), Script runtime A will run the tag X (image B). Note that this problem exists whether we are building from the same tree concurrently or from different yocto-docs trees concurrently. One way to fix this could be to introduce random numbers in the tag so that it's always unique, but we would be flooding the system with useless tags. Instead, we can use the sha of the generated image and run that sha directly. If it's the same across rebuilds, it'll stay the same. If it's different, the sha will be different and thus we are safe from concurrent use. The only downside is that we cannot infer from the image sha the underlying distro we're testing. Signed-off-by: Quentin Schulz --- documentation/tools/build-docs-container | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container index 23c3dfe33..2f31295ed 100755 --- a/documentation/tools/build-docs-container +++ b/documentation/tools/build-docs-container @@ -80,10 +80,6 @@ main () OCI=$(which "$CONTAINERCMD") - # docker build doesn't accept 2 colons, so "sanitize" the name - local sanitized_dockername - sanitized_dockername=$(echo "$image" | tr ':.' '-') - local version version=$(echo "$image" | awk -F: '{print $NF}') @@ -159,8 +155,13 @@ main () ;; esac + local image_sha + image_id_file=$(mktemp) + # Don't clutter tmpfs on fails + trap 'rm -f "$image_id_file"' EXIT + $OCI build \ - --tag "yocto-docs-$sanitized_dockername:latest" \ + --iidfile "$image_id_file" \ --build-arg ARG_FROM="$repo/$image" \ --build-arg INCLUDE_ESSENTIAL_PACKAGES="${INCLUDE_ESSENTIAL_PACKAGES}" \ --build-arg ESSENTIAL="host_packages_scripts/$essential" \ @@ -170,6 +171,9 @@ main () --file "$SCRIPT_DIR/containerfiles/$containerfile" \ "$SCRIPT_DIR" + image_sha="$(< "$image_id_file")" + rm "$image_id_file" + local -a args_run=( --rm --interactive @@ -193,7 +197,7 @@ main () $OCI run \ "${args_run[@]}" \ - "yocto-docs-$sanitized_dockername" \ + "$image_sha" \ "$@" } From patchwork Mon Dec 22 12:27:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 77127 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 CEE16E674A5 for ; Mon, 22 Dec 2025 12:28:21 +0000 (UTC) Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.79093.1766406494033247497 for ; Mon, 22 Dec 2025 04:28:14 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=zetQG2Le; spf=pass (domain: bootlin.com, ip: 185.246.85.4, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 7814B4E41D33 for ; Mon, 22 Dec 2025 12:28:12 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 4C5BC606C1; Mon, 22 Dec 2025 12:28:12 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id A0C1E10AB0263; Mon, 22 Dec 2025 13:28:10 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1766406491; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=9zYdTyggSWGkZyPe2ud87jrsrl5xT6E6j7x/PA15ppg=; b=zetQG2LeePjEDNDHWpg2tX5CQHJlI6vGBdPNXkFaHAE879tpAkQOGbuw/uyf0skKmbFCx1 AspxvO0BwyWpe4Os1poA2nLx7YkhavXILLuZkBZmwNWPfx2wy4oI5AHF6axS6ZfewWoX70 IsNNjIjfn/MqCtbPE2G1sHFA7O0DlxJnhpG70mMd2qWwL2EHzwvLuyWIh6snCSbEeVWben YH2cllWDjmSsWIay7rFRjm4pDVqPi2zWnJufSxnscS9dihOaQWCFPy14wR8Xed6DHdjTQd xo0gQY/WpZSvdoB8GSrZsJXhu2//r/riBuWS+TYK63E7PqxGdo8C9aODKkc7Kg== From: Antonin Godard Date: Mon, 22 Dec 2025 13:27:48 +0100 Subject: [PATCH 2/8] Makefile: allow to specify build directory MIME-Version: 1.0 Message-Id: <20251222-concurrent-safety-v1-2-e3d86e44cd38@bootlin.com> References: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> In-Reply-To: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> To: docs@lists.yoctoproject.org Cc: Thomas Petazzoni , Quentin Schulz , Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=874; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=qrXvZHFPd4B6dDJcZ9QM1mrKX9YFsdbTwoASRapGMas=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpSTlR6av9+RQq+x8P+sOeMmuuHRcDBZ94F/9mn PIV+5BmW3+JAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaUk5UQAKCRDRgEFAKaOo Ns+zEAChdNDU6ybWR1nNGXIwEHvPtdarchbcjt7BPrI6X0HFhj/AdACa96yrX05iedhnliC/hGz XjuBD2jGVt7adbsjWOctfXGKJNjz7k2H1PdeUGnoNUA0f7uDxy9rbEnBmMSAJ0ToXZxwMbowNEO /uHewFt0COmJ6JQJ/Kq+QPfMYQco2GOpaqGoAswdAf8mOHiNCI0n+rjXUFzOfE1tiLTbVZK1g1X RvJfE10PjcwCvkogVKCbYFMTugSEUuv8Gn6/M44s8+U3gvJlGhHpHp1lQ/O5i1hrhYqCb1OD7S8 SR9ZD8BTr2SNlHV2vSm2KHa9X3TnYZHZOxnnk/fOKSbQop+pjr0uQAbl4NxRsK+8W0Z+Pi+q7CH MeSAANbHVMs5y7lEuSKcoyUewNLm0P6TiGW2hOIcJmgN8fWD2WobSHvlPvqqmpaTtHEOgC1IX9z EFs3e8dxg+1D/ZnWVXdopjPMeGYhYap6dTxyQP/SXk5H/pC9C2ZGka3IQeq97C99dBjteATaHYZ 2stwzRgpwnultLA/kWhr2MbD0dFx5XWN24xOLJHU30oWkdHP/yiiXviX93V69VTrmLT73FuCGAY JVTYGlw60N5+1EfGRJgnx+sWWtRtl7YnkSWtafg+sHB3dK4NWG6ZIEm+7Y3meNTF+H7YivNu2fc U4/w+feSa08dR1A== 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 ; Mon, 22 Dec 2025 12:28:21 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/8311 From: Quentin Schulz This can be useful to compare the output of two runs or separate the build directory of 2+ distro builds from tools/build-docs-container. Note that make clean cannot remove BUILDDIR from previous runs if they differ as it wouldn't be able to know what it was named in the past. Signed-off-by: Quentin Schulz --- documentation/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/Makefile b/documentation/Makefile index e144a50b4..5f84a93e3 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -11,7 +11,7 @@ SOURCEDIR = . VALEDOCS ?= $(SOURCEDIR) SPHINXLINTDOCS ?= $(SOURCEDIR) IMAGEDIRS = */svg -BUILDDIR = _build +BUILDDIR ?= _build DESTDIR = final SVG2PNG = rsvg-convert SVG2PDF = rsvg-convert From patchwork Mon Dec 22 12:27:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 77125 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 CBEF1E674A4 for ; Mon, 22 Dec 2025 12:28:21 +0000 (UTC) Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.79094.1766406499351903144 for ; Mon, 22 Dec 2025 04:28:19 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=I0QdngrP; spf=pass (domain: bootlin.com, ip: 185.246.85.4, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id B947D4E41D30; Mon, 22 Dec 2025 12:28:17 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 8ED40606C1; Mon, 22 Dec 2025 12:28:17 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 27D7910AB0281; Mon, 22 Dec 2025 13:28:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1766406492; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=dopXXvzV0TT/ICgwgqbz8LxQlW5lb1BICl72f6uAmWg=; b=I0QdngrP253R7DInr6g+pTvCotNjLE6shYI5kdYL7q5HtIyeFVhET0bydk+yf4lxcDjYVz 7q1kCF7W9xXnmdX9bd7cTcGytlYgYawZcCtJxy6k5UfRItZgcAglYXrfAdYnl+RtRN/vMU ffnScDkJ50ENfiiFC/TO1y9GgCImPlyrGYYS7WgviwJO3O/sIMbQ5nHPI3P4YOdsekVI+g z+P0CtX4Ils8oUwZgmBqPeIF1bpTgjv7/XTJJS4tTR08qo31BtIk/WzPnTfu/F1h1YMl+Y BWzgiDUhjvS9cPrxdLmLch5IUkTDR5eQxGVb4xlgJRigpvJ5QjVYp9naABLedw== From: Antonin Godard Date: Mon, 22 Dec 2025 13:27:49 +0100 Subject: [PATCH 3/8] tools/build-docs-container: build in separate directory for each distro MIME-Version: 1.0 Message-Id: <20251222-concurrent-safety-v1-3-e3d86e44cd38@bootlin.com> References: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> In-Reply-To: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> To: docs@lists.yoctoproject.org Cc: Thomas Petazzoni , Quentin Schulz , Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=966; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=Tbhu1/jXuil5FVVpzcwftyMKRCyuTNVNXdRLLJzzJmY=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpSTlRUcsUr0Q7+VhJE3EyN1AbJFoo/cjRLOoMd qbyOKqPbtGJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaUk5UQAKCRDRgEFAKaOo NlCFEADD13Gl37bV5otOFQ9A1OqgplhPs/SqJaAPRbbMMT0v8/6IfZ6isClbggVYXQRrAXjylLQ Yt2fnBqQrPXeU3dCPxBwFI15gDd1bDYM0o8Y5MFRoIfs5R1gJCom3PTO3GCZLFJK61D48qTW7zj jRE7IQGtv+hETpk3MtyCiW7U7cl0Suf1P1oJAPWX5tyl0rdwKKrZvBk7ZEqmmLjH8HkiIjouSCF Xrh5nR2kuJZopB5m9iBIoSKbM/PJYvtOJgg/SnPYLtXVp1FOV6XAekVFB8IcQvgDkoM+45+tIDU O5gkPl3ymEAyTt+vrN3tZMcdRTTDS43Bbi5Z7JmulYWrF3WsP2fPNB0j5a936H5X0pajK75xIAE mVLAcCjmQ9LxJzkVD2rlqGsJD/lUSosRnVCa+NPDO3IBmf6FJlwxb91XaXqf1L0QXo8NpSBUGjH FghxEfFjehtlc9jePQeMxEb67GiGfEwpGn08EwbMGv1ejs6nN2VUJamk3rmpVpkL/H2gTdII7sV 5DBnhfNyx3Sou7OuvKccFmgZON3ijc7oxO8h0g528mOXSyI3/4nM0e/i+pAmnviZeCKu9eyRB81 VAdVB5QHQ+Yi+7qV7Cu0uwSHx96MRWSENmqXHHHWZTuxfq8WgSCUzqfoP54Mx6NKsvW6CnReLW8 wgNjYs63phRPEbA== 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 ; Mon, 22 Dec 2025 12:28:21 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/8312 This allows to compare build output from different distros if necessary and make it easier to make sure we start building from a clean slate. Co-developed-by: Quentin Schulz Signed-off-by: Antonin Godard --- documentation/tools/build-docs-container | 2 ++ 1 file changed, 2 insertions(+) diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container index 2f31295ed..b377777ed 100755 --- a/documentation/tools/build-docs-container +++ b/documentation/tools/build-docs-container @@ -76,6 +76,7 @@ main () fi local image="$1" + local orig_image=$image shift OCI=$(which "$CONTAINERCMD") @@ -181,6 +182,7 @@ main () --volume="$DOCS_DIR:/docs:rw" --workdir=/docs --security-opt label=disable + --env BUILDDIR="_build/$orig_image-$image_sha" ) if [ "$(basename "$OCI")" = "docker" ]; then From patchwork Mon Dec 22 12:27:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 77128 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 BBEC9E674A5 for ; Mon, 22 Dec 2025 12:28:31 +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.79012.1766406504144543902 for ; Mon, 22 Dec 2025 04:28:25 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=qMIIlOeV; 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 6138FC1AE05; Mon, 22 Dec 2025 12:27:57 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 60F9C606C1; Mon, 22 Dec 2025 12:28:22 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 6B8D310AB0282; Mon, 22 Dec 2025 13:28:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1766406498; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=ORf06iWxRXT6oSDBSr22xZLa+6fy3dwfjniTBKTwhCo=; b=qMIIlOeVaoK/CgtuXrvXypmNkC7AAhRk+ZLnCCNB8eueFgj6RdtHBwaMjkaM1b5kQ03Hp7 6tGZqDwLfQhO3o2xrrd2DcyOIFuzEZlyHboPxRO9xhaIhnz002SeQHKSluKzlieE/YkTWd ywgtkvGvn59tp72cUHdPYbedlc56cvkNe1+OXMK7lqRomegWFX4pzJvQZxoLJy7GjtA50B MEVzY0Cx7QOL+f8hrdibrgvKi1AW48R9YAhOjnWon3Hnsen6bhOKQSgWQJXCFvRudixOYt sDsh8YKYqkXiUwZjZk4e4se4wMB32wzWIAsUM8yFbP6RkQqgd6A89dxuQe5sLA== From: Antonin Godard Date: Mon, 22 Dec 2025 13:27:50 +0100 Subject: [PATCH 4/8] tools/build-docs-container: create symlink to latest build output MIME-Version: 1.0 Message-Id: <20251222-concurrent-safety-v1-4-e3d86e44cd38@bootlin.com> References: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> In-Reply-To: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> To: docs@lists.yoctoproject.org Cc: Thomas Petazzoni , Quentin Schulz , Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=844; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=c+hVxa6AAXBXgZI9Ebipp3mRS5SQfJrD3CU+BC6iuxc=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpSTlRawXf4NxgPuNc27BRRMeeYAsq91T3xFrx6 mH5GHww43yJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaUk5UQAKCRDRgEFAKaOo NlEKD/4pEwFKMwkuzppebMT8GxS4/BapFxMqkn65Z5tD/Ufktw0pUTwZvxBqsItY1JdM0Q4C+v3 XHfIPpuKp5xTbbUOdt4SBecDItB9QsG4XrO6txXAdJhDCojlj35TOpgSagxOszYrZtXZdzagD87 IWhlxtxDSZNWJuErTM3BTxUus9helPb2gB69Mz7gRBMYR0i9kYdrCLpzHgNI9xVx+W2BCPcvp2/ A/80sie+JaCkAd0ZvYMB+TcP562EHw4wws9Oo5WPds2HAsHkjvPyQirdek4D0WcIOi1ljmIx7u/ 3Q8D2s6uqwUdrxF6nQpJBMvw5Tmqai+ufyUCIc3RVVerBTAO95wWEfPo9vX01fH4lPejtHr1FoP +ETaJdB8EuDJBzbXRa/lVZYAXw0Z+b1l77AU68h7tWjDQqVPLE1TiYaqzKk1IfvbFyE47t6YKc3 z4F7axpls/TYnnhLkB6gDi2pgx0sXUf9wyHPHYRsC2fz5BZzjkNVtGV31v6fMsR/2Kr0wm3/Tc6 VYowP0RtBUsKKqX8fkcEa8adh1tZ1wpxE80lvt+a/m3VpOccVSO9ye/UBqpaAVllRTA8Zh4YB9n mBBzECUPsQq+66mHj2pZViBHsrF5oukDs7EEQL0IBpqVp25BNvSCLSW5bggYkBq2RLJNYZjQUXX tuFmuQtWJFU0ROQ== 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 ; Mon, 22 Dec 2025 12:28:31 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/8313 This is useful to open the output always at the same location. Signed-off-by: Antonin Godard --- documentation/tools/build-docs-container | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container index b377777ed..7f3ba3680 100755 --- a/documentation/tools/build-docs-container +++ b/documentation/tools/build-docs-container @@ -185,6 +185,10 @@ main () --env BUILDDIR="_build/$orig_image-$image_sha" ) + # Create a symlink pointing to the latest build output + mkdir -p "$DOCS_DIR"/documentation/_build + ln -snf "$orig_image-$image_sha" "$DOCS_DIR"/documentation/_build/latest + if [ "$(basename "$OCI")" = "docker" ]; then args_run+=( --user="$(id -u)":"$(id -g)" From patchwork Mon Dec 22 12:27:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 77129 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 C7A16E674A4 for ; Mon, 22 Dec 2025 12:28:31 +0000 (UTC) Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.79096.1766406509049958609 for ; Mon, 22 Dec 2025 04:28:29 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=H45a01z3; spf=pass (domain: bootlin.com, ip: 185.246.84.56, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 41A0F1A236D for ; Mon, 22 Dec 2025 12:28:27 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 0E021606C1; Mon, 22 Dec 2025 12:28:27 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 31BEE10AB0286; Mon, 22 Dec 2025 13:28:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1766406502; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=LBxJnBt5XWdtRpJVkm2wwxV6jJO4ZXpXcPxBxA2rTMU=; b=H45a01z3VQBbOBK98JVt9nP0IezYgKLr5BCw0IMBl643hHx7udZA08Ka4VuTnhJ1iNHSVI 8FpYvVEmT0+siqReS0HXl9a9HmJBEdNmJ71Rrqdn6fUMs6hdiX/sgP0OLFhi7YwAGNdiLh nA54uZpOKBfiBWxSI8WNYlHJZvMOgDWimn1/AFPwgXHUZVgcFQsZGkJdnbwIS4SxXT6IDU vy/h5xx5CSK2ltzZvCC+A2PV22DdEJLMtJcuEBqmRFmv9YMH65epDlcKhVjaIGKzT+2nrG 332bmI00en9CzxJ3zJryu+sjqDjmSv1cI6kojAxYYm41YbljBt1luFl7Y3SKOQ== From: Antonin Godard Date: Mon, 22 Dec 2025 13:27:51 +0100 Subject: [PATCH 5/8] Makefile: wrap set_versions.py with flock MIME-Version: 1.0 Message-Id: <20251222-concurrent-safety-v1-5-e3d86e44cd38@bootlin.com> References: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> In-Reply-To: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> To: docs@lists.yoctoproject.org Cc: Thomas Petazzoni , Quentin Schulz , Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=2331; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=NmSLRODMd7MtGLMfR1Jlh0nEs13L0LKLDkVje6/NfOY=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpSTlS9RiTNBWlEs9TYtkwS4lRHgxvBB11VMYNv YdGI3KRt5SJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaUk5UgAKCRDRgEFAKaOo NuVjD/9OpPM9YnpZPeA2FbuKqTA+hr8Jl5XxnYkOnSekdsWfEgHFJLxuxzSBUiiys+kyZp0B+hR YX6JP5sJS6IP0yieLYh8hcj1ydhNg9ZezyxBJTN4Te4vizZF3a289baUo4zuLFrQJ4Cka2EuYVd vpvAcMRtP6tTr28yXezzgfW9Ndcu6CRc0nsQ3aQE/kMHe/scLFQ2j1rnC94Dtkts/t41F02TkzA 3dpeUwJhLkCJG494ZmeuRiFxqs1WF1c3dGa1boTY43FWg4cFH6MbKjGJFLOyPdRTejeGppNRuq/ udvgQnfOC8AK84SLAcPhznBirXO/RDjLslIMhKA3NirFp+amJdOMLlHp0r4MIu1mSln8hAMWOkg giqyUHz1T+gQtlICu6PdYrQ4RKd9vTCp3BAuzmViYDz5YKfOwqwg43tXwg0T+NSUw6uQuTVXFZ/ 5kRgdGZuS3WQ4DVbWgwMnfs9TFbyFctwHkDD4HS8BVHOBovy9InNYtDy5Or/xGmSgQfEfggsCjX 7qzcCcxVdTxoNlW797EouoWAY2oKWGOqVAvxyfIjNTdgE8z5OX+vqSg5u8vcYiW83CayenKnnJ9 LLeWudCYt6VpcyX/4gskJy8/DkqYVJqf1UgltUqarEQuH946HT06EJ3wy/uASpYnXbTmRKN7Uds JwID5wd1h0IMJOQ== 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 ; Mon, 22 Dec 2025 12:28:31 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/8314 The set_versions.py script modified files in the source directory. To improve concurrent docs builds, wrap the set_versions.py with flock, with a 30 seconds timeout. Signed-off-by: Antonin Godard --- documentation/.gitignore | 1 + documentation/Makefile | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/documentation/.gitignore b/documentation/.gitignore index b23d598054..a5a5efc19c 100644 --- a/documentation/.gitignore +++ b/documentation/.gitignore @@ -9,3 +9,4 @@ releases.rst */svg/*.pdf styles/* !styles/config +set-versions.lock diff --git a/documentation/Makefile b/documentation/Makefile index 5f84a93e32..fe49d74cc6 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -50,7 +50,7 @@ PNGs := $(foreach dir, $(IMAGEDIRS), $(patsubst %.svg,%.png,$(wildcard $(SOURCED $(SVG2PNG) --format=png --output=$@ $< clean: - @rm -rf $(BUILDDIR) $(PNGs) $(PDFs) poky.yaml sphinx-static/switchers.js releases.rst + @rm -rf $(BUILDDIR) $(PNGs) $(PDFs) poky.yaml sphinx-static/switchers.js releases.rst set-versions.lock checks: $(SOURCEDIR)/tools/check-glossaries --docs-dir $(SOURCEDIR) @@ -63,14 +63,14 @@ sphinx-lint: sphinx-lint $(SPHINXLINTDOCS) epub: $(PNGs) - $(SOURCEDIR)/set_versions.py + flock -w 30 "$(SOURCEDIR)"/set-versions.lock -c $(SOURCEDIR)/set_versions.py @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) # Note: we need to pass buf_size here (which is also configurable from # texmf.cnf), to avoid following error: # Unable to read an entire line---bufsize=200000. Please increase buf_size in texmf.cnf. latexpdf: $(PDFs) - $(SOURCEDIR)/set_versions.py + flock -w 30 "$(SOURCEDIR)"/set-versions.lock -c $(SOURCEDIR)/set_versions.py buf_size=10000000 $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) all: html epub latexpdf @@ -78,5 +78,5 @@ all: html epub latexpdf # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: - $(SOURCEDIR)/set_versions.py + flock -w 30 "$(SOURCEDIR)"/set-versions.lock -c $(SOURCEDIR)/set_versions.py @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) From patchwork Mon Dec 22 12:27:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 77130 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 C2421E674A7 for ; Mon, 22 Dec 2025 12:28:41 +0000 (UTC) Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.79097.1766406514023540734 for ; Mon, 22 Dec 2025 04:28:34 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=aV4TwlNv; spf=pass (domain: bootlin.com, ip: 185.246.84.56, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 5C0A31A236D for ; Mon, 22 Dec 2025 12:28:32 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 330A3606C1; Mon, 22 Dec 2025 12:28:32 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id C5B3510AB0284; Mon, 22 Dec 2025 13:28:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1766406507; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=fD4OxLMScx5I4WEqPfrlM+wsBB8YPlCBezwv8aCj10Y=; b=aV4TwlNvWCyu9AQoRjNIzVRjdC5D00JzepKDgHVaWmXz1NBOmR5DSuuytIF8+5naMNi7Is ak1PB9KzyI4FFCQ5Jc6tHE9IFw1ErgNWLh4AqdoiIH0bnuOFa9Q3+bwLZPHS1pDRaGbgcT wcPXTjT/4jHDiNwT8gFbABNyLr5irB5Skalh0ZVixX8TkEcWDZr/8G6g2WtCPYpQz2LFpX /iKwNJqJISbhh3Ju5CpdirIG6pLgG/l3GKLvUYvRyafCLVw2cdAySFhBg77cenw0vMvqhc ej3PgAvXDJqtsYzw9Cf6yUMp2CP7/BQUtetUOwbtt/nErrF2BcX1omZs5FdvyA== From: Antonin Godard Date: Mon, 22 Dec 2025 13:27:52 +0100 Subject: [PATCH 6/8] tools/build-docs-container: allow running non-interactively MIME-Version: 1.0 Message-Id: <20251222-concurrent-safety-v1-6-e3d86e44cd38@bootlin.com> References: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> In-Reply-To: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> To: docs@lists.yoctoproject.org Cc: Thomas Petazzoni , Quentin Schulz , Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1998; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=LqoZO0DMv0jp3piFq2M/WMwzSH0pJjRywe1OPETfKoE=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpSTlSylaIazhDnZgwVvr9niOhI+LRE+rb2qdB4 3TeuPCt7qKJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaUk5UgAKCRDRgEFAKaOo NmZID/4qm7q+glenxtOThDAR0JWcTx5UodzMDAJThYS0TBt6ctLaQSlQsIvj04xR1mEqefreOlA 5RwtvrliJXOrG4WjaYLVrmwQIxaxYfAvQWMOQD+F0kFYI+jbe9T5EE23zCD3XdhfjRv2VldAkps 8obgvy3VhD1CbUMJQvahrPc1aLSV+3Sc5KXCdBLxN2MdqsrP4DSva6EKKsCaUZZYblo+dKI2bjJ NCp+fepy3ROWGBRxdvYhbDdjpnnvCF99Ngj5ibSakau5WHzqTX3jhya3MEiDzR86OndpgJ7eXpZ RjPHuflkbpF/K7wCXeoKT8RmL4CNCVtJCMar1Wm7QGopJ55UN3ovfyJbweVjxCfquvI8deAVm4g ve5kLj0Zvaccn2pNns9NWMCVExqvzdT1rbbehT86/gjRlxAxfS38BLjiDZ0vqu3Y7TU1UmyC+4o +23eMaTTiG/4zqmylqSDYd2HLlk0sDHToPrZ+jy9Uc2btKxr0dwe0nOQSNPS/TGblIh39YWBKzH O2/hAsql77fkvryLtha6st6tBlVYQrdnYTNhz0ZFGNpzlCbaxyBRs4CmyLpyXY+TjHTj+t8cYLE +EH0XlY6PDLUZROGFugOqX0y0RdPWujuzgUDiOHJi9eBjFuDsvAbE07utWtT2ct7L0wyllclRf1 Wf2rGnxv8aTM9Yg== 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 ; Mon, 22 Dec 2025 12:28:41 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/8315 When running this script from another one, it can be useful to run the OCI run command non-interactively, especially when running concurrent builds. Add a RUN_NON_INTERACIVE env variable that can be set to 1 to remove the --interactive and --tty options from the run command. Signed-off-by: Antonin Godard --- documentation/tools/build-docs-container | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container index 7f3ba3680..7a5191710 100755 --- a/documentation/tools/build-docs-container +++ b/documentation/tools/build-docs-container @@ -24,6 +24,7 @@ SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) CONTAINERCMD=${CONTAINERCMD:-docker} DOCS_DIR="$SCRIPT_DIR/../.." INCLUDE_ESSENTIAL_PACKAGES=${INCLUDE_ESSENTIAL_PACKAGES:-0} +RUN_NON_INTERACTIVE="${RUN_NON_INTERACTIVE:-0}" function usage() { @@ -65,6 +66,9 @@ $0 OCI_IMAGE [make arguments...] packages listed in documentation/tools/host_packages_scripts/*_essential.sh. This is not required to build the documentation but can be useful to validate the installation of packages listed in these files (default: 0). + + - RUN_NON_INTERACTIVE: when set to 1, allow the '\$OCI run' command to be run + non-interactively, without a tty. " } @@ -177,14 +181,19 @@ main () local -a args_run=( --rm - --interactive - --tty --volume="$DOCS_DIR:/docs:rw" --workdir=/docs --security-opt label=disable --env BUILDDIR="_build/$orig_image-$image_sha" ) + if [ "${RUN_NON_INTERACTIVE}" != "1" ]; then + args_run+=( + --interactive + --tty + ) + fi + # Create a symlink pointing to the latest build output mkdir -p "$DOCS_DIR"/documentation/_build ln -snf "$orig_image-$image_sha" "$DOCS_DIR"/documentation/_build/latest From patchwork Mon Dec 22 12:27:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 77132 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 CAF04E674AA for ; Mon, 22 Dec 2025 12:28:41 +0000 (UTC) Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.79098.1766406514533342235 for ; Mon, 22 Dec 2025 04:28:34 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=n9yrIpOK; spf=pass (domain: bootlin.com, ip: 185.246.85.4, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 07BCF4E41D33 for ; Mon, 22 Dec 2025 12:28:33 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id D1418606C1; Mon, 22 Dec 2025 12:28:32 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 0903B10AB0285; Mon, 22 Dec 2025 13:28:31 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1766406512; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=c2xvQDMZZqbrX3uAzy03/tm5rWUC1nNJGMxf3/RDpRU=; b=n9yrIpOKRAbOLrRzLUA8qsL4+bh1IOUglt47sQoXTNXxfdeOHRddUU+Ej5rSnLJ1C7mAFF VOEs0ER/GbaqRTs9mIfOeeokSIsWBgjKnTYs+dGRap+aTY41sSLOgBKrQZkyhpgNmjvSQP b5xxxSUYKm0/NLoTLRgDHi2ZYUo+wjKZdlmvlNDbl9nie95Pamamzw6oetj5Nr9YFYIMUO eieGqGMEs6tDVZ6jtmdSkG4AZhM2fMtkQYMGnvPNiJsn0QbxjmlQAd8vSAhDwyO0784xbr 0HlIbyr+eyO23tIov2sXLjM2LVF3/XTLfcfYsCEKGxVBi0I+w2bmG6YjD0BPHA== From: Antonin Godard Date: Mon, 22 Dec 2025 13:27:53 +0100 Subject: [PATCH 7/8] tools/build-docs-container: allow passing extra args to $OCI run MIME-Version: 1.0 Message-Id: <20251222-concurrent-safety-v1-7-e3d86e44cd38@bootlin.com> References: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> In-Reply-To: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> To: docs@lists.yoctoproject.org Cc: Thomas Petazzoni , Quentin Schulz , Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1450; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=gZIGPtvwz+mim1Qp/5DSZ2kUhr8mOC+pJa9AVx3S3HE=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpSTlSA8/DazysS0lcLuaHc3uzJU2KSHsS24UcX SeyQFOWCYqJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaUk5UgAKCRDRgEFAKaOo NruWEACHHI/CQIHIGumQEM0+VePp0/J6WD7FsXuFDhBrxIm7sViNGd4gb4NOnpOvosGRAUNQY40 enryxEQIVAiLmJwNXH3SDwKPJmoSLMplS2QBy73UCbNIUxrby6M0KzQ4NaX5P5ytbDkSWBPJrC5 3ItufQDit7phxXmcFN98mFr/akfo2Ya3Rt1UjbHgMsBolGAR+O+mnFmjVriTDVv0Sz2ZU6/pjVs 2dPoW3w/sPK2+3ykzuBW5HP/voEIb1O1iZn7mD2W4tn4l9+xSBkeG/vL1gGu+Z0eLbGMCanKvb0 f6R+0//oIq04RE5JF/fLwWldBf80e5yFmJzTlTzFoKf/PxEHHftbatFxRoFefRSVpShUV2ezP27 6TZZfRQg2UfTqkcnCmGrMMdOHBZxN3QUsvytBqjnfLedS5jfmpF711xU4DOOqlSefwpVCsp5Cv3 heKPhcPhckCwG6r++uWaoxpp+gS+7nCKXTs/LihP0FevnIHuU98517TeTfC9v5kJP2jsOnVXX3G JoPX+BeSVW35bxWfPrAsZvZH/rdNgADeaB2CKq/UhqhCkAobbMsv+wOmF27Ep2gbWMmL64a+oMB dIFpGJg3OTw+xkiatqIbauACVxsi5ha2jxQ6ru+ijlrt3awj4fYFeWN+c4eQEewGPE/q1IYw7xL 4gDhR6zlfC5Y5wQ== 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 ; Mon, 22 Dec 2025 12:28:41 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/8316 Add a OCI_RUN_EXTRA_ARGS env variable to allow customizing the arguments passed to the podman/docker run command. For example: export OCI_RUN_EXTRA_ARGS="--env=SPHINXOPTS=-W --keep-going -j1" To limit the number of threads used by Sphinx. This is especially useful for parallel builds. Signed-off-by: Antonin Godard --- documentation/tools/build-docs-container | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container index 7a5191710..c5cdd9c4c 100755 --- a/documentation/tools/build-docs-container +++ b/documentation/tools/build-docs-container @@ -25,6 +25,7 @@ CONTAINERCMD=${CONTAINERCMD:-docker} DOCS_DIR="$SCRIPT_DIR/../.." INCLUDE_ESSENTIAL_PACKAGES=${INCLUDE_ESSENTIAL_PACKAGES:-0} RUN_NON_INTERACTIVE="${RUN_NON_INTERACTIVE:-0}" +OCI_RUN_EXTRA_ARGS="${OCI_RUN_EXTRA_ARGS:-}" function usage() { @@ -69,6 +70,8 @@ $0 OCI_IMAGE [make arguments...] - RUN_NON_INTERACTIVE: when set to 1, allow the '\$OCI run' command to be run non-interactively, without a tty. + + - OCI_RUN_EXTRA_ARGS: extra arguments to pass to the '\$OCI run' command. " } @@ -210,6 +213,9 @@ main () ) fi + # Extra arguments. + [ -n "$OCI_RUN_EXTRA_ARGS" ] && args_run+=( "${OCI_RUN_EXTRA_ARGS}" ) + $OCI run \ "${args_run[@]}" \ "$image_sha" \ From patchwork Mon Dec 22 12:27:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonin Godard X-Patchwork-Id: 77131 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 C35A8E674A9 for ; Mon, 22 Dec 2025 12:28:41 +0000 (UTC) Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.79014.1766406515428564143 for ; Mon, 22 Dec 2025 04:28:35 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=ieDAX+yX; spf=pass (domain: bootlin.com, ip: 185.246.84.56, mailfrom: antonin.godard@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id E5CEF1A236E for ; Mon, 22 Dec 2025 12:28:33 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id BCC26606C1; Mon, 22 Dec 2025 12:28:33 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id AB60210AB0283; Mon, 22 Dec 2025 13:28:32 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1766406513; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=xFSlIBGedndN9NE6ggGh0D6sVadj8lLqZKU4PgqQVMY=; b=ieDAX+yX9pDBGk9H0rUc7R3toe57qM6+z47zs67w7cvstCu+RrGtkx7NV6n5bUlhmw46kG culBbta90vPmPrVf0+gXUKerfQN+ctd70hvT6o66XfVFk+HzK26LcBhH4qtrQ+K15X4/Pg 6zafFy0+MN5BT+UWQAxlphqSIXTNDuiaxoIe77C3A1yQw6h+vNgZl+8oArSj+T5SDyCrbM su67nM9Gl2v6VJb8iXYLnrMkOJZ1YqqUbOJWPs9us6E8ibQ2fcqpbpPl+DseYi8l8oJTNx X/7FigdKKZdJq2AT0SaL2lzIE30L7hYS+j8LYJ6ehWTsRXGoJ9SQ5ROad6vetg== From: Antonin Godard Date: Mon, 22 Dec 2025 13:27:54 +0100 Subject: [PATCH 8/8] tools/build-docs-container: make it possible to print the distro list MIME-Version: 1.0 Message-Id: <20251222-concurrent-safety-v1-8-e3d86e44cd38@bootlin.com> References: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> In-Reply-To: <20251222-concurrent-safety-v1-0-e3d86e44cd38@bootlin.com> To: docs@lists.yoctoproject.org Cc: Thomas Petazzoni , Quentin Schulz , Antonin Godard X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=2120; i=antonin.godard@bootlin.com; h=from:subject:message-id; bh=/muZLrF2y+QCVwR5K3hnUw/QGpzj42pGYstqmIhWXVo=; b=owEBbQKS/ZANAwAKAdGAQUApo6g2AcsmYgBpSTlSbW+mEcEopEXgh0gOBIJGyopf113+a0ArB wwDK3kFwFiJAjMEAAEKAB0WIQSGSHJRiN1AG7mg0//RgEFAKaOoNgUCaUk5UgAKCRDRgEFAKaOo Nm6pD/0WEtUD8akB5uFSjwSKc6QtKP4J+2AknnG3RRf3ZcVTF/eKtRGYJoacFmrelOapzP1Qkre gnM4zU7YhuDCn/jWFOUOzhNlIi7OUfjKW1hgbteqc3oMSdQ5y/HDxOBQZhk5FQN2gTsRwtUE3tv N2VseYzNceNzQLlqts48HkDrjSv5+GtMlSJI3tgys9UN2P22oRauSE1CA9Qp3oHEaYSvPyYITaq hVP7uWLung192Bs/sBfAfxF4a4JuW4CPC+xuPhzupsr+U/O/eTxJjZBfAF5DYtSbIKt8J60kRdj eSj5aLBbrAskQO0EF519n1MH6mOLWzQj+DWAusuziFd7d30R5uGUYlRY6Rj2ZExxV1dTFBB98bU rCZ/pgVj8bQPDyJqGVY0CwYirnR1KZDj+OnxIhECu274l0j6DuUzcIxjswsSESriZaDqljG2eGg p2+Midq0Rn4HXgbiAOV+B4wYJFoebbeVYr78z8mc2nxEJSrbatzexbN7JuRE9/Nz/fJO+vVfpKT g0bfObcuritch699D1Ux7HB95EFuDaqMpyci6uUiFsH6jyBsdtLjfDczu7E2YPOdpopbmHa1QEQ OyZtZuzzDVWDojZ+ACy0s4RMq4ICeTp0YSy2kOHTKMkcNuirOfkLz65nkCBeXB7gHjPqYn0uCWy rtJdUfMJJ7Sfzbw== 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 ; Mon, 22 Dec 2025 12:28:41 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/8317 Add a special "supported_distros" argument to the script to make it possible to return the list of supported distros. This is useful for use in a external script, to run the docs build on a specific set or all supported distros concurrently. Signed-off-by: Antonin Godard --- documentation/tools/build-docs-container | 49 +++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container index c5cdd9c4c..510435c3c 100755 --- a/documentation/tools/build-docs-container +++ b/documentation/tools/build-docs-container @@ -20,6 +20,32 @@ set -eu -o pipefail +declare -a _SUPPORTED_DISTROS=( + almalinux:8 + almalinux:9 + centos:stream9 + debian:12 + debian:13 + fedora:39 + fedora:40 + fedora:41 + fedora:42 + leap:15.5 + leap:15.6 + rockylinux:8 + rockylinux:9 + ubuntu:22.04 + ubuntu:24.04 + ubuntu:25.04 + ubuntu:25.10 +) + + +if [ "${1:-}" = "supported_distros" ]; then + echo "${_SUPPORTED_DISTROS[@]}" + exit 0 +fi + SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) CONTAINERCMD=${CONTAINERCMD:-docker} DOCS_DIR="$SCRIPT_DIR/../.." @@ -35,24 +61,13 @@ $0 OCI_IMAGE [make arguments...] OCI_IMAGE is an image:tag of an OCI image hosted on hub.docker.com. It is one of: - - almalinux:8 - - almalinux:9 - - centos:stream9 - - debian:12 - - debian:13 - - fedora:39 - - fedora:40 - - fedora:41 - - fedora:42 - - leap:15.5 - - leap:15.6 - - rockylinux:8 - - rockylinux:9 - - ubuntu:22.04 - - ubuntu:24.04 - - ubuntu:25.04 - - ubuntu:25.10 +" + + for distro in "${_SUPPORTED_DISTROS[@]}"; do + echo " - $distro" + done + echo " [make arguments] is one or more argument to pass to the make command of documentation/Makefile, see that file for what's supported. This is typically intended to be used to provide specific make targets.