Subject: Re: [bug#56361] gnu: srt: Update to 1.4.4 (fix test failure on AArch64)

From: Christopher Baines <[email-masked]>
Date: Fri, 08 Jul 2022 00:20:14 +0100

Simon South <[email-masked]> writes:

> Here's a patch series that
>
> - Updates SRT, the "Secure Reliable Transport" for audio/video streams, to
>   1.4.4, fixing a test failure on AArch64 and likely other non-Intel/AMD
>   platforms[0];
>
> - Updates the srt package itself to remove input labels;
>
> - Updates the vlc package to use the now-current version of SRT instead of an
>   older version[1];
>
> - Removes that older (and now unnecessary) version of srt from the package
>   repository; and
>
> - Updates the vlc package to remove input labels and to add "bash-minimal" to
>   its inputs, silencing a warning from "guix lint".
>
> I'm aware SRT 1.5.0 is also available, but
>
> - Version 1.4.4 is the latest version supported by VLC;
>
> - Version 1.5.0 introduces API/ABI changes that are likely to cause problems
>   elsewhere; and
>
> - I just need to get my systems updating again.  (I can look at submitting
>   another patchset later.)
>
> I've tested these patches on x86-64 and AArch64 and in general, everything
> looks fine.
>
> With regards to SRT's immediate dependents, [email-masked], [email-masked],
> gst-plugins-bad and and vlc:
>
> - All four dependents build without issue on x86-64.
>
> - On AArch64, VLC and the two FFmpeg packages build just fine.  Building
>   gst-plugins-bad means building the entire Rust toolchain and potentially
>   other packages that are infeasible to build on garden-variety AArch64
>   hardware, so I haven't been able to test this.
>
> - Nonetheless I've verified that on both architectures, VLC built with these
>   patches connects to and plays a SRT video stream just fine.[2]
>
> On x86-64 I've tested building all of SRT's 299 dependent packages and this
> completes without any _new_ build failures: ams-lv2, dvdstyler, lv2-mda-piano
> and lv2-mda-epiano are all currently broken on x86-64, and it appears my
> system is unable to build curl 7.84.0 for i686-linux either with or without
> these patches applied.
>
> [0] The failure involves an unnecessarily-short timeout period in the
>     "SyncEvent.WaitForTwoNotifyOne" unit test, which was adjusted in upstream
>     commit e2a00aa:
>
>     https://github.com/Haivision/srt/commit/e2a00aa03a36e153ab8cfe2c0790f7bf43747d8d
>
>     It's unlikely this affects only AArch64.  A Debian developer notes in this
>     GitHub issue that SRT test failures are common on other, older and mostly
>     non-Intel/AMD architectures as well:
>
>     https://github.com/Haivision/srt/issues/2267
>
> [1] VLC was updated to build with SRT version 1.4.4 by default in upstream
>     commit 9a28929 this past February, making the comment above the srt-1.4.1
>     package (in gnu/packages/networking.scm) obsolete.  Since neither of the
>     other packages mentioned still use this older version of SRT, nor does any
>     other, the package is no longer needed.
>
>     https://code.videolan.org/videolan/vlc/-/commit/9a289291d01a393294c62ee7406487f59e25f4ed
>
> [2] I'd also like to verify that VLC can _output_ a video stream using SRT but
>     despite an "SRT" output-access module appearing in the configuration
>     settings I can't see how this is meant to work, using either the original
>     or the patched build of VLC.  If anyone relies on this functionality and
>     can give me straightforward instructions for testing it I'll be happy to
>     do so before this patch series is committed.
>
> ---
>
> Simon South (6):
>   gnu: srt: Remove input labels.
>   gnu: srt: Update to 1.4.4.
>   gnu: vlc: Use regular srt.
>   gnu: Remove srt-1.4.1.
>   gnu: vlc: Remove input labels.
>   gnu: vlc: Add bash-minimal as an input.
>
>  gnu/packages/networking.scm |  26 +-----
>  gnu/packages/video.scm      | 155 ++++++++++++++++++------------------
>  2 files changed, 79 insertions(+), 102 deletions(-)
>
>
> base-commit: 48ff4bfcd7491c12248b34a82e0b8e8a50a86308

Thanks for the really comprehensive testing and notes Simon, the patches
look good too.

I've gone ahead and pushed these in the following commits:

  7dfb8dc4c1 * gnu: vlc: Add bash-minimal as an input.
  f53e14be33 * gnu: vlc: Remove input labels.
  07986d0fad * gnu: Remove srt-1.4.1.
  6b9d373083 * gnu: vlc: Use regular srt.
  5feeb51f1b * gnu: srt: Update to 1.4.4.
  70f3914c24 * gnu: srt: Remove input labels.

Thanks again,

Chris