ci: fix the vcpkg ffmpeg manifest feature and pin

vcpkg resolves the ffmpeg dependency before anything builds and rejects
the manifest because the pinned 8.1.2#3 port has no `png` feature
("ffmpeg@8.1.2#3 does not have required feature png needed by oak"),
so every desktop job died in "Install dependencies (vcpkg manifest)"
and never reached the build or test steps.

PNG decoding in FFmpeg needs zlib (png_decoder_deps=zlib); libpng is
only the encoder backend and this port never enables it. Request
`zlib` instead.

Also point the stale comments/docs at the actual pin: the override is
8.1.2#3 (matching the ffmpeg-next 8.x binding after the 9.0.0 binding
was found broken upstream), not 9.0.1#1.
This commit is contained in:
2026-09-24 12:43:29 +08:00
parent eddfeb59b4
commit 7a9e11b729
3 changed files with 5 additions and 5 deletions
+1 -1
View File
@@ -60,7 +60,7 @@ jobs:
# vcpkg (manifest mode) + caches
# ------------------------------------------------------------------
# The runner has no vcpkg preinstalled; bootstrap a fresh clone.
# The manifest at the repo root pins the dependency set (FFmpeg 9.0.1
# The manifest at the repo root pins the dependency set (FFmpeg 8.1.2
# via `overrides`, everything else via `builtin-baseline`) and the
# resolved tree lands in vcpkg_installed/.
- name: Bootstrap vcpkg
+2 -2
View File
@@ -39,7 +39,7 @@ macOS, Linux, and Windows. For the Chinese version see
- **CI/CD uses the vcpkg manifest instead of `build-ffmpeg.sh`.** Every
desktop job runs `vcpkg install --triplet <x64-windows | x64-linux |
arm64-osx | arm64-linux>` against the repo-root `vcpkg.json`, which
pins FFmpeg to **9.0.1#1** (`overrides`) and every other port through
pins FFmpeg to **8.1.2#3** (`overrides`) and every other port through
`builtin-baseline`; the tree lands in `vcpkg_installed/<triplet>` and
jobs point `FFMPEG_DIR`/`PKG_CONFIG_PATH` at it. The C/C++ libraries
outside that set (OCIO is vendored, the rest come from the system
@@ -97,7 +97,7 @@ cargo test --workspace # Linux: see "headless tests" below
> **CI/CD note**: the GitHub Windows CI/CD no longer uses this path — it
> builds MSVC-ABI on `warp-windows-2025-vs2026-x64-16x` with vcpkg
> manifest mode (`vcpkg.json` at the repo root: FFmpeg 9.0.1 with every
> manifest mode (`vcpkg.json` at the repo root: FFmpeg 8.1.2 with every
> free codec + hwaccel, pkgconf, librsvg, all pinned by
> `overrides`/`builtin-baseline`) and the vendored static OCIO. The
> MSYS2 flow below remains the documented local-build alternative.
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "oak",
"version": "0.5.0",
"$comment": "FFmpeg (+ pkgconf, librsvg on Windows) for every desktop platform CI/CD builds — Linux, macOS and Windows — with the project's feature set (every free codec + hwaccel, mirroring tooling/ffmpeg/build-ffmpeg.sh's configure switches). Local builds may keep using tooling/install-deps.sh + tooling/ffmpeg/build-ffmpeg.sh. ffmpeg is pinned to 9.0.1#1 via overrides; builtin-baseline pins the rest of the port tree.",
"$comment": "FFmpeg (+ pkgconf, librsvg on Windows) for every desktop platform CI/CD builds — Linux, macOS and Windows — with the project's feature set (every free codec + hwaccel, mirroring tooling/ffmpeg/build-ffmpeg.sh's configure switches). Local builds may keep using tooling/install-deps.sh + tooling/ffmpeg/build-ffmpeg.sh. ffmpeg is pinned to 8.1.2#3 via overrides (matching the ffmpeg-next 8.x binding); builtin-baseline pins the rest of the port tree.",
"builtin-baseline": "771b0a2e7c473c3a6bee56553be4d5bb32bb653c",
"dependencies": [
{
@@ -15,7 +15,7 @@
"vpx",
"openh264",
"openjpeg",
"png",
"zlib",
"theora",
"webp",
"mp3lame",