summary refs log tree commit diff
path: root/pkgs/tools/audio
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2015-12-31 09:47:26 +0100
committerVladimír Čunát <vcunat@gmail.com>2015-12-31 09:53:02 +0100
commitf9f6f41bff2213e199bded515e9b66d1e5c4d7dd (patch)
tree29c5a75228e31f305f42c5b761709a186e406776 /pkgs/tools/audio
parentbbcf127c7c9029cba43493d7d25a9d1c65d59152 (diff)
parent468f698f609e123bb0ffae67181d07ac99eb2204 (diff)
downloadnixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar
nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar.gz
nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar.bz2
nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar.lz
nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar.xz
nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.tar.zst
nixpkgs-f9f6f41bff2213e199bded515e9b66d1e5c4d7dd.zip
Merge branch 'master' into closure-size
TODO: there was more significant refactoring of qtbase and plasma 5.5
on master, and I'm deferring pointing to correct outputs to later.
Diffstat (limited to 'pkgs/tools/audio')
-rw-r--r--pkgs/tools/audio/beets/alternatives-plugin.nix25
-rw-r--r--pkgs/tools/audio/beets/default.nix21
-rw-r--r--pkgs/tools/audio/beets/replaygain-default-bs1770gain.patch (renamed from pkgs/tools/audio/beets/replaygain-default-audiotools.patch)2
3 files changed, 42 insertions, 6 deletions
diff --git a/pkgs/tools/audio/beets/alternatives-plugin.nix b/pkgs/tools/audio/beets/alternatives-plugin.nix
new file mode 100644
index 00000000000..1b0c9b3992b
--- /dev/null
+++ b/pkgs/tools/audio/beets/alternatives-plugin.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, pythonPackages }:
+
+buildPythonPackage rec {
+  name = "beets-alternatives-${version}";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    repo = "beets-alternatives";
+    owner = "geigerzaehler";
+    rev = "v${version}";
+    sha256 = "10za6h59pxa13y8i4amqhc6392csml0dl771lssv6b6a98kamsy7";
+  };
+
+  postPatch = ''
+    sed -i -e '/install_requires/,/\]/{/beets/d}' setup.py
+  '';
+
+  propagatedBuildInputs = with pythonPackages; [ futures ];
+
+  meta = {
+    description = "Beets plugin to manage external files";
+    homepage = "https://github.com/geigerzaehler/beets-alternatives";
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 123b183f2d3..35a69262acd 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -8,10 +8,13 @@
 , enableFetchart   ? true
 , enableLastfm     ? true
 , enableMpd        ? true
-, enableReplaygain ? true
+, enableReplaygain ? true, bs1770gain ? null
 , enableThumbnails ? true
 , enableWeb        ? true
 
+# External plugins
+, enableAlternatives ? false
+
 , bashInteractive, bashCompletion
 }:
 
@@ -22,7 +25,7 @@ assert enableEchonest    -> pythonPackages.pyechonest     != null;
 assert enableFetchart    -> pythonPackages.responses      != null;
 assert enableLastfm      -> pythonPackages.pylast         != null;
 assert enableMpd         -> pythonPackages.mpd            != null;
-assert enableReplaygain  -> pythonPackages.audiotools     != null;
+assert enableReplaygain  -> bs1770gain                    != null;
 assert enableThumbnails  -> pythonPackages.pyxdg          != null;
 assert enableWeb         -> pythonPackages.flask          != null;
 
@@ -90,9 +93,11 @@ in buildPythonPackage rec {
     ++ optional enableEchonest   pythonPackages.pyechonest
     ++ optional enableLastfm     pythonPackages.pylast
     ++ optional enableMpd        pythonPackages.mpd
-    ++ optional enableReplaygain pythonPackages.audiotools
     ++ optional enableThumbnails pythonPackages.pyxdg
-    ++ optional enableWeb        pythonPackages.flask;
+    ++ optional enableWeb        pythonPackages.flask
+    ++ optional enableAlternatives (import ./alternatives-plugin.nix {
+      inherit stdenv buildPythonPackage pythonPackages fetchFromGitHub;
+    });
 
   buildInputs = with pythonPackages; [
     beautifulsoup4
@@ -104,7 +109,7 @@ in buildPythonPackage rec {
   ];
 
   patches = [
-    ./replaygain-default-audiotools.patch
+    ./replaygain-default-bs1770gain.patch
   ];
 
   postPatch = ''
@@ -119,6 +124,12 @@ in buildPythonPackage rec {
       s,"flac","${flac}/bin/flac",
       s,"mp3val","${mp3val}/bin/mp3val",
     }' beetsplug/badfiles.py
+  '' + optionalString enableReplaygain ''
+    sed -i -re '
+      s!^( *cmd *= *b?['\'''"])(bs1770gain['\'''"])!\1${bs1770gain}/bin/\2!
+    ' beetsplug/replaygain.py
+    sed -i -e 's/if has_program.*bs1770gain.*:/if True:/' \
+      test/test_replaygain.py
   '';
 
   doCheck = true;
diff --git a/pkgs/tools/audio/beets/replaygain-default-audiotools.patch b/pkgs/tools/audio/beets/replaygain-default-bs1770gain.patch
index d852ea6feca..538f9e93303 100644
--- a/pkgs/tools/audio/beets/replaygain-default-audiotools.patch
+++ b/pkgs/tools/audio/beets/replaygain-default-bs1770gain.patch
@@ -11,7 +11,7 @@ index 40b3a3a..9b54a5a 100644
              'overwrite': False,
              'auto': True,
 -            'backend': u'command',
-+            'backend': u'audiotools',
++            'backend': u'bs1770gain',
              'targetlevel': 89,
          })