# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI="2" inherit autotools eutils flag-o-matic PKGVER="0.9.22.13692" FLASHLIB="flashlib-shared-6684" SRC_URI="http://dl.boxee.tv/${PN}-sources-${PKGVER}.tar.bz2 http://dl.boxee.tv/${FLASHLIB}.tar.gz" DESCRIPTION="Boxee is a fork of XBMC with a focus on social media" HOMEPAGE="http://www.boxee.tv/" LICENSE="GPL-2 BSD" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="debug mid xrandr opengl" RESTRICT="mirror bindist strict" RDEPEND="opengl? ( virtual/opengl ) app-arch/bzip2 app-arch/unrar app-arch/unzip app-i18n/enca >=dev-lang/python-2.4 dev-libs/boost dev-libs/fribidi dev-libs/libpcre dev-libs/lzo dev-libs/tre >=dev-python/pysqlite-2 media-libs/alsa-lib media-libs/faac media-libs/fontconfig media-libs/freetype media-libs/glew media-libs/jasper media-libs/libmad media-libs/libogg media-libs/libvorbis media-libs/libsdl[alsa,X] media-libs/sdl-gfx media-libs/sdl-image[gif,jpeg,png] media-libs/sdl-mixer media-libs/sdl-sound net-libs/xulrunner net-misc/curl sys-apps/dbus sys-apps/hal sys-apps/pmount virtual/mysql x11-libs/libXinerama x11-libs/libXrandr x11-libs/libXrender" DEPEND="${RDEPEND} x11-proto/xineramaproto dev-util/cmake app-misc/screen x86? ( dev-lang/nasm virtual/krb5 )" RESTRICT="strip" S=${WORKDIR}/${PN}-sources-${PKGVER} src_unpack() { local pic if [ $(uname -m) = "x86_64" ]; then my_arch=x86_64 else my_arch=i486 fi || die "Set arch failed" my_prefix=/opt/${PN} pic="-fPIC" unpack ${A} cd "${S}" #this section contains changes required for x86_64 and thus is only loaded if your arch is x86_64 if [ $(uname -m) = "x86_64" ]; then #boxee64.patch allows boxee to compile on 64bit systems epatch "${FILESDIR}/boxee64.patch" || die "Patch failed" #ffmpeg needs to be patched for 64bit systems epatch "${FILESDIR}/ffmpeg64.patch" || die "Patch failed" #two symlinks added by paulingham that work with boxee64.patch to allow boxee to compile on x86_64 dosym /usr/lib/libtalloc.so.2 ${S}/xbmc/lib/libsmb/libtalloc-x86_64-linux.a dosym /usr/lib/libwbclient.so.0 ${S}/xbmc/lib/libsmb/libwbclient-x86_64-linux.a _xulrunner=xulrunner-x86_64-linux else _xulrunner=xulrunner-i486-linux fi || return 1 #anish.patch adds some minor tweaks anish figured out to get the latest sources running epatch "${FILESDIR}/anish.patch" || die "Patch failed" #fribidi.patch fixes the compile issue related to fribidi epatch "${FILESDIR}/fribidi.patch" || die "Patch failed" #patch to compile against libpng14, thanks to wonder for providing the original patch epatch "${FILESDIR}/libpng.patch" || die "Patch failed" #patch to compilet release 0.9.21.12563, remove extraneous function calls that cause linkage failure epatch "${FILESDIR}/12563_fix.patch" || die "Patch failed" # Create flashlib Makefile cd "${WORKDIR}/flashlib-shared" epatch "${FILESDIR}/flashlib-Makefile.patch" || die "Patch failed" sed -e "s#@ARCH@#${my_arch}#g" -i Makefile || die "sed failed." sed -e "s#@PIC@#${pic}#g" -i Makefile || die "sed failed." cd "${S}"/xbmc/lib/libass ./autogen.sh || die "libass failed" autoreconf --install || die "libass failed" cd "${S}"/xbmc/lib/libBoxee/tinyxpath autoreconf -vif || die "tinyxpath failed" ./configure || die "tinyxpath failed" cd "${S}"/xbmc/visualizations/Goom/goom2k4-0 aclocal || die "goom2k4-0 failed" libtoolize --copy --force || die "goom2k4-0 failed" ./autogen.sh --enable-static --with-pic || die "goom2k4-0 failed" } src_configure() { aclocal || die "aclocal failed!" autoheader || die "autoheader failed!" autoconf || die "autoconf failed!" econf \ --disable-ccache \ --prefix=${my_prefix} \ $(use_enable debug) \ $(use_enable mid) \ $(use_enable xrandr) \ $(use_enable opengl) \ || die "Configure failed!" cd "${S}" #this is another hack to fix an issue with gcc44 if [ $(uname -m) = "x86_64" ]; then sed -r 's/\(MAKE\)\ -C\ xbmc\/screensavers$/\(MAKE\)\ CFLAGS=\"-march=k8\ -02\ -pipe\"\ -C\ xbmc\/screensavers/g' Makefile > Makefile.sed || die "sed failed" else sed -r 's/\(MAKE\)\ -C\ xbmc\/screensavers$/\(MAKE\)\ CFLAGS=\"-march=i486\ -02\ -pipe\"\ -C\ xbmc\/screensavers/g' Makefile > Makefile.sed || die "sed failed" fi cat Makefile.sed > Makefile || die "cat failed" } src_compile() { cd "${WORKDIR}/flashlib-shared" make || die "Make flashlib failed!" cp "${WORKDIR}/flashlib-shared/FlashLib-${my_arch}-linux.so" "${S}/system/players/flashplayer" cd "${S}" emake -j1 || die "Make boxee failed!" } src_install() { cd "${S}" insinto ${my_prefix}/language doins -r language/* insinto ${my_prefix}/media doins media/defaultrss.png \ media/downloadrss.png \ media/weather.rar doins -r media/boxee_screen_saver insinto ${my_prefix}/media/Fonts doins media/Fonts/boxee* insinto ${my_prefix}/screensavers doins screensavers/*.xbs insinto ${my_prefix} #doins -r plugins rm -f scripts/Lyrics/resources/skins/Boxee/720p rm -f scripts/Lyrics/resources/skins/Default/720p doins -r scripts dosym PAL ${my_prefix}/scripts/Lyrics/resources/skins/Boxee/720p dosym PAL ${my_prefix}/scripts/Lyrics/resources/skins/Default/720p insinto ${my_prefix}/skin/boxee doins -r skin/boxee* exeinto ${my_prefix}/system doexe system/*-${my_arch}-linux.so insinto ${my_prefix}/system doins -r system/scrapers doins UserData/rtorrent.rc.linux for player in system/players/* ; do exeinto ${my_prefix}/system/players/$(basename ${player}) doexe ${player}/*-${my_arch}-linux.so done # FIXME: flashplayer is closed and builds don't exist for x86_64! exeinto ${my_prefix}/system/players/flashplayer doexe system/players/flashplayer/*linux* \ system/players/flashplayer/bxoverride.so insinto ${my_prefix}/system/players/flashplayer doins -r system/players/flashplayer/boxeejs dodir xulrunner dosym /opt/xulrunner ${my_prefix}/system/players/flashplayer/xulrunner/bin exeinto /opt/xulrunner/plugins doexe system/players/flashplayer/xulrunner-${my_arch}-linux/bin/plugins/libflashplayer.so exeinto ${my_prefix}/system/python doexe system/python/*-${my_arch}-linux.so rm -rf xbmc/lib/libPython/Python/Lib/test exeinto ${my_prefix}/system/python/Lib doexe xbmc/lib/libPython/Python/build/lib.linux-${HOSTTYPE}-2.4/*.so insinto ${my_prefix}/system/python/Lib for base in "${S}/system/python/Lib" "${S}/xbmc/lib/libPython/Python/Lib" ; do for del in $(find ${base} -name plat-\*) ; do if [[ "`basename ${del}`" != "plat-linux2" ]] ; then rm -rf ${del} fi done for suffix in pyo py ; do for file in $(find ${base} -iname \*.${suffix}) ; do dir=$(dirname ${file} | sed -e "s#^${base}/*##g") if [[ "${dir}" != "${last_dir}" ]] ; then last_dir="${dir}" insinto "${my_prefix}/system/python/Lib/${dir}" fi doins ${file} done done done # FIXME: Don't exist for x86_64! if use amd64 ; then ewarn "cdrip libraries do not exist for x86_64!" else exeinto ${my_prefix}/system/cdrip doexe system/cdrip/*-${my_arch}-linux.so fi insinto ${my_prefix}/UserData cp -f UserData/sources.xml.in.diff.linux UserData/sources.xml cp -f UserData/advancedsettings.xml.in UserData/advancedsettings.xml doins UserData/*.xml dosym UserData ${my_prefix}/userdata insinto ${my_prefix}/system doins system/*.xml doins system/asound.conf doins -r system/scrapers insinto ${my_prefix}/visualisations doins visualisations/Goom.vis \ visualisations/Waveform.vis \ visualisations/opengl_spectrum.vis \ visualisations/projectM.vis doins -r visualisations/projectM \ visualisations/projectM.presets exeinto ${my_prefix}/bin doexe bin-linux/boxee-rtorrent mv run-boxee-desktop.in run-boxee-desktop exeinto ${my_prefix} doexe Boxee doexe run-boxee-desktop doexe give_me_my_mouse_back doexe xbmc-xrandr dodir /opt/bin dosym ${my_prefix}/run-boxee-desktop /opt/bin/boxee insinto /usr/share/applications doins tools/Linux/boxee.desktop insinto /usr/share/pixmaps doins tools/Linux/boxee.png dodir /etc/env.d echo "CONFIG_PROTECT=\"${my_prefix}/UserData\"" > "${D}/etc/env.d/95boxee" }