Commit | Line | Data |
---|---|---|
892d8a81 | 1 | ;;; GNU Guix --- Functional package management for GNU |
927ff2c3 | 2 | ;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu> |
b0193286 | 3 | ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> |
009c5b5c | 4 | ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> |
29a7c98a | 5 | ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> |
e42dc624 | 6 | ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> |
3f6ed3b2 | 7 | ;;; Copyright © 2016, 2018, 2019, 2020 Leo Famulari <leo@famulari.name> |
30e76966 | 8 | ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> |
5ce0aab3 | 9 | ;;; Copyright © 2019 Evan Straw <evan.straw99@gmail.com> |
ec2a8f60 | 10 | ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net> |
349666b7 | 11 | ;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net> |
79e9168a | 12 | ;;; Copyright © 2020 Simon Streit <simon@netpanic.org> |
1a1d358f | 13 | ;;; Copyright © 2021 Noah Evans <noah@nevans.me> |
892d8a81 DT |
14 | ;;; |
15 | ;;; This file is part of GNU Guix. | |
16 | ;;; | |
17 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
18 | ;;; under the terms of the GNU General Public License as published by | |
19 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
20 | ;;; your option) any later version. | |
21 | ;;; | |
22 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
23 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
24 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
25 | ;;; GNU General Public License for more details. | |
26 | ;;; | |
27 | ;;; You should have received a copy of the GNU General Public License | |
28 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
29 | ||
30 | (define-module (gnu packages mpd) | |
31 | #:use-module (gnu packages) | |
7dc68701 | 32 | #:use-module ((guix licenses) #:prefix license:) |
892d8a81 DT |
33 | #:use-module (guix packages) |
34 | #:use-module (guix download) | |
5ce0aab3 | 35 | #:use-module (guix git-download) |
29a7c98a | 36 | #:use-module (guix utils) |
79e9168a | 37 | #:use-module (guix build-system cmake) |
892d8a81 | 38 | #:use-module (guix build-system gnu) |
7da9e792 | 39 | #:use-module (guix build-system meson) |
efe0b143 | 40 | #:use-module (guix build-system python) |
79e9168a | 41 | #:use-module (gnu packages audio) |
349666b7 | 42 | #:use-module (gnu packages autotools) |
7dc68701 | 43 | #:use-module (gnu packages avahi) |
349666b7 | 44 | #:use-module (gnu packages base) |
e42dc624 | 45 | #:use-module (gnu packages boost) |
79e9168a | 46 | #:use-module (gnu packages cdrom) |
6c86cef5 CB |
47 | #:use-module (gnu packages gettext) |
48 | #:use-module (gnu packages gnome) | |
ab7a5d73 | 49 | #:use-module (gnu packages gnupg) |
6c86cef5 | 50 | #:use-module (gnu packages gtk) |
58acabc3 | 51 | #:use-module (gnu packages icu4c) |
79e9168a | 52 | #:use-module (gnu packages libusb) |
e42dc624 | 53 | #:use-module (gnu packages readline) |
ac257f12 | 54 | #:use-module (gnu packages check) |
7dc68701 DT |
55 | #:use-module (gnu packages compression) |
56 | #:use-module (gnu packages curl) | |
99828fa7 | 57 | #:use-module (gnu packages documentation) |
7dc68701 DT |
58 | #:use-module (gnu packages glib) |
59 | #:use-module (gnu packages linux) | |
60 | #:use-module (gnu packages mp3) | |
4d01bd3c | 61 | #:use-module (gnu packages ncurses) |
cd220e60 | 62 | #:use-module (gnu packages pcre) |
7dc68701 | 63 | #:use-module (gnu packages pkg-config) |
efe0b143 | 64 | #:use-module (gnu packages python) |
349666b7 | 65 | #:use-module (gnu packages python-xyz) |
7dc68701 | 66 | #:use-module (gnu packages pulseaudio) |
79e9168a | 67 | #:use-module (gnu packages qt) |
9d0c291e | 68 | #:use-module (gnu packages sphinx) |
cd0322a3 | 69 | #:use-module (gnu packages sqlite) |
7dc68701 | 70 | #:use-module (gnu packages video) |
654b27e5 | 71 | #:use-module (gnu packages xiph)) |
892d8a81 | 72 | |
654b27e5 | 73 | (define-public libmpdclient |
892d8a81 DT |
74 | (package |
75 | (name "libmpdclient") | |
271bc79f | 76 | (version "2.19") |
892d8a81 DT |
77 | (source (origin |
78 | (method url-fetch) | |
79 | (uri | |
c59ea46f | 80 | (string-append "https://musicpd.org/download/libmpdclient/" |
892d8a81 | 81 | (car (string-split version #\.)) |
a53a925f | 82 | "/libmpdclient-" version ".tar.xz")) |
892d8a81 DT |
83 | (sha256 |
84 | (base32 | |
271bc79f | 85 | "12d1fzlkcnjw4ayk2wp11vhglfcvr5k02arzdbkhiavq496av2hm")))) |
7da9e792 TGR |
86 | (build-system meson-build-system) |
87 | (native-inputs | |
88 | `(("pkg-config" ,pkg-config) | |
89 | ||
90 | ;; For building HTML documentation. | |
91 | ("doxygen" ,doxygen) | |
92 | ||
93 | ;; For tests. | |
94 | ("check" ,check))) | |
95 | (arguments | |
96 | `(#:configure-flags | |
97 | (list "-Ddocumentation=true" | |
98 | "-Dtest=true"))) | |
892d8a81 DT |
99 | (synopsis "Music Player Daemon client library") |
100 | (description "A stable, documented, asynchronous API library for | |
101 | interfacing MPD in the C, C++ & Objective C languages.") | |
e9aa6b5e | 102 | (home-page "https://www.musicpd.org/libs/libmpdclient/") |
7dc68701 DT |
103 | (license license:bsd-3))) |
104 | ||
654b27e5 | 105 | (define-public mpd |
7dc68701 DT |
106 | (package |
107 | (name "mpd") | |
30e76966 | 108 | (version "0.22.6") |
7dc68701 DT |
109 | (source (origin |
110 | (method url-fetch) | |
111 | (uri | |
943100f6 | 112 | (string-append "https://musicpd.org/download/mpd/" |
29a7c98a | 113 | (version-major+minor version) |
58acabc3 | 114 | "/mpd-" version ".tar.xz")) |
7dc68701 DT |
115 | (sha256 |
116 | (base32 | |
30e76966 | 117 | "0pjdd8qwia1dsfkzyxcasfhxiqwk6lcz333z8w9vcg2wi6j4kq9b")))) |
f52bd828 | 118 | (build-system meson-build-system) |
87b52095 | 119 | (arguments |
ec2a8f60 | 120 | `(#:configure-flags '("-Ddocumentation=enabled"))) |
7dc68701 DT |
121 | (inputs `(("ao" ,ao) |
122 | ("alsa-lib" ,alsa-lib) | |
123 | ("avahi" ,avahi) | |
58acabc3 | 124 | ("boost" ,boost) |
7dc68701 DT |
125 | ("curl" ,curl) |
126 | ("ffmpeg" ,ffmpeg) | |
127 | ("flac" ,flac) | |
128 | ("glib" ,glib) | |
58acabc3 | 129 | ("icu4c" ,icu4c) |
241caa62 LF |
130 | ;; The LAME decoder comes from FFmpeg, but is added here so that |
131 | ;; configure picks up the LAME encoder. | |
7dc68701 DT |
132 | ("lame" ,lame) |
133 | ("libid3tag" ,libid3tag) | |
7dc68701 DT |
134 | ("libmpdclient" ,libmpdclient) |
135 | ("libsamplerate" ,libsamplerate) | |
136 | ("libsndfile" ,libsndfile) | |
137 | ("libvorbis" ,libvorbis) | |
138 | ("opus" ,opus) | |
7dc68701 DT |
139 | ("pulseaudio" ,pulseaudio) |
140 | ("sqlite" ,sqlite) | |
141 | ("zlib" ,zlib))) | |
63d4ef52 | 142 | (native-inputs `(("pkg-config" ,pkg-config) |
f52bd828 | 143 | ("python-sphinx" ,python-sphinx))) |
7dc68701 DT |
144 | ;; Missing optional inputs: |
145 | ;; libyajl | |
146 | ;; libcdio_paranoia | |
147 | ;; libmms | |
148 | ;; libadplug | |
149 | ;; libaudiofile | |
150 | ;; faad2 | |
151 | ;; fluidsynth | |
152 | ;; libgme | |
153 | ;; libshout | |
154 | ;; libmpg123 | |
155 | ;; libmodplug | |
156 | ;; libmpcdec | |
157 | ;; libsidplay2 | |
158 | ;; libwavpack | |
159 | ;; libwildmidi | |
160 | ;; libtwolame | |
161 | ;; libroar | |
162 | ;; libjack | |
163 | ;; OpenAL | |
164 | (synopsis "Music Player Daemon") | |
165 | (description "Music Player Daemon (MPD) is a flexible, powerful, | |
166 | server-side application for playing music. Through plugins and libraries it | |
167 | can play a variety of sound files while being controlled by its network | |
168 | protocol.") | |
e9aa6b5e | 169 | (home-page "https://www.musicpd.org/") |
7dc68701 | 170 | (license license:gpl2))) |
4d01bd3c | 171 | |
654b27e5 | 172 | (define-public mpd-mpc |
773b2792 PW |
173 | (package |
174 | (name "mpd-mpc") | |
8f9c957d | 175 | (version "0.33") |
773b2792 PW |
176 | (source (origin |
177 | (method url-fetch) | |
178 | (uri | |
62d14d24 | 179 | (string-append "https://www.musicpd.org/download/mpc/" |
773b2792 PW |
180 | (car (string-split version #\.)) |
181 | "/mpc-" version ".tar.xz")) | |
182 | (sha256 | |
183 | (base32 | |
8f9c957d | 184 | "15hjpzqs83v1zx49x8nkpwy9hpl1jxd55z1w50vm82gm32zcqh2g")))) |
62d14d24 | 185 | (build-system meson-build-system) |
773b2792 | 186 | (inputs `(("libmpdclient" ,libmpdclient))) |
33279c2a LF |
187 | (native-inputs |
188 | `(("pkg-config" ,pkg-config) | |
189 | ("python-sphinx" ,python-sphinx))) | |
773b2792 PW |
190 | (synopsis "Music Player Daemon client") |
191 | (description "MPC is a minimalist command line interface to MPD, the music | |
192 | player daemon.") | |
e9aa6b5e | 193 | (home-page "https://www.musicpd.org/clients/mpc/") |
773b2792 PW |
194 | (license license:gpl2))) |
195 | ||
654b27e5 | 196 | (define-public ncmpc |
4d01bd3c DT |
197 | (package |
198 | (name "ncmpc") | |
da4c7ba9 | 199 | (version "0.45") |
4d01bd3c DT |
200 | (source (origin |
201 | (method url-fetch) | |
202 | (uri | |
203 | (string-append "http://musicpd.org/download/ncmpc/" | |
947babea | 204 | (version-major version) |
3efee6a4 | 205 | "/ncmpc-" version ".tar.xz")) |
4d01bd3c DT |
206 | (sha256 |
207 | (base32 | |
da4c7ba9 | 208 | "11gpy6kd7xr8x7f7gwdwfryxyc58cd135ds28gnz40p08xj49zqp")))) |
fbde7b08 TGR |
209 | (build-system meson-build-system) |
210 | (arguments | |
211 | `(#:configure-flags | |
cd220e60 LF |
212 | ;; Otherwise, they are installed incorrectly, in |
213 | ;; '$out/share/man/man/man1'. | |
214 | (list (string-append "-Dmandir=" (assoc-ref %outputs "out") | |
9880bba2 MB |
215 | "/share")))) |
216 | (inputs `(("boost" ,boost) | |
cd220e60 | 217 | ("pcre" ,pcre) |
4d01bd3c DT |
218 | ("libmpdclient" ,libmpdclient) |
219 | ("ncurses" ,ncurses))) | |
fbde7b08 | 220 | (native-inputs `(("gettext" ,gettext-minimal) ; for xgettext |
cd220e60 LF |
221 | ("pkg-config" ,pkg-config) |
222 | ("python-sphinx" ,python-sphinx))) | |
9e771e3b | 223 | (synopsis "Curses Music Player Daemon client") |
4d01bd3c DT |
224 | (description "ncmpc is a fully featured MPD client, which runs in a |
225 | terminal using ncurses.") | |
e9aa6b5e | 226 | (home-page "https://www.musicpd.org/clients/ncmpc/") |
4d01bd3c | 227 | (license license:gpl2))) |
009c5b5c | 228 | |
654b27e5 | 229 | (define-public ncmpcpp |
009c5b5c CS |
230 | (package |
231 | (name "ncmpcpp") | |
3f0af151 | 232 | (version "0.9.2") |
009c5b5c CS |
233 | (source (origin |
234 | (method url-fetch) | |
235 | (uri | |
a708fea4 | 236 | (string-append "https://ncmpcpp.rybczak.net/stable/ncmpcpp-" |
009c5b5c CS |
237 | version ".tar.bz2")) |
238 | (sha256 | |
239 | (base32 | |
3f0af151 | 240 | "06rs734n120jp51hr0fkkhxrm7zscbhpdwls0m5b5cccghazdazs")))) |
009c5b5c CS |
241 | (build-system gnu-build-system) |
242 | (inputs `(("libmpdclient" ,libmpdclient) | |
4cb9b726 | 243 | ("boost" ,boost) |
e42dc624 | 244 | ("readline" ,readline) |
a22722c1 | 245 | ("ncurses" ,ncurses) |
a4c7c57c | 246 | ("taglib" ,taglib) |
a708fea4 LF |
247 | ("icu4c" ,icu4c) |
248 | ("curl" ,curl))) | |
e42dc624 | 249 | (native-inputs |
c7794307 | 250 | `(("pkg-config" ,pkg-config))) |
e42dc624 PW |
251 | (arguments |
252 | '(#:configure-flags | |
9edae6c0 | 253 | '("BOOST_LIB_SUFFIX=" "--with-taglib" "--enable-clock"))) |
009c5b5c CS |
254 | (synopsis "Featureful ncurses based MPD client inspired by ncmpc") |
255 | (description "Ncmpcpp is an mpd client with a UI very similar to ncmpc, | |
256 | but it provides new useful features such as support for regular expressions | |
257 | for library searches, extended song format, items filtering, the ability to | |
8f65585b | 258 | sort playlists, and a local file system browser.") |
a708fea4 | 259 | (home-page "https://ncmpcpp.rybczak.net/") |
009c5b5c | 260 | (license license:gpl2+))) |
927ff2c3 DT |
261 | |
262 | (define-public mpdscribble | |
263 | (package | |
264 | (name "mpdscribble") | |
ab7a5d73 | 265 | (version "0.23") |
927ff2c3 DT |
266 | (source (origin |
267 | (method url-fetch) | |
268 | (uri (string-append "http://www.musicpd.org/download/mpdscribble/" | |
ab7a5d73 | 269 | version "/mpdscribble-" version ".tar.xz")) |
927ff2c3 DT |
270 | (sha256 |
271 | (base32 | |
ab7a5d73 TGR |
272 | "0s66zqscb44p88cl3kcv5jkjcqsskcnrv7xgrjhzrchf2kcpwf53")))) |
273 | (build-system meson-build-system) | |
274 | (inputs `(("boost" ,boost) | |
275 | ("curl" ,curl) | |
276 | ("libgcrypt" ,libgcrypt) | |
037cf6ec | 277 | ("libmpdclient" ,libmpdclient))) |
927ff2c3 DT |
278 | (native-inputs `(("pkg-config" ,pkg-config))) |
279 | (synopsis "MPD client for track scrobbling") | |
280 | (description "mpdscribble is a Music Player Daemon client which submits | |
281 | information about tracks being played to a scrobbler, such as Libre.FM.") | |
fc2847b1 | 282 | (home-page "https://www.musicpd.org/clients/mpdscribble/") |
927ff2c3 | 283 | (license license:gpl2+))) |
efe0b143 LF |
284 | |
285 | (define-public python-mpd2 | |
286 | (package | |
287 | (name "python-mpd2") | |
85e97c96 | 288 | (version "3.0.1") |
efe0b143 LF |
289 | (source (origin |
290 | (method url-fetch) | |
291 | (uri (pypi-uri "python-mpd2" version)) | |
292 | (sha256 | |
293 | (base32 | |
85e97c96 | 294 | "0fxssbmnv44m03shjyvbqslc69b0160702j2s0flgvdxjggrnbjj")))) |
efe0b143 LF |
295 | (build-system python-build-system) |
296 | (arguments | |
297 | '(#:phases | |
298 | (modify-phases %standard-phases | |
299 | (replace 'check | |
85e97c96 TLC |
300 | (lambda _ (invoke "python" "-m" "pytest" "mpd/tests.py")))))) |
301 | (native-inputs | |
302 | `(("python-mock" ,python-mock) | |
303 | ("python-pytest" ,python-pytest))) | |
efe0b143 LF |
304 | (home-page "https://github.com/Mic92/python-mpd2") |
305 | (synopsis "Python MPD client library") | |
306 | (description "Python-mpd2 is a Python library which provides a client | |
307 | interface for the Music Player Daemon.") | |
5c31f4aa | 308 | (license license:lgpl3+))) |
efe0b143 | 309 | |
6c86cef5 CB |
310 | (define-public sonata |
311 | (package | |
312 | (name "sonata") | |
b1cb9e67 | 313 | (version "1.7.0") |
6c86cef5 | 314 | (source (origin |
92ecee94 EF |
315 | (method git-fetch) |
316 | (uri (git-reference | |
317 | (url "https://github.com/multani/sonata") | |
318 | (commit (string-append "v" version)))) | |
319 | (file-name (git-file-name name version)) | |
6c86cef5 CB |
320 | (sha256 |
321 | (base32 | |
b1cb9e67 | 322 | "0rl8w7s2asff626clzfvyz987l2k4ml5dg417mqp9v8a962q0v2x")))) |
6c86cef5 CB |
323 | (build-system python-build-system) |
324 | (arguments | |
325 | `(#:modules ((guix build gnu-build-system) | |
326 | (guix build python-build-system) | |
327 | ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) | |
328 | (guix build utils)) | |
329 | #:imported-modules (,@%gnu-build-system-modules | |
330 | (guix build python-build-system) | |
331 | (guix build glib-or-gtk-build-system)) | |
332 | #:phases | |
333 | (modify-phases %standard-phases | |
334 | (add-after 'install 'glib-or-gtk-wrap | |
335 | (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)) | |
336 | (add-after 'install 'wrap-sonata | |
337 | (lambda* (#:key outputs #:allow-other-keys) | |
338 | (let ((out (assoc-ref outputs "out")) | |
339 | (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) | |
340 | (wrap-program (string-append out "/bin/sonata") | |
341 | `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) | |
342 | #t))))) | |
343 | (native-inputs | |
7c90d0f4 | 344 | `(("gettext" ,gettext-minimal))) |
6c86cef5 CB |
345 | (inputs |
346 | `(("python-mpd2" ,python-mpd2) | |
347 | ("gtk+" ,gtk+) | |
348 | ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) | |
349 | ("gobject-introspection" ,gobject-introspection) | |
350 | ("adwaita-icon-theme" ,adwaita-icon-theme) | |
351 | ("python-pygobject" ,python-pygobject))) | |
352 | (synopsis "Elegant client for the Music Player Daemon") | |
353 | (description "Sonata is an elegant graphical client for the Music Player | |
354 | Daemon (MPD). It supports playlists, multiple profiles (connecting to different | |
355 | MPD servers, search and multimedia key support.") | |
340978d7 | 356 | (home-page "https://www.nongnu.org/sonata/") |
6c86cef5 | 357 | (license license:gpl3+))) |
5ce0aab3 ES |
358 | |
359 | (define-public ashuffle | |
360 | (package | |
361 | (name "ashuffle") | |
362 | (version "2.0.2") | |
363 | (source (origin | |
364 | (method git-fetch) | |
365 | (uri (git-reference | |
b0e7b699 | 366 | (url "https://github.com/joshkunz/ashuffle") |
5ce0aab3 ES |
367 | (commit (string-append "v" version)))) |
368 | (file-name (git-file-name name version)) | |
369 | (sha256 | |
370 | (base32 | |
371 | "11aa95cg0yca2m2d00sar6wr14g3lc7cfm9bin1h7lk7asdm8azp")))) | |
372 | (native-inputs `(("pkg-config" ,pkg-config))) | |
373 | (inputs `(("libmpdclient" ,libmpdclient))) | |
374 | (build-system meson-build-system) | |
375 | (home-page "https://github.com/joshkunz/ashuffle") | |
376 | (synopsis "Automatic library-wide shuffle for mpd") | |
377 | (description "ashuffle is an application for automatically shuffling your | |
a3e5361b | 378 | MPD library in a similar way to many other music players' 'shuffle library' |
5ce0aab3 ES |
379 | feature. ashuffle works like any other MPD client, and can be used alongside |
380 | other MPD frontends.") | |
381 | (license license:expat))) | |
349666b7 LDB |
382 | |
383 | (define-public mpdris2 | |
384 | (package | |
385 | (name "mpdris2") | |
386 | (version "0.8") | |
387 | (source (origin | |
388 | (method git-fetch) | |
389 | (uri (git-reference | |
390 | (url "https://github.com/eonpatapon/mpDris2") | |
391 | (commit version))) | |
392 | (file-name (git-file-name name version)) | |
393 | (sha256 | |
394 | (base32 | |
395 | "048b8acsd1b8kcxzd9fsh5p9g2an9c4rznicfcpyrsjz5syv894h")))) | |
396 | (build-system gnu-build-system) | |
397 | ;; Manually wrap the binary, because we’re not using python-build-system. | |
398 | (arguments | |
399 | '(#:phases | |
400 | (modify-phases %standard-phases | |
401 | (add-after 'install 'wrap-program | |
402 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
403 | (let ((out (assoc-ref outputs "out")) | |
404 | (python-path (getenv "PYTHONPATH"))) | |
405 | (wrap-program (string-append out "/bin/mpDris2") | |
406 | `("PYTHONPATH" ":" prefix (,python-path))) | |
407 | #t)))))) | |
408 | (inputs | |
409 | `(("python-mpd2" ,python-mpd2) | |
410 | ("python-dbus" ,python-dbus) | |
411 | ("python-pygobject" ,python-pygobject) | |
412 | ("python" ,python))) ; Sets PYTHONPATH. | |
413 | ;; For bootstrapping. | |
414 | (native-inputs | |
415 | `(("autoconf" ,autoconf) | |
416 | ("automake" ,automake) | |
fccc0127 | 417 | ("gettext" ,gettext-minimal) |
349666b7 LDB |
418 | ("which" ,which) |
419 | ("intltool" ,intltool))) | |
420 | (synopsis "MPRIS V2.1 support for MPD") | |
421 | (description "Client for the Music Player Daemon providing MPRIS 2 | |
422 | support") | |
423 | (home-page "https://github.com/eonpatapon/mpDris2") | |
424 | (license license:gpl3+))) | |
79e9168a SS |
425 | |
426 | (define-public cantata | |
427 | (package | |
428 | (name "cantata") | |
429 | (version "2.4.2") | |
430 | (source (origin | |
431 | (method url-fetch) | |
432 | (uri (string-append "https://github.com/CDrummond/" | |
433 | "cantata/releases/download/v" version "/" | |
434 | "cantata-" version ".tar.bz2")) | |
435 | (sha256 | |
436 | (base32 | |
437 | "10pcrpmb4n1mkgr21xd580nrbmh57q7s72cbs1zay847hc65vliy")))) | |
438 | (build-system cmake-build-system) | |
439 | (arguments | |
440 | `(#:tests? #f)) ; No test suite | |
441 | (native-inputs | |
442 | `(("pkg-config" ,pkg-config))) | |
443 | (inputs | |
ade77dd0 | 444 | `(("eudev" ,eudev) |
79e9168a SS |
445 | ("ffmpeg" ,ffmpeg) |
446 | ("libcdio-paranoia" ,libcdio-paranoia) | |
447 | ("libebur128" ,libebur128) | |
448 | ("libmtp" ,libmtp) | |
449 | ("mpg123" ,mpg123) | |
450 | ("qtbase" ,qtbase) | |
451 | ("qtmultimedia" ,qtmultimedia) | |
452 | ("qtsvg" ,qtsvg) | |
453 | ("taglib" ,taglib) | |
454 | ("zlib" ,zlib))) | |
455 | (synopsis "Graphical MPD Client") | |
456 | (description "Cantata is a graphical client for the Music Player Daemon | |
457 | (MPD), using the Qt5 toolkit. Its user interface is highly customizable, | |
458 | supporting multiple collections, ratings, and dynamic playlists. A local cache | |
459 | of the music library will be created to provide a hierarchy of albums and | |
460 | artists along with albumart.") | |
461 | (home-page "https://github.com/cdrummond/cantata") | |
462 | (license license:gpl3+))) | |
1a1d358f NE |
463 | |
464 | (define-public mcg | |
465 | (package | |
466 | (name "mcg") | |
467 | (version "2.1.2") | |
468 | (source | |
469 | (origin | |
470 | (method git-fetch) | |
471 | (uri | |
472 | (git-reference | |
473 | (url "https://gitlab.com/coderkun/mcg") | |
474 | (commit (string-append "v" version)))) | |
475 | (file-name (git-file-name name version)) | |
476 | (sha256 | |
477 | (base32 | |
478 | "01iqxydssxyi4s644dwl64vm7xhn0szd99hdpywbipvb7kwp5196")))) | |
479 | (build-system python-build-system) | |
480 | (native-inputs | |
481 | `(("glib:bin" ,glib "bin") | |
482 | ("gobject-introspection" ,gobject-introspection) | |
483 | ("pkg-config" ,pkg-config))) | |
484 | (inputs | |
485 | `(("avahi" ,avahi) | |
486 | ("dconf" ,dconf) | |
487 | ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) | |
488 | ("gtk+" ,gtk+) | |
489 | ("python-pygobject" ,python-pygobject))) | |
490 | (arguments | |
491 | `(#:imported-modules ((guix build glib-or-gtk-build-system) | |
492 | ,@%python-build-system-modules) | |
493 | #:modules ((guix build python-build-system) | |
494 | ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) | |
495 | (guix build utils)) | |
496 | #:phases | |
497 | (modify-phases %standard-phases | |
498 | (add-after 'install 'wrap-program | |
499 | (lambda* (#:key outputs #:allow-other-keys) | |
500 | (let ((prog (string-append (assoc-ref outputs "out") | |
501 | "/bin/mcg"))) | |
502 | (wrap-program prog | |
503 | `("PYTHONPATH" = (,(getenv "PYTHONPATH"))) | |
504 | `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) | |
505 | #t))) | |
506 | (add-after 'wrap-program 'glib-or-gtk-wrap | |
507 | (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) | |
508 | (synopsis "Covergrid for the MPD") | |
509 | (description | |
510 | "mcg (CoverGrid) is a client for the Music Player Daemon (MPD), focusing | |
511 | on albums instead of single tracks. It is not intended to be a replacement | |
512 | for your favorite MPD client but an addition to get a better | |
513 | album-experience.") | |
514 | (home-page "https://gitlab.com/coderkun/mcg") | |
515 | (license license:gpl3+))) |