-
Notifications
You must be signed in to change notification settings - Fork 2
User:VxJasonxV Sandbox Install instructions
This page or section needs to be merged with Install instructions at, or prior to the next release.
This page covers the process of installing XMMS2 from source code. You may also use binary packages if you want.
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.3)
- 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.
The following apt-get line will install the necessary packages, and plugin packages below, on a Debian system (at least sarge) "aptitude install debmake debhelper python2.3 python2.3-dev libglib2.0-dev libsdl-ttf2.0-dev libflac-dev libspeex-dev libmodplug-dev libmad0-dev libvorbis-dev libasound2-dev libspeex-dev libsqlite3-dev"
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 output plugins:
- For transport plugins:
- For decoder plugins:
- 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.
- libmodplug - For listening to MODs.
- libxml2 - For parsing xspf playlist files.
- For output plugins:
- For language bindings (required by some clients):
- Pyrex (== 0.9.3, != 0.9.4, != 0.9.5, >= 0.9.5.1) - For python bindings. (Versions with != prefixes are broken and will cause Python bindings, and thusly, python clients, to fail spectacularily)
- Ruby (>= 1.8) - For Ruby bindings.
- Perl (>= 5.7.3) - For Perl bindings.
- For C++ bindings:
- boost.bind headers
- boost.function headers
- boost.variant headers
- boost.type_traits headers
- boost.signals library
- Standard conformant C++ compiler such as G++ 3.3 or later.
- (See Also: Component:Cpp_bindings)
- For Java 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"
Some supported platforms may have variations on build requirements:
From the xmms2 directory, run ./waf configure to first run the configuration. Tweak the options, running ./waf --nocache each time till satisfied. You may need to specify LIBPATH and CPPPATH so that Waf knows where to look for your include files and libraries.
Extra features not including the xmms2 daemon itself are split into two categories; "Optionals" and "Plugins".
Optionals are comprised of xmms2d helpers such as language bindings (Ruby, Perl, Java) and the more fundamental utilities/clients (ET, xmms2 cli, and the launcher script). You can exclude certain optionals module by running ./waf configure --without-optionals="module1,module2,module3" where module names are the names of the directories located in src/clients. For example, the ET client is located in src/clients/et, so the name of the module to be excluded is et. Note that language bindings are do not have a directory in src/clients, but are disabled as a part of optionals simply using the name of the language. (./waf configure --without-optionals="perl,ruby,python,java").
Plugins are for outputs and decoders. Outputs being sound servers (alsa, jack, ...), and decoders for audio and even text formats (Audio: mp3 (mad), vorbis, sid; Text: m3u, pls, xspf). You can exclude certain plugins by running ./waf configure --without-plugins="module1,module2,module3" where module names are the names of the directories located in src/plugins. For example, the OSS output files are located in src/clients/oss, so the name of the module to be excluded is oss.
Lastly, if you do not want to install to the default location of /usr/local/{man,bin,share,lib}, you will also need to specify a prefix to install too. For example, you can install it into /opt/xmms2 by running ''./waf configure --prefix="/opt/xmms2". And after [#Installing installing] (see below), all xmms2 files will be installed into /opt/xmms2/{man,bin,share,lib}.
To only change the path the manual pages are installed in provide the ''--with-mandir="/some/custom/mandir" option (it defaults to $PREFIX/man).
Run ./waf build to compile. Watch the pretty colors fly by (assuming you're using a color capable terminal. And if you're not, get with the 90s!).
Run ./waf install to install packages to their default path. And you're done!
The --destdir option provides a way to prepend a path to all install paths for package builders. Note that when this option is set, xmms2 still expects the files to be in the location without chosen --destdir prepended.
./waf clean will clean the objects and binaries. (Simple, no?)
./waf uninstall will uninstall any files installed by ./waf install. (Simple, no?)
Content is available under GNU Free Documentation License 1.2 unless otherwise noted.
- Community
- Development