diff options
author | Anderson Torres <torres.anderson.85@protonmail.com> | 2024-02-26 17:13:59 -0300 |
---|---|---|
committer | Anderson Torres <torres.anderson.85@protonmail.com> | 2024-02-26 17:40:16 -0300 |
commit | c52a056f18257a888169ed42951a47a39e702440 (patch) | |
tree | f48cbb5eff1a2691b4c33c7e8f68feb1d52f7b6b /pkgs/applications/video | |
parent | 68920d13aeb97ded9e9193f7a0cfe36cf99ce0e0 (diff) |
vlc: migrate to by-name
Diffstat (limited to 'pkgs/applications/video')
-rw-r--r-- | pkgs/applications/video/vlc/default.nix | 299 |
1 files changed, 0 insertions, 299 deletions
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix deleted file mode 100644 index 9b89cca9a192b..0000000000000 --- a/pkgs/applications/video/vlc/default.nix +++ /dev/null @@ -1,299 +0,0 @@ -{ lib -, SDL -, SDL_image -, a52dec -, alsa-lib -, autoreconfHook -, avahi -, dbus -, faad2 -, fetchpatch -, fetchurl -, ffmpeg -, flac -, fluidsynth -, freefont_ttf -, freetype -, fribidi -, gnutls -, libSM -, libXext -, libXinerama -, libXpm -, libXv -, libXvMC -, libarchive -, libass -, libbluray -, libcaca -, libcddb -, libdc1394 -, libdvbpsi -, libdvdnav -, libebml -, libgcrypt -, libgpg-error -, libjack2 -, libkate -, libmad -, libmatroska -, libmicrodns -, libmodplug -, libmtp -, liboggz -, libopus -, libplacebo_5 -, libpulseaudio -, libraw1394 -, librsvg -, libsForQt5 -, libsamplerate -, libspatialaudio -, libssh2 -, libtheora -, libtiger -, libupnp -, libv4l -, libva -, libvdpau -, libvorbis -, libxml2 -, live555 -, lua5 -, mpeg2dec -, ncurses -, perl -, pkg-config -, pkgsBuildBuild -, protobuf -, removeReferencesTo -, samba -, schroedinger -, speex -, srt -, stdenv -, systemd -, taglib -, unzip -, wayland -, wayland-protocols -, wrapGAppsHook -, xcbutilkeysyms -, zlib - -, chromecastSupport ? true -, jackSupport ? false -, onlyLibVLC ? false -, skins2Support ? !onlyLibVLC -, waylandSupport ? true -, withQt5 ? true -}: - -# 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 ]; - -let - inherit (lib) optionalString optionals; -in -stdenv.mkDerivation (finalAttrs: { - pname = "${optionalString onlyLibVLC "lib"}vlc"; - version = "3.0.20"; - - src = fetchurl { - url = "https://get.videolan.org/vlc/${finalAttrs.version}/vlc-${finalAttrs.version}.tar.xz"; - hash = "sha256-rccoW00nIc3fQOtScMraKqoQozTLVG/VWgY1NEe6KbU="; - }; - - nativeBuildInputs = [ - autoreconfHook - lua5 - perl - pkg-config - removeReferencesTo - unzip - wrapGAppsHook - ] - ++ optionals chromecastSupport [ protobuf ] - ++ optionals withQt5 [ libsForQt5.wrapQtAppsHook ] - ++ optionals waylandSupport [ - wayland - wayland-protocols - ]; - - # 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 = [ - SDL - SDL_image - a52dec - alsa-lib - avahi - dbus - faad2 - ffmpeg - flac - fluidsynth - fribidi - gnutls - libSM - libXpm - libXv - libXvMC - libarchive - libass - libbluray - libcaca - libcddb - libdc1394 - libdvbpsi - libdvdnav - libdvdnav.libdvdread - libebml - libgcrypt - libgpg-error - libkate - libmad - libmatroska - libmodplug - libmtp - liboggz - libopus - libplacebo_5 - libpulseaudio - libraw1394 - librsvg - libsamplerate - libspatialaudio - libssh2 - libtheora - libtiger - libupnp - libv4l - libva - libvdpau - libvorbis - libxml2 - lua5 - mpeg2dec - ncurses - samba - schroedinger - speex - srt - systemd - taglib - xcbutilkeysyms - zlib - ] - ++ optionals (!stdenv.hostPlatform.isAarch && !onlyLibVLC) [ live555 ] - ++ optionals jackSupport [ libjack2 ] - ++ optionals chromecastSupport [ libmicrodns protobuf ] - ++ optionals skins2Support [ - freetype - libXext - libXinerama - libXpm - ] - ++ optionals waylandSupport [ wayland wayland-protocols ] - ++ optionals withQt5 (with libsForQt5; [ - qtbase - qtsvg - qtx11extras - ]) - ++ optionals (waylandSupport && withQt5) [ libsForQt5.qtwayland ]; - - env = { - # vlc depends on a c11-gcc wrapper script which we don't have so we need to - # set the path to the compiler - BUILDCC = "${pkgsBuildBuild.stdenv.cc}/bin/gcc"; - PKG_CONFIG_WAYLAND_SCANNER_WAYLAND_SCANNER = "wayland-scanner"; - } // lib.optionalAttrs (!stdenv.hostPlatform.isAarch) { - LIVE555_PREFIX = live555; - }; - - patches = [ - # patch to build with recent live555 - # upstream issue: https://code.videolan.org/videolan/vlc/-/issues/25473 - (fetchpatch { - url = "https://code.videolan.org/videolan/vlc/uploads/eb1c313d2d499b8a777314f789794f9d/0001-Add-lssl-and-lcrypto-to-liblive555_plugin_la_LIBADD.patch"; - hash = "sha256-qs3gY1ksCZlf931TSZyMuT2JD0sqrmcRCZwL+wVG0U8="; - }) - ]; - - postPatch = '' - substituteInPlace modules/text_renderer/freetype/platform_fonts.h \ - --replace \ - /usr/share/fonts/truetype/freefont \ - ${freefont_ttf}/share/fonts/truetype - '' - # Upstream luac can't cross compile, so we have to install the lua sources - # instead of bytecode: - # https://www.lua.org/wshop13/Jericke.pdf#page=39 - + lib.optionalString (!stdenv.hostPlatform.canExecute stdenv.buildPlatform) '' - substituteInPlace share/Makefile.am \ - --replace $'.luac \\\n' $'.lua \\\n' - ''; - - enableParallelBuilding = true; - - dontWrapGApps = true; # to prevent double wrapping of Qtwrap and Gwrap - - # Most of the libraries are auto-detected so we don't need to set a bunch of - # "--enable-foo" flags here - configureFlags = [ - "--enable-srt" # Explicit enable srt to ensure the patch is applied. - "--with-kde-solid=$out/share/apps/solid/actions" - ] - ++ optionals onlyLibVLC [ "--disable-vlc" ] - ++ optionals skins2Support [ "--enable-skins2" ] - ++ optionals waylandSupport [ "--enable-wayland" ] - ++ optionals chromecastSupport [ - "--enable-sout" - "--enable-chromecast" - "--enable-microdns" - ]; - - # Remove runtime dependencies on libraries - postConfigure = '' - sed -i 's|^#define CONFIGURE_LINE.*$|#define CONFIGURE_LINE "<removed>"|g' config.h - ''; - - # fails on high core machines - # ld: cannot find -lvlc_vdpau: No such file or directory - # https://code.videolan.org/videolan/vlc/-/issues/27338 - enableParallelInstalling = false; - - # Add missing SOFA files - # Given in EXTRA_DIST, but not in install-data target - postInstall = '' - cp -R share/hrtfs $out/share/vlc - ''; - - preFixup = '' - qtWrapperArgs+=("''${gappsWrapperArgs[@]}") - ''; - - # - Touch plugins (plugins cache keyed off mtime and file size: - # https://github.com/NixOS/nixpkgs/pull/35124#issuecomment-370552830 - # - Remove references to the Qt development headers (used in error messages) - # - # pkgsBuildBuild is used here because buildPackages.libvlc somehow - # depends on a qt5.qttranslations that doesn't build, even though it - # should be the same as pkgsBuildBuild.qt5.qttranslations. - postFixup = '' - find $out/lib/vlc/plugins -exec touch -d @1 '{}' ';' - ${if stdenv.buildPlatform.canExecute stdenv.hostPlatform then "$out" else pkgsBuildBuild.libvlc}/lib/vlc/vlc-cache-gen $out/vlc/plugins - '' + optionalString withQt5 '' - remove-references-to -t "${libsForQt5.qtbase.dev}" $out/lib/vlc/plugins/gui/libqt_plugin.so - ''; - - meta = { - description = "Cross-platform media player and streaming server"; - homepage = "https://www.videolan.org/vlc/"; - license = lib.licenses.lgpl21Plus; - maintainers = with lib.maintainers; [ AndersonTorres ]; - platforms = lib.platforms.linux; - }; -}) |