Skip to main content

Installing Boxee on Gentoo: my experience

You have probably heard of Boxee and Gentoo (come on). I wanted to give Boxee a try, because of all the movies and tv shows that I can watch for free. I have already switched from Freevo to xbmc (which is a story in itself) as my primary media center. Since boxee is a fork of xbmc I thought I might give it a try. Why not? Because xbmc was so easy to compile and install. I did not have any problem compiling the latest code from subversion. I registered and downloaded the latest code from Boxee's website. There is no link to svn and so I downloaded version 0.9.11.5591.

The compile was pretty simple
1. Untar the downloaded file
2. autoconf
3. ./configure
4. make -j3

However the compile was not successful. The first problem I ran into was this compile error:
XAPP_MC.cpp:12:20: error: bxcurl.h: No such file or directory
To solve it, I googled around and found the solution in the boxee forums. I had to make minor modifications to the following Makefiles
xbmc/Makefile
SRCS += BoxeeAuthenticator.cpp

xbmc/lib/libPython/Makefile
SRCS += XBPyPersistentThread.cpp

xbmc/app/Makefile
SRCS+= XAPP_Edit.cpp
With the updated makefiles I started the compile process again. Now I got this error message:
*** [Gentoo] sanity check failed! ***
*** libtool.m4 and ltmain.sh have a version mismatch! ***
*** (libtool.m4 = 1.5.26, ltmain.sh = 1.5.2) ***

Please run:

libtoolize --copy --force

if appropriate, please contact the maintainer of this
package (or your distribution) for help.

make[2]: *** [config.status] Error 1
make[2]: Leaving directory `/home/chandanp/workspace/c/boxee/boxee-0.9.11.5591-src/xbmc/cores/dvdplayer/Codecs/libmad'
make[1]: *** [libmad] Error 2
make[1]: Leaving directory `/home/chandanp/workspace/c/boxee/boxee-0.9.11.5591-src/xbmc/cores/dvdplayer/Codecs'
make: *** [dvdpcodecs] Error 2
Well the solution is in the error message. I issued the following commands:
cd xbmc/cores/dvdplayer/Codecs/libmad/
libtoolize --copy --force
cd -
make
The project compiled successfully. Now to test it. I ran ./Boxee and everything worked beautifully out of the box. I added my boxee account and logged in. Then I could browse all the online content. Sweet! But there is just one problem. I cannot play any of the content I wanted. When I select a video in comedy central the busy circle shows up and it rotates for ever without starting the video. A look at the output showed these errors/warnings:
./bxflplayer-linux: /usr/lib/libcurl.so.4: no version information available (required by ./bxflplayer-linux)
./bxflplayer-linux: /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./bxflplayer-linux)
Once again boxee forums to the rescue. The solution that was offered was to copy bxflplayer-linux from an older 0.9.8.4880 release into the latest. So I downloaded 0.9.8.4880 and copied over all the files from boxee-0.9.8.4880/system/players/flashplayer/ to boxee-0.9.11.5591-src/system/players/flashplayer/.

I restarted boxee and couldn't believe my eyes when I saw the videos playing nicely. Watched some clips from comedy central and then turned my attention to the controversial hulu. I clicked on hulu, and everything seemed normal. So I selected a video clip, the player started but I did not hear any audio and the video was just a blank white screen. But the time was ticking as if the media is playing. I did not have my hopes too high anyway and did not expect hulu to work on boxee, what with all the drama. May be there is something subtle that I am missing or may be the old bxflplayer-linux cannot handle hulu's content. No matter what I will keep looking around for some hacks so I can enjoy hulu from boxee.

That is my experience so far with boxee. Oh by the way I had to emerge a lot of packages along the way to make the ./configure work (you can find some dependencies here but it may not be up to date) and also when the bxflplayer could not find some libs (I had to emerge dev-perl/GSSAPI for example). I hate closed source binaries, they are compiled against some libraries and you don't know which libraries are required. Well ldd to the rescue. Still ./configure is the right way.

Update: If you are seeing floating point exception when playing your local media in Boxee then you will need to re-emerge media-libs/alsa-lib" *with* the debug use flag. Here is the discussion from comments regarding this issue:

Blogger VirtualEnder said...
Interesting, well I linked the built, libmad.0.2.1 to libmad.so, then it built just fine. However I'm still having the issue with it crashing any time I try to play anything. I set the log level to 0 and it doesn't even give any errors. It prints to stdout "floating point exception" and that's it. So bizarre. All the internal stuff works fine, as does the music playback, just seems to fuss with videos. mplayer plays the videos fine by itself, no FPE there, so I'm not sure what the problem is, thanks for your suggestions though.

