2013-04-18 00:44:12 +01:00
|
|
|
{ stdenv, fetchurl, python, buildPythonPackage, mutagen, pygtk, pygobject
|
2013-10-29 10:33:46 +00:00
|
|
|
, pythonDBus, gst_python, withGstPlugins ? false, gst_plugins_base ? null
|
|
|
|
, gst_plugins_good ? null, gst_plugins_ugly ? null, gst_plugins_bad ? null }:
|
2013-04-18 00:44:12 +01:00
|
|
|
|
2013-10-29 10:33:46 +00:00
|
|
|
assert withGstPlugins -> gst_plugins_base != null
|
|
|
|
|| gst_plugins_good != null
|
|
|
|
|| gst_plugins_ugly != null
|
|
|
|
|| gst_plugins_bad != null;
|
|
|
|
|
|
|
|
let version = "2.6.3"; in
|
2013-04-18 00:44:12 +01:00
|
|
|
|
|
|
|
buildPythonPackage {
|
|
|
|
# call the package quodlibet and just quodlibet
|
2013-10-29 10:33:46 +00:00
|
|
|
name = "quodlibet-${version}"
|
|
|
|
+ stdenv.lib.optionalString withGstPlugins "-with-gst-plugins";
|
2013-04-18 00:44:12 +01:00
|
|
|
namePrefix = "";
|
|
|
|
|
|
|
|
# XXX, tests fail
|
|
|
|
doCheck = false;
|
|
|
|
|
|
|
|
src = [
|
|
|
|
(fetchurl {
|
2013-10-29 10:33:46 +00:00
|
|
|
url = "https://bitbucket.org/lazka/quodlibet-files/raw/default/releases/quodlibet-${version}.tar.gz";
|
|
|
|
sha256 = "0ilasi4b0ay8r6v6ba209wsm80fq2nmzigzc5kvphrk71jwypx6z";
|
2013-04-18 00:44:12 +01:00
|
|
|
})
|
|
|
|
(fetchurl {
|
2013-10-29 10:33:46 +00:00
|
|
|
url = "https://bitbucket.org/lazka/quodlibet-files/raw/default/releases/quodlibet-plugins-${version}.tar.gz";
|
|
|
|
sha256 = "1rv08rhdjad8sjhplqsspcf4vkazgkxyshsqmbfbrrk5kvv57ybc";
|
2013-04-18 00:44:12 +01:00
|
|
|
})
|
|
|
|
];
|
|
|
|
|
|
|
|
sourceRoot = "quodlibet-${version}";
|
|
|
|
postUnpack = ''
|
|
|
|
# the patch searches for plugins in directory ../plugins
|
|
|
|
# so link the appropriate directory there
|
|
|
|
ln -sf quodlibet-plugins-${version} plugins
|
|
|
|
'';
|
|
|
|
patches = [ ./quodlibet-package-plugins.patch ];
|
|
|
|
|
2013-10-29 10:33:46 +00:00
|
|
|
buildInputs = stdenv.lib.optionals withGstPlugins [
|
|
|
|
gst_plugins_base gst_plugins_good gst_plugins_ugly gst_plugins_bad
|
2013-04-18 00:44:12 +01:00
|
|
|
];
|
|
|
|
|
|
|
|
propagatedBuildInputs = [
|
|
|
|
mutagen pygtk pygobject pythonDBus gst_python
|
|
|
|
];
|
|
|
|
|
2013-10-29 10:33:46 +00:00
|
|
|
postInstall = stdenv.lib.optionalString withGstPlugins ''
|
2013-04-18 00:44:12 +01:00
|
|
|
# Wrap quodlibet so it finds the GStreamer plug-ins
|
|
|
|
wrapProgram "$out/bin/quodlibet" --prefix \
|
|
|
|
GST_PLUGIN_PATH ":" \
|
2013-10-29 10:33:46 +00:00
|
|
|
${ stdenv.lib.concatStringsSep ":"
|
|
|
|
(map (s: s+"/lib/gstreamer-0.10")
|
|
|
|
(stdenv.lib.filter (s: s != null) [
|
|
|
|
gst_plugins_base gst_plugins_good gst_plugins_ugly gst_plugins_bad
|
|
|
|
])) }
|
2013-04-18 00:44:12 +01:00
|
|
|
'';
|
|
|
|
|
|
|
|
meta = {
|
2013-10-06 10:49:53 +01:00
|
|
|
description = "GTK+-based audio player written in Python, using the Mutagen tagging library";
|
2013-04-18 00:44:12 +01:00
|
|
|
|
|
|
|
longDescription = ''
|
|
|
|
Quod Libet is a GTK+-based audio player written in Python, using
|
|
|
|
the Mutagen tagging library. It's designed around the idea that
|
|
|
|
you know how to organize your music better than we do. It lets
|
|
|
|
you make playlists based on regular expressions (don't worry,
|
|
|
|
regular searches work too). It lets you display and edit any
|
|
|
|
tags you want in the file. And it lets you do this for all the
|
|
|
|
file formats it supports. Quod Libet easily scales to libraries
|
|
|
|
of thousands (or even tens of thousands) of songs. It also
|
|
|
|
supports most of the features you expect from a modern media
|
|
|
|
player, like Unicode support, tag editing, Replay Gain, podcasts
|
|
|
|
& internet radio, and all major audio formats.
|
|
|
|
'';
|
|
|
|
|
2013-10-29 10:33:46 +00:00
|
|
|
maintainer = [ stdenv.lib.maintainers.coroa ];
|
2013-04-18 00:44:12 +01:00
|
|
|
homepage = http://code.google.com/p/quodlibet/;
|
|
|
|
};
|
|
|
|
}
|