Debian Patches

Status for librist/0.2.18+dfsg-1

Patch Description Author Forwarded Bugs Origin Last update
system_cJSON.patch Ensure to only reference system cJSON during build
===================================================================
Florian Ernst <florian@debian.org> not-needed
expect_multicast_tests_to_fail.patch We cannot assume to have multicast traffic allowed in the build hosts
===================================================================
Florian Ernst <florian@debian.org> not-needed
28b1cfc617d12a605a34ea9060102334cd86fe95.patch fix(receiver): clear stale clock-drift samples on a framing-baseline reset (#218)

When an Advanced flow upgrades from Main to Advanced wire framing
mid-stream, the two framings carry source_time in different timestamp
domains, so the switch resets the flow timing baseline. That reset
re-derived time_offset but left the clock-drift sample buffer full of
stale Main-domain samples. The next median recalculation then jumped
the offset by several seconds and released the whole receiver buffer at
once, overflowing the data-out fifo. Because test_send_receive treats
any ERROR-level log as fatal at 0% loss, the single "Rist data out fifo
queue overflow" line failed the advanced+unicast+client tests, most
reproducibly on slower build hosts.

Clear the drift samples on the baseline reset, matching the existing
clock-wrap reset path.

Thanks to Florian Ernst for the detailed report and build logs.
Sergio Ammirata <sergio@ammirata.net> yes 2026-06-26
9791e5817d5deecdde5e8a5350ad32e8898c5d44.patch fix(ristsender): split the usage string under the C99 4095-char limit (#219)

Adding --blind-send to the help text pushed the single usage string
literal past the 4095-character limit C99 requires a compiler to
support, so a -Wpedantic -std=c99 -Werror build failed with
-Woverlength-strings. Split the help text into two literals printed
back to back; the output is unchanged.

Thanks to Florian Ernst for the report.
Sergio Ammirata <sergio@ammirata.net> yes 2026-06-26
9e0fe492c29c1f8ce762af959a281d431bfe32fc.patch rist: make recovery-depth maximum platform-aware (fix 32-bit test)

recovery-depth N sizes the Advanced retransmission ring to UINT16_SIZE << N
packets. RIST_RECOVERY_DEPTH_MAX is 16, i.e. 2^32 packets - the full 32-bit
sequence space. The ring is two parallel arrays (one rist_buffer* and one
uint32_t per slot), so 2^32 slots are only addressable when size_t is 64 bits.
On a 32-bit size_t the slot count overflows, rist_recovery_depth_apply()
correctly refused it (-2), and rist_recovery_depth_set() returned failure for
the documented maximum. The recovery_depth unit test, which expects set(200)
to clamp to the maximum and succeed, therefore failed on 32-bit targets; its
own DEPTH_PKTS(MAX) expectation also overflowed to 0.

Add rist_recovery_depth_platform_max() in rist-private.h: the largest exponent
whose ring (UINT16_SIZE << depth) fits SIZE_MAX / (sizeof(ptr) + sizeof(u32)).
On LP64 this is RIST_RECOVERY_DEPTH_MAX; on a 32-bit size_t it resolves lower
(depth 12). rist_recovery_depth_to_packets() now clamps to it - covering both
the public setter and the ?recovery-depth= / config apply path - so the result
is always representable. The setter logs when a request is capped. The unit
test uses the same shared helper for its expectation, so it tracks whatever
the platform supports.

apply()'s representability/OOM guard is kept as a safety net. No change on
64-bit, where the maximum is unchanged.

Fixes #222.
Sergio Ammirata <sergio@ammirata.net> yes 2026-06-29

All known versions for source package 'librist'

Links