Skip to content

fix(ci): re-piner le build ffmpeg BtbN, dont la release a été purgée - #215

Merged
EtienneLescot merged 1 commit into
release/v1.8.0from
fix/ci-repin-ffmpeg
Jul 30, 2026
Merged

fix(ci): re-piner le build ffmpeg BtbN, dont la release a été purgée#215
EtienneLescot merged 1 commit into
release/v1.8.0from
fix/ci-repin-ffmpeg

Conversation

@EtienneLescot

@EtienneLescot EtienneLescot commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

Le CI du dépôt est rouge sur toutes les branches depuis aujourd'hui ~13h28 UTC. L'étape « Vendor the pinned ffmpeg » échoue avant que cargo ne démarre :

> node scripts/fetch-ffmpeg.mjs
Downloading ffmpeg-n8.1.2-22-g94138f6973-win64-lgpl-8.1.zip
  from autobuild-2026-07-15-14-01
Download failed: 404 Not Found

BtbN ne conserve ses autobuilds qu'une quinzaine de jours. Le pin datait du 15 juillet et le tag a été purgé en cours de journée : les runs d'avant 13h23 passent, tous ceux d'après échouent — release/v1.8.0 comprise, donc ce n'est le code de personne.

Re-pinné sur autobuild-2026-07-30-13-32, assets n8.1.2-32-gcfa62de001 : même ffmpeg 8.1.2, dix commits plus loin sur la branche 8.1.

Six entrées, pas quatre

Le fichier prévient — « Tag, asset and digest move together. Re-pin all three or none. » — et il y a deux tables : PINNED (les binaires vendorisés, 4 plateformes) et SHARED_PINNED (le SDK auquel le crate compositeur se lie, 2 plateformes). Les six sont déplacées ensemble.

Le commit source est aussi cité en clair ailleurs, mis à jour pour ne pas désigner un artefact qui n'existe plus :

  • THIRD-PARTY-NOTICES.md — le point qui compte : c'est la conformité LGPL, la « corresponding source » doit désigner ce qui est réellement distribué ;
  • crates/.cargo/config.toml et technical-documentation/architecture/native-compositor.md, qui rappellent tous deux que l'addon doit être lié au build exact qui est shippé.

Après le commit, plus aucune occurrence de 94138f6973 ni de autobuild-2026-07-15 dans l'arbre.

Vérification

Les six URL renvoient 200, et le sha256 de chaque archive effectivement téléchargée correspond au digest posé dans le fichier — calculés sur les octets servis, jamais recopiés d'ailleurs.

npm run fetch:ffmpeg ne peut pas servir de contrôle ici : il sort en erreur sur darwin, BtbN ne publiant pas de build macOS. La licence a donc été vérifiée sur le binaire Linux, le seul inspectable depuis un Mac : ligne de configure sans --enable-gpl, sans --enable-nonfree et sans --enable-libx264/libx265/libxvid, et le binaire se déclare « GNU Lesser General Public License ». Le contrôle ffmpeg -L / -buildconf / -encoders du script rejoue de toute façon sur la plateforme cible en CI — c'est le job Windows de cette PR qui l'exercera pour de vrai.

Ça va recommencer

Le nouveau pin se re-périmera dans ~deux semaines, par construction : la source est une release purgée en continu. C'est un sursis, pas une solution. Les vraies sorties seraient de miroiter les archives quelque part de stable (release GitHub du dépôt, artefact, cache) ou de basculer sur une source qui ne purge pas. Hors périmètre de ce correctif, mais ça reviendra.

`npm run fetch:ffmpeg` échoue en 404 et met tout le CI au rouge avant même
d'atteindre cargo :

    Downloading ffmpeg-n8.1.2-22-g94138f6973-win64-lgpl-8.1.zip
      from autobuild-2026-07-15-14-01
    Download failed: 404 Not Found

BtbN ne conserve ses autobuilds qu'une quinzaine de jours. Le pin datait du
15 juillet ; le tag a été purgé aujourd'hui entre 13h23 et 13h28 UTC — les runs
d'avant passaient, tous ceux d'après échouent, sur `release/v1.8.0` comme sur les
branches qui en dérivent. Rien à voir avec le code : c'est une dépendance
extérieure qui a disparu sous le pin.

Re-pinné sur `autobuild-2026-07-30-13-32`, assets `n8.1.2-32-gcfa62de001` : le
MÊME ffmpeg 8.1.2, dix commits plus loin sur la branche 8.1.

Le fichier prévient : « Tag, asset and digest move together. Re-pin all three or
none. » Il y a en réalité DEUX tables — `PINNED` (les binaires vendorisés) et
`SHARED_PINNED` (le SDK auquel le crate compositeur se lie) — soit six entrées,
toutes déplacées ensemble. Le commit source est aussi cité en clair dans trois
autres fichiers, mis à jour pour ne pas désigner un artefact qui n'existe plus :

* `THIRD-PARTY-NOTICES.md` — le plus important : c'est la conformité LGPL, il doit
  pointer sur la source correspondant aux binaires réellement distribués ;
* `crates/.cargo/config.toml` et `technical-documentation/architecture/native-compositor.md`,
  qui rappellent tous deux que l'addon doit être lié au build exact qui est shippé.

Vérification. Les six URL renvoient 200, et le sha256 de chaque archive
effectivement téléchargée correspond au digest posé dans le fichier — digests
calculés sur les octets servis, pas recopiés. `npm run fetch:ffmpeg` ne peut pas
servir de contrôle ici : il sort en erreur sur darwin (BtbN ne publie pas de build
macOS). La licence, elle, a été vérifiée sur le binaire Linux, seul exécutable
inspectable depuis un Mac : ligne de configure sans `--enable-gpl` ni
`--enable-nonfree` ni `--enable-libx264/libx265/libxvid`, et le binaire se déclare
« GNU Lesser General Public License ». Le contrôle `ffmpeg -L` / `-buildconf` /
`-encoders` du script rejoue de toute façon sur la plateforme cible en CI.

À noter : le pin se re-périmera dans ~deux semaines, par construction. Tant que la
source est une release purgée périodiquement, ce correctif est un sursis, pas une
solution.
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ca4bdba3-318a-4a88-99ca-44537059ed99

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@EtienneLescot
EtienneLescot merged commit 7171903 into release/v1.8.0 Jul 30, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants