Repository navigation
Fewer and sturdier downloads - #837
Merged
Merged
Conversation
Owner
|
cairographics.org still having problems |
Owner
|
Thanks! |
Dummgelaufen007
added a commit
to Dummgelaufen007/static-ffmpeg
that referenced
this pull request
Oct 16, 2026
Dockerfile matches wader/static-ffmpeg master at 4a205f6. The variants take the same changes (wader#837): - WGET_OPTS with --connect-timeout=10 instead of --timeout=10 - cairo from the gitlab.freedesktop.org archive as .tar.gz - fdk-aac only built when ENABLE_FDKAAC is set, and dropped from versions.json otherwise - cargo cinstall --locked and theora over https in the clean variants Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
This PR makes the download chain survive transient server errors and stops the default build from fetching fdk-aac, which it does not link. Three small fixes come along: a failed checksum names its file,
cdno longer depends on how a glob sorts, andversions.jsonlistslibfdk-aaconly when it is linked. ffmpeg stays the same; the build just no longer does more than it is asked to.Retries and timeouts
WGET_OPTS(L67) already retries host errors and some HTTP status codes. Two cases still end the build at once or stall it:--retry-connrefusedis given.--connect-timeout=10retries such a server after 10 s;--tries=10bounds the attempts (wget's default is 20); 504 joins the retried status codes. See the wget download options.The read timeout stays at wget's 900 s on purpose. wget runs the TLS handshake under it (openssl.c#n856), and a handshake that times out ends as "Unable to establish SSL connection", which wget treats as fatal and does not retry (http.c#n4484). A connect timeout is retried (http.c#n4432).
A failed checksum names its file
Six recipes run
sha256sum --status -c -(glib L105, harfbuzz L124, cairo L139, pango L162, librsvg L179, vvenc L1062). With--statusa mismatch prints nothing and the step just exits 1. Without it, coreutilssha256sumprintsas all other recipes already do. libmodplug (L397) gets the
-the others have;sha256sum -creads stdin either way.cdinto the directory, not the archiveThe
RUNsteps run in busyboxash.cd ffmpeg*(L1090) matches bothffmpeg-9.0.2andffmpeg.tar.bz2,cd libssh*(L664) bothlibssh-0.12.2andlibssh.tar.gz.ashtakes the first match, which is the directory only because-sorts before..ffmpeg-*andlibssh-*match the directory alone;shine*(L599) becomesshine-*to follow the same pattern.theora over https
THEORA_URL(L732) moves fromhttptohttps; the server delivers the same file, the checksum is unchanged. The archive is a.tar.gzand is now saved under that name instead oflibtheora.tar.bz2;tardetected the format either way.cairo from GitLab
CAIRO_URL(L135) points to cairographics.org, which has been failing since 2026-10-14: the TLS handshake is reset or never completes, so wget ends with "Unable to establish SSL connection", a fatal error it does not retry. Every CI run of this PR stopped there (run). The recipe now fetches the tag archive from the project's GitLab, where the bump line already points. Unpacked, it is identical to the release tarball (same 4949 files,diff -rempty); the archive is a.tar.gz, so it is saved ascairo.tar.gzand has a new checksum.rav1e builds with its own
Cargo.lockThe rav1e release archive ships a
Cargo.lock. Without--locked, cargo may resolve and update it during the build, so the crates fetched can drift from the ones rav1e released with. With--locked(L556) cargo uses the lock file as it is and stops if it would have to change it (cargo--locked, passed through by cargo-c). All 85 crates the build downloads already carry the versions of the lock file, so the result is the same.fdk-aac only when it is linked
ffmpeg links fdk-aac only with
ENABLE_FDKAACset (L1091), but the recipe (L320-L335) downloads and builds it in every build. The default build thus depends on one more GitHub archive download it does not use, andversions.jsonlistslibfdk-aacfor a binary that does not contain it.ARG ENABLE_FDKAAC=moves from the ffmpeg section (L1081) to the fdk-aac recipe; it stays in scope for the ffmpeg step.RUNis wrapped inif [[ -n "$ENABLE_FDKAAC" ]]; then … fi, the same test the ffmpeg step uses.versions.jsondropslibfdk-aacwhenENABLE_FDKAACis empty.With
ENABLE_FDKAACset, the build is unchanged.Changes
WGET_OPTS--tries=10 --connect-timeout=10 --retry-connrefused, status 504sha256sum --status -c -becomessha256sum -c -sha256sum -cbecomessha256sum -c -cd ffmpeg*,libssh*,shine*becomeffmpeg-*,libssh-*,shine-*httpsURL, saved aslibtheora.tar.gzcairo.tar.gz, new checksumcargo cinstall --release --lockedENABLE_FDKAAC;ARG ENABLE_FDKAAC=moved to its recipeversions.jsonlibfdk-aaconly withENABLE_FDKAACChecked
In
alpine:3.24.2:httpswith the newWGET_OPTSpasses the existing checksum.cd ffmpeg*andcd libssh*next to the archive enter the directory;sha256sum --status -c -prints nothing on a mismatch,sha256sum -c -prints the lines above.rav1e-0.8.1/Cargo.lock.Research and wording by Claude (Anthropic), directed and reviewed by me.