Merge branch 'master' of github.com:nixos/nixpkgs into pleasant-ruby
Conflicts: pkgs/applications/version-management/git-and-tools/default.nix pkgs/applications/version-management/git-and-tools/hub/default.nix pkgs/tools/audio/mpdcron/default.nix
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
{ stdenv, fetchFromGitHub, writeScript
|
||||
, buildPythonPackage, pythonPackages, python
|
||||
|
||||
, enableAcoustid ? true
|
||||
, enableBeatport ? true
|
||||
, enableDiscogs ? true
|
||||
, enableEchonest ? true
|
||||
, enableFetchart ? true
|
||||
, enableLastfm ? true
|
||||
, enableMpd ? true
|
||||
, enableReplaygain ? true
|
||||
, enableWeb ? true
|
||||
|
||||
, bashInteractive, bashCompletion
|
||||
}:
|
||||
|
||||
assert enableAcoustid -> pythonPackages.pyacoustid != null;
|
||||
assert enableBeatport -> pythonPackages.responses != null;
|
||||
assert enableDiscogs -> pythonPackages.discogs_client != null;
|
||||
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 enableWeb -> pythonPackages.flask != null;
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
optionalPlugins = {
|
||||
beatport = enableBeatport;
|
||||
chroma = enableAcoustid;
|
||||
discogs = enableDiscogs;
|
||||
echonest = enableEchonest;
|
||||
echonest_tempo = enableEchonest;
|
||||
fetchart = enableFetchart;
|
||||
lastgenre = enableLastfm;
|
||||
lastimport = enableLastfm;
|
||||
mpdstats = enableMpd;
|
||||
mpdupdate = enableMpd;
|
||||
replaygain = enableReplaygain;
|
||||
web = enableWeb;
|
||||
};
|
||||
|
||||
pluginsWithoutDeps = [
|
||||
"bench" "bpd" "bpm" "bucket" "convert" "duplicates" "embedart" "freedesktop"
|
||||
"fromfilename" "ftintitle" "fuzzy" "ihate" "importadded" "importfeeds"
|
||||
"info" "inline" "keyfinder" "lyrics" "mbcollection" "mbsync" "missing"
|
||||
"play" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the" "types"
|
||||
"zero"
|
||||
];
|
||||
|
||||
enabledOptionalPlugins = attrNames (filterAttrs (_: id) optionalPlugins);
|
||||
|
||||
allPlugins = pluginsWithoutDeps ++ attrNames optionalPlugins;
|
||||
allEnabledPlugins = pluginsWithoutDeps ++ enabledOptionalPlugins;
|
||||
|
||||
# Discogs plugin wants to have an API token, so skip install checks.
|
||||
allTestablePlugins = remove "discogs" allEnabledPlugins;
|
||||
|
||||
testShell = "${bashInteractive}/bin/bash --norc";
|
||||
completion = "${bashCompletion}/share/bash-completion/bash_completion";
|
||||
|
||||
in buildPythonPackage rec {
|
||||
name = "beets-${version}";
|
||||
version = "1.3.9";
|
||||
namePrefix = "";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sampsyo";
|
||||
repo = "beets";
|
||||
rev = "v${version}";
|
||||
sha256 = "1srhkiyjqx6i3gn20ihf087l5pa77yh5b81ivc52lj491fda7xqk";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pythonPackages.enum34
|
||||
pythonPackages.munkres
|
||||
pythonPackages.musicbrainzngs
|
||||
pythonPackages.mutagen
|
||||
pythonPackages.pyyaml
|
||||
pythonPackages.unidecode
|
||||
python.modules.sqlite3
|
||||
python.modules.readline
|
||||
] ++ optional enableAcoustid pythonPackages.pyacoustid
|
||||
++ optional (enableBeatport || enableFetchart) pythonPackages.requests2
|
||||
++ optional enableDiscogs pythonPackages.discogs_client
|
||||
++ optional enableEchonest pythonPackages.pyechonest
|
||||
++ optional enableLastfm pythonPackages.pylast
|
||||
++ optional enableMpd pythonPackages.mpd
|
||||
++ optional enableReplaygain pythonPackages.audiotools
|
||||
++ optional enableWeb pythonPackages.flask;
|
||||
|
||||
buildInputs = with pythonPackages; [
|
||||
beautifulsoup4
|
||||
flask
|
||||
mock
|
||||
nose
|
||||
pyechonest
|
||||
pylast
|
||||
rarfile
|
||||
requests2
|
||||
responses
|
||||
];
|
||||
|
||||
patches = [
|
||||
./mediafile-codec-fix.patch
|
||||
./replaygain-default-audiotools.patch
|
||||
./test-bucket-fix-year.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e '/assertIn.*item.*path/d' test/test_info.py
|
||||
echo echo completion tests passed > test/test_completion.sh
|
||||
|
||||
sed -i -e '/^BASH_COMPLETION_PATHS *=/,/^])$/ {
|
||||
/^])$/i u"${completion}"
|
||||
}' beets/ui/commands.py
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
preCheck = ''
|
||||
(${concatMapStrings (s: "echo \"${s}\";") allPlugins}) \
|
||||
| sort -u > plugins_defined
|
||||
find beetsplug -mindepth 1 \
|
||||
\! -path 'beetsplug/__init__.py' -a \
|
||||
\( -name '*.py' -o -path 'beetsplug/*/__init__.py' \) -print \
|
||||
| sed -n -re 's|^beetsplug/([^/.]+).*|\1|p' \
|
||||
| sort -u > plugins_available
|
||||
|
||||
if ! mismatches="$(diff -y plugins_defined plugins_available)"; then
|
||||
echo "The the list of defined plugins (left side) doesn't match" \
|
||||
"the list of available plugins (right side):" >&2
|
||||
echo "$mismatches" >&2
|
||||
exit 1
|
||||
fi
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
BEETS_TEST_SHELL="${testShell}" \
|
||||
BASH_COMPLETION_SCRIPT="${completion}" \
|
||||
HOME="$(mktemp -d)" \
|
||||
nosetests -v
|
||||
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
installCheckPhase = ''
|
||||
runHook preInstallCheck
|
||||
|
||||
tmphome="$(mktemp -d)"
|
||||
|
||||
EDITOR="${writeScript "beetconfig.sh" ''
|
||||
#!${stdenv.shell}
|
||||
cat > "$1" <<CFG
|
||||
plugins: ${concatStringsSep " " allTestablePlugins}
|
||||
musicbrainz:
|
||||
user: dummy
|
||||
pass: dummy
|
||||
CFG
|
||||
''}" HOME="$tmphome" "$out/bin/beet" config -e
|
||||
EDITOR=true HOME="$tmphome" "$out/bin/beet" config -e
|
||||
|
||||
runHook postInstallCheck
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://beets.radbox.org;
|
||||
description = "Music tagger and library organizer";
|
||||
license = stdenv.lib.licenses.mit;
|
||||
maintainers = with stdenv.lib.maintainers; [ iElectric aszlig ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
From 903e88a228d6bd93bd1884c59dd23dd9f04a1199 Mon Sep 17 00:00:00 2001
|
||||
From: Adrian Sampson <adrian@radbox.org>
|
||||
Date: Wed, 26 Nov 2014 19:04:40 -0800
|
||||
Subject: [PATCH] Fix codec reference in MediaFile (fix #1117)
|
||||
|
||||
---
|
||||
beets/mediafile.py | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/beets/mediafile.py b/beets/mediafile.py
|
||||
index ce42621..a459e09 100644
|
||||
--- a/beets/mediafile.py
|
||||
+++ b/beets/mediafile.py
|
||||
@@ -1340,8 +1340,9 @@ def __init__(self, path, id3v23=False):
|
||||
raise FileTypeError(path)
|
||||
elif (type(self.mgfile).__name__ == 'M4A' or
|
||||
type(self.mgfile).__name__ == 'MP4'):
|
||||
- if hasattr(self.mgfile.info, 'codec'):
|
||||
- if self.mgfile.codec and self.mgfile.codec.startswith('alac'):
|
||||
+ info = self.mgfile.info
|
||||
+ if hasattr(info, 'codec'):
|
||||
+ if info.codec and info.codec.startswith('alac'):
|
||||
self.type = 'alac'
|
||||
else:
|
||||
self.type = 'aac'
|
||||
@@ -0,0 +1,17 @@
|
||||
diff --git a/beetsplug/replaygain.py b/beetsplug/replaygain.py
|
||||
index 40b3a3a..9b54a5a 100644
|
||||
--- a/beetsplug/replaygain.py
|
||||
+++ b/beetsplug/replaygain.py
|
||||
@@ -627,11 +627,10 @@ class ReplayGainPlugin(BeetsPlugin):
|
||||
super(ReplayGainPlugin, self).__init__()
|
||||
self.import_stages = [self.imported]
|
||||
|
||||
- # default backend is 'command' for backward-compatibility.
|
||||
self.config.add({
|
||||
'overwrite': False,
|
||||
'auto': True,
|
||||
- 'backend': u'command',
|
||||
+ 'backend': u'audiotools',
|
||||
'targetlevel': 89,
|
||||
})
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
From 80038e2a3fe6f5ac174a30f6fd01ebf8dd63e414 Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Laporte <kraymer@gmail.com>
|
||||
Date: Sat, 3 Jan 2015 23:03:29 +0100
|
||||
Subject: [PATCH] test_bucket: update test_year_single_year
|
||||
|
||||
2015 was used as an example of date outside of [1970-current year] intervall which is not true anymore
|
||||
---
|
||||
test/test_bucket.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/test_bucket.py b/test/test_bucket.py
|
||||
index 4610ec7..060c360 100644
|
||||
--- a/test/test_bucket.py
|
||||
+++ b/test/test_bucket.py
|
||||
@@ -51,7 +51,7 @@ def test_year_single_year_last_folder(self):
|
||||
year."""
|
||||
self._setup_config(bucket_year=['1950', '1970'])
|
||||
self.assertEqual(self.plugin._tmpl_bucket('2014'), '1970')
|
||||
- self.assertEqual(self.plugin._tmpl_bucket('2015'), '2015')
|
||||
+ self.assertEqual(self.plugin._tmpl_bucket('2025'), '2025')
|
||||
|
||||
def test_year_two_years(self):
|
||||
"""Buckets can be named with the 'from-to' syntax."""
|
||||
@@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchgit, autoconf, automake, libtool, pkgconfig, glib, libdaemon, buildRubyGem
|
||||
, mpd_clientlib, curl, sqlite, ruby, rubyPackages, libnotify, haskellPackages }:
|
||||
, mpd_clientlib, curl, sqlite, ruby, rubyPackages, libnotify, pandoc }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "20130809";
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
{ stdenv, fetchurl, cmake, alsaLib, udev, qt }:
|
||||
|
||||
let
|
||||
version = "0.18.1";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "qastools-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/qastools/qastools_${version}.tar.bz2";
|
||||
sha256 = "1sac6a0j1881wgpv4491b2f4jnhqkab6xyldmcg1wfqb5qkdgzvg";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
cmake alsaLib udev qt
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_INSALL_PREFIX=$out"
|
||||
"-DALSA_INCLUDE=${alsaLib}/include/alsa/version.h"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Collection of desktop applications for ALSA configuration";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user