-
Notifications
You must be signed in to change notification settings - Fork 119
Installing Groove Basin on Debian Wheezy (7.6)
On Debian Wheezy (7.6), with wheezy backports enabled, as upgraded....
Adapted from http://andrewkelley.me/post/raspberry-pi-music-player-server.html by Charles Curley.
Compile time estimates are on a 500 MHz 229 MB FIT-PC 1. Your compile times may vary.
You may find my mkcd script useful.
As your regular user:
cd
Then one of three options:
- mkdir music
- Or: ln -s your/music/tree/directory music
- Or, better yet, change the path in the file config.js. The server will generate one the first time you run it if it doesn't find one.
Then:
mkcd ~/versioned/ # this is where I keep git/svn etc. repos for projects I'm working on.
Build nodejs in a screen session, as it can take a while. If you get an error message, see the 'apt-get' line below.
# or whatever the latest version is.... This is what I used. wget http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz # 13M tar -tvf node-v0.10.29.tar.gz # optional. Just testing the file. tar -xf node-v0.10.29.tar.gz # 17 seconds. cd node-v0.10.29/ ./configure $ 16 seconds
This should produce something like:
{ 'target_defaults': { 'cflags': [], 'default_configuration': 'Release', 'defines': [], 'include_dirs': [], 'libraries': []}, 'variables': { 'clang': 0, 'gcc_version': 47, 'host_arch': 'ia32', 'node_install_npm': 'true', 'node_prefix': '', 'node_shared_cares': 'false', 'node_shared_http_parser': 'false', 'node_shared_libuv': 'false', 'node_shared_openssl': 'false', 'node_shared_v8': 'false', 'node_shared_zlib': 'false', 'node_tag': '', 'node_unsafe_optimizations': 0, 'node_use_dtrace': 'false', 'node_use_etw': 'false', 'node_use_openssl': 'true', 'node_use_perfctr': 'false', 'node_use_systemtap': 'false', 'python': '/usr/bin/python', 'target_arch': 'ia32', 'v8_enable_gdbjit': 0, 'v8_no_strict_aliasing': 1, 'v8_use_snapshot': 'true'}} creating ./config.gypi creating ./config.mk
Then run:
make # 2 hours make tests # optional su -c 'make install' # provide password. Or use sudo. 30 sec.
If you have problems compiling, try "apt-get build-dep nodejs". It satisfies build dependencies of the package. README.md may have some useful hints.
As root:
You will need several backports: SDL, libav*. Make sure you are set up for backports. http://backports.debian.org/Instructions/
(If you are tight for space, skip build-essential and load build tools as needed. But I don't know what they are, so you are on your own.)
apt-get install -t wheezy-backports git cmake libchromaprint-dev libspeexdsp-dev pkg-config libsdl2-dev libavformat-dev libavutil-dev libavfilter-dev libavdevice-dev libswscale-dev build-essential apt-get autoremove
Ensure ports 6600 and 16242 are available, both UDP and TCP.
As your regular user:
mkcd ~/versioned/ git clone https://github.com/jiixyj/libebur128 mkcd libebur128/build cmake .. -DCMAKE_BUILD_TYPE=Debug make su -c 'make install' # provide root's password.
As root:
cd /usr/local/lib/ ln -s i386-linux-gnu/libebur128.a ln -s i386-linux-gnu/libebur128.so ln -s i386-linux-gnu/libebur128.so.1 ln -s i386-linux-gnu/libebur128.so.1.0.1 ldconfig
As your regular user:
cd ~/versioned/ git clone https://github.com/andrewrk/libgroove mkcd libgroove/build cmake .. -DCMAKE_BUILD_TYPE=Debug make su -c 'make install' # provide root's password. ls /usr/local/lib/libgr* /usr/local/lib/libgroove.a /usr/local/lib/libgroovefingerprinter.a /usr/local/lib/libgroovefingerprinter.so /usr/local/lib/libgroovefingerprinter.so.4 /usr/local/lib/libgroovefingerprinter.so.4.1.1 /usr/local/lib/libgrooveloudness.a /usr/local/lib/libgrooveloudness.so /usr/local/lib/libgrooveloudness.so.4 /usr/local/lib/libgrooveloudness.so.4.1.1 /usr/local/lib/libgrooveplayer.a /usr/local/lib/libgrooveplayer.so /usr/local/lib/libgrooveplayer.so.4 /usr/local/lib/libgrooveplayer.so.4.1.1 /usr/local/lib/libgroove.so /usr/local/lib/libgroove.so.4 /usr/local/lib/libgroove.so.4.1.1 mkcd ~/versioned/ git clone https://github.com/andrewrk/groovebasin cd groovebasin/ # Requires nodejs be complete and installed... npm run build # 11 minutes node lib/server.js # to actually run the beast.
Assuming the host name of the server is stream, point your browser to http://stream:16242/. Currently, iceweasel has problems but chromium works just fine.