Skip to content

Install instructions

Erik Massop edited this page Nov 4, 2017 · 1 revision

This page covers the process of installing XMMS2 from source code. You may also use binary packages if you want.

''Important note: XMMS2 recently switched to using the Waf build system which is documented here. If you are using DrHouse or older please see old install instructions.

Obtaining the source

Check the download page for information on how to obtain the XMMS2 source code.


You will need the following things to build XMMS2.

  • Python (>=2.4.x)
  • GLib (>= 2.8.0)
  • SQLite (>=3.2.4) (will work for versions < 3.2.4, but with poor performance and potential bugs)

If you are building XMMS2 on a binary distro, be sure to install -dev or -headers versions of these packages (if available). XMMS2 uses these headers to link to shared libraries on your system and will not build.

These libraries are not needed for building xmms2d itself, but will add extra functionality you might need. You will probably want MAD at the very least as without it, you can't play MP3s.

  • For xform plugins:
    • Curl (>= 7.12.0) - For listening to streams over HTTP.
    • MAD (Ubuntu and debian users will want libmad0-dev) - For listening to MPEG files (MPEG 1 & 2 layers I, II and III - includes MP3)
    • FAAD - For listening to AAC.
    • Vorbisfile - For listening to Ogg Vorbis.
    • SIDplay2 - For listening to SIDs.
    • reSID - For listening to SIDs.
    • libFLAC - for FLAC support
    • libmodlpug - for fasttracker support
    • libmpcdec - for musepack support
    • libofa - for OFA fingerprinting support
    • libdiscid and libcdio - for CDDA support
    • SAMBA - for smbclient support
    • libmms - for mms stream support
    • libgnomevfs - for ssh support
    • FFmpeg - for wma and avcodec support
    • Jack - for JACK support
    • FFTW3 and libsamplerate - for vocoder support
    • libxml2 - for XSPF and RSS (read: podcast)
    • libgme - for Game Music support
  • For output plugins:
    • ALSA - For ALSA output.
    • Jack (try 0.100.0 if you have problems with other versions) - For Jack output.
    • Lib Audio Output - For libao output.
    • CoreAudio (MacOSX)
    • Neuros library - for nms output
    • libshout - for ices (icecast) output.
  • For language bindings (required by some clients):
    • Cython (>= 0.15.1) - For python bindings. If your cython is older, it makes sense to use the pre-generated bindings instead.
    • Ruby (>= 1.8) - For Ruby bindings.
    • Perl (>= 5.7.3) - For Perl bindings.
    • Boost signals (>= 1.37, older versions work with gcc < 4.4) - For C++ bindings.

As with the packages above, be sure to grab -dev or -headers packages if building on a binary distro!

Platform-specific notes

Some supported platforms may have variations on build requirements:


./waf configure

Will configure your build. Interesting options:

  • --prefix : tells waf to put the installation in path
  • --conf-prefix : tells waf to append -I/include and -L/lib before trying to compile anything
  • --without-plugins : disable all the plugins in list.
  • --nocache : rerun all configuration tests.
  • -p : show a useless but cool progress bar when building!

See ./waf --help for additional options.


./waf build

will build your copy of XMMS2. All objects and binaries will end up in _build_/.


./waf install

will install into


./waf uninstall

easy as 123.

See Also

Clone this wiki locally
You can’t perform that action at this time.