diff --git a/pkgs/applications/audio/sonata/default.nix b/pkgs/applications/audio/sonata/default.nix new file mode 100644 index 00000000000..74ce6a2c15f --- /dev/null +++ b/pkgs/applications/audio/sonata/default.nix @@ -0,0 +1,73 @@ +{ pkgs, stdenv, fetchFromGitHub, pkgconfig, intltool, wrapGAppsHook, + python, buildPythonPackage, isPy3k, + gnome3, gtk3, gobjectIntrospection, + dbus, pygobject3, mpd2 }: + +with pkgs.lib; + +buildPythonPackage rec { + name = "sonata-${version}"; + version = "1.7b1"; + namePrefix = ""; + + src = fetchFromGitHub { + owner = "multani"; + repo = "sonata"; + rev = "v${version}"; + sha256 = "1npbxlrg6k154qybfd250nq2p96kxdsdkj9wwnp93gljnii3g8wh"; + }; + + disabled = !isPy3k; + + buildInputs = [ + pkgconfig intltool wrapGAppsHook + gnome3.gnome_themes_standard gnome3.defaultIconTheme + gnome3.gsettings_desktop_schemas + ]; + + postPatch = '' + # Remove "Local MPD" tab which is not suitable for NixOS. + sed -i '/localmpd/d' sonata/consts.py + ''; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + propagatedBuildInputs = [ + gobjectIntrospection gtk3 pygobject3 + ]; + + # The optional tagpy dependency (for editing metadata) is not yet + # included because it's difficult to build. + pythonPath = [ dbus pygobject3 mpd2 ]; + + meta = { + description = "An elegant client for the Music Player Daemon"; + longDescription = '' + Sonata is an elegant client for the Music Player Daemon. + + Written in Python and using the GTK+ 3 widget set, its features + include: + + - Expanded and collapsed views + - Automatic remote and local album art + - Library browsing by folders, or by genre/artist/album + - User-configurable columns + - Automatic fetching of lyrics + - Playlist and stream support + - Support for editing song tags (not in NixOS version) + - Drag and drop to copy files + - Popup notification + - Library and playlist searching, filter as you type + - Audioscrobbler (last.fm) 1.2 support + - Multiple MPD profiles + - Keyboard friendly + - Support for multimedia keys + - Commandline control + - Available in 24 languages + ''; + homepage = "http://www.nongnu.org/sonata/"; + license = stdenv.lib.licenses.gpl3; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.rvl ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 54101963b3f..ffc16a80137 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3165,6 +3165,10 @@ let solvespace = callPackage ../applications/graphics/solvespace { }; + sonata = callPackage ../applications/audio/sonata { + inherit (python3Packages) buildPythonPackage python isPy3k dbus pygobject3 mpd2; + }; + sparsehash = callPackage ../development/libraries/sparsehash { }; spiped = callPackage ../tools/networking/spiped { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 42eac4716b2..e18bf816725 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11511,6 +11511,31 @@ in modules // { }; }; + mpd2 = buildPythonPackage rec { + name = "mpd2-${version}"; + version = "0.5.5"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/p/python-mpd2/python-mpd2-${version}.tar.bz2"; + sha256 = "1gfrxf71xll1w6zb69znqg5c9j0g7036fsalkvqprh2id640cl3a"; + }; + + propagatedBuildInputs = [ pkgs.mpd_clientlib ]; + + buildInputs = with self; [ mock ]; + patchPhase = '' + sed -i -e '/tests_require/d' \ + -e 's/cmdclass.*/test_suite="mpd_test",/' setup.py + ''; + + meta = { + description = "A Python client module for the Music Player Daemon"; + homepage = "https://github.com/Mic92/python-mpd2"; + license = licenses.lgpl3Plus; + maintainers = with maintainers; [ rvl ]; + }; + }; + mpv = buildPythonPackage rec { name = "mpv-0.1";