[{"id":37892,"web_url":"https://patchwork.libcamera.org/comment/37892/","msgid":"<20260122175219.GA274167@killaraus>","date":"2026-01-22T17:52:19","subject":"Re: [libcamera-ci] [PATCH v1] Move kvm tests and cross compilation\n\tto debian 13","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Barnabás,\n\nThank you for the patch.\n\nI would have split this in two, one patch for kvm and one for\ncross-compilation. No need to split now, just keep it in mind for the\nnext time.\n\nOn Thu, Jan 22, 2026 at 06:02:56PM +0100, Barnabás Pőcze wrote:\n> Debian 13 is the current stable edition, and virtme-ng 1.18 no longer\n> compiles on debian 12 due to rustc version incompatibilities. So move\n> the kvm tests (and kernel compilation), as well as cross compilation\n> tests to debian 13.\n> \n> Also update virtme-ng to the latest version (1.40), and remove the\n> exit code workaround since the exit code is now propagated to the\n> host[0].\n\nNice.\n\n> Furthermore, the addition is `--overlay-rwdir` is necessary\n> otherwise virtme-ng refuses to start:\n> \n>   error: cannot initialize <path> inside the guest (path must be defined inside a valid overlay)\n> \n> And moreover, since virtme-ng now creates an overlay for /tmp by\n> default[1], and some tests require a /tmp with `O_TMPFILE` support,\n> /tmp needs to be mounted as tmpfs before running the tests.\n\nShould we replace O_TMPFILE usage in tests with memfd_create() ?\n\n> \n> Unfortunately, there is a debian peculiarity that has to be worked\n> around. In contrast to debian 12, the `libclang-rt-dev` package does\n> not exist for armhf. So its versioned variant needs to be used.\n> \n> [0]: https://github.com/arighi/virtme-ng/pull/61\n> [1]: https://github.com/arighi/virtme-ng/pull/114\n> \n> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> ---\n>  .gitlab-ci/setup-container.sh     | 12 ++++++------\n>  .gitlab-ci/test-lc-compliance.sh  |  5 ++---\n>  .gitlab-ci/test-libcamera-qemu.sh | 10 +++++++---\n>  gitlab-ci.yml                     | 22 +++++++++++-----------\n>  4 files changed, 26 insertions(+), 23 deletions(-)\n> \n> diff --git a/.gitlab-ci/setup-container.sh b/.gitlab-ci/setup-container.sh\n> index 2ba94bb..3506271 100755\n> --- a/.gitlab-ci/setup-container.sh\n> +++ b/.gitlab-ci/setup-container.sh\n> @@ -132,9 +132,6 @@ case $FDO_DISTRIBUTION_VERSION in\n>  \tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-dev )\n>  \t# For the Android camera HAL and the virtual pipeline handler.\n>  \tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libyuv-dev )\n> -\t# For cam and lc-compliance\n> -\t# libevent-dev cannot be used here, see build-libcamera-common.sh\n> -\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libevent-2.1-7 libevent-pthreads-2.1-7 )\n>  \t;;\n>  'trixie')\n>  \t# gcc 13 to expand compilation testing coverage.\n> @@ -142,15 +139,18 @@ case $FDO_DISTRIBUTION_VERSION in\n>  \t# Sphinx theme for the documentation.\n>  \tPKGS_LIBCAMERA_RUNTIME+=( python3-sphinx-book-theme )\n>  \t# libclang-rt-dev for the clang ASan runtime.\n> -\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-dev )\n> +\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-19-dev )\n>  \t# For the Android camera HAL and the virtual pipeline handler.\n>  \tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libyuv-dev )\n> +\t# For lc-compliance in the `test-lc-compliance:virtual` job\n> +\t# libevent-dev cannot be used here, see build-libcamera-common.sh\n> +\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libevent-2.1-7t64 libevent-pthreads-2.1-7t64 )\n>  \t;;\n>  esac\n> \n> -# We use Debian bookworm containers to produce ARM binaries and run unit tests\n> +# We use Debian 13 (trixie) containers to produce ARM binaries and run unit tests\n>  # with virtme, and other Debian versions for compilation-testing on amd64 only.\n> -if [[ $FDO_DISTRIBUTION_VERSION == 'bookworm' ]] ; then\n> +if [[ $FDO_DISTRIBUTION_VERSION == 'trixie' ]] ; then\n>  \tarchs+=( arm64 armhf )\n>  \tcomponents['kernel']=1\n>  \tcomponents['virtme']=1\n> diff --git a/.gitlab-ci/test-lc-compliance.sh b/.gitlab-ci/test-lc-compliance.sh\n> index 6208723..d4ae838 100755\n> --- a/.gitlab-ci/test-lc-compliance.sh\n> +++ b/.gitlab-ci/test-lc-compliance.sh\n> @@ -14,6 +14,7 @@ libcamera_compliance() {\n>  \t\t--verbose \\\n>  \t\t--skip-modules \\\n>  \t\t--force-9p \\\n> +\t\t--overlay-rwdir \"$PWD\" \\\n>  \t\t--rwdir \"$PWD/build\" \\\n>  \t\t--run /opt/linux/bzImage \\\n>  \t\t--exec \" \\\n> @@ -25,12 +26,10 @@ libcamera_compliance() {\n>  \t\t\tUBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 \\\n>  \t\t\tGTEST_OUTPUT=xml:./build/lc-compliance-report.xml \\\n>  \t\t\tlc-compliance -c Virtual0; \\\n> -\t\t\techo \\\\\\$? > ./build/.test-status; \\\n>  \t\t\"\n> \n> -\tlocal status=$(cat build/.test-status)\n> +\tlocal status=$?\n>  \techo \"Test result exit state: $status\"\n> -\trm build/.test-status\n> \n>  \tif [[ $status != 0 ]] ; then\n>  \t\texit $status\n> diff --git a/.gitlab-ci/test-libcamera-qemu.sh b/.gitlab-ci/test-libcamera-qemu.sh\n> index f9de5ab..8a588a5 100755\n> --- a/.gitlab-ci/test-libcamera-qemu.sh\n> +++ b/.gitlab-ci/test-libcamera-qemu.sh\n> @@ -24,13 +24,17 @@ libcamera_unit_test() {\n>  \techo \"Running libcamera tests in a qemu VM\"\n> \n>  \tvirtme-ng --verbose --skip-modules --force-9p \\\n> +\t\t--overlay-rwdir \"$PWD\" \\\n>  \t\t--rwdir \"$PWD/build\" \\\n>  \t\t--run /opt/linux/bzImage \\\n> -\t\t--exec \"meson test -C build --no-rebuild --print-errorlogs; echo \\\\\\$? > build/.test-status\"\n> +\t\t--exec \" \\\n> +\t\t\tset -ex;\n> +\t\t\tmount -t tmpfs tmpfs /tmp/;\n> +\t\t\tmeson test -C build --no-rebuild --print-errorlogs; \\\n\nYou're using \\ on some lines only, let's use it everywhere.\n\n> +\t\t\"\n> \n> -\tlocal status=$(cat build/.test-status)\n> +\tlocal status=$?\n>  \techo \"Test result exit state: $status\"\n> -\trm build/.test-status\n> \n>  \tif [[ $status != 0 ]] ; then\n>  \t\texit $status\n> diff --git a/gitlab-ci.yml b/gitlab-ci.yml\n> index b1d5f0e..50fc6c6 100644\n> --- a/gitlab-ci.yml\n> +++ b/gitlab-ci.yml\n> @@ -34,7 +34,7 @@ variables:\n>      ca-certificates\n>      git\n>    VIRTME_GIT_URL: 'https://github.com/arighi/virtme-ng.git'\n> -  VIRTME_GIT_REF: 'v1.18'\n> +  VIRTME_GIT_REF: 'v1.40'\n> \n>  # Jobs that test individual commits need more history to find the common\n>  # ancestor of the branch being tested and the default branch. Fetch up to 100\n> @@ -65,12 +65,12 @@ include:\n>  .libcamera-ci.debian:12:\n>    variables:\n>      FDO_DISTRIBUTION_VERSION: 'bookworm'\n> -    FDO_DISTRIBUTION_TAG: '2025-11-02.0'\n> +    FDO_DISTRIBUTION_TAG: '2026-01-22.0'\n> \n>  .libcamera-ci.debian:13:\n>    variables:\n>      FDO_DISTRIBUTION_VERSION: 'trixie'\n> -    FDO_DISTRIBUTION_TAG: '2025-11-02.0'\n> +    FDO_DISTRIBUTION_TAG: '2026-01-22.0'\n> \n>  .container-debian:\n>    extends:\n> @@ -208,8 +208,6 @@ build-full:debian:12:\n>            ${MESON_ALL_OPTIONS}\n>            ${MESON_CLANG_OPTIONS}\n>            -D qcam=disabled\n> -      - ARCH: armhf\n> -      - ARCH: arm64\n> \n>  build-full:debian:13:\n>    extends:\n> @@ -241,6 +239,8 @@ build-full:debian:13:\n>            -D cpp_debugstl=false\n>          # `cpp_debugstl=false` needed approximately between meson 1.4.0 and 1.9.3\n>          # with clang 18 or later due to https://github.com/mesonbuild/meson/issues/13812\n> +      - ARCH: armhf\n> +      - ARCH: arm64\n> \n>  # Build each commit in the branch individually to detect compilation breakages.\n>  build-history:\n> @@ -267,11 +267,11 @@ build-history:\n>  build-package:debug:\n>    extends:\n>      - .fdo.distribution-image@debian\n> -    - .libcamera-ci.debian:12\n> +    - .libcamera-ci.debian:13\n>      - .libcamera-ci.scripts\n>    stage: build\n>    needs:\n> -    - job: container-debian:12\n> +    - job: container-debian:13\n>        artifacts: false\n>    script:\n>      - $CI_PROJECT_DIR/.gitlab-ci/build-libcamera.sh\n> @@ -366,11 +366,11 @@ merge-check:\n>  test-unit:\n>    extends:\n>      - .fdo.distribution-image@debian\n> -    - .libcamera-ci.debian:12\n> +    - .libcamera-ci.debian:13\n>      - .libcamera-ci.scripts\n>    stage: test\n>    needs:\n> -    - job: container-debian:12\n> +    - job: container-debian:13\n>        artifacts: false\n>    tags:\n>      - kvm\n> @@ -404,7 +404,7 @@ test-unit:\n>  test-lc-compliance:virtual:\n>    extends:\n>      - .fdo.distribution-image@debian\n> -    - .libcamera-ci.debian:12\n> +    - .libcamera-ci.debian:13\n>      - .libcamera-ci.scripts\n>    stage: test\n>    needs:\n> @@ -412,7 +412,7 @@ test-lc-compliance:virtual:\n>        parallel:\n>          matrix:\n>            - ARCH: amd64\n> -    - job: container-debian:12\n> +    - job: container-debian:13\n>        artifacts: false\n>    tags:\n>      - kvm","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 D0776C3220\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 22 Jan 2026 17:52:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E2EF061FC4;\n\tThu, 22 Jan 2026 18:52:22 +0100 (CET)","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 B307961F84\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 22 Jan 2026 18:52:21 +0100 (CET)","from pendragon.ideasonboard.com\n\t(2001-14ba-703d-e500--2a1.rev.dnainternet.fi\n\t[IPv6:2001:14ba:703d:e500::2a1])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id BC5AD460;\n\tThu, 22 Jan 2026 18:51:48 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"J6DHFjNp\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1769104308;\n\tbh=3b0RamLMEUmelawCtGVPePZy3tBhzwgBFqmobQ2oEPY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=J6DHFjNpnunNEgpArGJYzxx9LXy1q68BUurOnefPPOFyPOLIHFtieIoQ+VhMWRx2Z\n\tVPexKb9BlLOhyumrpEc65NgrAm+3jv56QveN4uy6YyhBFIssq/ke4OGER1Uu3pniHF\n\tXt5I7KcMI83aXWH/waMTIaz6cn5JGKewBT0fpx7s=","Date":"Thu, 22 Jan 2026 19:52:19 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [libcamera-ci] [PATCH v1] Move kvm tests and cross compilation\n\tto debian 13","Message-ID":"<20260122175219.GA274167@killaraus>","References":"<20260122170256.4048314-1-barnabas.pocze@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20260122170256.4048314-1-barnabas.pocze@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":37900,"web_url":"https://patchwork.libcamera.org/comment/37900/","msgid":"<c8c3eb0b-f75c-4403-93ca-2e5669e9307f@ideasonboard.com>","date":"2026-01-23T08:45:50","subject":"Re: [libcamera-ci] [PATCH v1] Move kvm tests and cross compilation\n\tto debian 13","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2026. 01. 22. 18:52 keltezéssel, Laurent Pinchart írta:\n> Hi Barnabás,\n> \n> Thank you for the patch.\n> \n> I would have split this in two, one patch for kvm and one for\n> cross-compilation. No need to split now, just keep it in mind for the\n> next time.\n> \n\nI was considering that, but the `build-package:debug` job both does\ncross compilation and produces artifacts for kvm jobs. So I didn't\nsee a simple and easy way to avoid migrating the two at the same time.\n\n\n> On Thu, Jan 22, 2026 at 06:02:56PM +0100, Barnabás Pőcze wrote:\n>> Debian 13 is the current stable edition, and virtme-ng 1.18 no longer\n>> compiles on debian 12 due to rustc version incompatibilities. So move\n>> the kvm tests (and kernel compilation), as well as cross compilation\n>> tests to debian 13.\n>>\n>> Also update virtme-ng to the latest version (1.40), and remove the\n>> exit code workaround since the exit code is now propagated to the\n>> host[0].\n> \n> Nice.\n> \n>> Furthermore, the addition is `--overlay-rwdir` is necessary\n>> otherwise virtme-ng refuses to start:\n>>\n>>    error: cannot initialize <path> inside the guest (path must be defined inside a valid overlay)\n>>\n>> And moreover, since virtme-ng now creates an overlay for /tmp by\n>> default[1], and some tests require a /tmp with `O_TMPFILE` support,\n>> /tmp needs to be mounted as tmpfs before running the tests.\n> \n> Should we replace O_TMPFILE usage in tests with memfd_create() ?\n\nI also did consider that and I believe it would be better, but inside\nlibcamera that is not directly used but via `libcamera::MemFd`. So I\npresume there are some targets that don't have the `memfd_create()`\nwrapper function? And I didn't really want to duplicate anything or\nchange where tests can be run. I suppose we could also entertain\nthe possibility of using pipes, but I haven't tested that either.\n\n\n> \n>>\n>> Unfortunately, there is a debian peculiarity that has to be worked\n>> around. In contrast to debian 12, the `libclang-rt-dev` package does\n>> not exist for armhf. So its versioned variant needs to be used.\n>>\n>> [0]: https://github.com/arighi/virtme-ng/pull/61\n>> [1]: https://github.com/arighi/virtme-ng/pull/114\n>>\n>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n>> ---\n>>   .gitlab-ci/setup-container.sh     | 12 ++++++------\n>>   .gitlab-ci/test-lc-compliance.sh  |  5 ++---\n>>   .gitlab-ci/test-libcamera-qemu.sh | 10 +++++++---\n>>   gitlab-ci.yml                     | 22 +++++++++++-----------\n>>   4 files changed, 26 insertions(+), 23 deletions(-)\n>>\n>> diff --git a/.gitlab-ci/setup-container.sh b/.gitlab-ci/setup-container.sh\n>> index 2ba94bb..3506271 100755\n>> --- a/.gitlab-ci/setup-container.sh\n>> +++ b/.gitlab-ci/setup-container.sh\n>> @@ -132,9 +132,6 @@ case $FDO_DISTRIBUTION_VERSION in\n>>   \tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-dev )\n>>   \t# For the Android camera HAL and the virtual pipeline handler.\n>>   \tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libyuv-dev )\n>> -\t# For cam and lc-compliance\n>> -\t# libevent-dev cannot be used here, see build-libcamera-common.sh\n>> -\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libevent-2.1-7 libevent-pthreads-2.1-7 )\n>>   \t;;\n>>   'trixie')\n>>   \t# gcc 13 to expand compilation testing coverage.\n>> @@ -142,15 +139,18 @@ case $FDO_DISTRIBUTION_VERSION in\n>>   \t# Sphinx theme for the documentation.\n>>   \tPKGS_LIBCAMERA_RUNTIME+=( python3-sphinx-book-theme )\n>>   \t# libclang-rt-dev for the clang ASan runtime.\n>> -\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-dev )\n>> +\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-19-dev )\n>>   \t# For the Android camera HAL and the virtual pipeline handler.\n>>   \tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libyuv-dev )\n>> +\t# For lc-compliance in the `test-lc-compliance:virtual` job\n>> +\t# libevent-dev cannot be used here, see build-libcamera-common.sh\n>> +\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libevent-2.1-7t64 libevent-pthreads-2.1-7t64 )\n>>   \t;;\n>>   esac\n>>\n>> -# We use Debian bookworm containers to produce ARM binaries and run unit tests\n>> +# We use Debian 13 (trixie) containers to produce ARM binaries and run unit tests\n>>   # with virtme, and other Debian versions for compilation-testing on amd64 only.\n>> -if [[ $FDO_DISTRIBUTION_VERSION == 'bookworm' ]] ; then\n>> +if [[ $FDO_DISTRIBUTION_VERSION == 'trixie' ]] ; then\n>>   \tarchs+=( arm64 armhf )\n>>   \tcomponents['kernel']=1\n>>   \tcomponents['virtme']=1\n>> diff --git a/.gitlab-ci/test-lc-compliance.sh b/.gitlab-ci/test-lc-compliance.sh\n>> index 6208723..d4ae838 100755\n>> --- a/.gitlab-ci/test-lc-compliance.sh\n>> +++ b/.gitlab-ci/test-lc-compliance.sh\n>> @@ -14,6 +14,7 @@ libcamera_compliance() {\n>>   \t\t--verbose \\\n>>   \t\t--skip-modules \\\n>>   \t\t--force-9p \\\n>> +\t\t--overlay-rwdir \"$PWD\" \\\n>>   \t\t--rwdir \"$PWD/build\" \\\n>>   \t\t--run /opt/linux/bzImage \\\n>>   \t\t--exec \" \\\n>> @@ -25,12 +26,10 @@ libcamera_compliance() {\n>>   \t\t\tUBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 \\\n>>   \t\t\tGTEST_OUTPUT=xml:./build/lc-compliance-report.xml \\\n>>   \t\t\tlc-compliance -c Virtual0; \\\n>> -\t\t\techo \\\\\\$? > ./build/.test-status; \\\n>>   \t\t\"\n>>\n>> -\tlocal status=$(cat build/.test-status)\n>> +\tlocal status=$?\n>>   \techo \"Test result exit state: $status\"\n>> -\trm build/.test-status\n>>\n>>   \tif [[ $status != 0 ]] ; then\n>>   \t\texit $status\n>> diff --git a/.gitlab-ci/test-libcamera-qemu.sh b/.gitlab-ci/test-libcamera-qemu.sh\n>> index f9de5ab..8a588a5 100755\n>> --- a/.gitlab-ci/test-libcamera-qemu.sh\n>> +++ b/.gitlab-ci/test-libcamera-qemu.sh\n>> @@ -24,13 +24,17 @@ libcamera_unit_test() {\n>>   \techo \"Running libcamera tests in a qemu VM\"\n>>\n>>   \tvirtme-ng --verbose --skip-modules --force-9p \\\n>> +\t\t--overlay-rwdir \"$PWD\" \\\n>>   \t\t--rwdir \"$PWD/build\" \\\n>>   \t\t--run /opt/linux/bzImage \\\n>> -\t\t--exec \"meson test -C build --no-rebuild --print-errorlogs; echo \\\\\\$? > build/.test-status\"\n>> +\t\t--exec \" \\\n>> +\t\t\tset -ex;\n>> +\t\t\tmount -t tmpfs tmpfs /tmp/;\n>> +\t\t\tmeson test -C build --no-rebuild --print-errorlogs; \\\n> \n> You're using \\ on some lines only, let's use it everywhere.\n> \n\nI didn't even realize it could work without the `\\`.\n\n\n>> +\t\t\"\n>>\n>> -\tlocal status=$(cat build/.test-status)\n>> +\tlocal status=$?\n>>   \techo \"Test result exit state: $status\"\n>> -\trm build/.test-status\n>>\n>>   \tif [[ $status != 0 ]] ; then\n>>   \t\texit $status\n>> diff --git a/gitlab-ci.yml b/gitlab-ci.yml\n>> index b1d5f0e..50fc6c6 100644\n>> --- a/gitlab-ci.yml\n>> +++ b/gitlab-ci.yml\n>> @@ -34,7 +34,7 @@ variables:\n>>       ca-certificates\n>>       git\n>>     VIRTME_GIT_URL: 'https://github.com/arighi/virtme-ng.git'\n>> -  VIRTME_GIT_REF: 'v1.18'\n>> +  VIRTME_GIT_REF: 'v1.40'\n>>\n>>   # Jobs that test individual commits need more history to find the common\n>>   # ancestor of the branch being tested and the default branch. Fetch up to 100\n>> @@ -65,12 +65,12 @@ include:\n>>   .libcamera-ci.debian:12:\n>>     variables:\n>>       FDO_DISTRIBUTION_VERSION: 'bookworm'\n>> -    FDO_DISTRIBUTION_TAG: '2025-11-02.0'\n>> +    FDO_DISTRIBUTION_TAG: '2026-01-22.0'\n>>\n>>   .libcamera-ci.debian:13:\n>>     variables:\n>>       FDO_DISTRIBUTION_VERSION: 'trixie'\n>> -    FDO_DISTRIBUTION_TAG: '2025-11-02.0'\n>> +    FDO_DISTRIBUTION_TAG: '2026-01-22.0'\n>>\n>>   .container-debian:\n>>     extends:\n>> @@ -208,8 +208,6 @@ build-full:debian:12:\n>>             ${MESON_ALL_OPTIONS}\n>>             ${MESON_CLANG_OPTIONS}\n>>             -D qcam=disabled\n>> -      - ARCH: armhf\n>> -      - ARCH: arm64\n>>\n>>   build-full:debian:13:\n>>     extends:\n>> @@ -241,6 +239,8 @@ build-full:debian:13:\n>>             -D cpp_debugstl=false\n>>           # `cpp_debugstl=false` needed approximately between meson 1.4.0 and 1.9.3\n>>           # with clang 18 or later due to https://github.com/mesonbuild/meson/issues/13812\n>> +      - ARCH: armhf\n>> +      - ARCH: arm64\n>>\n>>   # Build each commit in the branch individually to detect compilation breakages.\n>>   build-history:\n>> @@ -267,11 +267,11 @@ build-history:\n>>   build-package:debug:\n>>     extends:\n>>       - .fdo.distribution-image@debian\n>> -    - .libcamera-ci.debian:12\n>> +    - .libcamera-ci.debian:13\n>>       - .libcamera-ci.scripts\n>>     stage: build\n>>     needs:\n>> -    - job: container-debian:12\n>> +    - job: container-debian:13\n>>         artifacts: false\n>>     script:\n>>       - $CI_PROJECT_DIR/.gitlab-ci/build-libcamera.sh\n>> @@ -366,11 +366,11 @@ merge-check:\n>>   test-unit:\n>>     extends:\n>>       - .fdo.distribution-image@debian\n>> -    - .libcamera-ci.debian:12\n>> +    - .libcamera-ci.debian:13\n>>       - .libcamera-ci.scripts\n>>     stage: test\n>>     needs:\n>> -    - job: container-debian:12\n>> +    - job: container-debian:13\n>>         artifacts: false\n>>     tags:\n>>       - kvm\n>> @@ -404,7 +404,7 @@ test-unit:\n>>   test-lc-compliance:virtual:\n>>     extends:\n>>       - .fdo.distribution-image@debian\n>> -    - .libcamera-ci.debian:12\n>> +    - .libcamera-ci.debian:13\n>>       - .libcamera-ci.scripts\n>>     stage: test\n>>     needs:\n>> @@ -412,7 +412,7 @@ test-lc-compliance:virtual:\n>>         parallel:\n>>           matrix:\n>>             - ARCH: amd64\n>> -    - job: container-debian:12\n>> +    - job: container-debian:13\n>>         artifacts: false\n>>     tags:\n>>       - kvm\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 D36DBC3220\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 23 Jan 2026 08:45:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DA34161FC4;\n\tFri, 23 Jan 2026 09:45:55 +0100 (CET)","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 B5FB661F61\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 23 Jan 2026 09:45:53 +0100 (CET)","from [192.168.33.29] (185.221.143.114.nat.pool.zt.hu\n\t[185.221.143.114])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7E6208FA;\n\tFri, 23 Jan 2026 09:45:20 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"fKJ9zPdk\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1769157920;\n\tbh=2ivIW/5/sK3o8Sl/eGQlQrPjjjh8tyif536SoMzV5fw=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=fKJ9zPdkEHYCB5FPMNwxbQge1lQfr0jMbvLqncoUCuPDpT30X3TDwr1kGql+MuQaz\n\t2yvADV9o8Z/SSmlTDoCUVdvlsmje00OSfLn5Rx5eea0plFaaNcepwJZTODFnyA4FdH\n\tN9TeDliqGaa/dcDw0SMVQxmeQcUxqvRUxUZ9gib8=","Message-ID":"<c8c3eb0b-f75c-4403-93ca-2e5669e9307f@ideasonboard.com>","Date":"Fri, 23 Jan 2026 09:45:50 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [libcamera-ci] [PATCH v1] Move kvm tests and cross compilation\n\tto debian 13","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20260122170256.4048314-1-barnabas.pocze@ideasonboard.com>\n\t<20260122175219.GA274167@killaraus>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20260122175219.GA274167@killaraus>","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":37916,"web_url":"https://patchwork.libcamera.org/comment/37916/","msgid":"<20260123143514.GH215800@killaraus>","date":"2026-01-23T14:35:14","subject":"Re: [libcamera-ci] [PATCH v1] Move kvm tests and cross compilation\n\tto debian 13","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, Jan 23, 2026 at 09:45:50AM +0100, Barnabás Pőcze wrote:\n> 2026. 01. 22. 18:52 keltezéssel, Laurent Pinchart írta:\n> > Hi Barnabás,\n> > \n> > Thank you for the patch.\n> > \n> > I would have split this in two, one patch for kvm and one for\n> > cross-compilation. No need to split now, just keep it in mind for the\n> > next time.\n> \n> I was considering that, but the `build-package:debug` job both does\n> cross compilation and produces artifacts for kvm jobs. So I didn't\n> see a simple and easy way to avoid migrating the two at the same time.\n> \n> > On Thu, Jan 22, 2026 at 06:02:56PM +0100, Barnabás Pőcze wrote:\n> >> Debian 13 is the current stable edition, and virtme-ng 1.18 no longer\n> >> compiles on debian 12 due to rustc version incompatibilities. So move\n> >> the kvm tests (and kernel compilation), as well as cross compilation\n> >> tests to debian 13.\n> >>\n> >> Also update virtme-ng to the latest version (1.40), and remove the\n> >> exit code workaround since the exit code is now propagated to the\n> >> host[0].\n> > \n> > Nice.\n> > \n> >> Furthermore, the addition is `--overlay-rwdir` is necessary\n> >> otherwise virtme-ng refuses to start:\n> >>\n> >>    error: cannot initialize <path> inside the guest (path must be defined inside a valid overlay)\n> >>\n> >> And moreover, since virtme-ng now creates an overlay for /tmp by\n> >> default[1], and some tests require a /tmp with `O_TMPFILE` support,\n> >> /tmp needs to be mounted as tmpfs before running the tests.\n> > \n> > Should we replace O_TMPFILE usage in tests with memfd_create() ?\n> \n> I also did consider that and I believe it would be better, but inside\n> libcamera that is not directly used but via `libcamera::MemFd`. So I\n> presume there are some targets that don't have the `memfd_create()`\n> wrapper function? And I didn't really want to duplicate anything or\n> change where tests can be run. I suppose we could also entertain\n> the possibility of using pipes, but I haven't tested that either.\n\nAs far as I know, the memfd API is available on all platforms we\nsupport, but the syscall may not be wrapped by all C libraries.\n\nFor tests we could create a TemporaryFile class in libtest to handle\nthis.\n\n> >> Unfortunately, there is a debian peculiarity that has to be worked\n> >> around. In contrast to debian 12, the `libclang-rt-dev` package does\n> >> not exist for armhf. So its versioned variant needs to be used.\n> >>\n> >> [0]: https://github.com/arighi/virtme-ng/pull/61\n> >> [1]: https://github.com/arighi/virtme-ng/pull/114\n> >>\n> >> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> >> ---\n> >>   .gitlab-ci/setup-container.sh     | 12 ++++++------\n> >>   .gitlab-ci/test-lc-compliance.sh  |  5 ++---\n> >>   .gitlab-ci/test-libcamera-qemu.sh | 10 +++++++---\n> >>   gitlab-ci.yml                     | 22 +++++++++++-----------\n> >>   4 files changed, 26 insertions(+), 23 deletions(-)\n> >>\n> >> diff --git a/.gitlab-ci/setup-container.sh b/.gitlab-ci/setup-container.sh\n> >> index 2ba94bb..3506271 100755\n> >> --- a/.gitlab-ci/setup-container.sh\n> >> +++ b/.gitlab-ci/setup-container.sh\n> >> @@ -132,9 +132,6 @@ case $FDO_DISTRIBUTION_VERSION in\n> >>   \tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-dev )\n> >>   \t# For the Android camera HAL and the virtual pipeline handler.\n> >>   \tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libyuv-dev )\n> >> -\t# For cam and lc-compliance\n> >> -\t# libevent-dev cannot be used here, see build-libcamera-common.sh\n> >> -\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libevent-2.1-7 libevent-pthreads-2.1-7 )\n> >>   \t;;\n> >>   'trixie')\n> >>   \t# gcc 13 to expand compilation testing coverage.\n> >> @@ -142,15 +139,18 @@ case $FDO_DISTRIBUTION_VERSION in\n> >>   \t# Sphinx theme for the documentation.\n> >>   \tPKGS_LIBCAMERA_RUNTIME+=( python3-sphinx-book-theme )\n> >>   \t# libclang-rt-dev for the clang ASan runtime.\n> >> -\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-dev )\n> >> +\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-19-dev )\n> >>   \t# For the Android camera HAL and the virtual pipeline handler.\n> >>   \tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libyuv-dev )\n> >> +\t# For lc-compliance in the `test-lc-compliance:virtual` job\n> >> +\t# libevent-dev cannot be used here, see build-libcamera-common.sh\n> >> +\tPKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libevent-2.1-7t64 libevent-pthreads-2.1-7t64 )\n> >>   \t;;\n> >>   esac\n> >>\n> >> -# We use Debian bookworm containers to produce ARM binaries and run unit tests\n> >> +# We use Debian 13 (trixie) containers to produce ARM binaries and run unit tests\n> >>   # with virtme, and other Debian versions for compilation-testing on amd64 only.\n> >> -if [[ $FDO_DISTRIBUTION_VERSION == 'bookworm' ]] ; then\n> >> +if [[ $FDO_DISTRIBUTION_VERSION == 'trixie' ]] ; then\n> >>   \tarchs+=( arm64 armhf )\n> >>   \tcomponents['kernel']=1\n> >>   \tcomponents['virtme']=1\n> >> diff --git a/.gitlab-ci/test-lc-compliance.sh b/.gitlab-ci/test-lc-compliance.sh\n> >> index 6208723..d4ae838 100755\n> >> --- a/.gitlab-ci/test-lc-compliance.sh\n> >> +++ b/.gitlab-ci/test-lc-compliance.sh\n> >> @@ -14,6 +14,7 @@ libcamera_compliance() {\n> >>   \t\t--verbose \\\n> >>   \t\t--skip-modules \\\n> >>   \t\t--force-9p \\\n> >> +\t\t--overlay-rwdir \"$PWD\" \\\n> >>   \t\t--rwdir \"$PWD/build\" \\\n> >>   \t\t--run /opt/linux/bzImage \\\n> >>   \t\t--exec \" \\\n> >> @@ -25,12 +26,10 @@ libcamera_compliance() {\n> >>   \t\t\tUBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 \\\n> >>   \t\t\tGTEST_OUTPUT=xml:./build/lc-compliance-report.xml \\\n> >>   \t\t\tlc-compliance -c Virtual0; \\\n> >> -\t\t\techo \\\\\\$? > ./build/.test-status; \\\n> >>   \t\t\"\n> >>\n> >> -\tlocal status=$(cat build/.test-status)\n> >> +\tlocal status=$?\n> >>   \techo \"Test result exit state: $status\"\n> >> -\trm build/.test-status\n> >>\n> >>   \tif [[ $status != 0 ]] ; then\n> >>   \t\texit $status\n> >> diff --git a/.gitlab-ci/test-libcamera-qemu.sh b/.gitlab-ci/test-libcamera-qemu.sh\n> >> index f9de5ab..8a588a5 100755\n> >> --- a/.gitlab-ci/test-libcamera-qemu.sh\n> >> +++ b/.gitlab-ci/test-libcamera-qemu.sh\n> >> @@ -24,13 +24,17 @@ libcamera_unit_test() {\n> >>   \techo \"Running libcamera tests in a qemu VM\"\n> >>\n> >>   \tvirtme-ng --verbose --skip-modules --force-9p \\\n> >> +\t\t--overlay-rwdir \"$PWD\" \\\n> >>   \t\t--rwdir \"$PWD/build\" \\\n> >>   \t\t--run /opt/linux/bzImage \\\n> >> -\t\t--exec \"meson test -C build --no-rebuild --print-errorlogs; echo \\\\\\$? > build/.test-status\"\n> >> +\t\t--exec \" \\\n> >> +\t\t\tset -ex;\n> >> +\t\t\tmount -t tmpfs tmpfs /tmp/;\n> >> +\t\t\tmeson test -C build --no-rebuild --print-errorlogs; \\\n> > \n> > You're using \\ on some lines only, let's use it everywhere.\n> \n> I didn't even realize it could work without the `\\`.\n\nThey're not needed within quoted strings (although that may be specific\nto the shell).\n\n> >> +\t\t\"\n> >>\n> >> -\tlocal status=$(cat build/.test-status)\n> >> +\tlocal status=$?\n> >>   \techo \"Test result exit state: $status\"\n> >> -\trm build/.test-status\n> >>\n> >>   \tif [[ $status != 0 ]] ; then\n> >>   \t\texit $status\n> >> diff --git a/gitlab-ci.yml b/gitlab-ci.yml\n> >> index b1d5f0e..50fc6c6 100644\n> >> --- a/gitlab-ci.yml\n> >> +++ b/gitlab-ci.yml\n> >> @@ -34,7 +34,7 @@ variables:\n> >>       ca-certificates\n> >>       git\n> >>     VIRTME_GIT_URL: 'https://github.com/arighi/virtme-ng.git'\n> >> -  VIRTME_GIT_REF: 'v1.18'\n> >> +  VIRTME_GIT_REF: 'v1.40'\n> >>\n> >>   # Jobs that test individual commits need more history to find the common\n> >>   # ancestor of the branch being tested and the default branch. Fetch up to 100\n> >> @@ -65,12 +65,12 @@ include:\n> >>   .libcamera-ci.debian:12:\n> >>     variables:\n> >>       FDO_DISTRIBUTION_VERSION: 'bookworm'\n> >> -    FDO_DISTRIBUTION_TAG: '2025-11-02.0'\n> >> +    FDO_DISTRIBUTION_TAG: '2026-01-22.0'\n> >>\n> >>   .libcamera-ci.debian:13:\n> >>     variables:\n> >>       FDO_DISTRIBUTION_VERSION: 'trixie'\n> >> -    FDO_DISTRIBUTION_TAG: '2025-11-02.0'\n> >> +    FDO_DISTRIBUTION_TAG: '2026-01-22.0'\n> >>\n> >>   .container-debian:\n> >>     extends:\n> >> @@ -208,8 +208,6 @@ build-full:debian:12:\n> >>             ${MESON_ALL_OPTIONS}\n> >>             ${MESON_CLANG_OPTIONS}\n> >>             -D qcam=disabled\n> >> -      - ARCH: armhf\n> >> -      - ARCH: arm64\n> >>\n> >>   build-full:debian:13:\n> >>     extends:\n> >> @@ -241,6 +239,8 @@ build-full:debian:13:\n> >>             -D cpp_debugstl=false\n> >>           # `cpp_debugstl=false` needed approximately between meson 1.4.0 and 1.9.3\n> >>           # with clang 18 or later due to https://github.com/mesonbuild/meson/issues/13812\n> >> +      - ARCH: armhf\n> >> +      - ARCH: arm64\n> >>\n> >>   # Build each commit in the branch individually to detect compilation breakages.\n> >>   build-history:\n> >> @@ -267,11 +267,11 @@ build-history:\n> >>   build-package:debug:\n> >>     extends:\n> >>       - .fdo.distribution-image@debian\n> >> -    - .libcamera-ci.debian:12\n> >> +    - .libcamera-ci.debian:13\n> >>       - .libcamera-ci.scripts\n> >>     stage: build\n> >>     needs:\n> >> -    - job: container-debian:12\n> >> +    - job: container-debian:13\n> >>         artifacts: false\n> >>     script:\n> >>       - $CI_PROJECT_DIR/.gitlab-ci/build-libcamera.sh\n> >> @@ -366,11 +366,11 @@ merge-check:\n> >>   test-unit:\n> >>     extends:\n> >>       - .fdo.distribution-image@debian\n> >> -    - .libcamera-ci.debian:12\n> >> +    - .libcamera-ci.debian:13\n> >>       - .libcamera-ci.scripts\n> >>     stage: test\n> >>     needs:\n> >> -    - job: container-debian:12\n> >> +    - job: container-debian:13\n> >>         artifacts: false\n> >>     tags:\n> >>       - kvm\n> >> @@ -404,7 +404,7 @@ test-unit:\n> >>   test-lc-compliance:virtual:\n> >>     extends:\n> >>       - .fdo.distribution-image@debian\n> >> -    - .libcamera-ci.debian:12\n> >> +    - .libcamera-ci.debian:13\n> >>       - .libcamera-ci.scripts\n> >>     stage: test\n> >>     needs:\n> >> @@ -412,7 +412,7 @@ test-lc-compliance:virtual:\n> >>         parallel:\n> >>           matrix:\n> >>             - ARCH: amd64\n> >> -    - job: container-debian:12\n> >> +    - job: container-debian:13\n> >>         artifacts: false\n> >>     tags:\n> >>       - kvm","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 B0D47BDCBF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 23 Jan 2026 14:35:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5348D61FCC;\n\tFri, 23 Jan 2026 15:35:18 +0100 (CET)","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 45029615B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 23 Jan 2026 15:35:16 +0100 (CET)","from pendragon.ideasonboard.com\n\t(2001-14ba-703d-e500--2a1.rev.dnainternet.fi\n\t[IPv6:2001:14ba:703d:e500::2a1])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id D29C8103D; \n\tFri, 23 Jan 2026 15:34:42 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"I7Y2VU6h\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1769178883;\n\tbh=G+i+oD850LkqgKaeCv5nnQcwKBbgw/Cx7/S7bjVc+qU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=I7Y2VU6hHBtlUEFir1DGkA7AqSr44Xg6G4BKPm8P1XzhDgtbBnWRLjWWGdJJxCR3n\n\tRQQ3VKBI2lVdzpRqnMBrRrumn5Sd8AvL97LFZtGcpw0wqr2+ATiDjfHTrvrt0Ryy8T\n\tDKxWLDnwOAakONflsRcsIdXeJ/bC/hN8IVrhUCD8=","Date":"Fri, 23 Jan 2026 16:35:14 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [libcamera-ci] [PATCH v1] Move kvm tests and cross compilation\n\tto debian 13","Message-ID":"<20260123143514.GH215800@killaraus>","References":"<20260122170256.4048314-1-barnabas.pocze@ideasonboard.com>\n\t<20260122175219.GA274167@killaraus>\n\t<c8c3eb0b-f75c-4403-93ca-2e5669e9307f@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<c8c3eb0b-f75c-4403-93ca-2e5669e9307f@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>"}}]