summary refs log tree commit diff
path: root/pkgs/applications/audio/deadbeef
diff options
context:
space:
mode:
authorNikolay Amiantov <nikoamia@gmail.com>2014-10-02 23:55:50 +0400
committerNikolay Amiantov <nikoamia@gmail.com>2014-10-04 01:50:50 +0400
commit1cc3fc871e4c53b05681dc19b6179795ed811fe8 (patch)
tree45b94dcbce49aabd4e763a7042bb32feed0f524d /pkgs/applications/audio/deadbeef
parentaafca4dd5109e796db742eab1788ff6a5f279f31 (diff)
downloadnixpkgs-1cc3fc871e4c53b05681dc19b6179795ed811fe8.tar
nixpkgs-1cc3fc871e4c53b05681dc19b6179795ed811fe8.tar.gz
nixpkgs-1cc3fc871e4c53b05681dc19b6179795ed811fe8.tar.bz2
nixpkgs-1cc3fc871e4c53b05681dc19b6179795ed811fe8.tar.lz
nixpkgs-1cc3fc871e4c53b05681dc19b6179795ed811fe8.tar.xz
nixpkgs-1cc3fc871e4c53b05681dc19b6179795ed811fe8.tar.zst
nixpkgs-1cc3fc871e4c53b05681dc19b6179795ed811fe8.zip
deadbeef: fix gtk3, use gtk2 by default, allow simultaneous
Diffstat (limited to 'pkgs/applications/audio/deadbeef')
-rw-r--r--pkgs/applications/audio/deadbeef/default.nix22
1 files changed, 16 insertions, 6 deletions
diff --git a/pkgs/applications/audio/deadbeef/default.nix b/pkgs/applications/audio/deadbeef/default.nix
index b09ef2bc711..ca8ce453e63 100644
--- a/pkgs/applications/audio/deadbeef/default.nix
+++ b/pkgs/applications/audio/deadbeef/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchurl, intltool, pkgconfig, gtk
+{ stdenv, fetchurl, intltool, pkgconfig
+# deadbeef can use either gtk2 or gtk3
+, gtk2Support ? true, gtk2 ? null
+, gtk3Support ? false, gtk3 ? null, gsettings_desktop_schemas ? null, makeWrapper ? null
 # input plugins
 , vorbisSupport ? true, libvorbis ? null
 , mp123Support ? true, libmad ? null
@@ -23,6 +26,9 @@
 , remoteSupport ? true, curl ? null
 }:
 
+assert gtk2Support || gtk3Support;
+assert gtk2Support -> gtk2 != null;
+assert gtk3Support -> gtk3 != null && gsettings_desktop_schemas != null && makeWrapper != null;
 assert vorbisSupport -> libvorbis != null;
 assert mp123Support -> libmad != null;
 assert flacSupport -> flac != null;
@@ -41,9 +47,6 @@ assert overloadSupport -> zlib != null;
 assert wavpackSupport -> wavpack != null;
 assert remoteSupport -> curl != null;
 
-# DeaDBeeF installs working .desktop file(s) all by itself, so we don't need to
-# handle that.
-
 stdenv.mkDerivation rec {
   name = "deadbeef-0.6.2";
 
@@ -53,7 +56,8 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = with stdenv.lib;
-    [ gtk ]
+       optional gtk2Support gtk2
+    ++ optionals gtk3Support [gtk3 gsettings_desktop_schemas]
     ++ optional vorbisSupport libvorbis
     ++ optional mp123Support libmad
     ++ optional flacSupport flac
@@ -73,10 +77,16 @@ stdenv.mkDerivation rec {
     ++ optional remoteSupport curl
     ;
 
-  nativeBuildInputs = [ intltool pkgconfig ];
+  nativeBuildInputs = with stdenv.lib; [ intltool pkgconfig ]
+    ++ optional gtk3Support makeWrapper;
 
   enableParallelBuilding = true;
 
+  postInstall = if !gtk3Support then "" else ''
+    wrapProgram "$out/bin/deadbeef" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
   meta = with stdenv.lib; {
     description = "Ultimate Music Player for GNU/Linux";
     homepage = http://deadbeef.sourceforge.net/;