evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / ex / exaile / package.nix
blob5387069072f5f61d2ce6ba50ef664f7e18b678d9
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 {
23   pname = "exaile";
24   version = "4.1.3";
26   src = fetchFromGitHub {
27     owner = "exaile";
28     repo = pname;
29     rev = version;
30     sha256 = "sha256-9SK0nvGdz2j6qp1JTmSuLezxX/kB93CZReSfAnfKZzg=";
31   };
33   nativeBuildInputs = [
34     gobject-introspection
35     makeWrapper
36     wrapGAppsHook3
37   ] ++ lib.optionals documentationSupport [
38     help2man
39     python3.pkgs.sphinx
40     python3.pkgs.sphinx-rtd-theme
41   ] ++ lib.optional translationSupport gettext;
43   buildInputs = [
44     iconTheme
45     gtk3
46   ] ++ (with gst_all_1; [
47     gstreamer
48     gst-plugins-base
49     gst-plugins-good
50     gst-plugins-bad
51     gst-plugins-ugly
52     gst-libav
53   ]) ++ (with python3.pkgs; [
54     berkeleydb
55     dbus-python
56     mutagen
57     pygobject3
58     pycairo
59     gst-python
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; [
73     pytest
74   ];
76   makeFlags = [
77     "PREFIX=${placeholder "out"}"
78   ];
80   doCheck = true;
81   preCheck = ''
82     substituteInPlace Makefile --replace "PYTHONPATH=$(shell pwd)" "PYTHONPATH=$PYTHONPATH:$(shell pwd)"
83     export PYTEST="py.test"
84     export XDG_CACHE_HOME=$(mktemp -d)
85   '';
87   postInstall = ''
88     wrapProgram $out/bin/exaile \
89       --set PYTHONPATH $PYTHONPATH \
90       --prefix PATH : ${lib.makeBinPath ([ python3 ] ++ lib.optionals streamripperSupport [ streamripper ]) }
91   '';
93   meta = with lib; {
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;
100   };