@@ -0,0 +1,103 @@
1+{ lib
2+, intltool
3+, mkDerivation
4+, installShellFiles
5+, pkg-config
6+, fetchFromGitHub
7+, dbus-glib
8+, desktop-file-utils
9+, hicolor-icon-theme
10+, pcre
11+, qtbase
12+, sqlite
13+, taglib
14+, zlib
15+, gtk3
16+, libpeas
17+, libcddb
18+, libcdio
19+, gst_all_1, withGstPlugins ? true
20+, glyr, withGlyr ? true
21+, liblastfmSF, withLastfm ? true
22+, libcdio-paranoia, withCD ? true
23+, keybinder3, withKeybinder ? false
24+, libnotify, withLibnotify ? false
25+, libsoup, withLibsoup ? false
26+, libgudev, withGudev ? false # experimental
27+, libmtp, withMtp ? false # experimental
28+, xfce, withXfce4ui ? false
29+, totem-pl-parser, withTotemPlParser ? false
30+# , grilo, withGrilo ? false
31+# , rygel, withRygel ? true
32+}:
33+
34+assert withGlyr -> withLastfm;
35+assert withLastfm -> withCD;
36+
37+mkDerivation rec {
38+ pname = "pragha";
39+ version = "1.3.4";
40+
41+ src = fetchFromGitHub {
42+ owner = "pragha-music-player";
43+ repo = "pragha";
44+ rev = "v${version}";
45+ sha256 = "sha256:0n8gx8amg5l9g4w7s4agjf8mlmpgjydgzx3vryp9lzzs9xrd5vqh";
46+ };
47+
48+ nativeBuildInputs = [
49+ intltool
50+ pkg-config
51+ xfce.xfce4-dev-tools
52+ desktop-file-utils
53+ installShellFiles
54+ ];
55+
56+ buildInputs = with gst_all_1; [
57+ dbus-glib
58+ gstreamer
59+ gst-plugins-base
60+ gtk3
61+ hicolor-icon-theme
62+ libpeas
63+ pcre
64+ qtbase
65+ sqlite
66+ taglib
67+ zlib
68+ ]
69+ ++ lib.optionals withGstPlugins [ gst-plugins-good gst-plugins-bad gst-plugins-ugly ]
70+ ++ lib.optionals withCD [ libcddb libcdio libcdio-paranoia ]
71+ ++ lib.optional withGudev libgudev
72+ ++ lib.optional withKeybinder keybinder3
73+ ++ lib.optional withLibnotify libnotify
74+ ++ lib.optional withLastfm liblastfmSF
75+ ++ lib.optional withGlyr glyr
76+ ++ lib.optional withLibsoup libsoup
77+ ++ lib.optional withMtp libmtp
78+ ++ lib.optional withXfce4ui xfce.libxfce4ui
79+ ++ lib.optional withTotemPlParser totem-pl-parser
80+ # ++ lib.optional withGrilo grilo
81+ # ++ lib.optional withRygel rygel
82+ ;
83+
84+ CFLAGS = [ "-DHAVE_PARANOIA_NEW_INCLUDES" ];
85+
86+ NIX_CFLAGS_COMPILE = "-I${lib.getDev gst_all_1.gst-plugins-base}/include/gstreamer-1.0";
87+
88+ postInstall = ''
89+ qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
90+
91+ install -m 444 data/${pname}.desktop $out/share/applications
92+ install -d $out/share/pixmaps
93+ installManPage data/${pname}.1
94+ '';
95+
96+ meta = with lib; {
97+ description = "A lightweight GTK+ music manager - fork of Consonance Music Manager";
98+ homepage = "https://pragha-music-player.github.io/";
99+ license = licenses.gpl3Plus;
100+ maintainers = with maintainers; [ mbaeten ];
101+ platforms = platforms.unix;
102+ };
103+}