gnu: Add Extempore.
[jackhill/guix/guix.git] / gnu / packages / mpd.scm
CommitLineData
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>
9913c78a 7;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
892d8a81
DT
8;;;
9;;; This file is part of GNU Guix.
10;;;
11;;; GNU Guix is free software; you can redistribute it and/or modify it
12;;; under the terms of the GNU General Public License as published by
13;;; the Free Software Foundation; either version 3 of the License, or (at
14;;; your option) any later version.
15;;;
16;;; GNU Guix is distributed in the hope that it will be useful, but
17;;; WITHOUT ANY WARRANTY; without even the implied warranty of
18;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;;; GNU General Public License for more details.
20;;;
21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23
24(define-module (gnu packages mpd)
25 #:use-module (gnu packages)
7dc68701 26 #:use-module ((guix licenses) #:prefix license:)
892d8a81
DT
27 #:use-module (guix packages)
28 #:use-module (guix download)
29a7c98a 29 #:use-module (guix utils)
892d8a81 30 #:use-module (guix build-system gnu)
efe0b143 31 #:use-module (guix build-system python)
7dc68701 32 #:use-module (gnu packages avahi)
e42dc624 33 #:use-module (gnu packages boost)
6c86cef5
CB
34 #:use-module (gnu packages gettext)
35 #:use-module (gnu packages gnome)
36 #:use-module (gnu packages gtk)
58acabc3 37 #:use-module (gnu packages icu4c)
e42dc624 38 #:use-module (gnu packages readline)
7dc68701
DT
39 #:use-module (gnu packages compression)
40 #:use-module (gnu packages curl)
99828fa7 41 #:use-module (gnu packages documentation)
7dc68701
DT
42 #:use-module (gnu packages glib)
43 #:use-module (gnu packages linux)
44 #:use-module (gnu packages mp3)
4d01bd3c 45 #:use-module (gnu packages ncurses)
7dc68701 46 #:use-module (gnu packages pkg-config)
efe0b143 47 #:use-module (gnu packages python)
7dc68701 48 #:use-module (gnu packages pulseaudio)
5f96f303 49 #:use-module (gnu packages databases)
7dc68701 50 #:use-module (gnu packages video)
654b27e5 51 #:use-module (gnu packages xiph))
892d8a81 52
654b27e5 53(define-public libmpdclient
892d8a81
DT
54 (package
55 (name "libmpdclient")
a53a925f 56 (version "2.10")
892d8a81
DT
57 (source (origin
58 (method url-fetch)
59 (uri
60 (string-append "http://musicpd.org/download/libmpdclient/"
61 (car (string-split version #\.))
a53a925f 62 "/libmpdclient-" version ".tar.xz"))
892d8a81
DT
63 (sha256
64 (base32
a53a925f 65 "10pzs9z815a8hgbbbiliapyiw82bnplsccj5irgqjw5f5plcs22g"))))
892d8a81 66 (build-system gnu-build-system)
b0193286 67 (native-inputs `(("doxygen" ,doxygen)))
892d8a81
DT
68 (synopsis "Music Player Daemon client library")
69 (description "A stable, documented, asynchronous API library for
70interfacing MPD in the C, C++ & Objective C languages.")
71 (home-page "http://www.musicpd.org/libs/libmpdclient/")
7dc68701
DT
72 (license license:bsd-3)))
73
654b27e5 74(define-public mpd
7dc68701
DT
75 (package
76 (name "mpd")
bf4843ba 77 (version "0.19.19")
7dc68701
DT
78 (source (origin
79 (method url-fetch)
80 (uri
81 (string-append "http://musicpd.org/download/mpd/"
29a7c98a 82 (version-major+minor version)
58acabc3 83 "/mpd-" version ".tar.xz"))
7dc68701
DT
84 (sha256
85 (base32
bf4843ba 86 "07af1m2lgblyiq0gcs26zv8n22wrhrpmf49xsm338h1n87d6r1dw"))))
7dc68701
DT
87 (build-system gnu-build-system)
88 (inputs `(("ao" ,ao)
89 ("alsa-lib" ,alsa-lib)
90 ("avahi" ,avahi)
58acabc3 91 ("boost" ,boost)
7dc68701
DT
92 ("curl" ,curl)
93 ("ffmpeg" ,ffmpeg)
94 ("flac" ,flac)
95 ("glib" ,glib)
58acabc3 96 ("icu4c" ,icu4c)
7dc68701
DT
97 ("lame" ,lame)
98 ("libid3tag" ,libid3tag)
99 ("libmad" ,libmad)
100 ("libmpdclient" ,libmpdclient)
101 ("libsamplerate" ,libsamplerate)
102 ("libsndfile" ,libsndfile)
103 ("libvorbis" ,libvorbis)
104 ("opus" ,opus)
7dc68701
DT
105 ("pulseaudio" ,pulseaudio)
106 ("sqlite" ,sqlite)
107 ("zlib" ,zlib)))
41eb1198 108 (native-inputs `(("pkg-config" ,pkg-config)))
7dc68701
DT
109 ;; Missing optional inputs:
110 ;; libyajl
111 ;; libcdio_paranoia
112 ;; libmms
113 ;; libadplug
114 ;; libaudiofile
115 ;; faad2
116 ;; fluidsynth
117 ;; libgme
118 ;; libshout
119 ;; libmpg123
120 ;; libmodplug
121 ;; libmpcdec
122 ;; libsidplay2
123 ;; libwavpack
124 ;; libwildmidi
125 ;; libtwolame
126 ;; libroar
127 ;; libjack
128 ;; OpenAL
129 (synopsis "Music Player Daemon")
130 (description "Music Player Daemon (MPD) is a flexible, powerful,
131server-side application for playing music. Through plugins and libraries it
132can play a variety of sound files while being controlled by its network
133protocol.")
134 (home-page "http://www.musicpd.org/")
135 (license license:gpl2)))
4d01bd3c 136
654b27e5 137(define-public mpd-mpc
773b2792
PW
138 (package
139 (name "mpd-mpc")
95eee670 140 (version "0.28")
773b2792
PW
141 (source (origin
142 (method url-fetch)
143 (uri
144 (string-append "http://www.musicpd.org/download/mpc/"
145 (car (string-split version #\.))
146 "/mpc-" version ".tar.xz"))
147 (sha256
148 (base32
95eee670 149 "0iy5mdffkk61255f62si7p8mhyhkib70zlr1i1iimj2xr037scx4"))))
773b2792
PW
150 (build-system gnu-build-system)
151 (inputs `(("libmpdclient" ,libmpdclient)))
152 (native-inputs `(("pkg-config" ,pkg-config)))
153 (synopsis "Music Player Daemon client")
154 (description "MPC is a minimalist command line interface to MPD, the music
155player daemon.")
156 (home-page "http://www.musicpd.org/clients/mpc/")
157 (license license:gpl2)))
158
654b27e5 159(define-public ncmpc
4d01bd3c
DT
160 (package
161 (name "ncmpc")
029bb5a2 162 (version "0.25")
4d01bd3c
DT
163 (source (origin
164 (method url-fetch)
165 (uri
166 (string-append "http://musicpd.org/download/ncmpc/"
167 (car (string-split version #\.))
3efee6a4 168 "/ncmpc-" version ".tar.xz"))
4d01bd3c
DT
169 (sha256
170 (base32
029bb5a2 171 "196f9s0qmc4srr10n4vk3amvqy5f52y9kvgwqpkfjsnhf75qlckf"))))
4d01bd3c
DT
172 (build-system gnu-build-system)
173 (inputs `(("glib" ,glib)
174 ("libmpdclient" ,libmpdclient)
175 ("ncurses" ,ncurses)))
176 (native-inputs `(("pkg-config" ,pkg-config)))
9e771e3b 177 (synopsis "Curses Music Player Daemon client")
4d01bd3c
DT
178 (description "ncmpc is a fully featured MPD client, which runs in a
179terminal using ncurses.")
180 (home-page "http://www.musicpd.org/clients/ncmpc/")
181 (license license:gpl2)))
009c5b5c 182
654b27e5 183(define-public ncmpcpp
009c5b5c
CS
184 (package
185 (name "ncmpcpp")
282ee5aa 186 (version "0.7.5")
009c5b5c
CS
187 (source (origin
188 (method url-fetch)
189 (uri
190 (string-append "http://ncmpcpp.rybczak.net/stable/ncmpcpp-"
191 version ".tar.bz2"))
192 (sha256
193 (base32
282ee5aa 194 "0zg084m06y7dd8ccy6aq9hx8q7qi2s5kl0br5139hrmk40q68kvy"))))
009c5b5c
CS
195 (build-system gnu-build-system)
196 (inputs `(("libmpdclient" ,libmpdclient)
e42dc624
PW
197 ("boost" ,boost)
198 ("readline" ,readline)
a22722c1 199 ("ncurses" ,ncurses)
a4c7c57c
LF
200 ("taglib" ,taglib)
201 ("icu4c" ,icu4c)))
e42dc624 202 (native-inputs
c7794307 203 `(("pkg-config" ,pkg-config)))
e42dc624
PW
204 (arguments
205 '(#:configure-flags
c7794307 206 '("BOOST_LIB_SUFFIX=" "--with-taglib")))
009c5b5c
CS
207 (synopsis "Featureful ncurses based MPD client inspired by ncmpc")
208 (description "Ncmpcpp is an mpd client with a UI very similar to ncmpc,
209but it provides new useful features such as support for regular expressions
210for library searches, extended song format, items filtering, the ability to
211sort playlists, and a local filesystem browser.")
212 (home-page "http://ncmpcpp.rybczak.net/")
213 (license license:gpl2+)))
927ff2c3
DT
214
215(define-public mpdscribble
216 (package
217 (name "mpdscribble")
218 (version "0.22")
219 (source (origin
220 (method url-fetch)
221 (uri (string-append "http://www.musicpd.org/download/mpdscribble/"
222 version "/mpdscribble-" version ".tar.gz"))
223 (sha256
224 (base32
225 "0f0ybx380x2z2g1qvdndpvcrhkrgsfqckhz3ryydq2w3pl12v27z"))))
226 (build-system gnu-build-system)
227 (inputs `(("libmpdclient" ,libmpdclient)
228 ("curl" ,curl)
229 ("glib" ,glib)))
230 (native-inputs `(("pkg-config" ,pkg-config)))
231 (synopsis "MPD client for track scrobbling")
232 (description "mpdscribble is a Music Player Daemon client which submits
233information about tracks being played to a scrobbler, such as Libre.FM.")
234 ;; musicpd.org doesn't mention mpdscribble. It points users to this wiki
235 ;; instead.
236 (home-page "http://mpd.wikia.com/wiki/Client:Mpdscribble")
237 (license license:gpl2+)))
efe0b143
LF
238
239(define-public python-mpd2
240 (package
241 (name "python-mpd2")
242 (version "0.5.5")
243 (source (origin
244 (method url-fetch)
245 (uri (pypi-uri "python-mpd2" version))
246 (sha256
247 (base32
248 "0laypd7h1j14b4vrmiayqlzdsh2j5hc3zv4l0fqvbrbw9y6763ii"))))
249 (build-system python-build-system)
250 (arguments
251 '(#:phases
252 (modify-phases %standard-phases
253 (replace 'check
254 (lambda _ (zero? (system* "python" "mpd_test.py")))))))
255 (native-inputs `(("python-mock" ,python-mock)))
256 (home-page "https://github.com/Mic92/python-mpd2")
257 (synopsis "Python MPD client library")
258 (description "Python-mpd2 is a Python library which provides a client
259interface for the Music Player Daemon.")
260 (license license:lgpl3+)
261 (properties `((python2-variant . ,(delay python2-mpd2))))))
262
263(define-public python2-mpd2
264 (let ((mpd2 (package-with-python2
265 (strip-python2-variant python-mpd2))))
266 (package (inherit mpd2)
267 (native-inputs `(("python2-setuptools" ,python2-setuptools)
268 ,@(package-native-inputs mpd2))))))
6c86cef5
CB
269
270(define-public sonata
271 (package
272 (name "sonata")
273 (version "1.7b1")
274 (source (origin
275 (method url-fetch)
276 (uri
277 (string-append "https://github.com/multani/sonata/archive/v"
278 version ".tar.gz"))
279 (file-name (string-append name "-" version ".tar.gz"))
280 (sha256
281 (base32
282 "07gq2nxqwxs0qyxjbay7k5j25zd386bn7wdr2dl1gk53diwnn7s0"))))
283 (build-system python-build-system)
284 (arguments
285 `(#:modules ((guix build gnu-build-system)
286 (guix build python-build-system)
287 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
288 (guix build utils))
289 #:imported-modules (,@%gnu-build-system-modules
290 (guix build python-build-system)
291 (guix build glib-or-gtk-build-system))
292 #:phases
293 (modify-phases %standard-phases
294 (add-after 'install 'glib-or-gtk-wrap
295 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
296 (add-after 'install 'wrap-sonata
297 (lambda* (#:key outputs #:allow-other-keys)
298 (let ((out (assoc-ref outputs "out"))
299 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
300 (wrap-program (string-append out "/bin/sonata")
301 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
302 #t)))))
303 (native-inputs
304 `(("gettext" ,gnu-gettext)))
305 (inputs
306 `(("python-mpd2" ,python-mpd2)
307 ("gtk+" ,gtk+)
308 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
309 ("gobject-introspection" ,gobject-introspection)
310 ("adwaita-icon-theme" ,adwaita-icon-theme)
311 ("python-pygobject" ,python-pygobject)))
312 (synopsis "Elegant client for the Music Player Daemon")
313 (description "Sonata is an elegant graphical client for the Music Player
314Daemon (MPD). It supports playlists, multiple profiles (connecting to different
315MPD servers, search and multimedia key support.")
316 (home-page "http://www.nongnu.org/sonata/")
317 (license license:gpl3+)))