;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2016 David Thompson <davet@gnu.org>
-;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
(define-module (gnu packages video)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
#: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)
#: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)
#: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)
#: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)
(replace 'build
(lambda _
(let ((-j (list "-j" (number->string (parallel-job-count)))))
- (zero? (apply system* "rake" -j)))))
+ (apply invoke "rake" -j))))
(replace 'check
(lambda _
- (zero? (system* "rake" "tests/unit"))))
+ (invoke "rake" "tests/unit")))
(replace 'install
(lambda _
- (zero? (system* "rake" "install")))))))
+ (invoke "rake" "install"))))))
(home-page "https://mkvtoolnix.download")
(synopsis "Tools to create, alter and inspect Matroska files")
(description
(define-public x265
(package
(name "x265")
- (version "2.7")
+ (version "2.8")
(source
(origin
(method url-fetch)
"x265_" version ".tar.gz"))
(sha256
(base32
- "18llni1m8kfvdwy5bp950z6gyd0nijmvi3hzd6gd8vpy5yk5zrym"))
+ "0qx8mavwdzdpkkby7n29i9av7zsnklavacwfz537mf62q2pzjnbf"))
+ (patches (search-patches "x265-fix-ppc64le-build.patch"))
(modules '((guix build utils)))
(snippet '(begin
(delete-file-recursively "source/compat/getopt")
(arguments
`(#:tests? #f ; tests are skipped if cpu-optimized code isn't built
;; Currently the source code doesn't check for aarch64.
- ,@(if (string-prefix? "aarch64" (or (%current-target-system) (%current-system)))
+ ,@(if (any (cute string-prefix? <> (or (%current-system)
+ (%current-target-system)))
+ '("armhf" "aarch64"))
'(#:configure-flags '("-DENABLE_PIC=TRUE"))
'())
#:phases
(define-public ffmpeg
(package
(name "ffmpeg")
- (version "4.0")
+ (version "4.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
- "0gx4ngnhi5glmxh38603qy5n6vq8bl1cr4sqd1xff95i82pmv57d"))))
+ "1vn04n0n46zdxq14cma3w8ml2ckh5jxwlybsc4xmvcqdqq0mqpv0"))))
(build-system gnu-build-system)
(inputs
`(("fontconfig" ,fontconfig)
(define-public vlc
(package
(name "vlc")
- (version "2.2.8")
+ (version "3.0.3")
(source (origin
(method url-fetch)
(uri (string-append
version "/vlc-" version ".tar.xz"))
(sha256
(base32
- "1v32snw46rkgbdqdy3dssl2y13i8p2cr1cw1i18r6vdmiy24dw4v"))))
+ "0lavzly8l0ll1d9iris9cnirgcs77g48lxj14058dxqkvd5v1a4v"))))
(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
;; 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"
- (("<qx11info_x11.h>") "<QtX11Extras/qx11info_x11.h>"))
+
+ ;; 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.3.
+ (substitute* "modules/text_renderer/freetype/text_layout.c"
+ (("# define FRIBIDI_NO_DEPRECATED 1") ""))
+
+ ;; Fix build against Qt 5.11.
+ (substitute* "modules/gui/qt/actions_manager.cpp"
+ (("#include <vlc_keys.h>") "#include <vlc_keys.h>
+#include <QAction>"))
+ (substitute* "modules/gui/qt/components/simple_preferences.cpp"
+ (("#include <QFont>") "#include <QFont>
+#include <QButtonGroup>"))
#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
(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
(("#! /bin/sh") (string-append "#!" (which "sh"))))
(setenv "SHELL" (which "bash"))
(setenv "CONFIG_SHELL" (which "bash"))
- (zero? (system*
- "./configure"
+ (invoke "./configure"
(string-append "--extra-cflags=-I"
libx11 "/include") ; to detect libx11
"--disable-ffmpeg_a" ; disables bundled ffmpeg
(or (%current-target-system)
(nix-system->gnu-triplet
(%current-system)))))))
- "--disable-iwmmxt"))))))))
+ "--disable-iwmmxt")))))))
(home-page "https://www.mplayerhq.hu/design7/news.html")
(synopsis "Audio and video player")
(description "MPlayer is a movie player. It plays most MPEG/VOB, AVI,
("pulseaudio" ,pulseaudio)
("rsound" ,rsound)
("shaderc" ,shaderc)
- ("vulkan-icd-loader" ,vulkan-icd-loader)
+ ("vulkan-loader" ,vulkan-loader)
("waf" ,python-waf)
("wayland" ,wayland)
("wayland-protocols" ,wayland-protocols)
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2018.05.09")
+ (version "2018.06.19")
(source (origin
(method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/"
version ".tar.gz"))
(sha256
(base32
- "0sl4bi2jls3417rd62awbqdq1b6wskkjbfwpnyw4a61qarfxid1d"))))
+ "0ys2mc84r7mjpn7rykb57sn3ii1kp3divjdn2ivwqknj8jrzg3z6"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
(define-public you-get
(package
(name "you-get")
- (version "0.4.1060")
+ (version "0.4.1077")
(source (origin
(method url-fetch)
(uri (string-append
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1pq7c2ay42aan7ykpmddzh6ylq0qsq8a27pk68m5imaxi6abbwsz"))))
+ "04vxc91k627qgsqs8dhqajrb6vpj4pw21jlwbha28qakfiz2x11k"))))
(build-system python-build-system)
(inputs
`(("ffmpeg" ,ffmpeg))) ; for multi-part and >=1080p videos
(arguments
'(#:phases
(modify-phases %standard-phases
- (add-after
- 'unpack 'autogen
- (lambda _
- (zero? (system* "sh" "autogen.sh")))))))
+ (add-after 'unpack 'autogen
+ (lambda _
+ (invoke "sh" "autogen.sh"))))))
(home-page "http://www.vapoursynth.com/")
(synopsis "Video processing framework")
(description "VapourSynth is a C++ library and Python module for video
(add-before 'check 'check-setup
(lambda _
(setenv "HOME" (getcwd)) ;Needs to write to ‘$HOME’.
- #t)))))
+ #t))
+ (add-after 'install 'install-rofi-plugin
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "plugins/rofi-twitchy"
+ (string-append (assoc-ref outputs "out")
+ "/bin")))))))
(inputs
`(("python-requests" ,python-requests)
("streamlink" ,streamlink)))
"18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn"))))
(build-system gnu-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'autogen.sh
- (lambda _
- (zero? (system* "sh" "autogen.sh")))))))
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'autogen.sh
+ (lambda _
+ (invoke "sh" "autogen.sh"))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)))
(define-public mps-youtube
(package
(name "mps-youtube")
- (version "0.2.7.1")
+ (version "0.2.8")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1s7h35yx6f0szf8mm8612ic913w3v05m2kwphjfcxnpq0ammhyci"))))
+ "0x7cmfh199q9j396v7bz81nnvanfllhsg86489i5dw2p3yyc9wnm"))))
(build-system python-build-system)
(arguments
;; Tests need to be disabled until #556 upstream is fixed. It reads as if the
;; Patch the Makefile so that it doesn't bootstrap again.
(substitute* "gtk/module.rules"
((".*autogen\\.sh.*") ""))
- (zero? (system* "sh" "./gtk/autogen.sh"))))
+ (invoke "sh" "./gtk/autogen.sh")))
(add-before 'configure 'disable-contrib
(lambda _
(substitute* "make/include/main.defs"
;; errors on unrecognized arguments,
;; e.g. --enable-fast-install
(let ((out (assoc-ref outputs "out")))
- (zero? (apply system* "./configure"
- (string-append "--prefix=" out)
- (or configure-flags '()))))))
+ (apply invoke "./configure"
+ (string-append "--prefix=" out)
+ (or configure-flags '())))))
(add-after 'configure 'chdir-build
(lambda _ (chdir "./build") #t)))))
(home-page "https://handbrake.fr")
#t))
(add-after 'change-to-build-dir 'autogen
(lambda _
- (zero? (system* "sh" "autogen.sh")))))))
+ (invoke "sh" "autogen.sh"))))))
(home-page "https://mediaarea.net/en/MediaInfo")
(synopsis "Library for retrieving media metadata")
(description "MediaInfo is a library used for retrieving technical
#t))
(add-after 'change-to-build-dir 'autogen
(lambda _
- (zero? (system* "sh" "autogen.sh")))))))
+ (invoke "sh" "autogen.sh"))))))
(home-page "https://mediaarea.net/en/MediaInfo")
(synopsis "Utility for reading media metadata")
(description "MediaInfo is a utility used for retrieving technical
#t))
(replace 'configure
(lambda _
- (zero? (system* "./genMakefiles"
- "linux-with-shared-libraries")))))))
+ (invoke "./genMakefiles"
+ "linux-with-shared-libraries"))))))
(home-page "http://www.live555.com/liveMedia/")
(synopsis "Set of C++ libraries for multimedia streaming")
(description "This code forms a set of C++ libraries for multimedia
(modify-phases %standard-phases
(add-after 'unpack 'autotools
(lambda _
- (zero? (system* "sh" "autogen.sh")))))))
- ;; TODO: opencv for additional face detection filters
+ (invoke "sh" "autogen.sh"))))))
+ ;; TODO: opencv for additional face detection filters.
(inputs
`(("gavl" ,gavl)
("cairo" ,cairo)))