~ruther/guix-local

733fc8ecebe7ddfa8ad65514fd3cac690d074324 — Andreas Enge 4 months ago 4a47e22
gnu: vlc: Fix build with newer livemedia-utils.

This is a follow-up to commit 4be2dc6bd32f6a99b53580aea3c4ab3968801b52 .

* gnu/packages/patches/vlc-livemedia-2024.11.28.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register patch.
* gnu/packages/video.scm (vlc)[source]: Use patch.

Fixes: guix/guix#4579
Change-Id: Ibee73a199f0d47324d30839a6a6f00b71a72a000
3 files changed, 48 insertions(+), 1 deletions(-)

M gnu/local.mk
A gnu/packages/patches/vlc-livemedia-2024.11.28.patch
M gnu/packages/video.scm
M gnu/local.mk => gnu/local.mk +1 -0
@@ 2441,6 2441,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/vcmi-disable-privacy-breach.patch	\
  %D%/packages/patches/vinagre-newer-freerdp.patch             \
  %D%/packages/patches/vinagre-newer-rdp-parameters.patch      \
  %D%/packages/patches/vlc-livemedia-2024.11.28.patch          \
  %D%/packages/patches/vsearch-unbundle-cityhash.patch		\
  %D%/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch	\
  %D%/packages/patches/vte-CVE-2012-2738-pt1.patch			\

A gnu/packages/patches/vlc-livemedia-2024.11.28.patch => gnu/packages/patches/vlc-livemedia-2024.11.28.patch +45 -0
@@ 0,0 1,45 @@
From upstream vlc.

From 8befcbfa834b809602db24c9ba7456d8cfc25cdb Mon Sep 17 00:00:00 2001
From: Florian Albrechtskirchinger <falbrechtskirchinger@gmail.com>
Date: Sun, 2 Mar 2025 08:30:43 +0100
Subject: [PATCH] live555: fix build with versions >= 2024.11.28

In the 2024.11.28 release (version 1732752000), live555 introduced
`EventLoopWatchVariable` as a typedef for `std::atomic<char>`, replacing
direct use of `char` in earlier versions. Add a conditional typedef to
define it as `char` for older versions, and update `event_rtsp` and
`event_data` to use `EventLoopWatchVariable`.
---
 modules/access/live555.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/modules/access/live555.cpp b/modules/access/live555.cpp
index 461766661e..cacea3c469 100644
--- a/modules/access/live555.cpp
+++ b/modules/access/live555.cpp
@@ -194,6 +194,10 @@ class RTSPClientVlc;
 #define CAP_SUBSESSION_PAUSE    (1 << 3)
 #define CAPS_DEFAULT            CAP_RATE_CONTROL
 
+#if LIVEMEDIA_LIBRARY_VERSION_INT < 1732752000 // 2024.11.28
+typedef char EventLoopWatchVariable;
+#endif
+
 struct demux_sys_t
 {
     char            *p_sdp;    /* XXX mallocated */
@@ -232,8 +236,8 @@ struct demux_sys_t
     bool             b_no_data;     /* if we never received any data */
     int              i_no_data_ti;  /* consecutive number of TaskInterrupt */
 
-    char             event_rtsp;
-    char             event_data;
+    EventLoopWatchVariable event_rtsp;
+    EventLoopWatchVariable event_data;
 
     bool             b_get_param;   /* Does the server support GET_PARAMETER */
     bool             b_paused;      /* Are we paused? */
-- 
2.52.0


M gnu/packages/video.scm => gnu/packages/video.scm +2 -1
@@ 2473,7 2473,8 @@ media, 2D/3D graphics and ECMAScript.")
                    "/vlc-" version ".tar.xz"))
              (sha256
               (base32
                "1c7vbbicx95nymrybgvd2d3p65q0wayhpvsx9ncs1vpsglfvxnr4"))))
                "1c7vbbicx95nymrybgvd2d3p65q0wayhpvsx9ncs1vpsglfvxnr4"))
              (patches (search-patches "vlc-livemedia-2024.11.28.patch"))))
    (build-system gnu-build-system)
    (native-inputs
     (list flex bison gettext-minimal pkg-config))