summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorryneeverett <ryneeverett@gmail.com>2021-09-08 06:07:28 -0400
committerGitHub <noreply@github.com>2021-09-08 06:07:28 -0400
commit3e9f6d7e99806a16c6a2b76fcba11dca64091f6d (patch)
tree58d726a6e5369ded491fe819e49a9e7229bc0d82
parentc43a2609a30e5b81a7b81d59fdda36bcb137a382 (diff)
exaile: init at 4.1.1 (#120761)
-rw-r--r--pkgs/applications/audio/exaile/default.nix107
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 109 insertions, 0 deletions
diff --git a/pkgs/applications/audio/exaile/default.nix b/pkgs/applications/audio/exaile/default.nix
new file mode 100644
index 000000000000..220a7c4eb3ea
--- /dev/null
+++ b/pkgs/applications/audio/exaile/default.nix
@@ -0,0 +1,107 @@
+{ stdenv, lib, fetchFromGitHub
+, gobject-introspection, makeWrapper, wrapGAppsHook
+, 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
+, bpmCounterSupport ? false
+, ipythonSupport ? false
+, lastfmSupport ? false
+, lyricsManiaSupport ? false
+, lyricsWikiSupport ? false
+, multimediaKeySupport ? false
+, musicBrainzSupport ? false
+, podcastSupport ? false
+, streamripperSupport ? false
+, wikipediaSupport ? false
+, fetchpatch
+}:
+
+stdenv.mkDerivation rec {
+ pname = "exaile";
+ version = "4.1.1";
+
+ src = fetchFromGitHub {
+ owner = "exaile";
+ repo = pname;
+ rev = version;
+ sha256 = "0s29lm0i4slgaw5l5s9a2zx0b83xac43rnil5cvyi210dxm5s048";
+ };
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/exaile/exaile/pull/751.patch";
+ sha256 = "sha256-jCJh85Z3HQcyS4ntQP5HwYJgM7WNHcWzjf0BdNJitsM=";
+ })
+ ];
+
+ nativeBuildInputs = [
+ gobject-introspection
+ makeWrapper
+ wrapGAppsHook
+ ] ++ 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
+ ]) ++ (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 bpmCounterSupport gst_all_1.gst-plugins-bad
+ ++ lib.optional ipythonSupport python3.pkgs.ipython
+ ++ lib.optional lastfmSupport python3.pkgs.pylast
+ ++ lib.optional (lyricsManiaSupport || lyricsWikiSupport) python3.pkgs.lxml
+ ++ lib.optional lyricsWikiSupport python3.pkgs.beautifulsoup4
+ ++ lib.optional multimediaKeySupport keybinder3
+ ++ lib.optional musicBrainzSupport python3.pkgs.musicbrainzngs
+ ++ lib.optional podcastSupport python3.pkgs.feedparser
+ ++ lib.optional wikipediaSupport webkitgtk;
+
+ checkInputs = with python3.pkgs; [
+ mox3
+ 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 \
+ ${lib.optionalString streamripperSupport "--prefix PATH : ${lib.makeBinPath [ streamripper ]}"}
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.exaile.org/";
+ description = "A music player with a simple interface and powerful music management capabilities";
+ license = licenses.gpl2Only;
+ maintainers = with maintainers; [ ryneeverett ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 519ffa277a19..0a30b941f17b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -24268,6 +24268,8 @@ with pkgs;
evilpixie = libsForQt5.callPackage ../applications/graphics/evilpixie { };
+ exaile = callPackage ../applications/audio/exaile { };
+
exercism = callPackage ../applications/misc/exercism { };
expenses = callPackage ../applications/misc/expenses { };