XMMS2 Install instructions

From XMMS2

Jump to: navigation, search

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.

Contents

Obtaining the source

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

Dependencies

You will need the following things to build XMMS2.

  • Python (>=2.3.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.

All following 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; Debian/Ubuntu users will want libcurl3-openssl-dev or libcurl3-gnutls-dev) - For listening to streams over HTTP, also for the last.fm plugin
    • 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, avcodec and avformat support
    • Jack - for JACK support
    • FFTW3 and libsamplerate - for vocoder support
    • libxml2 - for XSPF and RSS (read: podcast)
  • 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):
    • Pyrex (== 0.9.3) - For python bindings. (Code generated by Pyrex 0.9.4 currently produces a segfault in xmmsclient.PropDict)
    • 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!

For debian, one can use: "apt-get install python2.3-pyrex python2.3-dev ruby1.8 ruby1.8-dev"

Platform-specific notes

Some supported platforms may have variations on build requirements:

Configure

./waf configure

Will configure your build. Interesting options:

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


Crosscompile for a different target platform

Build

./waf build

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

Install

./waf install

will install into <prefix>

Uninstall

./waf uninstall

easy as 123.

See Also