2009-08-28, 08:22
Greeting All,
Here is my first post in this forum as I want to share about compiling XBMC on Fedora 11.
My target is to use as external binaries for XBMC, so it may not need update if there is an update in other libraries and use more recent libraries and I'm trying to enable any feature that XBMC may support.
This is based on XBMC wiki
HOW-TO compile XBMC for Linux on Fedora Red Hat Enterprise Linux CentOS
As fedora licence policy, we could not rely on pure fedora repositories. As above documentation, it uses rpmfusion repositories. But on my experiences, that some of the *-devel libraries from rpmfusion can't be used by XBMC if you want use external libraries. There some incomplete file for example dts support, the header file from libdca of rpmfusion just contain dca.h. Also I had bad experience with ffmpeg libraries.
So I switch to atrpms repositories (This make me re-install my fedora). I do not know what will happen if you switch from rpmfusion to atrpms directly, as there might coalition files between packages from each repositories. I'm suggest you that you use Fedora Installation that does not have rpmfusion repositories.
Step by step instruction:
Here is my first post in this forum as I want to share about compiling XBMC on Fedora 11.
My target is to use as external binaries for XBMC, so it may not need update if there is an update in other libraries and use more recent libraries and I'm trying to enable any feature that XBMC may support.
This is based on XBMC wiki
HOW-TO compile XBMC for Linux on Fedora Red Hat Enterprise Linux CentOS
As fedora licence policy, we could not rely on pure fedora repositories. As above documentation, it uses rpmfusion repositories. But on my experiences, that some of the *-devel libraries from rpmfusion can't be used by XBMC if you want use external libraries. There some incomplete file for example dts support, the header file from libdca of rpmfusion just contain dca.h. Also I had bad experience with ffmpeg libraries.
So I switch to atrpms repositories (This make me re-install my fedora). I do not know what will happen if you switch from rpmfusion to atrpms directly, as there might coalition files between packages from each repositories. I'm suggest you that you use Fedora Installation that does not have rpmfusion repositories.
Step by step instruction:
- As root, enable ATRPMS repositories at yum respositories directory
Put LineCode:vi /etc/yum.repos.d/atrpms.repo
Code:[atrpms]
name=Fedora Core $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/f$releasever-$basearch/atrpms/stable
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1 - Update your Fedora to use last revision of installed packages
Code:yum -u update
- Install required packages for XBMC
Use copy-paste for this one long line
Quote:yum -y install ccache subversion git gcc-c++ boost-devel mesa-libGL-devel glew-devel libmad-devel libjpeg-devel libsamplerate-devel libogg-devel libvorbis-devel freetype-devel fontconfig-devel bzip2-devel fribidi-devel sqlite-devel mysql-devel libpng-devel pcre-devel lzo-devel libcdio-devel libsmbclient-devel SDL-devel SDL_image-devel SDL_mixer-devel enca-devel jasper-devel libmms-devel libXt-devel libXtst-devel libXmu-devel libXinerama-devel libcurl-devel dbus-devel hal-devel pulseaudio-libs-devel pulseaudio-libs-zeroconf faac-devel avahi-devel ffmpeg-devel a52dec-devel libdca-devel faad2-devel mpeg2dec-devel libass-devel libmpcdec-devel flac-devel wavpack-devel python-devel cmake gperf unzip make libtool flex bison libtiff-devel
- Checkout XBMC source code vis subversion
Code:svn co https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk/
- Install Nvidia header library to support VDPAU
This may give another problem on machine that have intel/ati as graphic card. But if you do want to not use the nvidia-graphics-devel, XBMC will compile automatically without support of VDPAU.
Code:yum -y install nvidia-graphics-devel
ln -s /usr/include/nvidia-graphics/vdpau /usr/include/vdpau - There some tricky items that need to be solve
Code:cp XBMC/xbmc/lib/cximage-6.0/jpeg/jpegint.h /usr/include/
ln -s /usr/lib/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so - Entering the XBMC directory as build directory and do configure.
Quote:cd XBMC
The long external option is put as just to make sure it use the external libraries. In short you may need just
./configure --disable-debug --enable-external-libraries --enable-external-ffmpeg --enable-external-libfaad --enable-external-libdts --enable-mid --enable-profiling --enable-external-libmad --enable-external-liba52 --enable-external-libmpeg2 --enable-external-libass --enable-external-libvorbis --enable-external-libogg --enable-external-libmpcdec --enable-external-libflac --enable-external-libwavpack --enable-external-pythonDisable debug is used to not include debug symbols to make the XBMC binary slimmer.Code:./configure --disable-debug --enable-external-libraries
There is also some issue on libass, as latest XBMC revision use libass-0.9.7. While Fedora 11 have libass-0.9.6. I was trying to use libass-0.9.7 from development rpm of Fedora 12, but it will failed compiled XBMC. So just straight with libass0.9.6 from original Fedora 11 with hope in future there might a change. XBMC will fallback with included libass that come with XBMC source code.
- Start compile
Code:make
- Install the build
Code:make install