Darkland | net

Compiling And Installing mpd 0.19.18 & ncmpcpp 0.7.5

Published on 31 December, 2015 by amj

This page is wildly obsolete. The last version of mpd that I'd compiled and used was 0.19.18. New versions of the mpd source code require meson and ninja to compile. I do not know shit about either of them and super fucking hate them. And I don't know how to create debs from the compiled source. I can produce debs until I'm blue in the face with autotools and checkinstall, but not so much with this meson/ninja bullshit. I hate it. HATE IT.

I like to tweak my system, and the way apt-get so deeply embeds mpd it makes it difficult to manage my configs. Here is a link to a script I wrote to rip out all the tentacles of mpd throughout the system. It leaves it installed, but keeps the OS from loading and configuring it. Script to disable MPD.


Sites for source code:
mpd: http://www.musicpd.org/download.html
ncmpcpp: https://github.com/arybczak/ncmpcpp

  • Development packages of all audio formats you want to be able to play must be installed before running ./configure
    Note: libboost-filesystem1.55-dev libboost-locale1.55-dev libboost-program-options1.55-dev libboost-regex1.55-dev libboost-thread1.55-dev libboost1.55-dev libfftw3-dev libfftw3-bin libmpdclient-dev libncurses5-dev are needed to compile ncmpcpp
  • ~$ sudo apt-get install libadplug-dev libao-dev libasound2-dev libaudiofile-dev libavahi-client-dev libboost-filesystem1.55-dev libboost-locale1.55-dev libboost-program-options1.55-dev libboost-regex1.55-dev libboost1.55-dev libbz2-dev libcdio-cdda-dev libcdio-dev libcdio-paranoia-dev libcurl4-openssl-dev libfaac-dev libfaad-dev libflac-dev libflac++-dev libfftw3-dev libfftw3-bin libfluidsynth-dev libgme-dev libid3tag0-dev libicu-dev libjack0 libjack-dev libmad0-dev libmadlib-dev libmp3lame-dev libmpcdec-dev libmpdclient-dev libmpg123-dev libmms-dev libmodplug-dev libncurses5-dev libnfs-dev libnfsidmap-dev libopenal-dev libopus-dev libopusfile-dev libpulse-dev libresample1-dev libroar-dev libsamplerate0-dev libshine-dev libshout3-dev libsidplay2-dev libsidplayfp-dev libsmbclient-dev libsndfile1-dev libsoxr-devlibsqlite3-dev libtwolame-dev libupnp-dev libvorbis-dev libwavpack-dev libwildmidi-dev libwrap0-dev libyajl-dev

  • Configure build environment, and compile and install package with checkinstall.
    Note:Remove any previous version of mpd (sudo apt-get remove mpd[*] or install will probably fail.
  • ~/build/mpd-0.19.18$ ./configure

  • checkinstall creates $HOME/build/mpd-0.19.18/mpd_0.19.18-1_amd64.deb

  • Configure, compile, and install ncmpcpp. It appears that autogen.sh accepts the same command line arguments as ./configure, but I'll still use ./configure here to pass compile flags to ensure things work.
  • ~/build/ncmpcpp-master$ ./autogen.sh

  • checkinstall creates $HOME/build/ncmpcpp-master/ncmpcpp_0.7.5-1_amd64.deb

  • Start mpd and run ncmpcpp (See also MPD/NCMPCPP Launch Script)
  • #!/bin/bash
    
    if ps aux | grep -v grep | grep mpd 1> /dev/null
    then
         printf "Launching ncmpcpp.\n\n"
    	sleep 0.5s
    	/usr/bin/ncmpcpp
            exit 0
    else
       printf "Loading mpd daemon.\nLaunching ncmpcpp.\n\n"
    		rm $HOME/.mpd/mpd.log 1> /dev/null
    		touch $HOME/.mpd/mpd.log 1> /dev/null
         	/usr/bin/mpd && /usr/bin/ncmpcpp
    	exit 1
    fi
    


    Back