From 8747eafe780830c57a7f5bcafce134a9be30cf8a Mon Sep 17 00:00:00 2001 From: Mike Solar Date: Fri, 25 Sep 2026 21:37:58 +0800 Subject: [PATCH] ci/cd: package for Debian 13 instead of Debian 12 The Debian container moves from bookworm to trixie. Two packages were renamed in trixie and their old names are now transitional dummies: pkg-config is provided by pkgconf, and libgl1-mesa-dev split into libgl-dev + libglvnd-dev. The CI and CD Debian dependency lists stay byte-for-byte identical. trixie ships libva 2.22, which has the vaMapBuffer2 FFmpeg 8 expects, so only openKylin still needs the bundled vcpkg libva copies. --- .github/workflows/cd.yml | 8 ++++---- .github/workflows/ci.yml | 8 ++++---- docs/build.md | 2 +- docs/zh/build.md | 2 +- tooling/package/build-deb.sh | 5 +++-- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 4bfd8bbd4..379a0a1e5 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -10,7 +10,7 @@ permissions: contents: write # One matrix, seven platforms, the same environments CI tests in (see -# .github/workflows/ci.yml): Debian 12 / Fedora 43 / Arch / openKylin x64 +# .github/workflows/ci.yml): Debian 13 / Fedora 43 / Arch / openKylin x64 # and arm64 containers plus the macOS and Windows hosts. Every package is # built from scratch — no FFmpeg/cargo caches: a restored tree has # masked packaging problems before (stale ports, missing tools), and a @@ -36,7 +36,7 @@ jobs: runner: warp-ubuntu-latest-x64-32x triplet: x64-linux artifact: linux-debian - container: '{"image":"debian:12","options":"--shm-size=8g"}' + container: '{"image":"debian:13","options":"--shm-size=8g"}' - name: Fedora platform: linux distro: fedora @@ -170,11 +170,11 @@ jobs: run: | apt-get update apt-get install -y \ - build-essential clang libclang-dev cmake pkg-config nasm \ + build-essential clang libclang-dev cmake pkgconf nasm \ git curl zip unzip tar python3 dpkg-dev \ libpipewire-0.3-dev libspa-0.2-dev libjack-jackd2-dev \ libasound2-dev libpulse-dev libsndfile1-dev \ - libgl1-mesa-dev libgl1-mesa-dri mesa-vulkan-drivers \ + libgl-dev libglvnd-dev libgl1-mesa-dri mesa-vulkan-drivers \ libvulkan-dev libxkbcommon-dev libxkbcommon-x11-dev xvfb libdrm-dev \ icc-profiles-free gdb file librsvg2-bin patchelf fonts-dejavu-core \ autoconf autoconf-archive automake libtool diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 78afe3b5c..d0b2bf275 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ permissions: contents: read # One matrix, seven platforms: the three Linux-family packaging distros -# (Debian 12, Fedora 43, Arch), openKylin on x64 and arm64, macOS and +# (Debian 13, Fedora 43, Arch), openKylin on x64 and arm64, macOS and # Windows. The environments match .github/workflows/cd.yml exactly (same # container images, same dependency lists, same runner sizes), so a # "passes CI, fails CD" dependency drift is caught here first. @@ -41,7 +41,7 @@ jobs: arch: x64 runner: warp-ubuntu-latest-x64-8x triplet: x64-linux - container: '{"image":"debian:12","options":"--shm-size=8g"}' + container: '{"image":"debian:13","options":"--shm-size=8g"}' - name: Fedora platform: linux distro: fedora @@ -173,11 +173,11 @@ jobs: run: | apt-get update apt-get install -y \ - build-essential clang libclang-dev cmake pkg-config nasm \ + build-essential clang libclang-dev cmake pkgconf nasm \ git curl zip unzip tar python3 dpkg-dev \ libpipewire-0.3-dev libspa-0.2-dev libjack-jackd2-dev \ libasound2-dev libpulse-dev libsndfile1-dev \ - libgl1-mesa-dev libgl1-mesa-dri mesa-vulkan-drivers \ + libgl-dev libglvnd-dev libgl1-mesa-dri mesa-vulkan-drivers \ libvulkan-dev libxkbcommon-dev libxkbcommon-x11-dev xvfb libdrm-dev \ icc-profiles-free gdb file librsvg2-bin patchelf fonts-dejavu-core \ autoconf autoconf-archive automake libtool diff --git a/docs/build.md b/docs/build.md index 31a65d038..52310af4d 100644 --- a/docs/build.md +++ b/docs/build.md @@ -151,7 +151,7 @@ Distribution packages are built in containers (no host dependencies beyond Docker/Podman): ```sh -tooling/package/build-deb.sh # Debian 12 → .deb +tooling/package/build-deb.sh # Debian 13 → .deb tooling/package/build-rpm.sh # Fedora 41 → .rpm tooling/package/build-pkg.sh # Arch Linux → .pkg.tar.zst ``` diff --git a/docs/zh/build.md b/docs/zh/build.md index ff6dcf21d..f6c262b60 100644 --- a/docs/zh/build.md +++ b/docs/zh/build.md @@ -133,7 +133,7 @@ Windows 构建目标是 **x86_64-pc-windows-gnu**,使用 MSYS2 自带 Rust; 发行版包在容器中构建(宿主机只需要 Docker/Podman): ```sh -tooling/package/build-deb.sh # Debian 12 → .deb +tooling/package/build-deb.sh # Debian 13 → .deb tooling/package/build-rpm.sh # Fedora 41 → .rpm tooling/package/build-pkg.sh # Arch Linux → .pkg.tar.zst ``` diff --git a/tooling/package/build-deb.sh b/tooling/package/build-deb.sh index 6129d41e9..418a756a6 100755 --- a/tooling/package/build-deb.sh +++ b/tooling/package/build-deb.sh @@ -59,8 +59,9 @@ install -m644 assets/i18n/*.yaml "$STAGING/usr/share/oak/i18n/" cp -a assets/icons/. "$STAGING/usr/share/oak/icons/" # vcpkg's libva/libva-drm are shared libraries that FFmpeg links -# dynamically. Debian 12 / openKylin carry an older libva than FFmpeg 8 -# expects (vaMapBuffer2), so ship vcpkg's copies next to the app and give +# dynamically. openKylin carries an older libva than FFmpeg 8 expects +# (vaMapBuffer2; Debian 13's 2.22 is new enough), so ship vcpkg's copies +# next to the app and give # the executables a relative RUNPATH (`$ORIGIN`) — a system libva can then # not shadow them. `VCPKG_LIB` is the vcpkg_installed//lib dir # (CD passes it; a local build without it just skips the bundle).