;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2018, 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (gnu packages avahi)
#:use-module (gnu packages boost)
- #:use-module (gnu packages gcc) ; GCC@5 for MPD >= 0.20
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages linux)
#:use-module (gnu packages mp3)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages pulseaudio)
- #:use-module (gnu packages databases)
+ #:use-module (gnu packages sqlite)
#:use-module (gnu packages video)
#:use-module (gnu packages xiph))
(define-public libmpdclient
(package
(name "libmpdclient")
- (version "2.11")
+ (version "2.16")
(source (origin
(method url-fetch)
(uri
- (string-append "http://musicpd.org/download/libmpdclient/"
+ (string-append "https://musicpd.org/download/libmpdclient/"
(car (string-split version #\.))
"/libmpdclient-" version ".tar.xz"))
(sha256
(base32
- "1xms8q44g6zc7sc212qpcihq6ch3pmph3i1m9hzymmy0jcw6kzhm"))))
- (build-system gnu-build-system)
- (native-inputs `(("doxygen" ,doxygen)))
+ "0r24cl3i9nvs6a47mvwaxk1kb5wmnhkhrw1q5cq9010fgjvdlszs"))))
+ (build-system meson-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+
+ ;; For building HTML documentation.
+ ("doxygen" ,doxygen)
+
+ ;; For tests.
+ ("check" ,check)))
+ (arguments
+ `(#:configure-flags
+ (list "-Ddocumentation=true"
+ "-Dtest=true")))
(synopsis "Music Player Daemon client library")
(description "A stable, documented, asynchronous API library for
interfacing MPD in the C, C++ & Objective C languages.")
- (home-page "http://www.musicpd.org/libs/libmpdclient/")
+ (home-page "https://www.musicpd.org/libs/libmpdclient/")
(license license:bsd-3)))
(define-public mpd
(package
(name "mpd")
- (version "0.20.9")
+ (version "0.21.5")
(source (origin
(method url-fetch)
(uri
- (string-append "http://musicpd.org/download/mpd/"
+ (string-append "https://musicpd.org/download/mpd/"
(version-major+minor version)
"/mpd-" version ".tar.xz"))
(sha256
(base32
- "1dsfwd0i81x8m9idi7idm9612mpf1g5lzcy69h04nd9jks3a4xyd"))))
- (build-system gnu-build-system)
+ "1y8fbch4xp96i4mz6czivnwvaf7g8pnfix5d0pbybnkv7bmz1a9f"))))
+ (build-system meson-build-system)
(arguments
- `(#:phases
+ `(#:configure-flags '("-Ddocumentation=true") ; The default is 'false'...
+ #:phases
(modify-phases %standard-phases
- (add-after 'install 'install-service-files
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (systemd (string-append out "/etc/systemd/system"))
- (systemd-user (string-append out "/etc/systemd/user")))
- (install-file "systemd/system/mpd.service" systemd)
- (install-file "systemd/user/mpd.service" systemd-user)
+ (add-before 'configure 'expand-C++-include-path
+ ;; Make <gcc>/include/c++/ext/string_conversions.h find <stdlib.h>.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((path "CPLUS_INCLUDE_PATH")
+ (gcc (assoc-ref inputs "gcc"))
+ (c++ (string-append gcc "/include/c++")))
+ (setenv path (string-append c++ ":" (getenv path)))
#t))))))
(inputs `(("ao" ,ao)
("alsa-lib" ,alsa-lib)
("flac" ,flac)
("glib" ,glib)
("icu4c" ,icu4c)
+ ;; The LAME decoder comes from FFmpeg, but is added here so that
+ ;; configure picks up the LAME encoder.
("lame" ,lame)
("libid3tag" ,libid3tag)
- ("libmad" ,libmad)
("libmpdclient" ,libmpdclient)
("libsamplerate" ,libsamplerate)
("libsndfile" ,libsndfile)
("pulseaudio" ,pulseaudio)
("sqlite" ,sqlite)
("zlib" ,zlib)))
- (native-inputs `(("pkg-config" ,pkg-config)))
+ ;; MPD > 0.21 requires > GCC 6
+ (native-inputs `(("gcc" ,gcc-8)
+ ("gcc-lib" ,gcc-8 "lib")
+ ("pkg-config" ,pkg-config)
+ ("python-sphinx" ,python-sphinx)))
;; Missing optional inputs:
;; libyajl
;; libcdio_paranoia
server-side application for playing music. Through plugins and libraries it
can play a variety of sound files while being controlled by its network
protocol.")
- (home-page "http://www.musicpd.org/")
+ (home-page "https://www.musicpd.org/")
(license license:gpl2)))
(define-public mpd-mpc
(package
(name "mpd-mpc")
- (version "0.28")
+ (version "0.31")
(source (origin
(method url-fetch)
(uri
- (string-append "http://www.musicpd.org/download/mpc/"
+ (string-append "https://www.musicpd.org/download/mpc/"
(car (string-split version #\.))
"/mpc-" version ".tar.xz"))
(sha256
(base32
- "0iy5mdffkk61255f62si7p8mhyhkib70zlr1i1iimj2xr037scx4"))))
- (build-system gnu-build-system)
+ "0b9bsn4sl26xc6wdcms51x9yxznkxkppaycn8gnv4rd1m21kwdv2"))))
+ (build-system meson-build-system)
(inputs `(("libmpdclient" ,libmpdclient)))
- (native-inputs `(("pkg-config" ,pkg-config)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python-sphinx" ,python-sphinx)))
(synopsis "Music Player Daemon client")
(description "MPC is a minimalist command line interface to MPD, the music
player daemon.")
- (home-page "http://www.musicpd.org/clients/mpc/")
+ (home-page "https://www.musicpd.org/clients/mpc/")
(license license:gpl2)))
(define-public ncmpc
(package
(name "ncmpc")
- (version "0.27")
+ (version "0.33")
(source (origin
(method url-fetch)
(uri
(string-append "http://musicpd.org/download/ncmpc/"
- (car (string-split version #\.))
+ (version-major version)
"/ncmpc-" version ".tar.xz"))
(sha256
(base32
- "1n8m7syhpgx24hfipixv66h2izn229jkxsmh2q5dzkv9r0znm8pr"))))
- (build-system gnu-build-system)
- (inputs `(("glib" ,glib)
+ "19fp7xkpai4lq3vmpbppgh3ism7lg2sibv237c0sl5a0hls4mq4l"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:configure-flags
+ ;; Otherwise, they are installed incorrectly, in
+ ;; '$out/share/man/man/man1'.
+ (list (string-append "-Dmandir=" (assoc-ref %outputs "out")
+ "/share"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'expand-C++-include-path
+ ;; Make <gcc>/include/c++/ext/string_conversions.h find <stdlib.h>.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((path "CPLUS_INCLUDE_PATH")
+ (gcc (assoc-ref inputs "gcc"))
+ (c++ (string-append gcc "/include/c++")))
+ (setenv path (string-append c++ ":" (getenv path)))
+ #t))))))
+ (inputs `(("gcc" ,gcc-8) ; for its C++14 support
+ ("boost" ,boost)
+ ("pcre" ,pcre)
("libmpdclient" ,libmpdclient)
("ncurses" ,ncurses)))
- (native-inputs `(("pkg-config" ,pkg-config)))
+ (native-inputs `(("gettext" ,gettext-minimal) ; for xgettext
+ ("pkg-config" ,pkg-config)
+ ("python-sphinx" ,python-sphinx)))
(synopsis "Curses Music Player Daemon client")
(description "ncmpc is a fully featured MPD client, which runs in a
terminal using ncurses.")
- (home-page "http://www.musicpd.org/clients/ncmpc/")
+ (home-page "https://www.musicpd.org/clients/ncmpc/")
(license license:gpl2)))
(define-public ncmpcpp
(package
(name "ncmpcpp")
- (version "0.8")
+ (version "0.8.2")
(source (origin
(method url-fetch)
(uri
version ".tar.bz2"))
(sha256
(base32
- "0nj6ky805a55acj0w57sbn3vfmmkbqp97rhbi0q9848n10f2l3rg"))))
+ "0m0mjb049sl62vx13h9waavysa30mk0rphacksnvf94n13la62v5"))))
(build-system gnu-build-system)
(inputs `(("libmpdclient" ,libmpdclient)
("boost" ,boost)
(synopsis "MPD client for track scrobbling")
(description "mpdscribble is a Music Player Daemon client which submits
information about tracks being played to a scrobbler, such as Libre.FM.")
- ;; musicpd.org doesn't mention mpdscribble. It points users to this wiki
- ;; instead.
- (home-page "http://mpd.wikia.com/wiki/Client:Mpdscribble")
+ (home-page "https://www.musicpd.org/clients/mpdscribble/")
(license license:gpl2+)))
(define-public python-mpd2
'(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ (zero? (system* "python" "mpd_test.py")))))))
+ (lambda _ (invoke "python" "mpd_test.py"))))))
(native-inputs `(("python-mock" ,python-mock)))
(home-page "https://github.com/Mic92/python-mpd2")
(synopsis "Python MPD client library")
(description "Sonata is an elegant graphical client for the Music Player
Daemon (MPD). It supports playlists, multiple profiles (connecting to different
MPD servers, search and multimedia key support.")
- (home-page "http://www.nongnu.org/sonata/")
+ (home-page "https://www.nongnu.org/sonata/")
(license license:gpl3+)))