summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2019-11-02 21:10:40 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2019-11-02 21:13:43 +0100
commit520b18e6fa8415b9b8fc07611c3c885035739633 (patch)
tree8635c39dc0956149f749f1475121937a5543a3ac /gnu
parent837547cbb67730687dee2b50a6dea6236961cce6 (diff)
downloadguix-520b18e6fa8415b9b8fc07611c3c885035739633.tar.gz
gnu: vlc: Fix build.
* gnu/packages/patches/vlc-fix-test_libvlc_slaves.patch: New file.
* gnu/local.mk (dist_patch_DATA): Reference new file.
* gnu/packages/video.scm (vlc): Apply patch.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/vlc-fix-test_libvlc_slaves.patch35
-rw-r--r--gnu/packages/video.scm36
3 files changed, 57 insertions, 15 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 96b570a759..5fa97c7673 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1412,6 +1412,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/vinagre-newer-freerdp.patch             \
   %D%/packages/patches/vinagre-newer-rdp-parameters.patch      \
   %D%/packages/patches/virglrenderer-CVE-2017-6386.patch 	\
+  %D%/packages/patches/vlc-fix-test_libvlc_slaves.patch \
   %D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch		\
   %D%/packages/patches/vorbis-tools-CVE-2014-9640.patch		\
   %D%/packages/patches/vorbis-tools-CVE-2015-6749.patch		\
diff --git a/gnu/packages/patches/vlc-fix-test_libvlc_slaves.patch b/gnu/packages/patches/vlc-fix-test_libvlc_slaves.patch
new file mode 100644
index 0000000000..9bc6d35f18
--- /dev/null
+++ b/gnu/packages/patches/vlc-fix-test_libvlc_slaves.patch
@@ -0,0 +1,35 @@
+From 4186c94104ee528abd6860611b49515f3e6ec644 Mon Sep 17 00:00:00 2001
+From: Thomas Guillem <thomas@gllm.fr>
+Date: Fri, 18 Oct 2019 10:34:07 +0200
+Subject: [PATCH] input/item: sort before attaching slaves
+
+The order of readdir() is completely filesystem dependent.
+
+Slaves should be attached using the same order across multiple OSses/access
+modules.
+
+This fixes the test_libvlc_slaves on some system when the entry order from
+readdir() is different.
+
+This patch need to be backported to VLC 3.0.
+---
+ src/input/item.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/input/item.c b/src/input/item.c
+index e8db39ca28..fbd74cc95f 100644
+--- a/src/input/item.c
++++ b/src/input/item.c
+@@ -1809,8 +1809,8 @@ void vlc_readdir_helper_finish(struct vlc_readdir_helper *p_rdh, bool b_success)
+ {
+     if (b_success)
+     {
+-        rdh_attach_slaves(p_rdh, p_rdh->p_node);
+         rdh_sort(p_rdh->p_node);
++        rdh_attach_slaves(p_rdh, p_rdh->p_node);
+     }
+     free(p_rdh->psz_ignored_exts);
+ 
+-- 
+2.20.1
+
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 7e62ab69ef..b5f81e2cb3 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1088,20 +1088,26 @@ videoformats depend on the configuration flags of ffmpeg.")
     (name "vlc")
     (version "3.0.8")
     (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://download.videolan.org/pub/videolan/vlc/"
-                   (car (string-split version #\-))
-                   "/vlc-" version ".tar.xz"))
-             (sha256
-              (base32
-               "1xmxjpyzdhabchwncz6lvx3kzvl7fz9c42bkv3nbj68albs9w570"))))
+              (method url-fetch)
+              (uri (string-append
+                    "https://download.videolan.org/pub/videolan/vlc/"
+                    (car (string-split version #\-))
+                    "/vlc-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1xmxjpyzdhabchwncz6lvx3kzvl7fz9c42bkv3nbj68albs9w570"))
+              (patches
+               (search-patches
+                ;; TODO: The test "libvlc_slaves" fails.  Applied upstream as
+                ;; <https://git.videolan.org/?p=vlc.git;a=commit;h=4186c94104ee528abd6860611b49515f3e6ec644>.
+                ;; Try removing it in 3.0.9.
+                "vlc-fix-test_libvlc_slaves.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("flex" ,flex)
        ("bison" ,bison)
        ("gettext" ,gettext-minimal)
-       ("git" ,git) ; needed for a test
+       ("git" ,git)                     ; needed for a test
        ("pkg-config" ,pkg-config)))
     ;; FIXME: Add optional inputs once available.
     (inputs
@@ -1182,7 +1188,7 @@ videoformats depend on the configuration flags of ffmpeg.")
        `("BUILDCC=gcc"
          ,(string-append "LDFLAGS=-Wl,-rpath -Wl,"
                          (assoc-ref %build-inputs "ffmpeg")
-                         "/lib"))                 ;needed for the tests
+                         "/lib"))       ;needed for the tests
 
        #:phases
        (modify-phases %standard-phases
@@ -1233,11 +1239,11 @@ videoformats depend on the configuration flags of ffmpeg.")
                (invoke cachegen plugindir))))
          (add-after 'install 'wrap-executable
            (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out"))
-                  (plugin-path (getenv "QT_PLUGIN_PATH")))
-              (wrap-program (string-append out "/bin/vlc")
-                `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))))
-            #t)))))
+             (let ((out (assoc-ref outputs "out"))
+                   (plugin-path (getenv "QT_PLUGIN_PATH")))
+               (wrap-program (string-append out "/bin/vlc")
+                 `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))))
+             #t)))))
     (home-page "https://www.videolan.org/")
     (synopsis "Audio and video framework")
     (description "VLC is a cross-platform multimedia player and framework