diff options
Diffstat (limited to 'pkgs/applications/video/vlc')
-rw-r--r-- | pkgs/applications/video/vlc/default.nix | 191 |
1 files changed, 156 insertions, 35 deletions
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix index 43f6c8115374e..d3d853ba87dee 100644 --- a/pkgs/applications/video/vlc/default.nix +++ b/pkgs/applications/video/vlc/default.nix @@ -1,28 +1,87 @@ -{ lib, stdenv, fetchurl, autoreconfHook, fetchpatch -, libarchive, perl, xorg, libdvdnav, libbluray -, zlib, a52dec, libmad, faad2, ffmpeg, alsa-lib -, pkg-config, dbus, fribidi, freefont_ttf, libebml, libmatroska -, libvorbis, libtheora, speex, lua5, libgcrypt, libgpg-error, libupnp -, libcaca, libpulseaudio, flac, schroedinger, libxml2, librsvg -, mpeg2dec, systemd, gnutls, avahi, libcddb, libjack2, SDL, SDL_image -, libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, libssh2, liboggz -, libass, libva, libdvbpsi, libdc1394, libraw1394, libopus -, libvdpau, libsamplerate, libspatialaudio, live555, fluidsynth -, wayland, wayland-protocols, ncurses, srt -, onlyLibVLC ? false -, withQt5 ? true, qtbase, qtsvg, qtx11extras, wrapQtAppsHook +{ lib +, stdenv +, fetchurl +, fetchpatch +, SDL +, SDL_image +, a52dec +, alsa-lib +, autoreconfHook +, avahi +, dbus +, faad2 +, ffmpeg +, flac +, fluidsynth +, freefont_ttf +, fribidi +, gnutls +, libarchive +, libass +, libbluray +, libcaca +, libcddb +, libdc1394 +, libdvbpsi +, libdvdnav +, libebml +, libgcrypt +, libgpg-error +, libjack2 +, libkate +, libmad +, libmatroska +, libmtp +, liboggz +, libopus +, libpulseaudio +, libraw1394 +, librsvg +, libsamplerate +, libspatialaudio +, libssh2 +, libtheora +, libtiger +, libupnp +, libv4l +, libva +, libvdpau +, libvorbis +, libxml2 +, live555 +, lua5 +, mpeg2dec +, ncurses +, perl +, pkg-config +, removeReferencesTo +, samba +, schroedinger +, speex +, srt +, systemd +, taglib +, unzip +, wayland +, wayland-protocols +, xorg +, zlib + +, chromecastSupport ? true, libmicrodns, protobuf , jackSupport ? false +, onlyLibVLC ? false , skins2Support ? !onlyLibVLC, freetype -, removeReferencesTo -, chromecastSupport ? true, protobuf, libmicrodns +, withQt5 ? true, qtbase, qtsvg, qtx11extras, wrapQtAppsHook }: # chromecastSupport requires TCP port 8010 to be open for it to work. # If your firewall is enabled, make sure to have something like: # networking.firewall.allowedTCPPorts = [ 8010 ]; -with lib; - +let + inherit (lib) optionalString optional optionals; + hostIsAarch = stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64; +in stdenv.mkDerivation rec { pname = "${optionalString onlyLibVLC "lib"}vlc"; version = "3.0.16"; @@ -36,26 +95,88 @@ stdenv.mkDerivation rec { # which are not included here for no other reason that nobody has mentioned # needing them buildInputs = [ - zlib a52dec libmad faad2 ffmpeg alsa-lib libdvdnav libdvdnav.libdvdread - libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt libgpg-error - libupnp libcaca libpulseaudio flac schroedinger libxml2 librsvg mpeg2dec - systemd gnutls avahi libcddb SDL SDL_image libmtp taglib libarchive - libkate libtiger libv4l samba libssh2 liboggz libass libdvbpsi libva - xorg.xlibsWrapper xorg.libXv xorg.libXvMC xorg.libXpm xorg.xcbutilkeysyms - libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate - libspatialaudio fluidsynth wayland wayland-protocols ncurses srt - ] ++ optional (!stdenv.hostPlatform.isAarch64 && !stdenv.hostPlatform.isAarch32) live555 - ++ optionals withQt5 [ qtbase qtsvg qtx11extras ] - ++ optionals skins2Support (with xorg; [ libXpm freetype libXext libXinerama ]) - ++ optional jackSupport libjack2 - ++ optionals chromecastSupport [ protobuf libmicrodns ]; - - nativeBuildInputs = [ autoreconfHook perl pkg-config removeReferencesTo unzip ] - ++ optionals withQt5 [ wrapQtAppsHook ]; + SDL + SDL_image + a52dec + alsa-lib + avahi + dbus + faad2 + ffmpeg + flac + fluidsynth + fribidi + gnutls + libarchive + libass + libbluray + libcaca + libcddb + libdc1394 + libdvbpsi + libdvdnav + libdvdnav.libdvdread + libebml + libgcrypt + libgpg-error + libkate + libmad + libmatroska + libmtp + liboggz + libopus + libpulseaudio + libraw1394 + librsvg + libsamplerate + libspatialaudio + libssh2 + libtheora + libtiger + libupnp + libv4l + libva + libvdpau + libvorbis + libxml2 + lua5 + mpeg2dec + ncurses + samba + schroedinger + speex + srt + systemd + taglib + wayland + wayland-protocols + zlib + ] + ++ (with xorg; [ + libXpm + libXv + libXvMC + xcbutilkeysyms + xlibsWrapper + ]) + ++ optional (!hostIsAarch) live555 + ++ optional jackSupport libjack2 + ++ optionals chromecastSupport [ libmicrodns protobuf ] + ++ optionals skins2Support (with xorg; [ freetype libXext libXinerama libXpm ]) + ++ optionals withQt5 [ qtbase qtsvg qtx11extras ]; + + nativeBuildInputs = [ + autoreconfHook + perl + pkg-config + removeReferencesTo + unzip + ] + ++ optionals withQt5 [ wrapQtAppsHook ]; enableParallelBuilding = true; - LIVE555_PREFIX = if (!stdenv.hostPlatform.isAarch64 && !stdenv.hostPlatform.isAarch32) then live555 else null; + LIVE555_PREFIX = if hostIsAarch then null else live555; # vlc depends on a c11-gcc wrapper script which we don't have so we need to # set the path to the compiler @@ -87,8 +208,8 @@ stdenv.mkDerivation rec { # 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" "--enable-srt" # Explicit enable srt to ensure the patch is applied. + "--with-kde-solid=$out/share/apps/solid/actions" ] ++ optional onlyLibVLC "--disable-vlc" ++ optional skins2Support "--enable-skins2" ++ optionals chromecastSupport [ |