about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAnderson Torres <torres.anderson.85@protonmail.com>2023-07-07 10:35:38 -0300
committerAnderson Torres <torres.anderson.85@protonmail.com>2023-07-07 18:14:21 -0300
commitd94b20d8f0deb801ec83cca0037c0852bac00303 (patch)
tree079741198acc405ac04bd5555a93406191edfffd
parente46ab54b68e4fdc4d179669729ad5978901992d8 (diff)
vlc: refactor
- Remove xorg indirection
- Reorder lists
- Use new rec-less overlay style overridable recursive attributes (operative
  since https://github.com/NixOS/nixpkgs/pull/119942)
- Put env vars under `env`
- Remove `null`ities
- Remove `with lib;` (following rationale from
  https://nix.dev/recipes/best-practices#with-scopes)
-rw-r--r--pkgs/applications/video/vlc/default.nix107
-rw-r--r--pkgs/top-level/all-packages.nix6
2 files changed, 64 insertions, 49 deletions
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 8efb0f3f289e8..40c39c79cbc34 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -14,8 +14,15 @@
 , flac
 , fluidsynth
 , freefont_ttf
+, freetype
 , fribidi
 , gnutls
+, libSM
+, libXext
+, libXinerama
+, libXpm
+, libXv
+, libXvMC
 , libarchive
 , libass
 , libbluray
@@ -31,6 +38,7 @@
 , libkate
 , libmad
 , libmatroska
+, libmicrodns
 , libmodplug
 , libmtp
 , liboggz
@@ -56,6 +64,11 @@
 , ncurses
 , perl
 , pkg-config
+, protobuf
+, qtbase
+, qtsvg
+, qtwayland
+, qtx11extras
 , removeReferencesTo
 , samba
 , schroedinger
@@ -64,14 +77,20 @@
 , systemd
 , taglib
 , unzip
-, xorg
+, wayland
+, wayland-protocols
+, wrapGAppsHook
+, wrapQtAppsHook
+, xcbutilkeysyms
 , zlib
-, chromecastSupport ? true, libmicrodns, protobuf
+
+, chromecastSupport ? true
 , jackSupport ? false
 , onlyLibVLC ? false
-, skins2Support ? !onlyLibVLC, freetype
-, waylandSupport ? true, wayland, wayland-protocols
-, withQt5 ? true, qtbase, qtsvg, qtwayland, qtx11extras, wrapQtAppsHook, wrapGAppsHook
+, skins2Support ? !onlyLibVLC
+, waylandSupport ? true
+, withQt5 ? true
+, withLibcaca ? true
 }:
 
 # chromecastSupport requires TCP port 8010 to be open for it to work.
@@ -81,15 +100,29 @@
 let
   inherit (lib) optionalString optional optionals;
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "${optionalString onlyLibVLC "lib"}vlc";
   version = "3.0.18";
 
   src = fetchurl {
-    url = "http://get.videolan.org/vlc/${version}/vlc-${version}.tar.xz";
-    sha256 = "sha256-VwlEOcNl2KqLm0H6MIDMDu8r7+YCW7XO9yKszGJa7ew=";
+    url = "http://get.videolan.org/vlc/${finalAttrs.version}/vlc-${finalAttrs.version}.tar.xz";
+    hash = "sha256-VwlEOcNl2KqLm0H6MIDMDu8r7+YCW7XO9yKszGJa7ew=";
   };
 
+  nativeBuildInputs = [
+    autoreconfHook
+    perl
+    pkg-config
+    removeReferencesTo
+    unzip
+    wrapGAppsHook
+  ]
+  ++ optionals withQt5 [ 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
@@ -106,10 +139,13 @@ stdenv.mkDerivation rec {
     fluidsynth
     fribidi
     gnutls
+    libSM
+    libXpm
+    libXv
+    libXvMC
     libarchive
     libass
     libbluray
-    libcaca
     libcddb
     libdc1394
     libdvbpsi
@@ -121,8 +157,8 @@ stdenv.mkDerivation rec {
     libkate
     libmad
     libmatroska
-    libmtp
     libmodplug
+    libmtp
     liboggz
     libopus
     libplacebo
@@ -149,46 +185,29 @@ stdenv.mkDerivation rec {
     srt
     systemd
     taglib
+    xcbutilkeysyms
     zlib
   ]
-  ++ (with xorg; [
-    libSM
-    libXpm
-    libXv
-    libXvMC
-    xcbutilkeysyms
-  ])
+  ++ optional withLibcaca libcaca
   ++ optional (!stdenv.hostPlatform.isAarch && !onlyLibVLC) live555
   ++ optional jackSupport libjack2
   ++ optionals chromecastSupport [ libmicrodns protobuf ]
-  ++ optionals skins2Support (with xorg; [
+  ++ optionals skins2Support [
     freetype
     libXext
     libXinerama
     libXpm
-  ])
+  ]
   ++ optionals waylandSupport [ wayland wayland-protocols ]
   ++ optionals withQt5 [ qtbase qtsvg qtx11extras ]
   ++ optional (waylandSupport && withQt5) qtwayland;
 
-  nativeBuildInputs = [
-    autoreconfHook
-    perl
-    pkg-config
-    removeReferencesTo
-    unzip
-    wrapGAppsHook
-  ]
-  ++ optionals withQt5 [ wrapQtAppsHook ]
-  ++ optionals waylandSupport [ wayland wayland-protocols ];
-
-  enableParallelBuilding = true;
-
-  LIVE555_PREFIX = if stdenv.hostPlatform.isAarch 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";
+  env = {
+    LIVE555_PREFIX = if stdenv.hostPlatform.isAarch 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 = [
     # patch to build with recent live555
@@ -210,9 +229,9 @@ stdenv.mkDerivation rec {
       /usr/share/fonts/truetype/freefont ${freefont_ttf}/share/fonts/truetype
   '';
 
+  enableParallelBuilding = true;
 
-  # to prevent double wrapping of Qtwrap and Gwrap
-  dontWrapGApps = true;
+  dontWrapGApps = true; # to prevent double wrapping of Qtwrap and Gwrap
 
   preFixup = ''
     qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
@@ -259,11 +278,11 @@ stdenv.mkDerivation rec {
     cp -R share/hrtfs $out/share/vlc
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Cross-platform media player and streaming server";
     homepage = "http://www.videolan.org/vlc/";
-    license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.linux;
+    license = lib.licenses.lgpl21Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d2ab93d3987b3..32772b2f78647 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -35596,15 +35596,11 @@ with pkgs;
     # 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;
+    withLibcaca = false;
   };
 
   libvlc = vlc.override {
     withQt5 = false;
-    qtbase = null;
-    qtsvg = null;
-    qtx11extras = null;
-    wrapQtAppsHook = null;
     onlyLibVLC = true;
   };