Repository navigation
Portable statically linked Linux binary (2.0.1) - #10
Merged
Merged
Conversation
Releases can now ship a prebuilt binary that runs on any x86-64 Linux with glibc 2.31 or newer. - packaging/build-static-deps.sh builds FFmpeg 9.0 and its libraries (dav1d, Mbed TLS, libva, libdrm, nv-codec-headers, zlib) as static libraries from checksummed sources, and collects their licenses. - -DNDISTREAMER_STATIC=ON links them, together with libstdc++, libgcc and libatomic, so only glibc stays dynamic. glibc has to stay dynamic because the NDI runtime is loaded with dlopen. - packaging/package.sh checks that only glibc is needed, then builds the release archive with third-party notices, license texts and a tarball of the exact third-party sources (LGPLv3 for FFmpeg). - The release workflow builds the binary in an Ubuntu 20.04 container, runs the test suite against it, smoke-tests it on Ubuntu, Debian, Rocky Linux, Fedora and Arch, and attaches it to the release. - FFmpeg built with Mbed TLS has no default CA store, so HTTPS inputs now use the system CA bundle unless -o ca_file is given. Bumps the version to 2.0.1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
FFmpeg 9's x86 assembly does not assemble with nasm 2.14 (Ubuntu 20.04), so build-static-deps.sh now builds a pinned nasm 2.16.03 first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Debian 11 is end-of-life and its security mirror no longer serves the packages the test installs. Ubuntu 20.04 still covers the glibc 2.31 baseline. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lowlevelmetal
added a commit
that referenced
this pull request
Oct 3, 2026
Portable statically linked Linux binary (2.0.1)
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.
Summary
dlopen.packaging/build-static-deps.shbuilds the libraries from SHA-256-pinned sources.-DNDISTREAMER_STATIC=ONlinks them in.packaging/package.shchecks the binary only needs glibc, then creates the archive with third-party notices, license texts, and a tarball of the exact third-party sources (LGPLv3 compliance)..github/workflows/release.yml): builds the binary in an Ubuntu 20.04 container, runs the test suite against it, smoke-tests it on Ubuntu 20.04, Debian 11, Rocky Linux 9, Fedora and Arch, and attaches it to published releases. On this PR it builds and tests without publishing.-o ca_file=...is given.Testing
readelfshows onlylibc,libmandld-linuxare needed;🤖 Generated with Claude Code