From 520b18e6fa8415b9b8fc07611c3c885035739633 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 2 Nov 2019 21:10:40 +0100 Subject: 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. --- gnu/local.mk | 1 + .../patches/vlc-fix-test_libvlc_slaves.patch | 35 +++++++++++++++++++++ gnu/packages/video.scm | 36 +++++++++++++--------- 3 files changed, 57 insertions(+), 15 deletions(-) create mode 100644 gnu/packages/patches/vlc-fix-test_libvlc_slaves.patch (limited to 'gnu') 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 +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 + ;; . + ;; 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 -- cgit v1.2.3