about summary refs log tree commit diff
path: root/pkgs/applications/audio/clementine/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/audio/clementine/default.nix')
-rw-r--r--pkgs/applications/audio/clementine/default.nix120
1 files changed, 74 insertions, 46 deletions
diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix
index 538f54fbaf81..4b56052e4782 100644
--- a/pkgs/applications/audio/clementine/default.nix
+++ b/pkgs/applications/audio/clementine/default.nix
@@ -1,64 +1,92 @@
 { stdenv, fetchurl, boost, cmake, gettext, gstreamer, gst_plugins_base
-, gst_plugins_good, gst_plugins_bad, gst_plugins_ugly, gst_ffmpeg
 , liblastfm, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist
 , usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig
-, sparsehash, config, makeWrapper }:
+, sparsehash, config, makeWrapper, gst_plugins }:
+
+let 
+  version = "1.2.3";
+
+  withSpotify = config.clementine.spotify or false;
+
+  wrappedExeName = "clementine";
+
+  wrapped = stdenv.mkDerivation {
+    name = "clementine-wrapped-${version}";
+
+    src = fetchurl {
+      url = https://github.com/clementine-player/Clementine/archive/1.2.3.tar.gz;
+      sha256 = "1gx1109i4pylz6x7gvp4rdzc6dvh0w6in6hfbygw01d08l26bxbx";
+    };
+
+    patches = [ ./clementine-1.2.1-include-paths.patch ];
+
+    buildInputs = [
+      boost
+      cmake
+      fftw
+      gettext
+      glew
+      gst_plugins_base
+      gstreamer
+      gvfs
+      libcdio
+      libgpod
+      liblastfm
+      libmtp
+      libplist
+      pkgconfig
+      protobuf
+      qca2
+      qjson
+      qt4
+      sparsehash
+      sqlite
+      taglib
+      usbmuxd
+    ];
+
+    enableParallelBuilding = true;
+  };
 
-let withSpotify = config.clementine.spotify or false;
 in
+
 stdenv.mkDerivation {
-  name = "clementine-1.2.3";
+  name = "clementine-${version}";
 
-  src = fetchurl {
-    url = https://github.com/clementine-player/Clementine/archive/1.2.3.tar.gz;
-    sha256 = "1gx1109i4pylz6x7gvp4rdzc6dvh0w6in6hfbygw01d08l26bxbx";
-  };
+  src = ./.;
 
-  patches =
-    [
-      ./clementine-1.2.1-include-paths.patch
-      ./clementine-dbus-namespace.patch
-    ];
+  patches = [
+    ./clementine-1.2.1-include-paths.patch
+    ./clementine-dbus-namespace.patch
+  ];
 
   buildInputs = [
-    boost
-    cmake
-    fftw
-    gettext
-    glew
-    gst_plugins_base
-    gst_plugins_good
-    gst_plugins_ugly
-    gst_ffmpeg
-    gstreamer
-    gvfs
-    libcdio
-    libgpod
-    liblastfm
-    libmtp
-    libplist
+    wrapped
     makeWrapper
-    pkgconfig
-    protobuf
-    qca2
-    qjson
-    qt4
-    sparsehash
-    sqlite
-    taglib
-    usbmuxd
-  ] ++ stdenv.lib.optional withSpotify libspotify;
-
-  enableParallelBuilding = true;
-
-  postInstall = ''
-    wrapProgram $out/bin/clementine \
-      --set GST_PLUGIN_SYSTEM_PATH "$GST_PLUGIN_SYSTEM_PATH"
+  ] ++ gst_plugins
+    ++ stdenv.lib.optional withSpotify libspotify;
+
+  installPhase = ''
+    mkdir -p $out
+    cp -a ${wrapped}/* $out
+    chmod -R u+w-t $out
+
+    wrapProgram "$out/bin/${wrappedExeName}" \
+        --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
   '';
 
+  preferLocalBuild = true;
+  dontPatchELF = true;
+  dontStrip = true;
+
   meta = with stdenv.lib; {
     homepage = "http://www.clementine-player.org";
-    description = "A multiplatform music player";
+    description = "A multiplatform music player"
+      + " ("
+      + concatStrings (optionals (withSpotify) ["with spotify, "])
+      + "with gstreamer plugins: "
+      + concatStrings (intersperse ", " (map (x: x.name) gst_plugins))
+      + ")";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.ttuegel ];