It's alive! As yet another side project, I have been trying to get Boxee to work on my openSUSE box. Boxee is a cool new media player / social app that lets you play all kinds of multimedia, including streaming video from sites like Hulu, CNN, last.fm etc. It first came out on the Mac and a Linux version was recently released. Unfortunately, only Ubuntu is supported, so I decided to see what I could do about getting it run on my openSUSE box.
So I downloaded the source tarball and unpacked it with 'tar xzvf'. This created a working set of folders, but unfortunately, no Boxee instructions. At the time I didn't realize this was mostly a XBMC (Xbox Media Center) source tree, with a layer of Boxee graphics and helper apps. There are some READMEs, but turns out they don't really have much to do with installing Boxee. So rather than let you in on all my blundering about, here's how you should build Boxee on your openSUSE (or any other) Linux box:
- The first thing you need to do is to get the myriad number of development packages required by XBMC. The README.linux file lists the packages needed when building under Ubuntu, but the names don't always match up for openSUSE. I'm going to assume you have the g++ packages installed, so here's the list of openSUSE packages:
SDL-devel SDL_image-devel SDL_gfx-devel SDL_mixer-devel SDL_sound-devel
freetype2 freetype2-devel lzo lzo-devel fribidi fribidi-devel sqlite3
sqlite3-devel libogg-devel alsa-devel python-sqlite2 glew glew-devel
libcurl-devel xorg-x11-devel xorg-x11-libXrender-devel pmount libmad0
libmad-devel libtre-devel libvorbis-devel libmysqlclient-devel hal hal-devel
pcre-devel subversion libjasper-devel libjasper fontconfig-devel libbz2-devel
boost-devel libtool nasm libfaac-devel libenca-devel automake cmake
xorg-x11-libXt-devel xorg-x11-libxmu-devel gperf unzip libpng-devel
libjpeg-develI think this is all of them, but I can't be sure as I already had some installed. The README.linux file lists the Ubuntu 'apt-get' command you can use to get all of these. I imagine there is an equivalent yast2 and/or rpm command to do the same but I just went through the Software Management module of Yast2 and selected them by hand.
$ autoconf
: there isn't a 'configure' script and autoconf is the only way I know how to create it, even though it isn't mentioned in the README.linux file. I'm not sure if there is a better way, but this seems to work$ ./configure -C --disable-debug
: the -C creates a configure cache (presumably for running faster in later invocations) and U figure we might as well build an optimized, non-debug version of xmbc$ make
: now we'll make the Boxee executable (which is really just a renamed xbmc.bin, which is what the xbmc build creates. Now go make a fresh cup of coffee, as you will have plenty of time to brew another pot! I get a strange error from LaTex, as I think it is building some help files:! Package inputenc Error: Unicode char \u8:éph not set up for use with LaTeX.
See the inputenc package documentation for explanation.
Type Hfor immediate help.
...
l.49 \item[Author:]Stéph
ane Borel $<${\tt stef@via.ecp.fr}$>$
?This is some odd error for Unicode. Using some Google-fu, you can fix this by typing in
e
(to edit the file), then:wq!
to write out the file and quit (those are vi commands). Then run the make again. And go pour yourself another cuppa.- After the make has finished, you have a basic XBMC installation ready to go. So now you need to make a Boxee home. The script debian/make_debian.sh seems to be a script for the developers to set up a launching area to create the .deb file for the Ubuntu install. I modified it to create a nice Boxee subfolder. I called it make-boxee.sh and it is here:
#!/bin/bash
curr_dir=`pwd`
SRC=../
TMP=./tmp
DEST=${TMP}/opt/boxee
/bin/rm -rf ${TMP}
mkdir -p ${DEST}/
mkdir -p ${TMP}/usr/share/applications
mkdir -p ${TMP}/usr/share/pixmaps
# language
mkdir -p ${DEST}/language/
cp -r ${SRC}/language/* ${DEST}/language/
# media
mkdir ${DEST}/media
cp ${SRC}/media/defaultrss.png ${SRC}/media/downloadrss.png ${SRC}/media/test_sound.mp3 ${SRC}/media/weather.rar ${DEST}/media
chmod 644 ${DEST}/media/*
mkdir ${DEST}/media/Fonts
cp ${SRC}/media/Fonts/boxee* ${DEST}/media/Fonts
chmod 644 ${DEST}/media/Fonts/*
# screensavers
mkdir ${DEST}/screensavers
cp ${SRC}/screensavers/Plasma.xbs ${SRC}/screensavers/Solarwinds.xbs ${SRC}/screensavers/Euphoria.xbs ${DEST}/screensavers
# scripts
mkdir ${DEST}/scripts
# Lyrics
cp -r ${SRC}/scripts/Lyrics ${DEST}/scripts
cp -r ${SRC}/scripts/RTorrent ${DEST}/scripts
cp -r ${SRC}/scripts/Apple\ Movie\ Trailers ${DEST}/scripts
cp -r ${SRC}/scripts/OpenSubtitles ${DEST}/scripts
# plugins
mkdir ${DEST}/plugins
mkdir ${DEST}/plugins/music
mkdir ${DEST}/plugins/pictures
cp -r ${SRC}/plugins/pictures/flickr ${DEST}/plugins/pictures
cp -r ${SRC}/plugins/pictures/PicasaWeb ${DEST}/plugins/pictures
mkdir ${DEST}/plugins/video
cp -r ${SRC}/plugins/video/Youtube ${DEST}/plugins/video
cp -r "${SRC}/plugins/video/CNN Video" ${DEST}/plugins/video
cp -r "${SRC}/plugins/video/Movie Trailers" ${DEST}/plugins/video
# skin
mkdir -p ${DEST}/skin/Boxee\ Skin\ NG
cp -r ${SRC}skin/Boxee\ Skin\ NG/* ${DEST}/skin/Boxee\ Skin\ NG
# system
mkdir ${DEST}/system
cp ${SRC}/system/*-i486-linux.so ${SRC}/system/asound.conf ${DEST}/system
mkdir ${DEST}/system/players
mkdir ${DEST}/system/players/dvdplayer
cp ${SRC}/system/players/dvdplayer/*-i486-linux.so ${DEST}/system/players/dvdplayer
mkdir ${DEST}/system/players/paplayer
cp ${SRC}/system/players/paplayer/*-i486-linux.so ${DEST}/system/players/paplayer
mkdir ${DEST}/system/players/flashplayer
cp ${SRC}/system/players/flashplayer/*linux* ${SRC}/system/players/flashplayer/bxoverride.so ${DEST}/system/players/flashplayer
chmod 755 ${DEST}/system/players/flashplayer/*
mkdir ${DEST}/system/python
cp ${SRC}/system/python/*-i486-linux.so ${DEST}/system/python
mkdir ${DEST}/system/python/lib
cp ${SRC}/xbmc/lib/libPython/Python/build/lib.linux-i686-2.4/*.so ${DEST}/system/python/lib
cd ${SRC}/xbmc/lib/libPython/Python/Lib
python -O >/dev/null << EOF
import compileall
compileall.compile_dir(".", force=1)
EOF
/bin/rm -rf test
tar cf - `find . -name \*.pyo` | (cd $curr_dir; cd ${DEST}/system/python/lib; tar xf -)
cd $curr_dir
mkdir ${DEST}/system/scrapers
cp -r ${SRC}/system/scrapers/* ${DEST}/system/scrapers
mkdir ${DEST}/system/cdrip
cp ${SRC}/system/cdrip/*-i486-linux.so ${DEST}/system/cdrip
# userdata
mkdir -p ${DEST}/UserData
cp ${SRC}system/Keymap.xml ${SRC}system/Lircmap.xml ${DEST}/system
chmod 644 ${DEST}/system/*.xml
cp ${SRC}UserData/sources.xml.in.linux ${DEST}/UserData
cp ${SRC}UserData/sources.xml.in.diff.linux ${DEST}/UserData
chmod 644 ${DEST}/UserData/*
ln -s UserData ${DEST}/userdata
# visualizations
mkdir ${DEST}/visualisations
cp ${SRC}visualisations/opengl_spectrum.vis ${SRC}visualisations/ProjectM.vis ${SRC}visualisations/Waveform.vis ${DEST}/visualisations
cp -r ${SRC}visualisations/projectM ${SRC}visualisations/projectM.presets ${DEST}/visualisations
# rtorrent
mkdir -p ${DEST}/bin
cp ${SRC}/bin-linux/boxee-rtorrent ${DEST}/bin
cp ${SRC}/system/rtorrent.rc.linux ${DEST}/system
# binary
cp ${SRC}/Boxee ${DEST}/
strip ${DEST}/Boxee
cp ${SRC}/run-boxee-desktop.in ${DEST}/run-boxee-desktop
# give_me_my_mouse_back
cp ${SRC}/give_me_my_mouse_back ${DEST}/
strip ${DEST}/give_me_my_mouse_back
# desktop stuff
cp boxee.desktop ${TMP}/usr/share/applications
cp boxee.png ${TMP}/usr/share/pixmaps
# update debian control file with version number
mkdir tmp/DEBIAN
cp -f postinst ${TMP}/DEBIAN/
chmod 755 ${TMP}/DEBIAN/postinst
I removed some subversion stuff and other dev kind of things. I also changed the python invocation to not use the one that came with the source tarball. You can see the make_debian.sh script use ../python, but that gave me errors, so I just use the one I have already and it went well. This puts a full Boxee installation into the tmp folder. - to run Boxee, run opt/boxee/run-boxee-desktop script. You'll need to disable Compiz if you are runnig it. If you have dual monitors, you'll want to add the line:
export SDL_VIDEO_FULLSCREEN_HEAD=1
up near the top. This way, it will show up only on one display, rather than covering both displays, with most of it ending up in the middle, straddling your displays. See the README.linux file for more info.
With a small amount of luck, you should be running Boxee. Be sure to add me as a friend - jdarnold. Report back any success or failures in the Boxee Linux forum.
No problem with the 0.9.3921 Build it compile without a glich
ReplyDeleteIt's best to use './bootstrap' instead of autoconf itself.
ReplyDelete