From a0dd9713e31bf2dfbe33ed50f2915d1c654344db Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Mon, 16 Apr 2018 17:34:07 +0800 Subject: [PATCH] vlc: 2.2.8 -> 3.0.1 --- pkgs/applications/video/vlc/default.nix | 105 +++++++++++------------- pkgs/top-level/all-packages.nix | 17 +--- 2 files changed, 54 insertions(+), 68 deletions(-) diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix index 44c4d317d36a..6cc26baf70c0 100644 --- a/pkgs/applications/video/vlc/default.nix +++ b/pkgs/applications/video/vlc/default.nix @@ -1,86 +1,81 @@ -{ stdenv, fetchurl, xz, bzip2, perl, xorg, libdvdnav, libbluray +{ stdenv, fetchurl, autoreconfHook +, libarchive, perl, xorg, libdvdnav, libbluray , zlib, a52dec, libmad, faad2, ffmpeg, alsaLib , pkgconfig, dbus, fribidi, freefont_ttf, libebml, libmatroska -, libvorbis, libtheora, speex, lua5, libgcrypt, libupnp +, libvorbis, libtheora, speex, lua5, libgcrypt, libgpgerror, libupnp , libcaca, libpulseaudio, flac, schroedinger, libxml2, librsvg -, mpeg2dec, udev, gnutls, avahi, libcddb, libjack2, SDL, SDL_image +, mpeg2dec, systemd, gnutls, avahi, libcddb, libjack2, SDL, SDL_image , libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, liboggz -, libass, libva, libdvbpsi, libdc1394, libraw1394, libopus -, libvdpau, libsamplerate, live555, fluidsynth -, qt4 ? null -, withQt5 ? false, qtbase ? null, qtx11extras ? null +, libass, libva-full, libdvbpsi, libdc1394, libraw1394, libopus +, libvdpau, libsamplerate, live555, fluidsynth, wayland, wayland-protocols +, onlyLibVLC ? false +, withQt5 ? true, qtbase ? null, qtsvg ? null, qtx11extras ? null , jackSupport ? false , fetchpatch }: with stdenv.lib; -assert (withQt5 -> qtbase != null && qtx11extras != null); -assert (!withQt5 -> qt4 != null); +assert (withQt5 -> qtbase != null && qtsvg != null && qtx11extras != null); stdenv.mkDerivation rec { name = "vlc-${version}"; - version = "2.2.8"; + version = "3.0.1"; src = fetchurl { url = "http://get.videolan.org/vlc/${version}/${name}.tar.xz"; - sha256 = "1v32snw46rkgbdqdy3dssl2y13i8p2cr1cw1i18r6vdmiy24dw4v"; + sha256 = "008krfhykm9447wc1kkw82bsw3f6ikljgrqyb1sinwlxnkghqw6f"; }; - # Comment-out the Qt 5.5 version check, as we do apply the relevant patch. - # https://trac.videolan.org/vlc/ticket/16497 - postPatch = if (!withQt5) then null else - "sed '/I78ef29975181ee22429c9bd4b11d96d9e68b7a9c/s/^/: #/' -i configure"; - - buildInputs = - [ xz bzip2 perl zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread - libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt - libupnp libcaca libpulseaudio flac schroedinger libxml2 librsvg mpeg2dec - udev gnutls avahi libcddb SDL SDL_image libmtp unzip taglib - libkate libtiger libv4l samba liboggz libass libdvbpsi libva - xorg.xlibsWrapper xorg.libXv xorg.libXvMC xorg.libXpm xorg.xcbutilkeysyms - libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate live555 - fluidsynth - ] - ++ [(if withQt5 then qtbase else qt4)] - ++ optional withQt5 qtx11extras + # VLC uses a *ton* of libraries for various pieces of functionality, many of + # which are not included here for no other reason that nobody has mentioned + # needing them + buildInputs = [ + zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread + libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt libgpgerror + libupnp libcaca libpulseaudio flac schroedinger libxml2 librsvg mpeg2dec + systemd gnutls avahi libcddb SDL SDL_image libmtp unzip taglib libarchive + libkate libtiger libv4l samba liboggz libass libdvbpsi libva-full + xorg.xlibsWrapper xorg.libXv xorg.libXvMC xorg.libXpm xorg.xcbutilkeysyms + libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate live555 + fluidsynth wayland wayland-protocols + ] ++ optionals withQt5 [ qtbase qtsvg qtx11extras ] ++ optional jackSupport libjack2; - nativeBuildInputs = [ pkgconfig ]; - - LIVE555_PREFIX = live555; - - preConfigure = '' - sed -e "s@/bin/echo@echo@g" -i configure - '' + optionalString withQt5 '' - # Make sure we only *add* "-std=c++11" to CXXFLAGS instead of overriding the - # values figured out by configure (for example "-g -O2"). - sed -i -re '/^ *CXXFLAGS=("[^$"]+")? *$/s/CXXFLAGS="?/&-std=c++11 /' \ - configure - ''; - - configureFlags = - [ "--enable-alsa" - "--with-kde-solid=$out/share/apps/solid/actions" - "--enable-dc1394" - "--enable-ncurses" - "--enable-vdpau" - "--enable-dvdnav" - "--enable-samplerate" - ]; + nativeBuildInputs = [ autoreconfHook perl pkgconfig ]; enableParallelBuilding = true; - preBuild = '' - substituteInPlace modules/text_renderer/freetype.c --replace \ - /usr/share/fonts/truetype/freefont/FreeSerifBold.ttf \ - ${freefont_ttf}/share/fonts/truetype/FreeSerifBold.ttf + LIVE555_PREFIX = live555; + + # vlc depends on a c11-gcc wrapper script which we don't have so we need to + # set the path to the compiler + BUILDCC = "${stdenv.cc}/bin/gcc"; + + postPatch = '' + substituteInPlace configure \ + --replace /bin/echo echo + + substituteInPlace modules/text_renderer/freetype/platform_fonts.h --replace \ + /usr/share/fonts/truetype/freefont ${freefont_ttf}/share/fonts/truetype ''; + # https://github.com/NixOS/nixpkgs/pull/35124#issuecomment-370552830 + postFixup = '' + find $out/lib/vlc/plugins -exec touch -d @1 '{}' ';' + $out/lib/vlc/vlc-cache-gen $out/vlc/plugins + ''; + + # Most of the libraries are auto-detected so we don't need to set a bunch of + # "--enable-foo" flags here + configureFlags = [ + "--with-kde-solid=$out/share/apps/solid/actions" + ] ++ optional onlyLibVLC "--disable-vlc"; + meta = with stdenv.lib; { description = "Cross-platform media player and streaming server"; homepage = http://www.videolan.org/vlc/; - platforms = platforms.linux; license = licenses.lgpl21Plus; + platforms = platforms.linux; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1c81cc59d2b9..451239b54354 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11159,9 +11159,7 @@ with pkgs; withQt5 = true; }; - phonon-backend-vlc = callPackage ../development/libraries/phonon/backends/vlc.nix { - withQt5 = true; - }; + phonon-backend-vlc = callPackage ../development/libraries/phonon/backends/vlc.nix { }; polkit-qt = callPackage ../development/libraries/polkit-qt-1/qt-5.nix { }; @@ -11196,11 +11194,7 @@ with pkgs; telepathy = callPackage ../development/libraries/telepathy/qt { }; - vlc = lowPrio (callPackage ../applications/video/vlc { - qt4 = null; - withQt5 = true; - ffmpeg = ffmpeg_2; - }); + vlc = callPackage ../applications/video/vlc {}; qtwebkit-plugins = callPackage ../development/libraries/qtwebkit-plugins { }; @@ -18188,16 +18182,13 @@ with pkgs; vkeybd = callPackage ../applications/audio/vkeybd {}; - vlc = callPackage ../applications/video/vlc { - ffmpeg = ffmpeg_2; - }; + vlc = libsForQt5.vlc; + vlc_qt5 = vlc; vlc_npapi = callPackage ../applications/video/vlc/plugin.nix { gtk = gtk2; }; - vlc_qt5 = libsForQt5.vlc; - vmpk = callPackage ../applications/audio/vmpk { }; vnstat = callPackage ../applications/networking/vnstat { };