Requirements:
libxml++2.6-dev or libxml++1.0-dev
libevent >= 1.3e
GCC
Python (by Python bindings)
pyexpat (for musetup)
CMake >= 2.8.3 (for building)
QT >= 5 for museeq
Optional:
libvorbis-dev
libogg-dev
SWIG (for the mucipher Python bindings)\
To keep our system clean we can build everything in a Docker container:
$ cd /path/to/src
$ docker run -v $(pwd):/source -it debian:stable bash
Inside the container:
apt-get update
apt-get install -y cmake build-essential python swig pkg-config libxml2-dev libevent-dev libxml++2.6-dev qttools5-dev qtscript5-dev libogg-dev libvorbis-dev python-dev python-geoip geoip-database-extra
cd /source
Get binaries and help for Museek+ here: http://www.museek-plus.org
museekd can be installed using CMake or python's distutils.
distutils doesn't provide for uninstalls, so be cautious with it.
The recommended way to build museek is using CMake.
Prefix the boolean variables with -D
, set them to 1
to enable the feature, 0
to disable.
Default values are between brackets.
EVERYTHING
(0): Enable all features.
MUSEEKD
(1): Build museekd soulseek daemon.
MUSETUP
(1): Build musetup configuration interface for museekd.
MUSEEQ
(1): Build museeq Qt client.
MUSCAN
(1): Build muscan shared file index generator.
MUCOUS
(0): Build mucous curses client.
MURMUR
(0): Build murmur PyGTK client.
PYMUCIPHER
(0): Generate PyMucipher bindings.
PYTHON_BINDINGS
(0): Generate python bindings.
PYTHON_CLIENTS
(0): Build python clients (mulog, museekchat, museekcontrol, musirc).\
BINRELOC
(0): Use binary relocation.
RELOAD_TRANSLATIONS
(0): Update .ts files in src/museeq/translations.
To customize the installation location, different variables can be set. For an exhaustive list please see the GNUInstallDirs module documentation which is part of cmake.
Examples:
CMAKE_INSTALL_PREFIX
: Where museek+ should be installed (default is /usr/local)
CMAKE_INSTALL_MANDIR
: Where man files should be installed (default is share/man)
CMAKE_INSTALL_DATADIR
: Where data files should be installed (default is share). Museek will put it's data in a museek/ subfolder relative to this.
Relative paths are appended to CMAKE_INSTALL_PREFIX
. Absolute paths are also possible.
$ cd /path/to/src
$ mkdir build/
$ cd build/
$ cmake -CMAKE_INSTALL_DPREFIX=/usr ..
(or) $ cmake -DEVERYTHING=1 -DCMAKE_INSTALL_PREFIX=/usr ..
(or) $ cmake -DMUCOUS=1 -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_INSTALL_MANDIR=/usr/share/man ..
$ make -j$(nproc+1)
(or) $ make VERBOSE=1
$ sudo make install
Based on the desired feature, cd
to the appropriate directory and issue the build commands.
PyMucipher (requires SWIG, Python)
$ cd Mucipher/PyMucipher/
Python Bindings
$ cd python-bindings/
Python Clients (mulog, museekchat, museekcontrol, musirc.py)
Requires: PyMucipher or PyCrypto, Python Bindings
$ cd python-clients/
Setup tools (musetup, musetup-gtk, musetup-qt)
$ cd setup/
Mucous
Requires: PyMucipher or PyCrypto, Python Bindings
$ cd mucous/
$ python setup.py build
$ sudo python setup.py install
(or) $ sudo python setup.py install --prefix=/usr/local