doc: "filesystem" -> "file system"
[jackhill/guix/guix.git] / gnu / packages / mpd.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu>
3 ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
4 ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
5 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
6 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
7 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
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)
26 #:use-module ((guix licenses) #:prefix license:)
27 #:use-module (guix packages)
28 #:use-module (guix download)
29 #:use-module (guix utils)
30 #:use-module (guix build-system gnu)
31 #:use-module (guix build-system python)
32 #:use-module (gnu packages avahi)
33 #:use-module (gnu packages boost)
34 #:use-module (gnu packages gettext)
35 #:use-module (gnu packages gnome)
36 #:use-module (gnu packages gtk)
37 #:use-module (gnu packages icu4c)
38 #:use-module (gnu packages readline)
39 #:use-module (gnu packages compression)
40 #:use-module (gnu packages curl)
41 #:use-module (gnu packages documentation)
42 #:use-module (gnu packages glib)
43 #:use-module (gnu packages linux)
44 #:use-module (gnu packages mp3)
45 #:use-module (gnu packages ncurses)
46 #:use-module (gnu packages pkg-config)
47 #:use-module (gnu packages python)
48 #:use-module (gnu packages pulseaudio)
49 #:use-module (gnu packages databases)
50 #:use-module (gnu packages video)
51 #:use-module (gnu packages xiph))
52
53 (define-public libmpdclient
54 (package
55 (name "libmpdclient")
56 (version "2.10")
57 (source (origin
58 (method url-fetch)
59 (uri
60 (string-append "http://musicpd.org/download/libmpdclient/"
61 (car (string-split version #\.))
62 "/libmpdclient-" version ".tar.xz"))
63 (sha256
64 (base32
65 "10pzs9z815a8hgbbbiliapyiw82bnplsccj5irgqjw5f5plcs22g"))))
66 (build-system gnu-build-system)
67 (native-inputs `(("doxygen" ,doxygen)))
68 (synopsis "Music Player Daemon client library")
69 (description "A stable, documented, asynchronous API library for
70 interfacing MPD in the C, C++ & Objective C languages.")
71 (home-page "http://www.musicpd.org/libs/libmpdclient/")
72 (license license:bsd-3)))
73
74 (define-public mpd
75 (package
76 (name "mpd")
77 (version "0.19.19")
78 (source (origin
79 (method url-fetch)
80 (uri
81 (string-append "http://musicpd.org/download/mpd/"
82 (version-major+minor version)
83 "/mpd-" version ".tar.xz"))
84 (sha256
85 (base32
86 "07af1m2lgblyiq0gcs26zv8n22wrhrpmf49xsm338h1n87d6r1dw"))))
87 (build-system gnu-build-system)
88 (inputs `(("ao" ,ao)
89 ("alsa-lib" ,alsa-lib)
90 ("avahi" ,avahi)
91 ("boost" ,boost)
92 ("curl" ,curl)
93 ("ffmpeg" ,ffmpeg)
94 ("flac" ,flac)
95 ("glib" ,glib)
96 ("icu4c" ,icu4c)
97 ("lame" ,lame)
98 ("libid3tag" ,libid3tag)
99 ("libmad" ,libmad)
100 ("libmpdclient" ,libmpdclient)
101 ("libsamplerate" ,libsamplerate)
102 ("libsndfile" ,libsndfile)
103 ("libvorbis" ,libvorbis)
104 ("opus" ,opus)
105 ("pulseaudio" ,pulseaudio)
106 ("sqlite" ,sqlite)
107 ("zlib" ,zlib)))
108 (native-inputs `(("pkg-config" ,pkg-config)))
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,
131 server-side application for playing music. Through plugins and libraries it
132 can play a variety of sound files while being controlled by its network
133 protocol.")
134 (home-page "http://www.musicpd.org/")
135 (license license:gpl2)))
136
137 (define-public mpd-mpc
138 (package
139 (name "mpd-mpc")
140 (version "0.28")
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
149 "0iy5mdffkk61255f62si7p8mhyhkib70zlr1i1iimj2xr037scx4"))))
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
155 player daemon.")
156 (home-page "http://www.musicpd.org/clients/mpc/")
157 (license license:gpl2)))
158
159 (define-public ncmpc
160 (package
161 (name "ncmpc")
162 (version "0.25")
163 (source (origin
164 (method url-fetch)
165 (uri
166 (string-append "http://musicpd.org/download/ncmpc/"
167 (car (string-split version #\.))
168 "/ncmpc-" version ".tar.xz"))
169 (sha256
170 (base32
171 "196f9s0qmc4srr10n4vk3amvqy5f52y9kvgwqpkfjsnhf75qlckf"))))
172 (build-system gnu-build-system)
173 (inputs `(("glib" ,glib)
174 ("libmpdclient" ,libmpdclient)
175 ("ncurses" ,ncurses)))
176 (native-inputs `(("pkg-config" ,pkg-config)))
177 (synopsis "Curses Music Player Daemon client")
178 (description "ncmpc is a fully featured MPD client, which runs in a
179 terminal using ncurses.")
180 (home-page "http://www.musicpd.org/clients/ncmpc/")
181 (license license:gpl2)))
182
183 (define-public ncmpcpp
184 (package
185 (name "ncmpcpp")
186 (version "0.7.5")
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
194 "0zg084m06y7dd8ccy6aq9hx8q7qi2s5kl0br5139hrmk40q68kvy"))))
195 (build-system gnu-build-system)
196 (inputs `(("libmpdclient" ,libmpdclient)
197 ("boost" ,boost)
198 ("readline" ,readline)
199 ("ncurses" ,ncurses)
200 ("taglib" ,taglib)
201 ("icu4c" ,icu4c)))
202 (native-inputs
203 `(("pkg-config" ,pkg-config)))
204 (arguments
205 '(#:configure-flags
206 '("BOOST_LIB_SUFFIX=" "--with-taglib")))
207 (synopsis "Featureful ncurses based MPD client inspired by ncmpc")
208 (description "Ncmpcpp is an mpd client with a UI very similar to ncmpc,
209 but it provides new useful features such as support for regular expressions
210 for library searches, extended song format, items filtering, the ability to
211 sort playlists, and a local file system browser.")
212 (home-page "http://ncmpcpp.rybczak.net/")
213 (license license:gpl2+)))
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
233 information 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+)))
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
259 interface 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))))))
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
314 Daemon (MPD). It supports playlists, multiple profiles (connecting to different
315 MPD servers, search and multimedia key support.")
316 (home-page "http://www.nongnu.org/sonata/")
317 (license license:gpl3+)))