[{"id":38863,"web_url":"https://patchwork.libcamera.org/comment/38863/","msgid":"<22459018-b3a5-45b7-a046-185bbaacbf84@ideasonboard.com>","date":"2026-05-12T09:02:43","subject":"Re: [PATCH v2 1/2] Split documentation build into separate build\n\tstep","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2026. 05. 11. 15:48 keltezéssel, Stefan Klug írta:\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(Alternatively the deploy job could use the (documentation) artifacts of that build job,\n  and then this separate one would not be necessary.)\n\n\n> \n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> \n> ---\n> \n> Changes in v2:\n> - Fixed copyright\n> - Fixed comments and build message\n> - Build debug for now, as the upstream release build is broken\n> - Collect docs from a temporary install dir\n> ---\n>   .gitlab-ci/build-libcamera-docs.sh | 35 ++++++++++++++++++++++++++++++\n>   gitlab-ci.yml                      | 30 +++++++++++++++++++++----\n>   2 files changed, 61 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..cccb5bad9cb5\n> --- /dev/null\n> +++ b/.gitlab-ci/build-libcamera-docs.sh\n> @@ -0,0 +1,35 @@\n> +#!/bin/bash\n> +\n> +# SPDX-License-Identifier: GPL-2.0-or-later\n> +# SPDX-FileCopyrightText: © 2026 Ideas on Board\n> +#\n> +# Build libcamera docs and collect them in ./docs\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 docs\"\n> +\n> +\t# Fixme: This should only build the documentation, but as we can't use\n> +\t# the doc tag for installation we need to build everything.\n> +\tmeson compile -C build -j$BUILD_CONCURRENT_JOBS\n> +\n> +\techo \"Installing docs\"\n> +\trm -rf install\n> +\tmkdir install\n> +\n> +\t# Fixme: This should use --tags doc,doc-internal, but the installation\n> +\t# mechanics are broken and need to be fixed in libcamera. Install the\n> +\t# whole project for now.\n\nFor my interest, are there are specific failed jobs that exhibit the installation issue?\nOr could we add a bit more info here, or maybe better, open an issue on gitlab?\n\n\n> +\tmeson install -C build --destdir $(pwd)/install\n> +\n> +\trm -rf docs\n> +\tmv install/usr/local/share/doc/libcamera-*/html docs\n> +}\n> +\n> +run libcamera_install_pkgs\n> +run libcamera_setup\n> +run libcamera_build_docs collapsed\n> diff --git a/gitlab-ci.yml b/gitlab-ci.yml\n> index f887e3b6c221..7c5e59de30a1 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,32 @@ 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> +      - docs\n\nCould we add\n   - build/meson-logs/\n   - build/build.ninja\n?\n\nI find these two quite useful in diagnosing build issues, so I think\nthey are worth saving.\n\n\n> +  variables:\n> +    # Fixme: Switch to release build as soon as the build issues are fixed.\n> +    BUILD_TYPE: debug\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 46E5CBDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 May 2026 09:02:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0C36F63025;\n\tTue, 12 May 2026 11:02:49 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 168DA62FE1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2026 11:02:47 +0200 (CEST)","from [192.168.33.39] (185.182.215.166.nat.pool.zt.hu\n\t[185.182.215.166])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3EFB0454;\n\tTue, 12 May 2026 11:02:39 +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=\"GdqREtZL\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1778576559;\n\tbh=n3mlmQ0uSWk+6wECx9PQKBdc/THrvGi4LqZkNEUKcFU=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=GdqREtZLuY3EURrIHxa9iRB0+C9xrjE92PFFynsRMlJryCVz4tqfJUx1UYqmnZGPt\n\tz4F+JNYrSLgJENQcrKJzQZfJcF88ywMDJF9HGfDsaBAOC1t6BlUR4LMHV3dQ10eB1x\n\t0XrhnIO2hnCN7zUpRcLN+kDPPcvCiBMj0x/bcTl8=","Message-ID":"<22459018-b3a5-45b7-a046-185bbaacbf84@ideasonboard.com>","Date":"Tue, 12 May 2026 11:02:43 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 1/2] Split documentation build into separate build\n\tstep","To":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20260511134817.2841886-1-stefan.klug@ideasonboard.com>\n\t<20260511134817.2841886-2-stefan.klug@ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20260511134817.2841886-2-stefan.klug@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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":38865,"web_url":"https://patchwork.libcamera.org/comment/38865/","msgid":"<177858185725.2119687.1461607793265269566@localhost>","date":"2026-05-12T10:30:57","subject":"Re: [PATCH v2 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":"Quoting Barnabás Pőcze (2026-05-12 11:02:43)\n> 2026. 05. 11. 15:48 keltezéssel, Stefan Klug írta:\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> (Alternatively the deploy job could use the (documentation) artifacts of that build job,\n>   and then this separate one would not be necessary.)\n\nActually I like the fact that the documentation build is ideally\nindependent of the rest of the build.\n\n> \n> \n> > \n> > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> > \n> > ---\n> > \n> > Changes in v2:\n> > - Fixed copyright\n> > - Fixed comments and build message\n> > - Build debug for now, as the upstream release build is broken\n> > - Collect docs from a temporary install dir\n> > ---\n> >   .gitlab-ci/build-libcamera-docs.sh | 35 ++++++++++++++++++++++++++++++\n> >   gitlab-ci.yml                      | 30 +++++++++++++++++++++----\n> >   2 files changed, 61 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..cccb5bad9cb5\n> > --- /dev/null\n> > +++ b/.gitlab-ci/build-libcamera-docs.sh\n> > @@ -0,0 +1,35 @@\n> > +#!/bin/bash\n> > +\n> > +# SPDX-License-Identifier: GPL-2.0-or-later\n> > +# SPDX-FileCopyrightText: © 2026 Ideas on Board\n> > +#\n> > +# Build libcamera docs and collect them in ./docs\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 docs\"\n> > +\n> > +     # Fixme: This should only build the documentation, but as we can't use\n> > +     # the doc tag for installation we need to build everything.\n> > +     meson compile -C build -j$BUILD_CONCURRENT_JOBS\n> > +\n> > +     echo \"Installing docs\"\n> > +     rm -rf install\n> > +     mkdir install\n> > +\n> > +     # Fixme: This should use --tags doc,doc-internal, but the installation\n> > +     # mechanics are broken and need to be fixed in libcamera. Install the\n> > +     # whole project for now.\n> \n> For my interest, are there are specific failed jobs that exhibit the installation issue?\n> Or could we add a bit more info here, or maybe better, open an issue on gitlab?\n> \n\nI created an issue here:\nhttps://gitlab.freedesktop.org/camera/libcamera/-/work_items/333\n\n> \n> > +     meson install -C build --destdir $(pwd)/install\n> > +\n> > +     rm -rf docs\n> > +     mv install/usr/local/share/doc/libcamera-*/html docs\n> > +}\n> > +\n> > +run libcamera_install_pkgs\n> > +run libcamera_setup\n> > +run libcamera_build_docs collapsed\n> > diff --git a/gitlab-ci.yml b/gitlab-ci.yml\n> > index f887e3b6c221..7c5e59de30a1 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,32 @@ 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> > +      - docs\n> \n> Could we add\n>    - build/meson-logs/\n>    - build/build.ninja\n> ?\n> \n> I find these two quite useful in diagnosing build issues, so I think\n> they are worth saving.\n\nOh I never looked at these. Sure we can add them.\n\nBest regards,\nStefan\n\n> \n> \n> > +  variables:\n> > +    # Fixme: Switch to release build as soon as the build issues are fixed.\n> > +    BUILD_TYPE: debug\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>","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 09383BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 May 2026 10:31:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E24F46301E;\n\tTue, 12 May 2026 12:31:00 +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 EBC136271A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2026 12:30:59 +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 2CD2AC59;\n\tTue, 12 May 2026 12:30:52 +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=\"dcr3Fjg/\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1778581852;\n\tbh=AMI/XAD4nDEV/pdfsXF9cQFkr1pFRO39A5CaxarrWuU=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=dcr3Fjg/WRnzsqg4wT/0NYBQLFz+96TnhTHxYfyVgLju8hMs8ti+KHlDDKjmQF0CJ\n\ttIk+a98QhHlJvQWRi9vkO0P6+HMBHr7NkDmkPn5FWNsQIxG8/dPfYPzMm1ZH6ZRjKa\n\tXfQHbe+sQBuAjK7nDRx6F1cvtCm5OqqV46C4N+XY=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<22459018-b3a5-45b7-a046-185bbaacbf84@ideasonboard.com>","References":"<20260511134817.2841886-1-stefan.klug@ideasonboard.com>\n\t<20260511134817.2841886-2-stefan.klug@ideasonboard.com>\n\t<22459018-b3a5-45b7-a046-185bbaacbf84@ideasonboard.com>","Subject":"Re: [PATCH v2 1/2] Split documentation build into separate build\n\tstep","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Tue, 12 May 2026 12:30:57 +0200","Message-ID":"<177858185725.2119687.1461607793265269566@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":38875,"web_url":"https://patchwork.libcamera.org/comment/38875/","msgid":"<20260512150549.GB4107@killaraus.ideasonboard.com>","date":"2026-05-12T15:05:49","subject":"Re: [PATCH v2 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 Tue, May 12, 2026 at 12:30:57PM +0200, Stefan Klug wrote:\n> Quoting Barnabás Pőcze (2026-05-12 11:02:43)\n> > 2026. 05. 11. 15:48 keltezéssel, Stefan Klug írta:\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> > (Alternatively the deploy job could use the (documentation) artifacts of that build job,\n> >   and then this separate one would not be necessary.)\n> \n> Actually I like the fact that the documentation build is ideally\n> independent of the rest of the build.\n\nI would as well, if it wasn't for the fact that starting a runner for a\nshort job incurs a bit overhead. I think it's OK for now, but we may\nwant to optimize that later.\n\n> > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> > > \n> > > ---\n> > > \n> > > Changes in v2:\n> > > - Fixed copyright\n> > > - Fixed comments and build message\n> > > - Build debug for now, as the upstream release build is broken\n> > > - Collect docs from a temporary install dir\n> > > ---\n> > >   .gitlab-ci/build-libcamera-docs.sh | 35 ++++++++++++++++++++++++++++++\n> > >   gitlab-ci.yml                      | 30 +++++++++++++++++++++----\n> > >   2 files changed, 61 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..cccb5bad9cb5\n> > > --- /dev/null\n> > > +++ b/.gitlab-ci/build-libcamera-docs.sh\n> > > @@ -0,0 +1,35 @@\n> > > +#!/bin/bash\n> > > +\n> > > +# SPDX-License-Identifier: GPL-2.0-or-later\n> > > +# SPDX-FileCopyrightText: © 2026 Ideas on Board\n> > > +#\n> > > +# Build libcamera docs and collect them in ./docs\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 docs\"\n> > > +\n> > > +     # Fixme: This should only build the documentation, but as we can't use\n> > > +     # the doc tag for installation we need to build everything.\n> > > +     meson compile -C build -j$BUILD_CONCURRENT_JOBS\n> > > +\n> > > +     echo \"Installing docs\"\n> > > +     rm -rf install\n> > > +     mkdir install\n> > > +\n> > > +     # Fixme: This should use --tags doc,doc-internal, but the installation\n> > > +     # mechanics are broken and need to be fixed in libcamera. Install the\n> > > +     # whole project for now.\n> > \n> > For my interest, are there are specific failed jobs that exhibit the installation issue?\n> > Or could we add a bit more info here, or maybe better, open an issue on gitlab?\n> \n> I created an issue here:\n> https://gitlab.freedesktop.org/camera/libcamera/-/work_items/333\n\nI'll try to fix that tonight.\n\n> > > +     meson install -C build --destdir $(pwd)/install\n> > > +\n> > > +     rm -rf docs\n> > > +     mv install/usr/local/share/doc/libcamera-*/html docs\n> > > +}\n> > > +\n> > > +run libcamera_install_pkgs\n\nThis function installs packages that are not\nmulti-arch compatible. If you disable compilation of apps and gstreamer,\nit shouldn't be needed.\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..7c5e59de30a1 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,32 @@ 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> > > +      - docs\n> > \n> > Could we add\n> >    - build/meson-logs/\n> >    - build/build.ninja\n> > ?\n> > \n> > I find these two quite useful in diagnosing build issues, so I think\n> > they are worth saving.\n> \n> Oh I never looked at these. Sure we can add them.\n\nSounds like a good idea.\n\n> > > +  variables:\n> > > +    # Fixme: Switch to release build as soon as the build issues are fixed.\n\nhttps://patchwork.libcamera.org/project/libcamera/list/?series=5939\n\n> > > +    BUILD_TYPE: debug\n> > > +    MESON_OPTIONS: >-\n> > > +      ${MESON_ALL_OPTIONS}\n> > > +      -D documentation=enabled\n> > > +      -D doc_werror=true\n\nLet's disable everything we don't need.\n\n    MESON_OPTIONS: >-\n      --auto-features disabled\n      -D pipelines=[]\n      -D test=false\n      -D documentation=enabled\n      -D doc_werror=true\n\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 5AA34BDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 May 2026 15:05:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A3D6C63025;\n\tTue, 12 May 2026 17:05:52 +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 10DCB6271A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2026 17:05:51 +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 1179EC59;\n\tTue, 12 May 2026 17:05:43 +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=\"gKTUaw6+\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1778598343;\n\tbh=sCFxveYKkJd/j7ksVrJ6FHZSg+22JzRmQAYJt7AQvhI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=gKTUaw6+WFIj2Ek4hbAg37O1vU5mFMWc/dmABEB14eXQRxRXpfl5dylbm4Ag2lasE\n\tQpDBZNMEF41YFNvBGNIeYa0rsY7jGT4WjJ1lEMv5SK7kThfCVqwVKE1T186eexlhuF\n\tHVdZDt5O6zqeFQdiJx7vZfzbnU402Hjg7UGywPjM=","Date":"Tue, 12 May 2026 18:05:49 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v2 1/2] Split documentation build into separate build\n\tstep","Message-ID":"<20260512150549.GB4107@killaraus.ideasonboard.com>","References":"<20260511134817.2841886-1-stefan.klug@ideasonboard.com>\n\t<20260511134817.2841886-2-stefan.klug@ideasonboard.com>\n\t<22459018-b3a5-45b7-a046-185bbaacbf84@ideasonboard.com>\n\t<177858185725.2119687.1461607793265269566@localhost>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<177858185725.2119687.1461607793265269566@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>"}}]