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> |
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 | |
68 | interfacing 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, | |
129 | server-side application for playing music. Through plugins and libraries it | |
130 | can play a variety of sound files while being controlled by its network | |
131 | protocol.") | |
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 | |
153 | player 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 |
177 | terminal 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, | |
216 | but it provides new useful features such as support for regular expressions | |
217 | for library searches, extended song format, items filtering, the ability to | |
218 | sort 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 | |
240 | information 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 | |
266 | interface 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)))))) |