paperkut Wrote:Hey tobi, I'm also attempting to get xbmc to run under opensolaris (well, nexenta) for the power of zfs. At the moment I'm struggling to get basic dependencies like libsdl compiled. Do you have a list of patches/fixes that you may have had to come up with to get it all to compilation?
Sure, I documented everything what I did, but unfortunately I lost most of what I did with the source code, because of a HDD failure. I have a list of files I needed to edit. I will look if I can reconstruct some of it. Getting all the dependencies was very time-consuming so this should help you getting this done faster.
I did this with the source code of 9.11-b1 Camelot, so maybe some things are not needed anymore or there are some additional dependencies.
SDL was already installed as a standard package on OpenSolaris, but since it was the cause for the crashes, I compiled it on my own and it did not complain (the crashes didn't disappear -.-). When you post some error messages, maybe I can help you.
Also most problems in the beginning occured because OpenSolaris hasn't installed several GNU tools or because you need to explicity say that you want the GNU version (gmake instead of make). Since Nexenta seams to use GNU tools you shouldn't have some of these problems.
First I needed the following packages from the OpenSolaris Package Management (don't know what Nexenta uses or if they are all available):
Code:
SUNWgcc
SUNWxorg-header
SUNWgnu-automake-110
SUNWmysql51
SUNWmysql51lib
SUNWsvn-java
SUNWsvn-python
SUNWsvn-perl
SUNWsvn
SUNWcmake
SUNWgmake
SUNWGlib
SUNWaconf
SUNWaudh
SUNWgit
SUNWmercurial
SUNWlibtool
SUNWonbld
SUNWgnu-libiconv
SUNWiconv-extra
SUNWiconv-unicode
SUNWgnu-gperf
SUNWgnu-mpfr
SUNWruby18
SUNWsmba
SUNWsmbs
SUNWgdb
SUNWlang-en
SUNWlang-en-extra
SUNWlang-de
SUNWlang-de-extra
SUNWlang-common-extra
Some of the packages are just for getting the source (git, svn) or debugging (gdb), but not necessarily needed.
Some Symlinks etc are missing:
Code:
pfexec ln -s /usr/bin/automake-1.10 /usr/bin/automake
pfexec ln -s /usr/bin/aclocal-1.10 /usr/bin/aclocal
pfexec ln -s /usr/lib/libCrun.so.1 /usr/lib/libCrun.so
pfexec ln -s /usr/mysql/bin/mysql_config /usr/bin/mysql_config
pfexec crle -l /usr/mysql/lib/mysql/ -u
pfexec crle -64 -l /usr/mysql/lib/64/mysql/ -u
For most of the dependencies there was no package, so I had to compile them manually (Compile the libraries in this order because there are some dependencies between them):
Code:
pkg-config-0.23
./configure --prefix=/usr
gmake
gmake check
pfexec gmake install
glew-1.5.2
gmake CFLAGS="-O2 -Iinclude -I/usr/openwin/include" LIB.LDFLAGS="-L/usr/openwin/lib -lXmu -lXi -lGL -lXext -lX11"
pfexec gmake install INSTALL=ginstall
boost_1_41_0
./bootstrap.sh
pfexec ./bjam toolset=sun stdlib=sun-stlport address-model=64 --prefix=/usr install
nasm-2.07
./autogen.sh
./configure --prefix=/usr
gmake everything
pfexec gmake install_everything
libmad-0.15.1b
./configure --prefix=/usr
gmake
gmake check
pfexec gmake install
nano mad.pc # contents of the file below
pfexec mv mad.pc /usr/lib/pkgconfig/
mad.pc:
prefix=/usr
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include
Name: mad
Description: MPEG Audio Decoder
Requires:
Version: 0.15.1b
Libs: -L${libdir} -lmad
Cflags: -I${includedir}
libsndlfile-1.0.20
./configure --prefix=/usr
gmake
gmake check
pfexec gmake install
libsamplerate-0.1.7
./configure --prefix=/usr
gmake
gmake check
pfexec gmake install
lzo-2.03
./configure --prefix=/usr
gmake
gmake check
gmake test
pfexec gmake install
fribidi-0.10.9
./configure --prefix=/usr
gmake
gmake check
pfexec gmake install
libmms-0.5
add in src/mmsio.h at line 6
typedef uint16_t u_int16_t; // inserted
typedef uint32_t u_int32_t; // inserted
typedef uint64_t u_int64_t; // inserted
./configure --prefix=/usr
gmake
gmake check
pfexec gmake install
enca-1.12
./configure --prefix=/usr
gmake
gmake check # 2 tests fail
pfexec gmake install
faad2-2.7
add in libfaad/Makefile.in @ line 198
AM_CFLAGS = -I$(top_srcdir)/include
./configure --prefix=/usr --with-drm
gmake
gmake check
pfexec gmake install
pfexec cp include/neaacdec.h /usr/include/
SDL_mixer-1.2.11
./configure --prefix=/usr --enable-music-mp3-mad-gpl
gmake
pfexec gmake install
jasper-1.900-1
./configure --prefix=/usr
gmake
pfexec gmake install
SDL_image-1.2.10
./configure --prefix=/usr CFLAGS="-I/usr/include/libpng10"
gmake
pfexec gmake install
libcdio-0.82
comment out line 117 in /usr/include/sys/regset.h
./configure --prefix=/usr --disable-cddb --disable-vcd-info
gmake
gmake check # some tests fail
pfexec gmake install
uncomment line 117 in /usr/include/sys/regset.h
faac-1.2.8
./configure --prefix=/usr --with-mp4v2
gmake
gmake check
pfexec gmake install
lame-398-2
./configure --prefix=/usr
gmake
pfexec gmake install
a52dec-0.7.4
./configure --prefix=/usr --enable-shared
gmake
pfexec gmake install
libdca-0.0.5
./configure --prefix=/usr --enable-shared
gmake
pfexec gmake install
libmpeg2-0.5.1
./configure --prefix=/usr
gmake
pfexec gmake install
wavpack-4.0.1
./configure --prefix=/usr
gmake
pfexec gmake install
libass-0.9.8
./configure --prefix=/usr
gmake
pfexec gmake install
ffmpeg-git-2010-01-23
replace install with ginstall in following files
Makefile
subdir.mak
./configure --prefix=/usr --enable-pthreads --enable-shared --enable-vdpau --enable-gpl --enable-postproc --enable-nonfree --enable-avfilter --extra-cflags="-fPIC" --extra-ldflags="-mimpure-text -lrt" --disable-mmx --enable-libvorbis --enable-libmp3lame --enable-libfaac --cc=gcc-4.3.2
gmake
pfexec gmake install
mplayer-checkout-2010-01-23
./configure --prefix=/usr --cc=gcc-4.3.2
gmake
pfexec gmake install INSTALL=ginstall
openssl-0.9.8l
./Configure solaris-x86-gcc shared threads zlib --prefix=/usr
gmake
gmake test
pfexec gmake install
Most of the times you just configure and make but sometimes there are some tricks. I just wanted the libraries to compile, so some of them are a bit strange.
Finally the XBMC compilation:
Code:
xbmc-9.11-b1
pfexec crle -l /usr/sfw/lib -u
pfexec ln -s /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so
pfexec ln -s /usr/lib/libgcc_s.so.1 /usr/lib/libgcc_s.s
./bootstrap
bash ./configure CFLAGS="-I/usr/mysql/include" LDFLAGS="-L/usr/lib -L/usr/mysql/lib/mysql -L/usr/sfw/lib -R/usr/lib -R/usr/sfw/lib -R/usr/mysql/lib/mysql -L/usr/X11/lib -R/usr/X11/lib -lXext" --prefix=/usr --enable-external-libraries --enable-debug CC=gcc-4.3.2 CXX=g++-4.3.2 INSTALL=ginstall
gmake