feat(packaging): bundle SRT sample tools into libsrt1.5-ceralive#18
Merged
Merged
Conversation
Flip ENABLE_APPS=ON in the runtime package build so srt-live-transmit (plus srt-file-transmit and srt-tunnel) ship in /usr/bin. With ENABLE_STATIC=OFF they dynamically link the same shared libsrt.so.1.5 built here (GnuTLS), so no second SRT/TLS flavor is introduced. package-contract.sh locks ENABLE_APPS=ON + ENABLE_STATIC=OFF; the release workflow and verify-runtime-replacement.sh assert srt-live-transmit needs libsrt.so.1.5 and never libssl/libcrypto. A separate srt-tools package is impractical srt-side: the apt reindex downloads every .deb in a release tag and rejects any whose package name differs from the dispatched component, and its allowlist has no tools package. Bundling keeps the whole change inside this repo and uses the existing release + apt-reindex dispatch unchanged.
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.
What
Ship the SRT sample command-line tools inside the existing
libsrt1.5-ceraliveruntime package.
packaging/build-deb.shnow builds with-DENABLE_APPS=ON, so/usr/bin/srt-live-transmit(plussrt-file-transmitandsrt-tunnel) land inthe package. No new package, no new release/dispatch plumbing.
Why
The device path needs a first-party
srt-live-transmit(SRT↔UDP relay). Today theonly first-party SRT artifact is the shared library, and
build-deb.shforced-DENABLE_APPS=OFF, sosrt-live-transmitwas never built or published anywhere.A separate
srt-tools-ceralivepackage is impractical from this repo alone: theapt reindex (
apt-worker/scripts/reindex.sh) downloads every.debin a releasetag and hard-fails if any package name differs from the dispatched component, and
its allowlist has no tools package — so a separate package would require an
apt-worker change plus an image-pipeline entry. Bundling keeps the whole change
inside
srtand reuses the existinglibsrt1.5-ceralivecomponent, release, andapt-reindexdispatch unchanged. The package already shipped/usr/bin/srt-ffplayand dev headers, so it was never a pure shared-object package.
How to verify
Local (Docker
debian:bookworm, amd64) — all green:DEB_ARCH=amd64 packaging/build-deb.shbuilds the library + the three tools.packaging/package-contract.shpasses (now also assertsENABLE_APPS=ON+ENABLE_STATIC=OFF).packaging/verify-runtime-replacement.sh <deb>passes: Debianlibsrt1.5-gnutlsis replaced, GStreamer's
libgstsrt.soresolveslibsrt-gnutls.so.1.5, and theinstalled
srt-live-transmitlddresolves the samelibsrt.so.1.5with nolibssl/libcrypto.srt-live-transmitruns and reportsBuilt with SRT Library version: 1.5.5.objdump -p srt-live-transmitNEEDED =libsrt.so.1.5,libstdc++.so.6,libgcc_s.so.1,libc.so.6— no OpenSSL, no second libsrt.CI:
runtime-package.ymlexercises the packaging change on this PR.Risks
-DENABLE_STATIC=OFFmeans the toolsdynamically link the same shared
libsrt.so.1.5shipped here (GnuTLS viaUSE_ENCLIB=gnutls); no OpenSSL and no second libsrt are introduced.package-contract.shlocksENABLE_APPS=ON+ENABLE_STATIC=OFF, and both therelease workflow and
verify-runtime-replacement.shassert the no-OpenSSL /correct-libsrt linkage so this can't regress silently.
dependencies (the tools need only
libsrt,libstdc++,libc).srt-tools: none in practice — Debiansrt-toolsdepends onlibsrt1.5-gnutls, which this package alreadyConflicts/Replaces/Provides, so apt won't co-install them on the device.