1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
{ stdenv, lib, fetchFromGitHub
, gobject-introspection, makeWrapper, wrapGAppsHook3
, gtk3, gst_all_1, python3
, gettext, gnome, help2man, keybinder3, libnotify, librsvg, streamripper, udisks, webkitgtk
, iconTheme ? gnome.adwaita-icon-theme
, deviceDetectionSupport ? true
, documentationSupport ? true
, notificationSupport ? true
, scalableIconSupport ? true
, translationSupport ? true
, ipythonSupport ? false
, cdMetadataSupport ? false
, lastfmSupport ? false
, lyricsManiaSupport ? false
, multimediaKeySupport ? false
, musicBrainzSupport ? false
, podcastSupport ? false
, streamripperSupport ? false
, wikipediaSupport ? false
}:
stdenv.mkDerivation rec {
pname = "exaile";
version = "4.1.3";
src = fetchFromGitHub {
owner = "exaile";
repo = pname;
rev = version;
sha256 = "sha256-9SK0nvGdz2j6qp1JTmSuLezxX/kB93CZReSfAnfKZzg=";
};
nativeBuildInputs = [
gobject-introspection
makeWrapper
wrapGAppsHook3
] ++ lib.optionals documentationSupport [
help2man
python3.pkgs.sphinx
python3.pkgs.sphinx-rtd-theme
] ++ lib.optional translationSupport gettext;
buildInputs = [
iconTheme
gtk3
] ++ (with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
gst-libav
]) ++ (with python3.pkgs; [
bsddb3
dbus-python
mutagen
pygobject3
pycairo
gst-python
]) ++ lib.optional deviceDetectionSupport udisks
++ lib.optional notificationSupport libnotify
++ lib.optional scalableIconSupport librsvg
++ lib.optional ipythonSupport python3.pkgs.ipython
++ lib.optional cdMetadataSupport python3.pkgs.discid
++ lib.optional lastfmSupport python3.pkgs.pylast
++ lib.optional lyricsManiaSupport python3.pkgs.lxml
++ lib.optional multimediaKeySupport keybinder3
++ lib.optional (musicBrainzSupport || cdMetadataSupport) python3.pkgs.musicbrainzngs
++ lib.optional podcastSupport python3.pkgs.feedparser
++ lib.optional wikipediaSupport webkitgtk;
nativeCheckInputs = with python3.pkgs; [
pytest
];
makeFlags = [
"PREFIX=${placeholder "out"}"
];
doCheck = true;
preCheck = ''
substituteInPlace Makefile --replace "PYTHONPATH=$(shell pwd)" "PYTHONPATH=$PYTHONPATH:$(shell pwd)"
export PYTEST="py.test"
export XDG_CACHE_HOME=$(mktemp -d)
'';
postInstall = ''
wrapProgram $out/bin/exaile \
--set PYTHONPATH $PYTHONPATH \
--prefix PATH : ${lib.makeBinPath ([ python3 ] ++ lib.optionals streamripperSupport [ streamripper ]) }
'';
meta = with lib; {
homepage = "https://www.exaile.org/";
description = "A music player with a simple interface and powerful music management capabilities";
mainProgram = "exaile";
license = licenses.gpl2Only;
maintainers = with maintainers; [ ryneeverett ];
platforms = platforms.all;
};
}
|