[{"id":38742,"web_url":"https://patchwork.libcamera.org/comment/38742/","msgid":"<20260506180353.GT1598374@killaraus.ideasonboard.com>","date":"2026-05-06T18:03:53","subject":"Re: [PATCH v1 1/2] Split documentation build into separate build\n\tstep","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Stefan,\n\nThank you for the patch.\n\nOn Wed, May 06, 2026 at 05:54:11PM +0200, Stefan Klug wrote:\n> Create a separate build step that builds the docs and merges the html\n> docs and the api docs into a single docs directory.\n> \n> Drop the documentation build from the build-full step as it is no longer\n> needed there.\n> \n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> ---\n>  .gitlab-ci/build-libcamera-docs.sh | 28 ++++++++++++++++++++++++++++\n>  gitlab-ci.yml                      | 29 +++++++++++++++++++++++++----\n>  2 files changed, 53 insertions(+), 4 deletions(-)\n>  create mode 100755 .gitlab-ci/build-libcamera-docs.sh\n> \n> diff --git a/.gitlab-ci/build-libcamera-docs.sh b/.gitlab-ci/build-libcamera-docs.sh\n> new file mode 100755\n> index 000000000000..a2ee7ba839d8\n> --- /dev/null\n> +++ b/.gitlab-ci/build-libcamera-docs.sh\n> @@ -0,0 +1,28 @@\n> +#!/bin/bash\n> +\n> +# SPDX-License-Identifier: GPL-2.0-or-later\n> +# SPDX-FileCopyrightText: © 2023 Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nYou can update this.\n\n> +#\n> +# Build libcamera\n\nNote quite right :-)\n\n> +\n> +set -e\n> +\n> +source \"$(dirname \"$0\")/lib.sh\"\n> +source \"$(dirname \"$0\")/build-libcamera-common.sh\"\n> +\n> +libcamera_build_docs() {\n> +\techo \"Building libcamera\"\n\nSame here.\n\n> +\n> +\tmeson compile -C build -j$BUILD_CONCURRENT_JOBS documentation\n> +\t(\n\nWhy do you create a subshell here ?\n\n> +\t\tcd build\n> +\t\trm -rf docs\n> +\t\tmv Documentation/html/ docs\n> +\t\trm -rf docs/{internal,public}-api\n> +\t\tmv Documentation/{internal,public}-api docs/\n\nCould you install the documentation, and copy/move directories from the\ninstallation directory instead of the build directory ? That will help\ntesting the documentation installation process. You can use the meson\ninstall --tags options to install the documentation only and skip\ncompilation of the rest of libcamera.\n\n> +\t)\n> +}\n> +\n> +run libcamera_install_pkgs\n\nI think you can skip this if you only build the documentation.\n\n> +run libcamera_setup\n> +run libcamera_build_docs collapsed\n> diff --git a/gitlab-ci.yml b/gitlab-ci.yml\n> index f887e3b6c221..468f5769eb87 100644\n> --- a/gitlab-ci.yml\n> +++ b/gitlab-ci.yml\n> @@ -229,10 +229,6 @@ build-full:debian:13:\n>        - ARCH: amd64\n>          CC: gcc-14\n>          CXX: g++-14\n> -        MESON_OPTIONS: >-\n> -          ${MESON_ALL_OPTIONS}\n> -          -D documentation=enabled\n> -          -D doc_werror=true\n>        - ARCH: amd64\n>          CC: clang\n>          CXX: clang++\n> @@ -302,6 +298,31 @@ build-package:debug:\n>        - ARCH: amd64\n>        - ARCH: arm64\n>  \n> +# Build documentation.\n> +build-docs:\n> +  extends:\n> +    - .fdo.distribution-image@debian\n> +    - .libcamera-ci.debian:13\n> +    - .libcamera-ci.scripts\n> +  stage: build\n> +  needs:\n> +    - job: container-debian:13\n> +      artifacts: false\n> +  script:\n> +    - $CI_PROJECT_DIR/.gitlab-ci/build-libcamera-docs.sh\n> +  artifacts:\n> +    name: libcamera-docs-${CI_COMMIT_SHA}\n> +    when: always\n> +    expire_in: 1 week\n> +    paths:\n> +      - build/docs\n> +  variables:\n> +    BUILD_TYPE: release\n> +    MESON_OPTIONS: >-\n> +      ${MESON_ALL_OPTIONS}\n> +      -D documentation=enabled\n> +      -D doc_werror=true\n> +\n>  # ------------------------------------------------------------------------------\n>  # Lint stage - Run checkstyle.py and check merge suitability\n>  # ------------------------------------------------------------------------------","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id A25A0BDCB5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  6 May 2026 18:03:57 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8A2116301E;\n\tWed,  6 May 2026 20:03:56 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1EBB46271A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  6 May 2026 20:03:55 +0200 (CEST)","from killaraus.ideasonboard.com\n\t(2001-14ba-70f3-e800--a06.rev.dnainternet.fi\n\t[IPv6:2001:14ba:70f3:e800::a06])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 73EBF63D;\n\tWed,  6 May 2026 20:03:51 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"toX5hC/p\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1778090631;\n\tbh=OzlYqW1qyh7M1M8gUt6sQkQYLvU9kVqfMY3boAlSRJE=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=toX5hC/pHCcPVZDUSguwkSfvWzFnq4GJPEZ/KSvbK6Nm4tIEXkqDoUBzbxUPGP90h\n\tm2lIGfgWW6mmlYQKnQ81noD9B8Fa7vTWaTAzJ9uqqG1sXcX36IW0hFj17srpPuVZiK\n\ttVb0uns3T8P+Sc/X/2WQloxKXm0WsskBPqtzSvd8=","Date":"Wed, 6 May 2026 21:03:53 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v1 1/2] Split documentation build into separate build\n\tstep","Message-ID":"<20260506180353.GT1598374@killaraus.ideasonboard.com>","References":"<20260506155442.1566744-1-stefan.klug@ideasonboard.com>\n\t<20260506155442.1566744-2-stefan.klug@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20260506155442.1566744-2-stefan.klug@ideasonboard.com>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":38750,"web_url":"https://patchwork.libcamera.org/comment/38750/","msgid":"<177813758425.1893808.1246484777608577759@localhost>","date":"2026-05-07T07:06:24","subject":"Re: [PATCH v1 1/2] Split documentation build into separate build\n\tstep","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"content":"Hi Laurent,\n\nThank you for the review.\n\nQuoting Laurent Pinchart (2026-05-06 20:03:53)\n> Hi Stefan,\n> \n> Thank you for the patch.\n> \n> On Wed, May 06, 2026 at 05:54:11PM +0200, Stefan Klug wrote:\n> > Create a separate build step that builds the docs and merges the html\n> > docs and the api docs into a single docs directory.\n> > \n> > Drop the documentation build from the build-full step as it is no longer\n> > needed there.\n> > \n> > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> > ---\n> >  .gitlab-ci/build-libcamera-docs.sh | 28 ++++++++++++++++++++++++++++\n> >  gitlab-ci.yml                      | 29 +++++++++++++++++++++++++----\n> >  2 files changed, 53 insertions(+), 4 deletions(-)\n> >  create mode 100755 .gitlab-ci/build-libcamera-docs.sh\n> > \n> > diff --git a/.gitlab-ci/build-libcamera-docs.sh b/.gitlab-ci/build-libcamera-docs.sh\n> > new file mode 100755\n> > index 000000000000..a2ee7ba839d8\n> > --- /dev/null\n> > +++ b/.gitlab-ci/build-libcamera-docs.sh\n> > @@ -0,0 +1,28 @@\n> > +#!/bin/bash\n> > +\n> > +# SPDX-License-Identifier: GPL-2.0-or-later\n> > +# SPDX-FileCopyrightText: © 2023 Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n> You can update this.\n\nYes, sure. Should we change that to a generic Ideas on Board?\n> \n> > +#\n> > +# Build libcamera\n> \n> Note quite right :-)\n> \n> > +\n> > +set -e\n> > +\n> > +source \"$(dirname \"$0\")/lib.sh\"\n> > +source \"$(dirname \"$0\")/build-libcamera-common.sh\"\n> > +\n> > +libcamera_build_docs() {\n> > +     echo \"Building libcamera\"\n> \n> Same here.\n> \n> > +\n> > +     meson compile -C build -j$BUILD_CONCURRENT_JOBS documentation\n> > +     (\n> \n> Why do you create a subshell here ?\n\nI don't want the working dir to be modified by the call to the function.\nA pushd/popd combination would work as well but has a tendency to fail\nif you add early return paths. So I guess the subshell grew into a habit.\nDo you have any particular preferences?\n\n> \n> > +             cd build\n> > +             rm -rf docs\n> > +             mv Documentation/html/ docs\n> > +             rm -rf docs/{internal,public}-api\n> > +             mv Documentation/{internal,public}-api docs/\n> \n> Could you install the documentation, and copy/move directories from the\n> installation directory instead of the build directory ? That will help\n> testing the documentation installation process. You can use the meson\n> install --tags options to install the documentation only and skip\n> compilation of the rest of libcamera.\n\nYes, that is reasonable.\n\nI'll fix these things.\n\nBest regards,\nStefan\n\n> \n> > +     )\n> > +}\n> > +\n> > +run libcamera_install_pkgs\n> \n> I think you can skip this if you only build the documentation.\n> \n> > +run libcamera_setup\n> > +run libcamera_build_docs collapsed\n> > diff --git a/gitlab-ci.yml b/gitlab-ci.yml\n> > index f887e3b6c221..468f5769eb87 100644\n> > --- a/gitlab-ci.yml\n> > +++ b/gitlab-ci.yml\n> > @@ -229,10 +229,6 @@ build-full:debian:13:\n> >        - ARCH: amd64\n> >          CC: gcc-14\n> >          CXX: g++-14\n> > -        MESON_OPTIONS: >-\n> > -          ${MESON_ALL_OPTIONS}\n> > -          -D documentation=enabled\n> > -          -D doc_werror=true\n> >        - ARCH: amd64\n> >          CC: clang\n> >          CXX: clang++\n> > @@ -302,6 +298,31 @@ build-package:debug:\n> >        - ARCH: amd64\n> >        - ARCH: arm64\n> >  \n> > +# Build documentation.\n> > +build-docs:\n> > +  extends:\n> > +    - .fdo.distribution-image@debian\n> > +    - .libcamera-ci.debian:13\n> > +    - .libcamera-ci.scripts\n> > +  stage: build\n> > +  needs:\n> > +    - job: container-debian:13\n> > +      artifacts: false\n> > +  script:\n> > +    - $CI_PROJECT_DIR/.gitlab-ci/build-libcamera-docs.sh\n> > +  artifacts:\n> > +    name: libcamera-docs-${CI_COMMIT_SHA}\n> > +    when: always\n> > +    expire_in: 1 week\n> > +    paths:\n> > +      - build/docs\n> > +  variables:\n> > +    BUILD_TYPE: release\n> > +    MESON_OPTIONS: >-\n> > +      ${MESON_ALL_OPTIONS}\n> > +      -D documentation=enabled\n> > +      -D doc_werror=true\n> > +\n> >  # ------------------------------------------------------------------------------\n> >  # Lint stage - Run checkstyle.py and check merge suitability\n> >  # ------------------------------------------------------------------------------\n> \n> -- \n> Regards,\n> \n> Laurent Pinchart","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 8F913C32F6\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  7 May 2026 07:06:30 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4C51B62FD3;\n\tThu,  7 May 2026 09:06:29 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 443C462FB1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  7 May 2026 09:06:27 +0200 (CEST)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:b16a:5ed9:4ada:a95a])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 324005B2;\n\tThu,  7 May 2026 09:06:23 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"vHopnez5\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1778137583;\n\tbh=mN3AIeVBhqOJ796d9AAnV1KIWTlSa+Z+OFzNVr5pRlA=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=vHopnez5JEQJCHrhLzIsk6ogWDhvQPUbuCNDLkz4YuYsAGpw9Vb1kLZSrdP/oE9XG\n\t07/RgN5zCnPhlbcghcLNuGOtiqG+k7Y3gxGUHaezDJjoqH3jgZzvG2Ybx3Tiy9SWRj\n\tteR0qZ8Ty+rm/DnntCwoFK5xF11E7qIKc0RzYFwg=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20260506180353.GT1598374@killaraus.ideasonboard.com>","References":"<20260506155442.1566744-1-stefan.klug@ideasonboard.com>\n\t<20260506155442.1566744-2-stefan.klug@ideasonboard.com>\n\t<20260506180353.GT1598374@killaraus.ideasonboard.com>","Subject":"Re: [PATCH v1 1/2] Split documentation build into separate build\n\tstep","From":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Date":"Thu, 07 May 2026 09:06:24 +0200","Message-ID":"<177813758425.1893808.1246484777608577759@localhost>","User-Agent":"alot/0.12.dev8+g2c003385c862.d20250602","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":38760,"web_url":"https://patchwork.libcamera.org/comment/38760/","msgid":"<20260507082552.GL1547435@killaraus.ideasonboard.com>","date":"2026-05-07T08:25:52","subject":"Re: [PATCH v1 1/2] Split documentation build into separate build\n\tstep","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Thu, May 07, 2026 at 09:06:24AM +0200, Stefan Klug wrote:\n> Quoting Laurent Pinchart (2026-05-06 20:03:53)\n> > On Wed, May 06, 2026 at 05:54:11PM +0200, Stefan Klug wrote:\n> > > Create a separate build step that builds the docs and merges the html\n> > > docs and the api docs into a single docs directory.\n> > > \n> > > Drop the documentation build from the build-full step as it is no longer\n> > > needed there.\n> > > \n> > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> > > ---\n> > >  .gitlab-ci/build-libcamera-docs.sh | 28 ++++++++++++++++++++++++++++\n> > >  gitlab-ci.yml                      | 29 +++++++++++++++++++++++++----\n> > >  2 files changed, 53 insertions(+), 4 deletions(-)\n> > >  create mode 100755 .gitlab-ci/build-libcamera-docs.sh\n> > > \n> > > diff --git a/.gitlab-ci/build-libcamera-docs.sh b/.gitlab-ci/build-libcamera-docs.sh\n> > > new file mode 100755\n> > > index 000000000000..a2ee7ba839d8\n> > > --- /dev/null\n> > > +++ b/.gitlab-ci/build-libcamera-docs.sh\n> > > @@ -0,0 +1,28 @@\n> > > +#!/bin/bash\n> > > +\n> > > +# SPDX-License-Identifier: GPL-2.0-or-later\n> > > +# SPDX-FileCopyrightText: © 2023 Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > \n> > You can update this.\n> \n> Yes, sure. Should we change that to a generic Ideas on Board?\n\nWorks fine for me.\n\n> > > +#\n> > > +# Build libcamera\n> > \n> > Note quite right :-)\n> > \n> > > +\n> > > +set -e\n> > > +\n> > > +source \"$(dirname \"$0\")/lib.sh\"\n> > > +source \"$(dirname \"$0\")/build-libcamera-common.sh\"\n> > > +\n> > > +libcamera_build_docs() {\n> > > +     echo \"Building libcamera\"\n> > \n> > Same here.\n> > \n> > > +\n> > > +     meson compile -C build -j$BUILD_CONCURRENT_JOBS documentation\n> > > +     (\n> > \n> > Why do you create a subshell here ?\n> \n> I don't want the working dir to be modified by the call to the function.\n> A pushd/popd combination would work as well but has a tendency to fail\n> if you add early return paths. So I guess the subshell grew into a habit.\n> Do you have any particular preferences?\n\nMakes sense. Let's see if changing directory will still be needed after\nthe change described below.\n\n> > > +             cd build\n> > > +             rm -rf docs\n> > > +             mv Documentation/html/ docs\n> > > +             rm -rf docs/{internal,public}-api\n> > > +             mv Documentation/{internal,public}-api docs/\n> > \n> > Could you install the documentation, and copy/move directories from the\n> > installation directory instead of the build directory ? That will help\n> > testing the documentation installation process. You can use the meson\n> > install --tags options to install the documentation only and skip\n> > compilation of the rest of libcamera.\n> \n> Yes, that is reasonable.\n> \n> I'll fix these things.\n> \n> Best regards,\n> Stefan\n> \n> > > +     )\n> > > +}\n> > > +\n> > > +run libcamera_install_pkgs\n> > \n> > I think you can skip this if you only build the documentation.\n> > \n> > > +run libcamera_setup\n> > > +run libcamera_build_docs collapsed\n> > > diff --git a/gitlab-ci.yml b/gitlab-ci.yml\n> > > index f887e3b6c221..468f5769eb87 100644\n> > > --- a/gitlab-ci.yml\n> > > +++ b/gitlab-ci.yml\n> > > @@ -229,10 +229,6 @@ build-full:debian:13:\n> > >        - ARCH: amd64\n> > >          CC: gcc-14\n> > >          CXX: g++-14\n> > > -        MESON_OPTIONS: >-\n> > > -          ${MESON_ALL_OPTIONS}\n> > > -          -D documentation=enabled\n> > > -          -D doc_werror=true\n> > >        - ARCH: amd64\n> > >          CC: clang\n> > >          CXX: clang++\n> > > @@ -302,6 +298,31 @@ build-package:debug:\n> > >        - ARCH: amd64\n> > >        - ARCH: arm64\n> > >  \n> > > +# Build documentation.\n> > > +build-docs:\n> > > +  extends:\n> > > +    - .fdo.distribution-image@debian\n> > > +    - .libcamera-ci.debian:13\n> > > +    - .libcamera-ci.scripts\n> > > +  stage: build\n> > > +  needs:\n> > > +    - job: container-debian:13\n> > > +      artifacts: false\n> > > +  script:\n> > > +    - $CI_PROJECT_DIR/.gitlab-ci/build-libcamera-docs.sh\n> > > +  artifacts:\n> > > +    name: libcamera-docs-${CI_COMMIT_SHA}\n> > > +    when: always\n> > > +    expire_in: 1 week\n> > > +    paths:\n> > > +      - build/docs\n> > > +  variables:\n> > > +    BUILD_TYPE: release\n> > > +    MESON_OPTIONS: >-\n> > > +      ${MESON_ALL_OPTIONS}\n> > > +      -D documentation=enabled\n> > > +      -D doc_werror=true\n> > > +\n> > >  # ------------------------------------------------------------------------------\n> > >  # Lint stage - Run checkstyle.py and check merge suitability\n> > >  # ------------------------------------------------------------------------------","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 36BA9BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  7 May 2026 08:25:57 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F101162FB1;\n\tThu,  7 May 2026 10:25:55 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 130F362FB1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  7 May 2026 10:25:54 +0200 (CEST)","from killaraus.ideasonboard.com\n\t(2001-14ba-70f3-e800--a06.rev.dnainternet.fi\n\t[IPv6:2001:14ba:70f3:e800::a06])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id F2480664;\n\tThu,  7 May 2026 10:25:49 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"QgRL/YJC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1778142350;\n\tbh=cbkFqh2TNogTpISM44Xd5mG6arEKuksJrbz8iTe8ULk=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=QgRL/YJC6FGV5E5w9gFOWJUP4Cwf+7cUhnh3VWG7HyL60XjvlE9rlnWef2Ez8oYDR\n\tiKolspSWYj4qu+iFrPA1QSaNMOvOBpi/apGed93IM9AjaaFjxUiieFOnsiSkAbhv5h\n\txxcjnaY/eJgIHBmDbrgCJ7u8tKQCsY2MZ8oteJCM=","Date":"Thu, 7 May 2026 11:25:52 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v1 1/2] Split documentation build into separate build\n\tstep","Message-ID":"<20260507082552.GL1547435@killaraus.ideasonboard.com>","References":"<20260506155442.1566744-1-stefan.klug@ideasonboard.com>\n\t<20260506155442.1566744-2-stefan.klug@ideasonboard.com>\n\t<20260506180353.GT1598374@killaraus.ideasonboard.com>\n\t<177813758425.1893808.1246484777608577759@localhost>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<177813758425.1893808.1246484777608577759@localhost>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]