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:
Charles Strahan
2015-01-20 20:21:03 -05:00
823 changed files with 154029 additions and 7470 deletions
+178
View File
@@ -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 -1
View File
@@ -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";
+29
View File
@@ -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;
};
}