fix(ci): re-piner le build ffmpeg BtbN, dont la release a été purgée - #215
Merged
Conversation
`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.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 :
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.0comprise, donc ce n'est le code de personne.Re-pinné sur
autobuild-2026-07-30-13-32, assetsn8.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) etSHARED_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.tomlettechnical-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
94138f6973ni deautobuild-2026-07-15dans 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:ffmpegne 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-nonfreeet sans--enable-libx264/libx265/libxvid, et le binaire se déclare « GNU Lesser General Public License ». Le contrôleffmpeg -L/-buildconf/-encodersdu 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.