The Source repository is on opensourceprojects.eu.
For building from source, you will need a recent C++ compiler (C++11), and the development packages for libupnp ( Portable UPnP) branch 1.6, libmpdclient, libcurl, libexpat, libmicrohttpd and libjsoncpp.
I strongly advise using the patched version of libupnp6, available from packages on this page, or from the source tar file libupnp-1.6.20.jfd5.tar.gz. The patched version fixes some ennoying issues and is fully compatible with the standard one.
As far as I can see, the patches in the above has been accepted into the official libupnp 1.6.25, so they should become unnecessary in the future. Do not use 1.6.24, it crashes upmpdcli. See the libupnp changelog here.
All the binary upmpdcli packages listed below install an appropriate systemd or init script to automatically start the daemon. For trying things out, just installing the package on the host where MPD is running will get you a usable system.
If MPD is not running on the same host, you need need to edit the configuration file, /etc/upmpdcli.conf to set the MPD host name or address.
You may also want to edit the configuration file to set the UPnP renderer name, for ease of use if you have several upmpdcli instances on the network.
When upgrading from 0.6, you need to edit the preserved configuration file to set "openhome = 1" if you want to enable the OpenHome services (new installations have have the parameter set by default).
You will find Debian packages for different releases and hardware architectures. If your configuration is not covered, you can build your own using the source packages, which is not hard. See a sample build sequence here.
Note that the repositories also includes a package for a patched version of libupnp6 1.6.20. This mostly fixes an ennoying bug which resulted in upmpdcli becoming unresponsive under certain conditions, and it is believed to be fully compatible with the default Debian libupnp6 1.6 versions. The latest release also has a fix for a problem which prevented the Linn Kazoo Control Point from attaching to upmpdcli.
Streaming services: as of upmpdcli version 1.2.4, the streaming services plugins have been split into separate packages (upmpdcli-tidal, upmpdcli-qobuz, upmpdcli-gmusic), and you need to install them separately. For using the Google Music plugin, you need to install the gmusicapi Python library. This needs Python 2.7.9 or better (e.g. the standard Python version on Ubuntu Trusty is too old). Older Python versions *will* crash.
Create and edit /etc/apt/sources.list.d/upmpdcli.list and add the following lines, depending on your system.
Please note that the links changed in may 2018. The old links still work for now, but they will go away at some point, please update your sources file if you have an old one.
- Raspbian Jessie:
deb http://www.lesbonscomptes.com/upmpdcli/downloads/raspbian/ jessie main deb-src http://www.lesbonscomptes.com/upmpdcli/downloads/raspbian/ jessie main
- Raspbian Stretch AND other armhf Debian
(see note below):
deb http://www.lesbonscomptes.com/upmpdcli/downloads/raspbian/ stretch main deb-src http://www.lesbonscomptes.com/upmpdcli/downloads/raspbian/ stretch main
- Debian Jessie:
deb http://www.lesbonscomptes.com/upmpdcli/downloads/debian/ jessie main deb-src http://www.lesbonscomptes.com/upmpdcli/downloads/debian/ jessie main
- Non-ARM Debian Stretch:
deb http://www.lesbonscomptes.com/upmpdcli/downloads/debian/ stretch main deb-src http://www.lesbonscomptes.com/upmpdcli/downloads/debian/ stretch main
Then install the packages. Except for upmpdcli itself, all the packages are independant, only install what you need !:
Note: it seems that the incompatibilies which existed between the ARM Debian and Raspbian distributions are gone with Stretch (Debian 9). If you are running a Debian-based release (such as OSMC) on armhf (e.g. on a Raspberry pi), please give the Raspbian Stretch repository a try. I'd be interested to hear about successes / failures: email@example.com.
PPA for production packages:
Once the PPA is installed, see the Debian section above for the installation instructions.
Note that, if you need to build for a platform not supported by the PPA, you can use the sample Debian build sequence linked above.
Someone kindly created a Gentoo overlay.
Ubuntu and Debian backport repositories for mpd, usually of a newer versions than the official repo's and configured slightly differently. If you have no problem with the standard version, don't look for trouble and don't install this one, it's only useful in some quite exotic cases (e.g. high bitrate uncompressed streams from HTTP and L16).
The repositories currently have either:
- mpd release 0.19.19, with libsndfile and libaudiofile disabled (in my experience, these libs only bring trouble, and it's better to use ffmpeg for everything), and a patch for supporting L16.
- Vanilla mpd 0.20.x, (no source change), with libsndfile and libaudiofile disabled.
Older Debian/Ubuntu releases (wheezy and trusty) have 0.19 because the MPD guys like so much using the latest C++ gadgets that its almost impossible to backport their stuff (MPD now requires full C++14 support and I'm sure they're preparing for C++17) - end of rant.
Backport repository for Ubuntu
To use it, add the PPA:
Debian (i386, amd64) and Raspbian (armhf raspberry PI).
For ARM Debian: beware that the Raspbian packages may have dependancies which slightly differ from the equivalent Debian release, and you may have to recompile the source package on Debian.
To use the repository:
- Create and edit
/etc/apt/sources.list.d/mpd.list (you can change
the name to anything you like, e.g. mpd-backports.list),
and add the following lines:
For Raspbian and Debian 8.x Jessie:
deb http://www.lesbonscomptes.com/upmpdcli/downloads/mpd-debian/ jessie main deb-src http://www.lesbonscomptes.com/upmpdcli/downloads/mpd-debian/ jessie mainFor Raspbian and Debian 9.x Stretch:
deb http://www.lesbonscomptes.com/upmpdcli/downloads/mpd-debian/ stretch main deb-src http://www.lesbonscomptes.com/upmpdcli/downloads/mpd-debian/ stretch main
sudo apt-get update sudo apt-get install mpd
Please use the Disqus comments for praise, insults, or for tips which may help others. Use the issue tracker for problem reports and enhancement suggestions. Use E-mail if you run into trouble, I'll be glad to help: jf at dockes dot org.comments powered by Disqus