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:
@@ -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
@@ -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
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user