gnu: Add muscle.
[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)
58acabc3 34 #:use-module (gnu packages icu4c)
e42dc624 35 #:use-module (gnu packages readline)
7dc68701
DT
36 #:use-module (gnu packages compression)
37 #:use-module (gnu packages curl)
b0193286 38 #:use-module (gnu packages doxygen)
7dc68701
DT
39 #:use-module (gnu packages glib)
40 #:use-module (gnu packages linux)
41 #:use-module (gnu packages mp3)
4d01bd3c 42 #:use-module (gnu packages ncurses)
7dc68701 43 #:use-module (gnu packages pkg-config)
efe0b143 44 #:use-module (gnu packages python)
e42dc624 45 #:use-module (gnu packages autotools)
7dc68701 46 #:use-module (gnu packages pulseaudio)
5f96f303 47 #:use-module (gnu packages databases)
7dc68701 48 #:use-module (gnu packages video)
654b27e5 49 #:use-module (gnu packages xiph))
892d8a81 50
654b27e5 51(define-public libmpdclient
892d8a81
DT
52 (package
53 (name "libmpdclient")
a53a925f 54 (version "2.10")
892d8a81
DT
55 (source (origin
56 (method url-fetch)
57 (uri
58 (string-append "http://musicpd.org/download/libmpdclient/"
59 (car (string-split version #\.))
a53a925f 60 "/libmpdclient-" version ".tar.xz"))
892d8a81
DT
61 (sha256
62 (base32
a53a925f 63 "10pzs9z815a8hgbbbiliapyiw82bnplsccj5irgqjw5f5plcs22g"))))
892d8a81 64 (build-system gnu-build-system)
b0193286 65 (native-inputs `(("doxygen" ,doxygen)))
892d8a81
DT
66 (synopsis "Music Player Daemon client library")
67 (description "A stable, documented, asynchronous API library for
68interfacing MPD in the C, C++ & Objective C languages.")
69 (home-page "http://www.musicpd.org/libs/libmpdclient/")
7dc68701
DT
70 (license license:bsd-3)))
71
654b27e5 72(define-public mpd
7dc68701
DT
73 (package
74 (name "mpd")
c613a21b 75 (version "0.19.14")
7dc68701
DT
76 (source (origin
77 (method url-fetch)
78 (uri
79 (string-append "http://musicpd.org/download/mpd/"
29a7c98a 80 (version-major+minor version)
58acabc3 81 "/mpd-" version ".tar.xz"))
7dc68701
DT
82 (sha256
83 (base32
c613a21b 84 "1rwr1qb9an1qylddf35xwdasyfkxghd00c29saj04l1f2c2kilig"))))
7dc68701
DT
85 (build-system gnu-build-system)
86 (inputs `(("ao" ,ao)
87 ("alsa-lib" ,alsa-lib)
88 ("avahi" ,avahi)
58acabc3 89 ("boost" ,boost)
7dc68701
DT
90 ("curl" ,curl)
91 ("ffmpeg" ,ffmpeg)
92 ("flac" ,flac)
93 ("glib" ,glib)
58acabc3 94 ("icu4c" ,icu4c)
7dc68701
DT
95 ("lame" ,lame)
96 ("libid3tag" ,libid3tag)
97 ("libmad" ,libmad)
98 ("libmpdclient" ,libmpdclient)
99 ("libsamplerate" ,libsamplerate)
100 ("libsndfile" ,libsndfile)
101 ("libvorbis" ,libvorbis)
102 ("opus" ,opus)
7dc68701
DT
103 ("pulseaudio" ,pulseaudio)
104 ("sqlite" ,sqlite)
105 ("zlib" ,zlib)))
41eb1198 106 (native-inputs `(("pkg-config" ,pkg-config)))
7dc68701
DT
107 ;; Missing optional inputs:
108 ;; libyajl
109 ;; libcdio_paranoia
110 ;; libmms
111 ;; libadplug
112 ;; libaudiofile
113 ;; faad2
114 ;; fluidsynth
115 ;; libgme
116 ;; libshout
117 ;; libmpg123
118 ;; libmodplug
119 ;; libmpcdec
120 ;; libsidplay2
121 ;; libwavpack
122 ;; libwildmidi
123 ;; libtwolame
124 ;; libroar
125 ;; libjack
126 ;; OpenAL
127 (synopsis "Music Player Daemon")
128 (description "Music Player Daemon (MPD) is a flexible, powerful,
129server-side application for playing music. Through plugins and libraries it
130can play a variety of sound files while being controlled by its network
131protocol.")
132 (home-page "http://www.musicpd.org/")
133 (license license:gpl2)))
4d01bd3c 134
654b27e5 135(define-public mpd-mpc
773b2792
PW
136 (package
137 (name "mpd-mpc")
37b57da2 138 (version "0.27")
773b2792
PW
139 (source (origin
140 (method url-fetch)
141 (uri
142 (string-append "http://www.musicpd.org/download/mpc/"
143 (car (string-split version #\.))
144 "/mpc-" version ".tar.xz"))
145 (sha256
146 (base32
37b57da2 147 "0r10wsqxsi07gns6mfnicvpci0sbwwj4qa9iyr1ysrgadl5bx8j5"))))
773b2792
PW
148 (build-system gnu-build-system)
149 (inputs `(("libmpdclient" ,libmpdclient)))
150 (native-inputs `(("pkg-config" ,pkg-config)))
151 (synopsis "Music Player Daemon client")
152 (description "MPC is a minimalist command line interface to MPD, the music
153player daemon.")
154 (home-page "http://www.musicpd.org/clients/mpc/")
155 (license license:gpl2)))
156
654b27e5 157(define-public ncmpc
4d01bd3c
DT
158 (package
159 (name "ncmpc")
3efee6a4 160 (version "0.24")
4d01bd3c
DT
161 (source (origin
162 (method url-fetch)
163 (uri
164 (string-append "http://musicpd.org/download/ncmpc/"
165 (car (string-split version #\.))
3efee6a4 166 "/ncmpc-" version ".tar.xz"))
4d01bd3c
DT
167 (sha256
168 (base32
3efee6a4 169 "1sf3nirs3mcx0r5i7acm9bsvzqzlh730m0yjg6jcyj8ln6r7cvqf"))))
4d01bd3c
DT
170 (build-system gnu-build-system)
171 (inputs `(("glib" ,glib)
172 ("libmpdclient" ,libmpdclient)
173 ("ncurses" ,ncurses)))
174 (native-inputs `(("pkg-config" ,pkg-config)))
9e771e3b 175 (synopsis "Curses Music Player Daemon client")
4d01bd3c
DT
176 (description "ncmpc is a fully featured MPD client, which runs in a
177terminal using ncurses.")
178 (home-page "http://www.musicpd.org/clients/ncmpc/")
179 (license license:gpl2)))
009c5b5c 180
654b27e5 181(define-public ncmpcpp
009c5b5c
CS
182 (package
183 (name "ncmpcpp")
763dd00b 184 (version "0.7.4")
009c5b5c
CS
185 (source (origin
186 (method url-fetch)
187 (uri
188 (string-append "http://ncmpcpp.rybczak.net/stable/ncmpcpp-"
189 version ".tar.bz2"))
190 (sha256
191 (base32
763dd00b 192 "0qqy3w2vw3i9rxz0z8n0plmwwfv6gzrxip86l894l1xbvzqja16p"))))
009c5b5c
CS
193 (build-system gnu-build-system)
194 (inputs `(("libmpdclient" ,libmpdclient)
e42dc624
PW
195 ("boost" ,boost)
196 ("readline" ,readline)
a22722c1 197 ("ncurses" ,ncurses)
a4c7c57c
LF
198 ("taglib" ,taglib)
199 ("icu4c" ,icu4c)))
e42dc624
PW
200 (native-inputs
201 `(("pkg-config" ,pkg-config)
202 ("automake" ,automake)
203 ("autoconf" ,autoconf)
a22722c1 204 ("libtool" ,libtool)))
e42dc624
PW
205 (arguments
206 '(#:configure-flags
cd777776 207 '("BOOST_LIB_SUFFIX=" "--with-taglib")
e42dc624 208 #:phases
9913c78a
LF
209 (modify-phases %standard-phases
210 (add-after 'unpack 'autogen
211 (lambda _
212 (setenv "NOCONFIGURE" "true")
213 (zero? (system* "sh" "autogen.sh")))))))
009c5b5c
CS
214 (synopsis "Featureful ncurses based MPD client inspired by ncmpc")
215 (description "Ncmpcpp is an mpd client with a UI very similar to ncmpc,
216but it provides new useful features such as support for regular expressions
217for library searches, extended song format, items filtering, the ability to
218sort playlists, and a local filesystem browser.")
219 (home-page "http://ncmpcpp.rybczak.net/")
220 (license license:gpl2+)))
927ff2c3
DT
221
222(define-public mpdscribble
223 (package
224 (name "mpdscribble")
225 (version "0.22")
226 (source (origin
227 (method url-fetch)
228 (uri (string-append "http://www.musicpd.org/download/mpdscribble/"
229 version "/mpdscribble-" version ".tar.gz"))
230 (sha256
231 (base32
232 "0f0ybx380x2z2g1qvdndpvcrhkrgsfqckhz3ryydq2w3pl12v27z"))))
233 (build-system gnu-build-system)
234 (inputs `(("libmpdclient" ,libmpdclient)
235 ("curl" ,curl)
236 ("glib" ,glib)))
237 (native-inputs `(("pkg-config" ,pkg-config)))
238 (synopsis "MPD client for track scrobbling")
239 (description "mpdscribble is a Music Player Daemon client which submits
240information about tracks being played to a scrobbler, such as Libre.FM.")
241 ;; musicpd.org doesn't mention mpdscribble. It points users to this wiki
242 ;; instead.
243 (home-page "http://mpd.wikia.com/wiki/Client:Mpdscribble")
244 (license license:gpl2+)))
efe0b143
LF
245
246(define-public python-mpd2
247 (package
248 (name "python-mpd2")
249 (version "0.5.5")
250 (source (origin
251 (method url-fetch)
252 (uri (pypi-uri "python-mpd2" version))
253 (sha256
254 (base32
255 "0laypd7h1j14b4vrmiayqlzdsh2j5hc3zv4l0fqvbrbw9y6763ii"))))
256 (build-system python-build-system)
257 (arguments
258 '(#:phases
259 (modify-phases %standard-phases
260 (replace 'check
261 (lambda _ (zero? (system* "python" "mpd_test.py")))))))
262 (native-inputs `(("python-mock" ,python-mock)))
263 (home-page "https://github.com/Mic92/python-mpd2")
264 (synopsis "Python MPD client library")
265 (description "Python-mpd2 is a Python library which provides a client
266interface for the Music Player Daemon.")
267 (license license:lgpl3+)
268 (properties `((python2-variant . ,(delay python2-mpd2))))))
269
270(define-public python2-mpd2
271 (let ((mpd2 (package-with-python2
272 (strip-python2-variant python-mpd2))))
273 (package (inherit mpd2)
274 (native-inputs `(("python2-setuptools" ,python2-setuptools)
275 ,@(package-native-inputs mpd2))))))