From 5b27b60b51bbf5358c7e7ce1e8e71a521da1cfd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Minier?= Date: Sun, 8 Mar 2026 14:39:00 +0100 Subject: [PATCH 1/9] feat(rootfs): Add suite variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add $suite (default: "trixie") template variable to the rootfs recipe. Use $suite in mmdebstrap's suite field instead of the previously hardcoded value. Signed-off-by: Loïc Minier Signed-off-by: Agathe Porte --- README.md | 1 + debos-recipes/qualcomm-linux-debian-rootfs.yaml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 86da22b8..c6bf3f15 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,7 @@ A few options are provided in the debos recipes; for the root filesystem recipe: - `kernelpackage`: name of the kernel package to install from apt; defaults to `Debian’s linux-image-arm64`. Can (and should) be set to `none` if you are providing local kernel package instead. +- `suite`: Debian suite to use, defaults to `trixie`. For the image recipe: diff --git a/debos-recipes/qualcomm-linux-debian-rootfs.yaml b/debos-recipes/qualcomm-linux-debian-rootfs.yaml index 2942856c..a7793258 100644 --- a/debos-recipes/qualcomm-linux-debian-rootfs.yaml +++ b/debos-recipes/qualcomm-linux-debian-rootfs.yaml @@ -4,6 +4,7 @@ {{- $kernelpackage := or .kernelpackage "linux-image-arm64" }} {{- $overlays := or .overlays "qsc-deb-releases" }} {{- $buildid := or .buildid "" }} +{{- $suite := or .suite "trixie" }} {{- $variantid := "console" }} {{- if eq $xfcedesktop "true" }} @@ -15,8 +16,7 @@ architecture: arm64 actions: - action: mmdebstrap description: Bootstrap initial filesystem - # NB: not currently configurable - suite: trixie + suite: {{ $suite }} components: - main - contrib From 04a02b5a89cc071656022bf40c93017aeb791d18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Minier?= Date: Sun, 8 Mar 2026 14:45:08 +0100 Subject: [PATCH 2/9] feat(rootfs): Generate APT sources dynamically MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the static overlays/apt-sources/ overlay with a shell run action that generates /etc/apt/sources.list.d/debian.sources based on the $suite template variable. Signed-off-by: Loïc Minier Signed-off-by: Agathe Porte --- .../etc/apt/sources.list.d/debian.sources | 20 ----------- .../qualcomm-linux-debian-rootfs.yaml | 35 ++++++++++++++++--- 2 files changed, 31 insertions(+), 24 deletions(-) delete mode 100644 debos-recipes/overlays/apt-sources/etc/apt/sources.list.d/debian.sources diff --git a/debos-recipes/overlays/apt-sources/etc/apt/sources.list.d/debian.sources b/debos-recipes/overlays/apt-sources/etc/apt/sources.list.d/debian.sources deleted file mode 100644 index 8a013224..00000000 --- a/debos-recipes/overlays/apt-sources/etc/apt/sources.list.d/debian.sources +++ /dev/null @@ -1,20 +0,0 @@ -# Debian archive -Types: deb -URIs: http://deb.debian.org/debian/ -Suites: trixie -Components: main contrib non-free non-free-firmware -Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg - -# Debian stable updates -Types: deb -URIs: http://deb.debian.org/debian/ -Suites: trixie-updates -Components: main contrib non-free non-free-firmware -Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg - -# Debian security updates -Types: deb -URIs: http://deb.debian.org/debian-security/ -Suites: trixie-security -Components: main contrib non-free non-free-firmware -Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg diff --git a/debos-recipes/qualcomm-linux-debian-rootfs.yaml b/debos-recipes/qualcomm-linux-debian-rootfs.yaml index a7793258..3426a341 100644 --- a/debos-recipes/qualcomm-linux-debian-rootfs.yaml +++ b/debos-recipes/qualcomm-linux-debian-rootfs.yaml @@ -50,11 +50,38 @@ actions: {{- end }} # after debootstrap, only a basic etc/apt/sources.list is created; add more - # modern etc/apt/sources.list.d/debian.sources; sources.list is removed after + # modern etc/apt/sources.list.d/*.sources; sources.list is removed after # applying all overlays, and followed by an APT update and full-upgrade - - action: overlay - description: Create Debian APT sources - source: overlays/apt-sources + - action: run + description: Create APT sources for debian {{ $suite }} + chroot: true + command: | + set -eux + tee /etc/apt/sources.list.d/debian.sources < Date: Sun, 8 Mar 2026 14:49:46 +0100 Subject: [PATCH 3/9] feat(rootfs): Generate Debian backports APT config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the static overlays/backports/ overlay with a shell run action that generates debian-backports.sources and debian-backports.pref using the $suite variable. Signed-off-by: Loïc Minier Signed-off-by: Agathe Porte --- .../apt/preferences.d/debian-backports.pref | 6 ----- .../sources.list.d/debian-backports.sources | 7 ----- .../qualcomm-linux-debian-rootfs.yaml | 27 ++++++++++++++++--- 3 files changed, 24 insertions(+), 16 deletions(-) delete mode 100644 debos-recipes/overlays/backports/etc/apt/preferences.d/debian-backports.pref delete mode 100644 debos-recipes/overlays/backports/etc/apt/sources.list.d/debian-backports.sources diff --git a/debos-recipes/overlays/backports/etc/apt/preferences.d/debian-backports.pref b/debos-recipes/overlays/backports/etc/apt/preferences.d/debian-backports.pref deleted file mode 100644 index 6bc5f4e8..00000000 --- a/debos-recipes/overlays/backports/etc/apt/preferences.d/debian-backports.pref +++ /dev/null @@ -1,6 +0,0 @@ -# for binary packages built from these source packages, score the version from -# Debian backports higher as to get hardware enabled or better hardware support - -Package: src:alsa-ucm-conf:any src:fastrpc src:firmware-free:any src:firmware-nonfree:any src:hexagon-dsp-binaries src:linux:any src:linux-signed-arm64:any src:mesa:any src:u-boot-efi-dtb -Pin: release n=trixie-backports -Pin-Priority: 900 diff --git a/debos-recipes/overlays/backports/etc/apt/sources.list.d/debian-backports.sources b/debos-recipes/overlays/backports/etc/apt/sources.list.d/debian-backports.sources deleted file mode 100644 index 02cbe0e1..00000000 --- a/debos-recipes/overlays/backports/etc/apt/sources.list.d/debian-backports.sources +++ /dev/null @@ -1,7 +0,0 @@ -# Debian backports -Types: deb -URIs: http://deb.debian.org/debian -Suites: trixie-backports -Components: main contrib non-free non-free-firmware -Enabled: yes -Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg diff --git a/debos-recipes/qualcomm-linux-debian-rootfs.yaml b/debos-recipes/qualcomm-linux-debian-rootfs.yaml index 3426a341..eead9867 100644 --- a/debos-recipes/qualcomm-linux-debian-rootfs.yaml +++ b/debos-recipes/qualcomm-linux-debian-rootfs.yaml @@ -83,9 +83,30 @@ actions: {{- end }} EOF - - action: overlay - description: Add Debian backports APT configuration - source: overlays/backports +{{- if and (ne $suite "unstable") (ne $suite "sid") (ne $suite "testing") }} + - action: run + description: Add Debian {{ $suite }}-backports APT configuration + chroot: true + command: | + set -eux + tee /etc/apt/sources.list.d/debian-backports.sources < Date: Sun, 8 Mar 2026 15:00:51 +0100 Subject: [PATCH 4/9] feat(rootfs): Generate qsc-deb-releases APT config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the static .sources and .pref files from the qsc-deb-releases overlay, keeping only the keyring (.asc). Add a run action that generates them dynamically using $suite-overlay as the suite name. Signed-off-by: Loïc Minier Signed-off-by: Agathe Porte --- .../apt/preferences.d/qsc-deb-releases.pref | 6 ---- .../sources.list.d/qsc-deb-releases.sources | 9 ------ .../qualcomm-linux-debian-rootfs.yaml | 30 +++++++++++++++++++ 3 files changed, 30 insertions(+), 15 deletions(-) delete mode 100644 debos-recipes/overlays/qsc-deb-releases/etc/apt/preferences.d/qsc-deb-releases.pref delete mode 100644 debos-recipes/overlays/qsc-deb-releases/etc/apt/sources.list.d/qsc-deb-releases.sources diff --git a/debos-recipes/overlays/qsc-deb-releases/etc/apt/preferences.d/qsc-deb-releases.pref b/debos-recipes/overlays/qsc-deb-releases/etc/apt/preferences.d/qsc-deb-releases.pref deleted file mode 100644 index 2f3d0312..00000000 --- a/debos-recipes/overlays/qsc-deb-releases/etc/apt/preferences.d/qsc-deb-releases.pref +++ /dev/null @@ -1,6 +0,0 @@ -# for binary packages built from these source packages, score the version from -# trixie-overlay higher than versions from Debian for compliance -Package: src:pipewire:any -Pin: release n=trixie-overlay -Pin-Priority: 950 - diff --git a/debos-recipes/overlays/qsc-deb-releases/etc/apt/sources.list.d/qsc-deb-releases.sources b/debos-recipes/overlays/qsc-deb-releases/etc/apt/sources.list.d/qsc-deb-releases.sources deleted file mode 100644 index 0e07df0d..00000000 --- a/debos-recipes/overlays/qsc-deb-releases/etc/apt/sources.list.d/qsc-deb-releases.sources +++ /dev/null @@ -1,9 +0,0 @@ -# QArtifactory qsc-deb-releases repository -# NB: publishing Sources indices for deb-src isn't supported by Artifactory, -# but sources are published with other packages files -Types: deb -URIs: https://qartifactory-edge.qualcomm.com/artifactory/qsc-deb-releases -Suites: trixie-overlay -Components: main -Signed-By: /etc/apt/keyrings/qsc-deb-releases.asc -Enabled: yes diff --git a/debos-recipes/qualcomm-linux-debian-rootfs.yaml b/debos-recipes/qualcomm-linux-debian-rootfs.yaml index eead9867..573fd334 100644 --- a/debos-recipes/qualcomm-linux-debian-rootfs.yaml +++ b/debos-recipes/qualcomm-linux-debian-rootfs.yaml @@ -116,6 +116,36 @@ actions: {{- end }} {{- end }} + # The qsc-deb-releases overlay only ships the keyring (.asc); generate the + # .sources and .pref files dynamically to use the correct $suite-overlay + - action: run + description: Create qsc-deb-releases APT sources for {{ $suite }}-overlay + chroot: true + command: | + set -eux + # only generate if the keyring was installed by the overlay + if [ ! -f /etc/apt/keyrings/qsc-deb-releases.asc ]; then + exit 0 + fi + tee /etc/apt/sources.list.d/qsc-deb-releases.sources < Date: Sun, 8 Mar 2026 16:44:14 +0100 Subject: [PATCH 5/9] feat(rootfs): install fastrpc-tests only on trixie MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fastrpc-tests is only installed for trixie (only in trixie-overlay). Signed-off-by: Loïc Minier Signed-off-by: Agathe Porte --- .../qualcomm-linux-debian-rootfs.yaml | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/debos-recipes/qualcomm-linux-debian-rootfs.yaml b/debos-recipes/qualcomm-linux-debian-rootfs.yaml index 573fd334..888c102c 100644 --- a/debos-recipes/qualcomm-linux-debian-rootfs.yaml +++ b/debos-recipes/qualcomm-linux-debian-rootfs.yaml @@ -169,14 +169,6 @@ actions: - dosfstools # ext4 tools, notably e2fsck for the root filesystem - e2fsprogs - # fastrpc support. fastrpc-tests pulls in the required stack -{{- if ne $overlays "none" }} -{{- range $overlay := split "," $overlays }} -{{- if eq $overlay "qsc-deb-releases" }} - - fastrpc-tests -{{- end }} -{{- end }} -{{- end }} # fwupd tools, enable OTA EFI firmware capsule updates - fwupd # defaults to "systemd-sysv"; perhaps not needed @@ -204,6 +196,22 @@ actions: # WPA / WPA2 / WPA3 client support - wpasupplicant +{{- if eq $suite "trixie" }} +{{- if ne $overlays "none" }} +{{- range $overlay := split "," $overlays }} +{{- if eq $overlay "qsc-deb-releases" }} + # fastrpc-tests is only available in trixie-overlay + - action: apt + description: Install fastrpc-tests (trixie only) + recommends: true + packages: + # fastrpc support. fastrpc-tests pulls in the required stack + - fastrpc-tests +{{- end }} +{{- end }} +{{- end }} +{{- end }} + - action: run description: Set hostname to "debian" chroot: true From 7241ddd55eedf1829271ae86951fabee97428bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Minier?= Date: Sun, 8 Mar 2026 15:36:33 +0100 Subject: [PATCH 6/9] ci(debos): Add suite inputs, matrix build on PR/push MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add suite inputs to the reusable debos workflow, with defaulting to trixie. Use these for all debos invocations. Note that the container image is still using trixie as forky currently leads to errors during build (tracked in issue #379). Update just the PR build workflow to use a matrix strategy building both trixie and forky suites. Take this opportunity to rename build-pr to just build. Signed-off-by: Loïc Minier Signed-off-by: Agathe Porte --- .github/workflows/build-on-pr.yml | 8 +++++++- .github/workflows/build-on-push.yml | 4 ++++ .github/workflows/debos.yml | 8 ++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-on-pr.yml b/.github/workflows/build-on-pr.yml index b13516ce..0a78a7d4 100644 --- a/.github/workflows/build-on-pr.yml +++ b/.github/workflows/build-on-pr.yml @@ -21,7 +21,13 @@ jobs: name: Event File path: ${{ github.event_path }} - build-pr: + build: + strategy: + fail-fast: false + matrix: + suite: [trixie, forky] uses: ./.github/workflows/debos.yml + with: + suite: ${{ matrix.suite }} schema-check: uses: ./.github/workflows/lava-schema-check.yml diff --git a/.github/workflows/build-on-push.yml b/.github/workflows/build-on-push.yml index 576bbd9f..8317ecd4 100644 --- a/.github/workflows/build-on-push.yml +++ b/.github/workflows/build-on-push.yml @@ -13,6 +13,10 @@ permissions: jobs: build-daily: + strategy: + fail-fast: false + matrix: + suite: [trixie, forky] uses: ./.github/workflows/debos.yml schema-check: uses: ./.github/workflows/lava-schema-check.yml diff --git a/.github/workflows/debos.yml b/.github/workflows/debos.yml index 11431ece..3ce19892 100644 --- a/.github/workflows/debos.yml +++ b/.github/workflows/debos.yml @@ -3,6 +3,10 @@ name: Build debos recipe on: workflow_call: inputs: + suite: + description: Distribution suite (e.g. trixie, forky) + type: string + default: trixie overlays: description: List of overlays to use type: string @@ -40,11 +44,11 @@ env: # image build id; used for SBOM generation BUILD_ID: ${{ github.run_id }}-${{ github.run_attempt }} KERNEL_PACKAGE: ${{ inputs.kernelpackage }} - DEBOS_EXTRA_ARGS: ${{ inputs.debos_extra_args }} + DEBOS_EXTRA_ARGS: -t suite:${{ inputs.suite }} ${{ inputs.debos_extra_args }} jobs: build-debos: - name: Build and upload debos recipes + name: Build and upload debos recipes (${{ inputs.suite }}) outputs: url: ${{ steps.upload_artifacts_s3.outputs.url }} runs-on: [self-hosted, qcom-u2404, arm64] From 00c22020a72c23c5009e621772cad59d74690949 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Minier?= Date: Mon, 9 Mar 2026 11:32:33 +0100 Subject: [PATCH 7/9] feat(ci/debos)!: Prefix artifacts with distro-suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prefix all published artifact filenames with "$suite-" so that builds for different distributions/suites can coexist in the same S3 destination: - debos.yml: use prefix for image artifacts going to staging directory, including SBOMs - lava-test.yml: add suite inputs and expose it as SUITE env var; add corresponding sed substitutions when rendering templates - LAVA templates: reference {{SUITE}}-flash-*.tar.gz - build-daily.yml, linux.yml: pass suite when calling lava-test.yml Signed-off-by: Loïc Minier Signed-off-by: Agathe Porte --- .github/workflows/build-daily.yml | 1 + .github/workflows/debos.yml | 15 ++++++++------- .github/workflows/lava-test.yml | 6 ++++++ .github/workflows/linux.yml | 1 + ci/lava/qcs6490-rb3gen2-vision-kit/boot.yaml | 2 +- ci/lava/qrb2210-rb1/boot.yaml | 2 +- scripts/bundle-flash-dirs.sh | 5 +++-- 7 files changed, 21 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-daily.yml b/.github/workflows/build-daily.yml index b328a56c..d6ae1e5e 100644 --- a/.github/workflows/build-daily.yml +++ b/.github/workflows/build-daily.yml @@ -28,3 +28,4 @@ jobs: secrets: inherit with: url: ${{ needs.build-daily.outputs.artifacts_url }} + suite: trixie diff --git a/.github/workflows/debos.yml b/.github/workflows/debos.yml index 3ce19892..a334e2e2 100644 --- a/.github/workflows/debos.yml +++ b/.github/workflows/debos.yml @@ -45,6 +45,7 @@ env: BUILD_ID: ${{ github.run_id }}-${{ github.run_attempt }} KERNEL_PACKAGE: ${{ inputs.kernelpackage }} DEBOS_EXTRA_ARGS: -t suite:${{ inputs.suite }} ${{ inputs.debos_extra_args }} + PREFIX: ${{ inputs.suite }} jobs: build-debos: @@ -145,13 +146,13 @@ jobs: # create a directory for the current run dir="debos-artifacts" mkdir -v "${dir}" - # compress output files into the staging directory - gzip -c rootfs.tar >"${dir}/rootfs.tar.gz" - gzip -c disk-ufs.img >"${dir}/disk-ufs.img.gz" - gzip -c disk-sdcard.img >"${dir}/disk-sdcard.img.gz" - cp -av dtbs.tar.gz "${dir}" + # compress output files directly into the staging directory + gzip -c rootfs.tar >"${dir}/${PREFIX}-rootfs.tar.gz" + gzip -c disk-ufs.img >"${dir}/${PREFIX}-disk-ufs.img.gz" + gzip -c disk-sdcard.img >"${dir}/${PREFIX}-disk-sdcard.img.gz" + cp -av dtbs.tar.gz "${dir}/${PREFIX}-dtbs.tar.gz" # create tarballs with support for all UFS and all eMMC boards - scripts/bundle-flash-dirs.sh "${dir}" + scripts/bundle-flash-dirs.sh "${dir}" "${PREFIX}" # generate sha256sums for all artifacts (cd "${dir}" && sha256sum * | tee sha256sums.txt) @@ -206,7 +207,7 @@ jobs: dir="sboms" mkdir -v sboms for f in rootfs-sbom.*; do - gzip -c "$f" >"${dir}/${f}.gz" + gzip -c "$f" >"${dir}/${PREFIX}-${f}.gz" done - name: Upload SBOMs as private artifacts diff --git a/.github/workflows/lava-test.yml b/.github/workflows/lava-test.yml index eefaae37..92255747 100644 --- a/.github/workflows/lava-test.yml +++ b/.github/workflows/lava-test.yml @@ -6,6 +6,10 @@ on: url: required: true type: string + suite: + description: Distribution suite (e.g. trixie, forky) + type: string + default: trixie # implicitely set all other permissions to none permissions: @@ -17,6 +21,7 @@ permissions: env: BUILD_URL: ${{ inputs.url }} LAVA_CI: ci/lava/ + SUITE: ${{ inputs.suite }} jobs: prepare-job-list: @@ -83,6 +88,7 @@ jobs: -e "s|{{BUILD_DOWNLOAD_URL}}|${BUILD_DOWNLOAD_URL}|g" \ -e "s|{{BUILD_FILE_NAME}}|${BUILD_FILE_NAME}|g" \ -e "s|{{DEVICE_TYPE}}|${DEVICE_TYPE}|g" \ + -e "s|{{SUITE}}|${SUITE}|g" \ -e "s|{{GITHUB_REPOSITORY}}|${GITHUB_REPOSITORY}|g" \ -e "s|{{GITHUB_RUN_ATTEMPT}}|${GITHUB_RUN_ATTEMPT}|g" \ -e "s|{{GITHUB_RUN_ID}}|${GITHUB_RUN_ID}|g" \ diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index a1850c70..63afedd0 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -150,3 +150,4 @@ jobs: secrets: inherit with: url: ${{ needs.debos-linux-deb.outputs.artifacts_url }} + suite: trixie diff --git a/ci/lava/qcs6490-rb3gen2-vision-kit/boot.yaml b/ci/lava/qcs6490-rb3gen2-vision-kit/boot.yaml index 485b80da..1420414b 100644 --- a/ci/lava/qcs6490-rb3gen2-vision-kit/boot.yaml +++ b/ci/lava/qcs6490-rb3gen2-vision-kit/boot.yaml @@ -4,7 +4,7 @@ actions: image: headers: Authorization: Q_S3_TOKEN - url: "{{BUILD_DOWNLOAD_URL}}/flash-ufs.tar.gz" + url: "{{BUILD_DOWNLOAD_URL}}/{{SUITE}}-flash-ufs.tar.gz" postprocess: docker: image: ghcr.io/foundriesio/lava-lmp-sign:main diff --git a/ci/lava/qrb2210-rb1/boot.yaml b/ci/lava/qrb2210-rb1/boot.yaml index 6d59772a..7857f82b 100644 --- a/ci/lava/qrb2210-rb1/boot.yaml +++ b/ci/lava/qrb2210-rb1/boot.yaml @@ -4,7 +4,7 @@ actions: image: headers: Authorization: Q_S3_TOKEN - url: "{{BUILD_DOWNLOAD_URL}}/flash-emmc.tar.gz" + url: "{{BUILD_DOWNLOAD_URL}}/{{SUITE}}-flash-emmc.tar.gz" postprocess: docker: image: ghcr.io/foundriesio/lava-lmp-sign:main diff --git a/scripts/bundle-flash-dirs.sh b/scripts/bundle-flash-dirs.sh index af00a2b8..f56ac51a 100755 --- a/scripts/bundle-flash-dirs.sh +++ b/scripts/bundle-flash-dirs.sh @@ -5,6 +5,7 @@ set -eux output_dir=$1 +prefix=$2 # use strings and word splitting as lists to construct output tarballs. # caveat is that flash_* directories cannot have spaces in them. @@ -46,8 +47,8 @@ echo "ufs_dirs: $ufs_dirs" # word splitting is a feature in this case # shellcheck disable=SC2086 -tar -cvzf "$output_dir/flash-emmc.tar.gz" disk-sdcard.img1 disk-sdcard.img2 $emmc_dirs +tar -cvzf "$output_dir/$prefix-flash-emmc.tar.gz" disk-sdcard.img1 disk-sdcard.img2 $emmc_dirs # word splitting is a feature in this case # shellcheck disable=SC2086 -tar -cvzf "$output_dir/flash-ufs.tar.gz" disk-ufs.img1 disk-ufs.img2 $ufs_dirs +tar -cvzf "$output_dir/$prefix-flash-ufs.tar.gz" disk-ufs.img1 disk-ufs.img2 $ufs_dirs From 9c05cbc9c20414de12de1c93cc989d93c65f9852 Mon Sep 17 00:00:00 2001 From: Agathe Porte Date: Wed, 22 Apr 2026 11:47:26 +0200 Subject: [PATCH 8/9] fix(ci): use Debian kernel for forky Our custom qcom1 kernel is not available for forky. Switch back to the default Debian linux-image-arm64 kernel instead when building for forky. In order to avoid the repetition of the linux-image-6.16.7-qcom1++ in multiple places, introduce a "default-ci" kernelpackage value that can be set to this specific version in a single place. Signed-off-by: Agathe Porte --- .github/workflows/build-on-pr.yml | 7 +++++++ .github/workflows/build-on-push.yml | 9 +++++++++ .github/workflows/debos.yml | 15 +++++++++------ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-on-pr.yml b/.github/workflows/build-on-pr.yml index 0a78a7d4..a6998e5e 100644 --- a/.github/workflows/build-on-pr.yml +++ b/.github/workflows/build-on-pr.yml @@ -26,8 +26,15 @@ jobs: fail-fast: false matrix: suite: [trixie, forky] + kernelpackage: [default-ci, linux-image-arm64] + exclude: + - suite: trixie + kernelpackage: linux-image-arm64 + - suite: forky + kernelpackage: default-ci uses: ./.github/workflows/debos.yml with: suite: ${{ matrix.suite }} + kernelpackage: ${{ matrix.kernelpackage }} schema-check: uses: ./.github/workflows/lava-schema-check.yml diff --git a/.github/workflows/build-on-push.yml b/.github/workflows/build-on-push.yml index 8317ecd4..12d89c5c 100644 --- a/.github/workflows/build-on-push.yml +++ b/.github/workflows/build-on-push.yml @@ -17,7 +17,16 @@ jobs: fail-fast: false matrix: suite: [trixie, forky] + kernelpackage: [default-ci, linux-image-arm64] + exclude: + - suite: trixie + kernelpackage: linux-image-arm64 + - suite: forky + kernelpackage: default-ci uses: ./.github/workflows/debos.yml + with: + suite: ${{ matrix.suite }} + kernelpackage: ${{ matrix.kernelpackage }} schema-check: uses: ./.github/workflows/lava-schema-check.yml test: diff --git a/.github/workflows/debos.yml b/.github/workflows/debos.yml index a334e2e2..118dd309 100644 --- a/.github/workflows/debos.yml +++ b/.github/workflows/debos.yml @@ -17,10 +17,7 @@ on: linux-image-arm64) or name of a EFS kernel package directory (e.g. efs/mainline) type: string - # the package name will be passed to APT which interprets the trailing - # plus sign in the package name as a request to install the package, so - # use two plus signs - default: linux-image-6.16.7-qcom1++ + default: default-ci debos_extra_args: description: Extra arguments to pass to debos (e.g. -t dtb:qcom/some.dtb) type: string @@ -106,11 +103,17 @@ jobs: run: | set -ux kernel_package="$KERNEL_PACKAGE" - # if kernel package is from EFS, determine actual package name case "$kernel_package" in + # if kernel package is from EFS, determine actual package name efs/*) kernel_package="$(find local-apt-repo/kernel -type f -name 'linux-image-*' -not -name '*dbg*'|xargs -n1 basename|cut -f1 -d_)" - ;; + ;; + default-ci) + # the package name will be passed to APT which interprets the trailing + # plus sign in the package name as a request to install the package, so + # use two plus signs + kernel_package="linux-image-6.16.7-qcom1++" + ;; esac debos \ From d433eeda8f78892b261d7db5597671cdbfc0c7c3 Mon Sep 17 00:00:00 2001 From: Agathe Porte Date: Mon, 27 Apr 2026 11:16:56 +0200 Subject: [PATCH 9/9] fix(rootfs): do not use qsc-deb-releases for some suites QArtifactory currently returns 404 for sid, testing and forky. Regarding sid, since sid-overlay is not considered as an alias for unstable-overlay (which exists), it probably raises additional questions and the support of the "sid" value in the first place in our recipes. Signed-off-by: Agathe Porte --- debos-recipes/qualcomm-linux-debian-rootfs.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/debos-recipes/qualcomm-linux-debian-rootfs.yaml b/debos-recipes/qualcomm-linux-debian-rootfs.yaml index 888c102c..ea26ebba 100644 --- a/debos-recipes/qualcomm-linux-debian-rootfs.yaml +++ b/debos-recipes/qualcomm-linux-debian-rootfs.yaml @@ -116,6 +116,8 @@ actions: {{- end }} {{- end }} +# QArtifactory is missing a Release file for some suites. +{{- if and (ne $suite "sid") (ne $suite "testing") (ne $suite "forky") }} # The qsc-deb-releases overlay only ships the keyring (.asc); generate the # .sources and .pref files dynamically to use the correct $suite-overlay - action: run @@ -145,6 +147,7 @@ actions: Pin: release n={{ $suite }}-overlay Pin-Priority: 950 EOF +{{- end }} - action: run description: Remove old APT sources and upgrade packages