diff options
author | Vladimír Čunát <v@cunat.cz> | 2022-01-03 17:56:52 +0100 |
---|---|---|
committer | Vladimír Čunát <v@cunat.cz> | 2022-01-03 18:13:55 +0100 |
commit | 78cd22c1b8604de423546cd49bfe264b786eca13 (patch) | |
tree | f18a044945366b6dc6ee8dfd849ed9d3a693a0b4 | |
parent | bf607abf73714bed1661bc0d54db06f19c9390d5 (diff) | |
parent | d218e587d3df81f85c340d8a92a84c3738f79c83 (diff) | |
download | nixpkgs-78cd22c1b8604de423546cd49bfe264b786eca13.tar nixpkgs-78cd22c1b8604de423546cd49bfe264b786eca13.tar.gz nixpkgs-78cd22c1b8604de423546cd49bfe264b786eca13.tar.bz2 nixpkgs-78cd22c1b8604de423546cd49bfe264b786eca13.tar.lz nixpkgs-78cd22c1b8604de423546cd49bfe264b786eca13.tar.xz nixpkgs-78cd22c1b8604de423546cd49bfe264b786eca13.tar.zst nixpkgs-78cd22c1b8604de423546cd49bfe264b786eca13.zip |
Merge #153325: vlc: quick fix issue with newer libcaca
-rw-r--r-- | pkgs/applications/video/vlc/default.nix | 193 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 7 |
2 files changed, 164 insertions, 36 deletions
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix index 5ef62ff6b46..7706c425f2b 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,32 +95,95 @@ 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 BUILDCC = "${stdenv.cc}/bin/gcc"; patches = [ + # Required in order to run newer srt plugin. Remove it when next release arrives (fetchpatch { url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/4250fe8f28c220d883db454cec2b2c76a07473eb/trunk/vlc-3.0.11.1-srt_1.4.2.patch"; sha256 = "53poWjZfwq/6l316sqiCp0AtcGweyXBntcLDFPSokHQ="; @@ -86,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 [ @@ -111,6 +233,7 @@ stdenv.mkDerivation rec { description = "Cross-platform media player and streaming server"; homepage = "http://www.videolan.org/vlc/"; license = licenses.lgpl21Plus; + maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.linux; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b07b3575f03..20a2839b51f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -29277,7 +29277,12 @@ with pkgs; vkeybd = callPackage ../applications/audio/vkeybd {}; - vlc = libsForQt5.callPackage ../applications/video/vlc {}; + vlc = libsForQt5.callPackage ../applications/video/vlc { + # Newest libcaca changed the API, and libvlc didn't catch it. Until next + # version arrives, it is safer to disable it. + # Upstream thread: https://code.videolan.org/videolan/vlc/-/issues/26389 + libcaca = null; + }; vlc_qt5 = vlc; |