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