1 { stdenv, lib, fetchFromGitHub
2 , gobject-introspection, makeWrapper, wrapGAppsHook3
3 , gtk3, gst_all_1, python3
4 , gettext, adwaita-icon-theme, help2man, keybinder3, libnotify, librsvg, streamripper, udisks, webkitgtk_4_0
5 , iconTheme ? adwaita-icon-theme
6 , deviceDetectionSupport ? true
7 , documentationSupport ? true
8 , notificationSupport ? true
9 , scalableIconSupport ? true
10 , translationSupport ? true
11 , ipythonSupport ? false
12 , cdMetadataSupport ? false
13 , lastfmSupport ? false
14 , lyricsManiaSupport ? false
15 , multimediaKeySupport ? false
16 , musicBrainzSupport ? false
17 , podcastSupport ? false
18 , streamripperSupport ? false
19 , wikipediaSupport ? false
22 stdenv.mkDerivation rec {
26 src = fetchFromGitHub {
30 sha256 = "sha256-9SK0nvGdz2j6qp1JTmSuLezxX/kB93CZReSfAnfKZzg=";
37 ] ++ lib.optionals documentationSupport [
40 python3.pkgs.sphinx-rtd-theme
41 ] ++ lib.optional translationSupport gettext;
46 ] ++ (with gst_all_1; [
53 ]) ++ (with python3.pkgs; [
60 ]) ++ lib.optional deviceDetectionSupport udisks
61 ++ lib.optional notificationSupport libnotify
62 ++ lib.optional scalableIconSupport librsvg
63 ++ lib.optional ipythonSupport python3.pkgs.ipython
64 ++ lib.optional cdMetadataSupport python3.pkgs.discid
65 ++ lib.optional lastfmSupport python3.pkgs.pylast
66 ++ lib.optional lyricsManiaSupport python3.pkgs.lxml
67 ++ lib.optional multimediaKeySupport keybinder3
68 ++ lib.optional (musicBrainzSupport || cdMetadataSupport) python3.pkgs.musicbrainzngs
69 ++ lib.optional podcastSupport python3.pkgs.feedparser
70 ++ lib.optional wikipediaSupport webkitgtk_4_0;
72 nativeCheckInputs = with python3.pkgs; [
77 "PREFIX=${placeholder "out"}"
82 substituteInPlace Makefile --replace "PYTHONPATH=$(shell pwd)" "PYTHONPATH=$PYTHONPATH:$(shell pwd)"
83 export PYTEST="py.test"
84 export XDG_CACHE_HOME=$(mktemp -d)
88 wrapProgram $out/bin/exaile \
89 --set PYTHONPATH $PYTHONPATH \
90 --prefix PATH : ${lib.makeBinPath ([ python3 ] ++ lib.optionals streamripperSupport [ streamripper ]) }
94 homepage = "https://www.exaile.org/";
95 description = "Music player with a simple interface and powerful music management capabilities";
96 mainProgram = "exaile";
97 license = licenses.gpl2Only;
98 maintainers = with maintainers; [ ryneeverett ];
99 platforms = platforms.all;