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.

Popular posts from this blog

Attesting General Power of Attorney in SF

Recently I had to go through the motions of getting a General Power of Attorney (GPA) document attested in San Francisco. I am an Indian by birth. My parents were trying to buy a house back in India for me. Since I did not want to travel to India they needed a GPA so that they can act on my behalf to sign all the documents required to buy the house. The problem however is that they needed it urgently because the seller lives in UK and wants to get all the things done quickly so he can go back. My parents send me a GPA document that they obtained from a lawyer. This is a document that will give the power to my parents to buy the said property in the document on my behalf. The lawyer said that I will have to get the document attested at an Indian Consulate in USA. The closest one for me is in SF and I can drive there in about an hour from where I live. So I though it will be like a day's work to get all the things done. I looked up at their  website  for the procedure t...

XBMC / Boxee remote control android app

I have been writing a few android apps over weekends at home and during 20% time at Google. However I never actually released any of them in the android market mainly because they were quick and dirty apps that fit my needs but perhaps would not be appealing to the general public. One such app that I quickly wrote over a couple of weekends is a XBMC remote. The media center that I use at home is XBMC and I have always wanted to have more control and faster access to my media. Using my remote to navigate through the menus is not as fast. Especially when I wanted to queue a lot of music it is very slow. So I wrote this nice little app called "XBMC remote" for my android phone to control XBMC from anywhere :). Give it a try. Search for "xbmc" in android market and install it if you use XBMC as your media center. When you first launch the app you will start with this screen. You will have to setup your web server address, username and password (if required) by ...

gtkdocize not found

If you are ever configuring an app and see the message "gtkdocize not found" in Gentoo, then you need to emerge gtk-doc. I had some hard time figuring this out so I am writing it in my blog for the next time. When I saw that error message I did an "emerge -s gtkdocize". Usually it is that simple in Gentoo. But not this time. The emerge command returned no results at all. Then I searched for gtkdoc and still no luck. After searching in Google, I still did not have a solution. After thinking for a while I decided to try to search for gtk-doc. Bingo! That worked! Interestingly, this is my first post from my Virtual machine :-)