>From 47d20a29bd237a211f2805d470fb4db9726103d6 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Tue, 24 Apr 2018 00:26:42 +0200 Subject: [PATCH] DRAFT: gnu: vlc: Update to 3.0.1, and add more inputs. --- gnu/packages/video.scm | 81 +++++++++++++++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 12 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index dc5a37566..e90207185 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2014, 2015, 2016 David Thompson -;;; Copyright © 2014, 2015, 2016 Mark H Weaver +;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2015 Andy Patterson @@ -63,6 +63,7 @@ #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) + #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages boost) @@ -94,6 +95,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages iso-codes) + #:use-module (gnu packages libidn) #:use-module (gnu packages libreoffice) #:use-module (gnu packages linux) #:use-module (gnu packages lua) @@ -110,7 +112,9 @@ #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages qt) + #:use-module (gnu packages rdesktop) #:use-module (gnu packages ruby) + #:use-module (gnu packages samba) #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages shells) @@ -118,6 +122,7 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) + #:use-module (gnu packages upnp) #:use-module (gnu packages version-control) #:use-module (gnu packages vulkan) #:use-module (gnu packages web) @@ -805,7 +810,7 @@ audio/video codec library.") (define-public vlc (package (name "vlc") - (version "2.2.8") + (version "3.0.1") (source (origin (method url-fetch) (uri (string-append @@ -813,55 +818,90 @@ audio/video codec library.") version "/vlc-" version ".tar.xz")) (sha256 (base32 - "1v32snw46rkgbdqdy3dssl2y13i8p2cr1cw1i18r6vdmiy24dw4v")))) + "008krfhykm9447wc1kkw82bsw3f6ikljgrqyb1sinwlxnkghqw6f")))) (build-system gnu-build-system) (native-inputs - `(("git" ,git) ; needed for a test + `(("flex" ,flex) + ("bison" ,bison) + ("gettext" ,gettext-minimal) + ("git" ,git) ; needed for a test ("pkg-config" ,pkg-config))) ;; FIXME: Add optional inputs once available. (inputs `(("alsa-lib" ,alsa-lib) ("avahi" ,avahi) ("dbus" ,dbus) + ("eudev" ,eudev) ("flac" ,flac) - ("ffmpeg" ,ffmpeg-2.8) ;fails to build against ffmpeg 3.0 + ("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) + ("libmodplug" ,libmodplug) + ("libmpeg2" ,libmpeg2) ("libogg" ,libogg) ("libpng" ,libpng) + ("libraw1394" ,libraw1394) + ("librsvg" ,librsvg) ("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.1) + ("lua" ,lua-5.2) ("mesa" ,mesa) ("opus" ,opus) ("perl" ,perl) ("pulseaudio" ,pulseaudio) ("python" ,python-wrapper) ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg) ("qtx11extras" ,qtx11extras) + ("samba" ,samba) ("sdl" ,sdl) ("sdl-image" ,sdl-image) ("speex" ,speex) + ("speexdsp" ,speexdsp) + ("taglib" ,taglib) + ("twolame" ,twolame) + ("unzip" ,unzip) + ("wayland" ,wayland) + ("wayland-protocols" ,wayland-protocols) ("x265" ,x265) ("xcb-util-keysyms" ,xcb-util-keysyms))) (arguments `(#:configure-flags `("CXXFLAGS=-std=gnu++11" + "BUILDCC=gcc" ,(string-append "LDFLAGS=-Wl,-rpath -Wl," (assoc-ref %build-inputs "ffmpeg") "/lib")) ;needed for the tests @@ -878,11 +918,21 @@ audio/video codec library.") ;; which fails in our sandboxed build system (substitute* "test/run_vlc.sh" (("./vlc --ignore-config") "echo")) - ;; XXX Likely not needed for >2.2.6. - (substitute* "modules/gui/qt4/components/interface_widgets.cpp" - (("") "")) + ;; The check_POTFILES.sh test fails for vlc-3.0.1 with the + ;; message: "modules/gui/qt/ui/about.h: source file missing!". + ;; FIXME: Try removing this for vlc >= 3.0.2. + (substitute* "test/Makefile.in" + (("^TESTS =(.*) check_POTFILES.sh(.*)" all pre post) + (string-append "TESTS =" pre post))) + ;; modules/text_renderer/freetype/text_layout.c uses a + ;; now-deprecated interface 'fribidi_get_par_embedding_levels' + ;; from fribidi.h, so for now we enable the use of deprecated + ;; fribidi interfaces from this file. + ;; FIXME: Try removing this for vlc >= 3.0.2. + (substitute* "modules/text_renderer/freetype/text_layout.c" + (("# define FRIBIDI_NO_DEPRECATED 1") "")) #t))) - (add-after 'install 'regenerate-plugin-cache + (add-after 'strip 'regenerate-plugin-cache (lambda* (#:key outputs #:allow-other-keys) ;; The 'install-exec-hook' rule in the top-level Makefile.am ;; generates 'lib/vlc/plugins/plugins.dat', a plugin cache, using @@ -899,9 +949,16 @@ audio/video codec library.") (for-each (lambda (file) (let ((s (lstat file))) (unless (eq? (stat:type s) 'symlink) - (utime file 0 0 0 0)))) + (utime file 1 1)))) (find-files plugindir)) - (zero? (system* cachegen plugindir)))))))) + (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))))) (home-page "https://www.videolan.org/") (synopsis "Audio and video framework") (description "VLC is a cross-platform multimedia player and framework -- 2.17.0