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