Skip to content

feat!: ship receiver-only .deb; deprecate C sender (replaced by srtla-send-rs) - #28

Merged
andrescera merged 1 commit into
mainfrom
feat/receiver-only-deb
Jun 13, 2026
Merged

feat!: ship receiver-only .deb; deprecate C sender (replaced by srtla-send-rs)#28
andrescera merged 1 commit into
mainfrom
feat/receiver-only-deb

Conversation

@andrescera

Copy link
Copy Markdown
Member

Affected repo & language: srtla — CMake/C++ build + CI (GitHub Actions), docs

What

The srtla package becomes receiver-only: it now installs srtla_rec only. The C srtla_send is dropped from the install/package payload — the CMake install() rule no longer lists it, and the FPM .deb step no longer ships the srtla-send.service systemd unit. The C sender source and its full GTest suite stay in-tree and still build and run; only packaging changes. Docs (AGENTS.md, README.md) mark the C sender deprecated and point to srtla-send-rs for the sender binary.

Why

Per ADR-003, the device-side sender has moved to the Rust fork srtla-send-rs (v1.0.0 released), which is CLI- and telemetry-compatible. Shipping the C srtla_send alongside it would double-provide /usr/bin/srtla_send and conflict with the fork's package. Making srtla receiver-only lets the two packages coexist cleanly on the device image: srtla provides srtla_rec, srtla-send-rs provides srtla_send. The C sender is retained in the tree as the protocol reference and to keep the compat harness' C-sender pairs runnable (Rule E — no tests deleted).

How to verify

  • Payload (receiver-only): build the .deb the way publish-release.yml does and list it:
    cmake -B build-pkg -DCMAKE_BUILD_TYPE=Release -DSRTLA_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr
    cmake --build build-pkg -j"$(nproc)"
    DESTDIR=$PWD/install cmake --install build-pkg
    fpm -s dir -t deb -n srtla -v 0.0.0 -a amd64 -p srtla.deb install/usr/=/usr/
    dpkg -c srtla.deb            # → ./usr/bin/srtla_rec present; NO srtla_send; no srtla-send.service
  • Tests stay green / sender still builds: a normal build still produces both binaries and the suite is intact:
    cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j"$(nproc)"
    ls build/srtla_send build/srtla_rec      # both present (target retained)
    (cd build && ctest --output-on-failure)  # 178/178 across the 19 test_*.cpp suites

Risks

  • Device image must also install srtla-send-rs to get a sender — srtla alone no longer provides one. This is the planned cutover (ADR-003); the fork's .deb already Conflicts/Replaces: srtla (<< <cutover-version>), and that bound must be set to this receiver-only srtla release's version so the packages coexist.
  • No receiver code, no protocol/wire, and no TS bindings change. Rollback is a one-line revert of the install() rule and the FPM payload line.

…-send-rs)

The srtla package now installs srtla_rec only. The C srtla_send is dropped
from the install/package payload (CMake install rule + FPM systemd unit) but
remains in-tree as a build target exercised by the full GTest suite. The
device-side sender moves to srtla-send-rs (ADR-003).
@andrescera
andrescera merged commit f411648 into main Jun 13, 2026
13 checks passed
@andrescera
andrescera deleted the feat/receiver-only-deb branch July 17, 2026 17:46
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.

1 participant