summary refs log tree commit diff
path: root/pkgs/applications/video/vdr
diff options
context:
space:
mode:
authorChristian Kögler <ck3d@gmx.de>2019-04-07 15:09:38 +0200
committerzimbatm <zimbatm@zimbatm.com>2019-04-07 15:09:38 +0200
commit75060fab7625f07d59434d3fa3b52d5cd419f2fe (patch)
treeff23cfd1df4f241dd910d46a3bdbea165f8955b7 /pkgs/applications/video/vdr
parentaf44cf8bc53901608c51c98c235bc42080627e32 (diff)
downloadnixpkgs-75060fab7625f07d59434d3fa3b52d5cd419f2fe.tar
nixpkgs-75060fab7625f07d59434d3fa3b52d5cd419f2fe.tar.gz
nixpkgs-75060fab7625f07d59434d3fa3b52d5cd419f2fe.tar.bz2
nixpkgs-75060fab7625f07d59434d3fa3b52d5cd419f2fe.tar.lz
nixpkgs-75060fab7625f07d59434d3fa3b52d5cd419f2fe.tar.xz
nixpkgs-75060fab7625f07d59434d3fa3b52d5cd419f2fe.tar.zst
nixpkgs-75060fab7625f07d59434d3fa3b52d5cd419f2fe.zip
vdr: fix overrideAttrs (#59083)
The current vdr derivation can not be overritten. The attribute plugins
gets lost while overriding and that leads to problems when evaluating
vdrPlugins.

Moved vdr own plugins outside vdr derivation.
Diffstat (limited to 'pkgs/applications/video/vdr')
-rw-r--r--pkgs/applications/video/vdr/default.nix93
-rw-r--r--pkgs/applications/video/vdr/plugins.nix21
2 files changed, 54 insertions, 60 deletions
diff --git a/pkgs/applications/video/vdr/default.nix b/pkgs/applications/video/vdr/default.nix
index 0ad0b04e7e4..21c2404f4ee 100644
--- a/pkgs/applications/video/vdr/default.nix
+++ b/pkgs/applications/video/vdr/default.nix
@@ -1,78 +1,55 @@
 { stdenv, fetchurl, fontconfig, libjpeg, libcap, freetype, fribidi, pkgconfig
-, gettext, ncurses, systemd, perl
+, gettext, systemd, perl, lib
 , enableSystemd ? true
 , enableBidi ? true
-}:
-let
-
-  version = "2.4.0";
+}: stdenv.mkDerivation rec {
 
   name = "vdr-${version}";
+  version = "2.4.0";
 
-  mkPlugin = name: stdenv.mkDerivation {
-    name = "vdr-${name}-${version}";
-    inherit (vdr) src;
-    buildInputs = [ vdr ];
-    preConfigure = "cd PLUGINS/src/${name}";
-    installFlags = [ "DESTDIR=$(out)" ];
+  src = fetchurl {
+    url = "ftp://ftp.tvdr.de/vdr/${name}.tar.bz2";
+    sha256 = "1klcgy9kr7n6z8d2c77j63bl8hvhx5qnqppg73f77004hzz4kbwk";
   };
 
-  vdr = stdenv.mkDerivation {
-
-    inherit name;
-
-    src = fetchurl {
-      url = "ftp://ftp.tvdr.de/vdr/${name}.tar.bz2";
-      sha256 = "1klcgy9kr7n6z8d2c77j63bl8hvhx5qnqppg73f77004hzz4kbwk";
-    };
-
-    enableParallelBuilding = true;
-
-    postPatch = "substituteInPlace Makefile --replace libsystemd-daemon libsystemd";
+  enableParallelBuilding = true;
 
-    buildInputs = [ fontconfig libjpeg libcap freetype ]
-    ++ stdenv.lib.optional enableSystemd systemd
-    ++ stdenv.lib.optional enableBidi fribidi;
+  postPatch = "substituteInPlace Makefile --replace libsystemd-daemon libsystemd";
 
-    buildFlags = [ "vdr" "i18n" ]
-    ++ stdenv.lib.optional enableSystemd "SDNOTIFY=1"
-    ++ stdenv.lib.optional enableBidi "BIDI=1";
+  buildInputs = [ fontconfig libjpeg libcap freetype ]
+  ++ lib.optional enableSystemd systemd
+  ++ lib.optional enableBidi fribidi;
 
-    nativeBuildInputs = [ perl ];
+  buildFlags = [ "vdr" "i18n" ]
+  ++ lib.optional enableSystemd "SDNOTIFY=1"
+  ++ lib.optional enableBidi "BIDI=1";
 
-    # plugins uses the same build environment as vdr
-    propagatedNativeBuildInputs = [ pkgconfig gettext ];
+  nativeBuildInputs = [ perl ];
 
-    installFlags = [
-      "DESTDIR=$(out)"
-      "PREFIX=" # needs to be empty, otherwise plugins try to install at same prefix
-    ];
+  # plugins uses the same build environment as vdr
+  propagatedNativeBuildInputs = [ pkgconfig gettext ];
 
-    installTargets = [ "install-pc" "install-bin" "install-doc" "install-i18n"
-      "install-includes" ];
+  installFlags = [
+    "DESTDIR=$(out)"
+    "PREFIX=" # needs to be empty, otherwise plugins try to install at same prefix
+  ];
 
-    postInstall = ''
-      mkdir -p $out/lib/vdr # only needed if vdr is started without any plugin
-      mkdir -p $out/share/vdr/conf
-      cp *.conf $out/share/vdr/conf
-      '';
+  installTargets = [ "install-pc" "install-bin" "install-doc" "install-i18n"
+    "install-includes" ];
 
-    outputs = [ "out" "dev" "man" ];
+  postInstall = ''
+    mkdir -p $out/lib/vdr # only needed if vdr is started without any plugin
+    mkdir -p $out/share/vdr/conf
+    cp *.conf $out/share/vdr/conf
+    '';
 
-    meta = with stdenv.lib; {
-      homepage = http://www.tvdr.de/;
-      description = "Video Disc Recorder";
-      maintainers = [ maintainers.ck3d ];
-      platforms = [ "i686-linux" "x86_64-linux" ];
-      license = licenses.gpl2;
-    };
+  outputs = [ "out" "dev" "man" ];
 
+  meta = with lib; {
+    homepage = http://www.tvdr.de/;
+    description = "Video Disc Recorder";
+    maintainers = [ maintainers.ck3d ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    license = licenses.gpl2;
   };
-in vdr // {
-  plugins = {
-    skincurses = (mkPlugin "skincurses").overrideAttrs(
-    oldAttr: { buildInputs = oldAttr.buildInputs ++ [ ncurses ]; });
-  } // (stdenv.lib.genAttrs [
-    "epgtableid0" "hello" "osddemo" "pictures" "servicedemo" "status" "svdrpdemo"
-  ] mkPlugin);
 }
diff --git a/pkgs/applications/video/vdr/plugins.nix b/pkgs/applications/video/vdr/plugins.nix
index 0e543390c4b..4fc3783ba51 100644
--- a/pkgs/applications/video/vdr/plugins.nix
+++ b/pkgs/applications/video/vdr/plugins.nix
@@ -1,7 +1,24 @@
 { stdenv, fetchurl, fetchgit, vdr, ffmpeg_2, alsaLib, fetchFromGitHub
 , libvdpau, libxcb, xcbutilwm, graphicsmagick, libav, pcre, xorgserver, ffmpeg
-, libiconv, boost, libgcrypt, perl, utillinux, groff, libva, xorg }:
-{
+, libiconv, boost, libgcrypt, perl, utillinux, groff, libva, xorg, ncurses }:
+let
+  mkPlugin = name: stdenv.mkDerivation {
+    name = "vdr-${vdr.version}-${name}";
+    inherit (vdr) src;
+    buildInputs = [ vdr ];
+    preConfigure = "cd PLUGINS/src/${name}";
+    installFlags = [ "DESTDIR=$(out)" ];
+  };
+in {
+
+  skincurses = (mkPlugin "skincurses").overrideAttrs(oldAttr: {
+    buildInputs = oldAttr.buildInputs ++ [ ncurses ];
+  });
+
+  inherit (stdenv.lib.genAttrs [
+    "epgtableid0" "hello" "osddemo" "pictures" "servicedemo" "status" "svdrpdemo"
+  ] mkPlugin);
+
   femon = stdenv.mkDerivation rec {
 
     name = "vdr-femon-2.4.0";