The subject of building Squeezeplay on Linux comes up occasionally but
the most popular Googled guides are also a bit out of date, so here's
what I just pulled off on my i386 Xubuntu box.

1.  Set up your environment:

I'm not sure if this dependency list is up to date since I know I've
had to update these libraries for other projects from time to time. 
Therefore I simply copied this list from the excellent though old
http://www.jfwhome.com/2009/11/22/compiling-squeezeplay-on-linux-ubuntu-amd64/
.  If you're doing this from scratch you may find that you have to
update the library list, but this will at least get you moving in the
right direction.

sudo apt-get install build-essential flex bison subversion automake
libtool libpng12-dev libjpeg62-dev libexpat1-dev libreadline5-dev
xorg-dev libflac++-dev libvorbis-dev libvorbisidec-dev libasound-dev

2.  Pull a Squeezeplay v7.8 snapshot:

cd <builddir>
svn co http://svn.slimdevices.com/repos/jive/7.8/trunk/squeezeplay

3.  Tweak <builddir>/squeezeplay/src/Makefile.linux:

On line 10, change ${PWD} to $(shell pwd) .  After the change, line
10 will look like this:

SRC_DIR = $(realpath $(shell pwd)) .

Search for 'luaprofiler-2.0', change line from:
cd luaprofiler-2.0 && make -f Makefile.linux install
to:
cd luaprofiler-2.0 && LD="gcc -shared" make -f Makefile.linux
install

4.  Tweak
<builddir>/squeezeplay/src/squeezeplay/src/audio/decode/decode.c:

Search for 'elapsed:%llu' , change printf line from '%llu' to
'%"PRIu64"' .  After the change, the line will look something like
this:

printf("elapsed:%"PRIu64" buffers: %0.1f%%/%0.1f%%\n", elapsed, dbuf,
obuf);

5.  Kludge the Squeezeplay PulseAudio library by downloading the latest
library snapshot:

http://www.portaudio.com/archives/pa_snapshot.tgz

Delete all contents in <builddir>/squeezeplay/src/portaudio_v19_1360,
then expand the library snapshot in this directory.

6.  Kludge the Squeezeplay SDL library by downloading 1.2.15 source
from:

http://www.libsdl.org/download-1.2.php

Delete all contents in <builddir>/squeezeplay/src/SDL-1.2.13 then
expand the latest source in this directory.

7.  cd <builddir>/squeezeplay/src/, execute "sudo make -f
Makefile.linux" .  If the build succeeds your results will be in
<builddir>/squeezeplay/build (as directories you can copy to
/opt/squeezeplay AND a tarball).

This gets you a working build but there's some other stuff you'll have
to tweak to get around PulseAudio.

8.  Modify your ALSA configuration:

a.  Copy /usr/share/alsa/alsa.conf to
/usr/share/alsa/alsa-nopulse.conf.
b.  Comment OUT any Pulse invocation in also-nopulse.conf.  In my case I
commented every alsa.conf.d invocation within the @hooks/files section
of this file, leaving "/etc/asound.conf" and "~/.asoundrc" in place,
e.g.:

@hooks [
{
func load
files [
#                       {
#                               @func concat
#                               strings [
#                                       { @func datadir }
#                                       "/alsa.conf.d/"
#                               ]
#                       }
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]

9.  Modify the squeezeplay.sh script you just built
(<builddir>/squeezeplay/bin/squeezeplay.sh) to bypass PulseAudio using
your new script:

Change "./jive" to:

ALSA_CONFIG_PATH=/usr/share/alsa/alsa-nopulse.conf ./jive

10.  My system has some remaining permissions issues so I have to run
/opt/squeezeplay/bin/squeezeplay.sh with root privilege.  I got tired of
tracking problems down so if anyone knows how to get it running as a
normal user, please add to the thread.


------------------------------------------------------------------------
Braklet's Profile: http://forums.slimdevices.com/member.php?userid=47269
View this thread: http://forums.slimdevices.com/showthread.php?t=97714

_______________________________________________
jive mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive

Reply via email to