Subject: gnu: srt: Update to 1.4.4 (fix test failure on AArch64)

From: Simon South <[email-masked]>
Date: Sat, 2 Jul 2022 15:07:29 -0400

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
-- 
2.36.1