Blogger Chandan Pitta said...
Ah, now that you mention FPE I remember one more hack I had to do (but forgot to mention in the blog), so I am assuming you are in gentoo. If so then you have to "emerge media-libs/alsa-lib" *with* the debug flag. So added this line
media-libs/alsa-lib debug
to /etc/portage/package.use
and re-emerged media-libs/alsa-lib. That should fix your FPE problem. Let me know how it went

Comments

Ryan said…
Have you had any luck playing back normal video files, (avi mpeg divx rips etc) Boxee menus seem to work ok for me, but then as soon as I try to load a video boxee just shuts down. I'm rebuilding it right now with new video drivers, we'll see if that works.
Re-ynd said…
I did try to play local media content and some of them played well while on some videos it crashed (I think wmv format is to blame). But in general mpeg2/mpeg4 videos played fine. Since Boxee is a fork of xbmc (which uses mplayer to play media content), I would guess it should work fine on any media that mplayer can play. I will give it a try again once I go home and report again.
Ryan said…
Also, libmad throws an error when compiling. Looking at the compile process it looks like it compiles libmad.so, then deletes it, then tries to copy it after it deletes it.

rm -fr .libs/libmad.0 .libs/libmad.0.2.1 .libs/libmad.a .libs/libmad.la .libs/libmad.lai .libs/libmad.so .libs/libmad.so.0 .libs/libmad.so.0.2.1
gcc -shared .libs/version.o .libs/fixed.o .libs/bit.o .libs/timer.o .libs/stream.o .libs/frame.o .libs/synth.o .libs/decoder.o .libs/layer12.o .libs/layer3.o .libs/huffman.o -march=i486 -Wl,-soname -Wl,libmad.0 -o .libs/libmad.0.2.1
(cd .libs && rm -f libmad.0 && ln -s libmad.0.2.1 libmad.0)
(cd .libs && rm -f libmad && ln -s libmad.0.2.1 libmad)
ar cru .libs/libmad.a version.o fixed.o bit.o timer.o stream.o frame.o synth.o decoder.o layer12.o layer3.o huffman.o
ranlib .libs/libmad.a
creating libmad.la
(cd .libs && rm -f libmad.la && ln -s ../libmad.la libmad.la)
make[4]: Leaving directory `/home/boxee/src/boxee-0.9.11.5591-src/xbmc/cores/dvdplayer/Codecs/libmad'
make[3]: Leaving directory `/home/boxee/src/boxee-0.9.11.5591-src/xbmc/cores/dvdplayer/Codecs/libmad'
make[2]: Leaving directory `/home/boxee/src/boxee-0.9.11.5591-src/xbmc/cores/dvdplayer/Codecs/libmad'
cp libmad/.libs/libmad.so ../../../../system/players/dvdplayer/libmad-i486-linux.so
cp: cannot stat `libmad/.libs/libmad.so': No such file or directory


Did you have this problem?
Re-ynd said…
Nope. I did not have that problem. The only problem was that related to libtoolize as explained in the blog. For which I had to do this

cd xbmc/cores/dvdplayer/Codecs/libmad/
libtoolize --copy --force
cd -
make
Ryan said…
Interesting, well I linked the built, libmad.0.2.1 to libmad.so, then it built just fine. However I'm still having the issue with it crashing any time I try to play anything. I set the log level to 0 and it doesn't even give any errors. It prints to stdout "floating point exception" and that's it. So bizarre. All the internal stuff works fine, as does the music playback, just seems to fuss with videos. mplayer plays the videos fine by itself, no FPE there, so I'm not sure what the problem is, thanks for your suggestions though.
Re-ynd said…
Ah, now that you mention FPE I remember one more hack I had to do (but forgot to mention in the blog), so I am assuming you are in gentoo. If so then you have to "emerge media-libs/alsa-lib" *with* the debug flag. So added this line
media-libs/alsa-lib debug
to /etc/portage/package.use
and re-emerged media-libs/alsa-lib. That should fix your FPE problem. Let me know how it went
Ryan said…
Freakin' Awesome! Worked like a charm, you rock man, thanks! That was pretty random, I looked on google for hours for that. Now my only issue is that the latest version seems to have broken compatibility with mythbackend. Thanks so much for your help.
Kiran Mudiam said…
Pitta,
Nice job on getting it running on your fav OS.
Hulu is working for me on Boxee, but I am running it on Mac OS X. There was a recent fix that the Boxee team did to leverage Firefox and make Hulu work.
Perhaps u should look at getting access to the latest alpha code from their site?
Btw, Netflix and Pandora rock on Boxee. I love it.
Ryan said…
Yeah I've got hulu working on Boxee on my mac as well, but not on gentoo. I'm still looking in to it. Everything else works beautifully though! I'll let it be known if I can fix the hulu issue and the mythbackend issue.