Got XBMC working under openSUSE 10.3
#1
Thumbs Up 
Hey.

Just wanted to say that I got XBMC from svn working on openSUSE 10.3.

If anyone wants to repeat it, here's what I had to do (besides installing the packages that ./configure asked for):
- Install newer version of fribidi from here http://download.opensuse.org/repositorie...nSUSE_10.3 (opensuse includes a very old 0.10.4 version, you can get 0.10.9 there).
- Install python 2.4 from sources (configure with ./configure --prefix=/usr --enable-unicode=ucs2 --enable-shared), and don't forget to do "sudo cp /usr/bin/python2.5 /usr/bin/python" after it is installed, so all your other programs still use python2.5
- Compile XBMC normally, and when you see this error (I think this is a bug)
Code:
make XboxMediaCenter
make[1]: Entering directory `/home/minime/xbmc-test/XBMC'
g++ -g -D_DEBUG -Wall -o XboxMediaCenter xbmc/*.o xbmc/settings/*.o xbmc/cdrip/*.o guilib/*.o guilib/tinyXML/*.o guilib/common/*.o xbmc/FileSystem/*.o xbmc/FileSystem/VideoDatabaseDirectory/*.o xbmc/FileSystem/MusicDatabaseDirectory/*.o xbmc/visualizations/*.o xbmc/screensavers/*.o xbmc/cores/*.o xbmc/cores/paplayer/*.o xbmc/linux/*.o xbmc/lib/sqLite/*.o xbmc/lib/libscrobbler/*.o xbmc/lib/libPython/*.o xbmc/lib/libPython/xbmcmodule/*.o xbmc/xbox/*.o xbmc/cores/DllLoader/*.o xbmc/cores/DllLoader/exports/*.o xbmc/cores/DllLoader/exports/util/*.o xbmc/utils/*.o xbmc/lib/UnrarXLib/*.o xbmc/lib/libGoAhead/*.o xbmc/cores/dvdplayer/*.o xbmc/cores/dvdplayer/DVDSubtitles/*.o xbmc/cores/dvdplayer/DVDInputStreams/*.o xbmc/cores/dvdplayer/DVDCodecs/*.o xbmc/cores/dvdplayer/DVDCodecs/Audio/*.o xbmc/cores/dvdplayer/DVDCodecs/Video/*.o xbmc/cores/dvdplayer/DVDCodecs/Overlay/*.o xbmc/cores/dvdplayer/DVDDemuxers/*.o xbmc/cores/dvdplayer/DVDCodecs/Overlay/libspucc/*.o xbmc/cores/VideoRenderers/*.o xbmc/cores/VideoRenderers/VideoShaders/*.o xbmc/lib/libcmyth/*.o xbmc/lib/libGoAhead/libGoAheadD-i486-linux.a xbmc/lib/libXBMS/libxbms-i486-linux.a xbmc/lib/libUPnP/libupnp-i486-linux.a xbmc/lib/libshout/libshout-i486-linux.a xbmc/lib/libRTV/librtv-i486-linux.a xbmc/lib/libXDAAP/libxdaap-i486-linux.a xbmc/lib/libcdio/libcdio-i486-linux.a xbmc/lib/libsmb/libsmbclient-i486-linux.a -lhal-storage -ldbus-1 -lpcre -lmms -lXrandr -ljpeg -ljasper -lpng12 -lresolv -lrt -lasound -lmysqlclient -lsqlite3 -llzo2 -lfribidi -lfreetype -ldl -lSDL_mixer -lSDL_image -lSDL -lvorbis -logg -ltre -lmad -lXinerama -lGLU -lGLEW -lGL  -rdynamic
xbmc/lib/libPython/xbmcmodule/pyutil.o: In function `PyGetUnicodeString':
/home/minime/xbmc-test/XBMC/xbmc/lib/libPython/xbmcmodule/pyutil.cpp:37: undefined reference to `PyUnicodeUCS2_AsUnicode'
collect2: ld returned 1 exit status
make[1]: *** [XboxMediaCenter] Error 1
make[1]: Leaving directory `/home/minime/xbmc-test/XBMC'
make: *** [all] Error 2
minime@powers:~/xbmc-test/XBMC>
just copy the g++ comand (the one starting with g++ and ending with -rdynamic) and append " -lpython2.4" at the end so it goes like this:
Code:
minime@powers:~/xbmc-test/XBMC> g++ -g -D_DEBUG -Wall -o XboxMediaCenter xbmc/*.o xbmc/settings/*.o xbmc/cdrip/*.o guilib/*.o guilib/tinyXML/*.o guilib/common/*.o xbmc/FileSystem/*.o xbmc/FileSystem/VideoDatabaseDirectory/*.o xbmc/FileSystem/MusicDatabaseDirectory/*.o xbmc/visualizations/*.o xbmc/screensavers/*.o xbmc/cores/*.o xbmc/cores/paplayer/*.o xbmc/linux/*.o xbmc/lib/sqLite/*.o xbmc/lib/libscrobbler/*.o xbmc/lib/libPython/*.o xbmc/lib/libPython/xbmcmodule/*.o xbmc/xbox/*.o xbmc/cores/DllLoader/*.o xbmc/cores/DllLoader/exports/*.o xbmc/cores/DllLoader/exports/util/*.o xbmc/utils/*.o xbmc/lib/UnrarXLib/*.o xbmc/lib/libGoAhead/*.o xbmc/cores/dvdplayer/*.o xbmc/cores/dvdplayer/DVDSubtitles/*.o xbmc/cores/dvdplayer/DVDInputStreams/*.o xbmc/cores/dvdplayer/DVDCodecs/*.o xbmc/cores/dvdplayer/DVDCodecs/Audio/*.o xbmc/cores/dvdplayer/DVDCodecs/Video/*.o xbmc/cores/dvdplayer/DVDCodecs/Overlay/*.o xbmc/cores/dvdplayer/DVDDemuxers/*.o xbmc/cores/dvdplayer/DVDCodecs/Overlay/libspucc/*.o xbmc/cores/VideoRenderers/*.o xbmc/cores/VideoRenderers/VideoShaders/*.o xbmc/lib/libcmyth/*.o xbmc/lib/libGoAhead/libGoAheadD-i486-linux.a xbmc/lib/libXBMS/libxbms-i486-linux.a xbmc/lib/libUPnP/libupnp-i486-linux.a xbmc/lib/libshout/libshout-i486-linux.a xbmc/lib/libRTV/librtv-i486-linux.a xbmc/lib/libXDAAP/libxdaap-i486-linux.a xbmc/lib/libcdio/libcdio-i486-linux.a xbmc/lib/libsmb/libsmbclient-i486-linux.a -lhal-storage -ldbus-1 -lpcre -lmms -lXrandr -ljpeg -ljasper -lpng12 -lresolv -lrt -lasound -lmysqlclient -lsqlite3 -llzo2 -lfribidi -lfreetype -ldl -lSDL_mixer -lSDL_image -lSDL -lvorbis -logg -ltre -lmad -lXinerama -lGLU -lGLEW -lGL  -rdynamic -lpython2.4

And there you have it, XBMC on opensuse. I think this last one is a bug somewhere in the build sustem, it should be linking to python, and it isn't.

Thanks all XBMC devs for the great app. I only did the easy part Smile
Reply
#2
could you compile a list of the names of the packages needed? (i assume they are in yast). if so we could stick it in the readme
Reply
#3
I normally already have lots of development stuff installed, but this should do it

sudo zypper install gcc gcc-c++ SDL-devel SDL_gfx-devel SDL_image-devel SDLmm-devel SDL_net-devel SDL_Pango-devel SDL_perl SDL_sound SDL_ttf-devel lzo-devel freetype2-devel sqlite-devel libogg-devel libasound2 glew-devel curl libcurl4 gawk xorg-x11-devel libmms-devel mad-devel libtre-devel libvorbis-devel libmysqlclient-devel pcre-devel dbus-1-devel hal-devel libjasper-devel

those things are available either on the main repo, or on the packman repo (go to yast>community repositories, and select packman).

fribidi and fribidi-devel (>= 0.10.7) have to be downloaded, as I mentioned earlier, from http://download.opensuse.org/repositorie...nSUSE_10.3 .

And finally, ccache is also available and it works (I used it).
Reply
#4
Nice work knuckles. My only suggestion would be...

instead of
sudo cp /usr/bin/python2.5 /usr/bin/python

create a symlink
ln -s /usr/bin/python2.5 /usr/bin/python

No point in having 2 copies of the same binary. Could just be my anal retentive sysadmin side, but I swear it makes things easier in the future to maintain Smile

Cheers
xgrep
return null;
Reply
#5
Xgrep: you are absolutely right, but because I saw python doing it, it installed both binaries by copying, not linking, I copied it too, just to be on the safe side Smile
Reply

Logout Mark Read Team Forum Stats Members Help
Got XBMC working under openSUSE 10.30