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

  • Done
  • quality assurance status badge
Details
2 participants
  • Christopher Baines
  • Simon South
Owner
unassigned
Submitted by
Simon South
Severity
normal

Debbugs page

Simon South wrote 3 years ago
(address . guix-patches@gnu.org)
cover.1656784965.git.simon@simonsouth.net
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, ffmpeg@4.4.2, ffmpeg@5.0.1,
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:


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:


[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.


[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
Simon South wrote 3 years ago
[PATCH 4/6] gnu: Remove srt-1.4.1.
(address . 56361@debbugs.gnu.org)
40e9f111d35bda2cf7e0ae572fad65b1c83b1752.1656784965.git.simon@simonsouth.net
* gnu/packages/networking.scm (srt-1.4.1): Delete variable.
---
gnu/packages/networking.scm | 18 ------------------
1 file changed, 18 deletions(-)

Toggle diff (31 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index a312e461d5..b26ef100f6 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -499,24 +499,6 @@ (define-public srt
(home-page "https://www.srtalliance.org/")
(license license:mpl2.0)))
-;; FFmpeg, GStreamer, and VLC don't support SRT 1.4.2 yet.
-(define-public srt-1.4.1
- (package
- (inherit srt)
- (name "srt")
- (version "1.4.1")
- (source
- (origin
- (method git-fetch)
- (uri
- (git-reference
- (url "https://github.com/Haivision/srt")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "01xaq44j95kbgqfl41pnybvqy0yq6wd4wdw88ckylzf0nzp977xz"))))))
-
(define-public lksctp-tools
(package
(name "lksctp-tools")
--
2.36.1
Simon South wrote 3 years ago
[PATCH 3/6] gnu: vlc: Use regular srt.
(address . 56361@debbugs.gnu.org)
1de7cac6510317a9ff9be0d2e8747e62419f3455.1656784965.git.simon@simonsouth.net
* gnu/packages/video.scm (vlc)[inputs]: Use regular srt package, supported
since upstream commit 9a28929.
---
gnu/packages/video.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (16 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 40c31cdaec..91ccbc14ae 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1974,8 +1974,7 @@ (define-public vlc
("sdl-image" ,sdl-image)
("speex" ,speex)
("speexdsp" ,speexdsp)
- ;; VLC is not yet compatible with SRT > 1.4.1.
- ("srt" ,srt-1.4.1)
+ ("srt" ,srt)
("taglib" ,taglib)
("twolame" ,twolame)
("unzip" ,unzip)
--
2.36.1
Simon South wrote 3 years ago
[PATCH 2/6] gnu: srt: Update to 1.4.4.
(address . 56361@debbugs.gnu.org)
a1faef7629fcb0eefa69aa7101a6a157e6989b2e.1656784965.git.simon@simonsouth.net
* gnu/packages/networking.scm (srt): Update to 1.4.4.
---
gnu/packages/networking.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 82e209b149..a312e461d5 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -469,7 +469,7 @@ (define-public slurm-monitor
(define-public srt
(package
(name "srt")
- (version "1.4.3")
+ (version "1.4.4")
(source
(origin
(method git-fetch)
@@ -479,7 +479,7 @@ (define-public srt
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1f60vlfxhh9bhafws82c3301whjlz5gy92jz9a9ymwfg5h53bv1j"))))
+ (base32 "1zr1l9zkai7rpw9cn5j9h4zrv08hgpfmwscwyscf2j4cgwf0rxrr"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
--
2.36.1
Simon South wrote 3 years ago
[PATCH 1/6] gnu: srt: Remove input labels.
(address . 56361@debbugs.gnu.org)
2bd6d5befda130372b596e955ee39685f1bdc3b3.1656784965.git.simon@simonsouth.net
* gnu/packages/networking.scm (srt)[native-inputs]: Remove input labels.
---
gnu/packages/networking.scm | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

Toggle diff (17 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ef8c09a777..82e209b149 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -490,9 +490,7 @@ (define-public srt
"-DENABLE_STATIC=OFF"
"-DENABLE_UNITTESTS=ON")))
(native-inputs
- `(("gtest" ,googletest)
- ("pkg-config" ,pkg-config)
- ("tclsh" ,tcl)))
+ (list googletest pkg-config tcl))
(propagated-inputs
(list openssl))
(synopsis "Secure Reliable Transport")
--
2.36.1
Simon South wrote 3 years ago
[PATCH 5/6] gnu: vlc: Remove input labels.
(address . 56361@debbugs.gnu.org)
a2e31574be34a9e95706dd9281c818568b4ab75d.1656784965.git.simon@simonsouth.net
* gnu/packages/video.scm (vlc)[native-inputs]: Remove input labels.
[inputs]: Remove input labels and re-sort.
---
gnu/packages/video.scm | 153 ++++++++++++++++++++---------------------
1 file changed, 75 insertions(+), 78 deletions(-)

Toggle diff (168 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 91ccbc14ae..ac2c0d986b 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1902,86 +1902,83 @@ (define-public vlc
"0cs1vnv91mg7p6253v6wms3zlz91xzphpwaw14dmrd2gibc64nlc"))))
(build-system gnu-build-system)
(native-inputs
- `(("flex" ,flex)
- ("bison" ,bison)
- ("gettext" ,gettext-minimal)
- ("pkg-config" ,pkg-config)))
+ (list flex bison gettext-minimal pkg-config))
;; FIXME: Add optional inputs once available.
(inputs
- `(("alsa-lib" ,alsa-lib)
- ("avahi" ,avahi)
- ("dav1d" ,dav1d)
- ("dbus" ,dbus)
- ("eudev" ,eudev)
- ("flac" ,flac)
- ("ffmpeg" ,ffmpeg)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("fribidi" ,fribidi)
- ("gnutls" ,gnutls)
- ("liba52" ,liba52)
- ("libarchive" ,libarchive)
- ("libass" ,libass)
- ("libavc1394" ,libavc1394)
- ("libbluray" ,libbluray)
- ("libcaca" ,libcaca)
- ("libcddb" ,libcddb)
- ("libdca" ,libdca)
- ("libdvbpsi" ,libdvbpsi)
- ("libdvdnav" ,libdvdnav)
- ("libdvdread" ,libdvdread)
- ("libebml" ,libebml)
- ("libgcrypt" ,libgcrypt)
- ("libidn" ,libidn)
- ("libkate" ,libkate)
- ("libmad" ,libmad)
- ("libmatroska" ,libmatroska)
- ("libmicrodns" ,libmicrodns)
- ("libmodplug" ,libmodplug)
- ("libmpeg2" ,libmpeg2)
- ("libogg" ,libogg)
- ("libpng" ,libpng)
- ("libraw1394" ,libraw1394)
- ("librsvg" ,(librsvg-for-system))
- ("libsamplerate" ,libsamplerate)
- ("libsecret" ,libsecret)
- ("libssh2" ,libssh2)
- ("libupnp" ,libupnp)
- ("libva" ,libva)
- ("libvdpau" ,libvdpau)
- ("libvorbis" ,libvorbis)
- ("libvpx" ,libvpx)
- ("libtheora" ,libtheora)
- ("libx264" ,libx264)
- ("libxext" ,libxext)
- ("libxi" ,libxi)
- ("libxinerama" ,libxinerama)
- ("libxml2" ,libxml2)
- ("libxpm" ,libxpm)
- ("livemedia-utils" ,livemedia-utils)
- ("lua" ,lua-5.2)
- ("mesa" ,mesa)
- ("opus" ,opus)
- ("perl" ,perl)
- ("pulseaudio" ,pulseaudio)
- ("protobuf" ,protobuf)
- ("python" ,python-wrapper)
- ("qtbase" ,qtbase-5)
- ("qtsvg" ,qtsvg)
- ("qtx11extras" ,qtx11extras)
- ("samba" ,samba)
- ("sdl" ,sdl)
- ("sdl-image" ,sdl-image)
- ("speex" ,speex)
- ("speexdsp" ,speexdsp)
- ("srt" ,srt)
- ("taglib" ,taglib)
- ("twolame" ,twolame)
- ("unzip" ,unzip)
- ("wayland" ,wayland)
- ("wayland-protocols" ,wayland-protocols)
- ("x265" ,x265)
- ("xcb-util-keysyms" ,xcb-util-keysyms)))
+ (list alsa-lib
+ avahi
+ dav1d
+ dbus
+ eudev
+ ffmpeg
+ flac
+ fontconfig
+ freetype
+ fribidi
+ gnutls
+ liba52
+ libarchive
+ libass
+ libavc1394
+ libbluray
+ libcaca
+ libcddb
+ libdca
+ libdvbpsi
+ libdvdnav
+ libdvdread
+ libebml
+ libgcrypt
+ libidn
+ libkate
+ libmad
+ libmatroska
+ libmicrodns
+ libmodplug
+ libmpeg2
+ libogg
+ libpng
+ libraw1394
+ (librsvg-for-system)
+ libsamplerate
+ libsecret
+ libssh2
+ libtheora
+ libupnp
+ libva
+ libvdpau
+ libvorbis
+ libvpx
+ libx264
+ libxext
+ libxi
+ libxinerama
+ libxml2
+ libxpm
+ livemedia-utils
+ lua-5.2
+ mesa
+ opus
+ perl
+ protobuf
+ pulseaudio
+ python-wrapper
+ qtbase-5
+ qtsvg
+ qtx11extras
+ samba
+ sdl
+ sdl-image
+ speex
+ speexdsp
+ srt
+ taglib
+ twolame
+ unzip
+ wayland
+ wayland-protocols
+ x265
+ xcb-util-keysyms))
(arguments
`(#:configure-flags
`("BUILDCC=gcc"
--
2.36.1
Simon South wrote 3 years ago
[PATCH 6/6] gnu: vlc: Add bash-minimal as an input.
(address . 56361@debbugs.gnu.org)
5f6432f67a5324b1fc1ce18108482e7bd4132ae5.1656784965.git.simon@simonsouth.net
* gnu/packages/video.scm (vlc)[inputs]: Add bash-minimal, silencing a warning
from "guix lint vlc" as "wrap-program" is used in the package definition.
---
gnu/packages/video.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (14 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index ac2c0d986b..69886581d8 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1907,6 +1907,7 @@ (define-public vlc
(inputs
(list alsa-lib
avahi
+ bash-minimal
dav1d
dbus
eudev
--
2.36.1
Christopher Baines wrote 3 years ago
Re: [bug#56361] gnu: srt: Update to 1.4.4 (fix test failure on AArch64)
(name . Simon South)(address . simon@simonsouth.net)(address . 56361-done@debbugs.gnu.org)
87let4jydu.fsf@cbaines.net
Simon South <simon@simonsouth.net> writes:

Toggle quote (93 lines)
> 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, ffmpeg@4.4.2, ffmpeg@5.0.1,
> 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
-----BEGIN PGP SIGNATURE-----

iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmLHbC1fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh
aW5lcy5uZXQACgkQXiijOwuE9XfTVw/+OZc2c+3KcRWzjiItu2lidj2yeMLGHAtN
N7DCVu4Z24qKkaYFapCTjwfygyMstRqkqsKEnDpvS77cHVyahK93QsQ+9MzVJDSX
7MaPCq/y9efuSDJ9zK+D10VDGbpnYkUqLKkky+PEI6xRpQcTmqS7Aey/OCJE/0h5
hgginIfpeVrHB79QVZn3FajZ6Kkq6VJAQX8q7PHmBMXgVz3RXpJKRn8eejd2cD/l
aW+U/pPqj8eH+aqnd5itg3lzhHzC9r5u0+AcosGs6l1h+Bz4xBz8yyQbPym3MxRA
gvchCs6CyGnl5A+FwPNcuwpsvmxa33FPKmX1iXVn5ZBYR6tnlNP7gzed4TRWod1p
GBjAPFibAm3F0soLzljLD7NYDQU59u7Jdl577QYaeJWRapo9HXFER/sCMaW6CvUD
8WFmYL8wwcyCnKTuR+584kgMg5iaT2kgeWrbE1i9+MTvo5bCVT2D2txSZwepWHSr
en2IBvf/ZEAyaZGLqKRU+OJE5bBHOm8qL+SKMnbbcjxvgoZGoTwf9JOM35sfitnm
snbj7pgt7J/2RWIlj/JJgisOdtCxDGBi7Q5ya/XggE7VaSFxOvvNpEYZppclqshg
ax/nAXhhncF01FK/y5Eyr5JmizcqR0F4ctvIZjsw/rlSb8eelMLxkh4Nd96ecs8/
ENnnk6cw1n0=
=v12r
-----END PGP SIGNATURE-----

Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 56361@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 56361
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help