summary refs log tree commit diff
path: root/pkgs/applications/audio/cantata
diff options
context:
space:
mode:
authorMateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>2014-05-03 04:36:20 +0200
committerMateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>2014-05-09 03:22:45 +0200
commita9f85aa4e909da5ca17cb6564a5267d068d8764f (patch)
tree5d75be0b825da30b518ceb5fbc03c80e906d51ea /pkgs/applications/audio/cantata
parentc06786759cafbd27c4d2b79d54f08c99b7a4910b (diff)
downloadnixpkgs-a9f85aa4e909da5ca17cb6564a5267d068d8764f.tar
nixpkgs-a9f85aa4e909da5ca17cb6564a5267d068d8764f.tar.gz
nixpkgs-a9f85aa4e909da5ca17cb6564a5267d068d8764f.tar.bz2
nixpkgs-a9f85aa4e909da5ca17cb6564a5267d068d8764f.tar.lz
nixpkgs-a9f85aa4e909da5ca17cb6564a5267d068d8764f.tar.xz
nixpkgs-a9f85aa4e909da5ca17cb6564a5267d068d8764f.tar.zst
nixpkgs-a9f85aa4e909da5ca17cb6564a5267d068d8764f.zip
cantata: create version 1.3.4
Diffstat (limited to 'pkgs/applications/audio/cantata')
-rw-r--r--pkgs/applications/audio/cantata/default.nix103
1 files changed, 103 insertions, 0 deletions
diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix
new file mode 100644
index 00000000000..f3cba4ca819
--- /dev/null
+++ b/pkgs/applications/audio/cantata/default.nix
@@ -0,0 +1,103 @@
+{ stdenv, fetchurl, cmake
+, withQt4 ? true, qt4
+, withQt5 ? false, qt5
+
+# I'm unable to make KDE work here, crashes at runtime so I simply
+# make Qt4 the default until someone who wants KDE can figure it out.
+, withKDE4 ? false, kde4
+
+# Cantata doesn't build with cdparanoia enabled so we disable that
+# default for now until I (or someone else) figure it out.
+, withCdda ? false, cdparanoia
+, withCddb ? false, libcddb
+, withLame ? false, lame
+, withMusicbrainz ? false, libmusicbrainz5
+
+, withTaglib ? true, taglib, taglib_extras
+, withReplaygain ? true, ffmpeg, speex, mpg123
+, withMtp ? true, libmtp
+, withOnlineServices ? true
+, withDevices ? true, udisks2
+, withDynamic ? true
+, withHttpServer ? true
+, withStreams ? true
+}:
+
+# One and only one front-end.
+assert withQt5 -> withQt4 == false && withKDE4 == false;
+assert withQt4 -> withQt5 == false && withKDE4 == false;
+assert withKDE4 -> withQt4 == false && withQt5 == false;
+assert withQt4 || withQt5 || withKDE4;
+
+# Inter-dependencies.
+assert withCddb -> withCdda && withTaglib;
+assert withCdda -> withCddb && withMusicbrainz;
+assert withLame -> withCdda && withTaglib;
+assert withMtp -> withTaglib;
+assert withMusicbrainz -> withCdda && withTaglib;
+assert withOnlineServices -> withTaglib;
+assert withReplaygain -> withTaglib;
+
+let
+  version = "1.3.4";
+  pname = "cantata";
+  fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF");
+  fstats = x: map (fstat x);
+in
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    inherit name;
+    url = "https://drive.google.com/uc?export=download&id=0Bzghs6gQWi60WTYtaXk3c1IzNVU";
+    sha256 = "0ris41v44nwd68f3zis9n9lyyc089dyhlxp37rrzflanrc6glpwq";
+  };
+
+  buildInputs =
+    [ cmake ]
+    ++ stdenv.lib.optional withQt4 qt4
+    ++ stdenv.lib.optional withQt5 qt5
+    ++ stdenv.lib.optional withKDE4 kde4.kdelibs
+    ++ stdenv.lib.optionals withTaglib [ taglib taglib_extras ]
+    ++ stdenv.lib.optionals withReplaygain [ ffmpeg speex mpg123 ]
+    ++ stdenv.lib.optional withCdda cdparanoia
+    ++ stdenv.lib.optional withCddb libcddb
+    ++ stdenv.lib.optional withLame lame
+    ++ stdenv.lib.optional withMtp libmtp
+    ++ stdenv.lib.optional withMusicbrainz libmusicbrainz5
+    ++ stdenv.lib.optional (withTaglib && !withKDE4 && withDevices) udisks2;
+
+  unpackPhase = "tar -xvf $src";
+
+  # Qt4 is implicit when KDE is switched off.
+  cmakeFlags = stdenv.lib.flatten [
+    (fstats withKDE4 [ "KDE" "KWALLET" ])
+    (fstat withQt5 "QT5")
+    (fstats withTaglib [ "TAGLIB" "TAGLIB_EXTRAS" ])
+    (fstats withReplaygain [ "FFMPEG" "MPG123" "SPEEXDSP" ])
+    (fstat withCdda "CDPARANOIA")
+    (fstat withCddb "CDDB")
+    (fstat withLame "LAME")
+    (fstat withMtp "MTP")
+    (fstat withMusicbrainz "MUSICBRAINZ")
+    (fstat withOnlineServices "ONLINE_SERVICES")
+    (fstat withDynamic "DYNAMIC")
+    (fstat withDevices "DEVICES_SUPPORT")
+    (fstat withHttpServer "HTTP_SERVER")
+    (fstat withStreams "STREAMS")
+    "-DENABLE_HTTPS_SUPPORT=ON"
+    "-DENABLE_UDISKS2=ON"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://code.google.com/p/cantata/";
+    description = "A graphical client for MPD.";
+    license = licenses.gpl3;
+
+    # Technically Cantata can run on Windows so if someone wants to
+    # bother figuring that one out, be my guest.
+    platforms = platforms.linux;
+    maintainers = [ maintainers.fuuzetsu ];
+  };
+}