# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils autotools flag-o-matic versionator subversion ESVN_REPO_URI="https://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/linuxport/XBMC" DESCRIPTION="XBMC is a free and open source media-player and entertainment hub" HOMEPAGE="http://xbmc.org/" LICENSE="GPL-2" SLOT="0" KEYWORDS="" IUSE="ccache debug gprof hal joystick mms opengl pcre xrandr" RDEPEND="ccache? ( dev-util/ccache ) hal? ( sys-apps/hal ) mms? ( media-libs/libmms ) opengl? ( virtual/opengl ) pcre? ( dev-libs/libpcre ) xrandr? ( x11-libs/libXrandr ) app-arch/bzip2 app-arch/unrar app-arch/zip app-i18n/enca dev-lang/nasm >=dev-lang/python-2.4 dev-libs/boost dev-libs/fribidi dev-libs/lzo dev-libs/tre =dev-python/pysqlite-2* dev-util/cmake media-libs/alsa-lib media-libs/faac media-libs/fontconfig media-libs/freetype media-libs/ftgl media-libs/glew media-libs/jasper media-libs/libmad media-libs/libogg media-libs/libvorbis media-libs/sdl-gfx media-libs/sdl-image media-libs/sdl-mixer media-libs/sdl-sound net-misc/curl sys-apps/dbus sys-apps/lsb-release sys-apps/pmount =sys-devel/automake-1.8* =sys-devel/automake-1.9* =sys-devel/automake-1.10* virtual/mysql x11-libs/libXinerama x11-libs/libXrender x11-proto/xineramaproto " DEPEND="${RDEPEND}" pkg_setup() { if use joystick && built_with_use media-libs/libsdl nojoystick; then die "media-libs/libsdl needs to be built with USE -nojoystick." fi if ! built_with_use media-libs/alsa-lib debug; then die "media-libs/alsa-lib needs to be built with the 'debug' USE flag enabled." fi if ! built_with_use media-libs/libsdl alsa; then die "media-libs/libsdl needs to be built with the 'alsa' USE flag enabled." fi } src_unpack() { subversion_src_unpack # Fix XBMC's final version string showing as "exported" instead of the SVN revision number # sed -e "s/\$(svnversion -n .)/${ESVN_WC_REVISION}/g" \ -i configure || die "Sed failed for ${S}/configure." # Disable problem building of internal linked libraries' API docs if latex/doxygen are present # sed -e 's#^AC_PATH_PROG(LATEX.*$#LATEX="no"#g' \ -i xbmc/cores/dvdplayer/Codecs/libDVDCSS/configure.ac || \ die "Sed failed for ${S}/xbmc/cores/dvdplayer/Codecs/libDVDCSS/configure.ac" # Clean up so that Mac OSX files do not get installed # rm -rf system/python/lib-osx/ rm system/players/dvdplayer/*-osx* # Clean up wrapper script # echo '#!/bin/sh' > tools/Linux/xbmc.sh.in echo '' >> tools/Linux/xbmc.sh.in echo 'export XBMC_PLATFORM_MODE=1' >> tools/Linux/xbmc.sh.in # media-libs/libsdl defaults to 'oss' if built with that USE flag # which is incompatible with xbmc, so force it to use 'alsa' echo 'export SDL_AUDIODRIVER=alsa' >> tools/Linux/xbmc.sh.in echo 'exec @prefix@/share/xbmc/xbmc.bin -fs $*' >> tools/Linux/xbmc.sh.in # Disable FTGL support as doesn't work yet # Choosing ProjectM viz. in XBMC barfs with # symbol lookup error: /usr/share/xbmc/visualisations/ProjectM.vis: undefined symbol: _ZN14FTGLPixmapFontC1EPKc # Enable FTGL support for ProjectM visualisations # # sed -e 's/-D USE_FTGL:BOOL=OFF/-D USE_FTGL:BOOL=ON/' \ # -i configure # Fix missing and distro dependant files for 'automake-1.8' # for dir in \ xbmc/cores/dvdplayer/Codecs/libmad \ xbmc/lib/libid3tag/libid3tag do cd "${S}/${dir}" WANT_AUTOMAKE="1.8" aclocal &> /dev/null WANT_AUTOMAKE="1.8" automake --add-missing &> /dev/null WANT_AUTOMAKE="1.8" libtoolize --copy --force &> /dev/null done # Fix missing and distro dependant files for 'automake-1.9' # for dir in \ xbmc/cores/dvdplayer/Codecs/libDVDCSS \ xbmc/cores/paplayer/MPCCodec do cd "${S}/${dir}" WANT_AUTOMAKE="1.9" automake --add-missing &> /dev/null WANT_AUTOMAKE="1.9" libtoolize --copy --force &> /dev/null done # Fix missing and distro dependant files for 'automake-1.10' # for dir in \ xbmc/cores/dvdplayer/Codecs/libdvdnav \ xbmc/cores/dvdplayer/Codecs/libfaad2 \ xbmc/visualizations/Goom/goom2k4-0 \ xbmc/lib/libass do cd "${S}/${dir}" automake --add-missing &> /dev/null libtoolize --copy --force &> /dev/null done } src_compile() { # Strip out the use of custom C{XX}FLAGS to make debugging easier for upstream # strip-flags # force debug at the request of upstream until stable release econf \ --prefix=/usr \ $(use_enable ccache) \ $(use_enable debug) \ $(use_enable gprof profiling) \ $(use_enable hal halmount) \ $(use_enable joystick) \ $(use_enable mms) \ $(use_enable opengl gl) \ $(use_enable pcre) \ $(use_enable xrandr) \ || die "Configure failed!" emake || die "Make failed!" einfo "Generating textures..." cd "${S}" for skin in skin/* ; do ./tools/XBMCTex/XBMCTex -input "\"${skin}/media/\"" \ -output "\"${skin}/media/Textures.xpr\"" || die "XBMCTex failed..." done einfo "Fixing case sensitivity..." mv "${S}/media/Fonts/arial.ttf" "${S}/media/Fonts/Arial.ttf" mv "${S}/media/Splash.png" "${S}/media/splash.png" einfo "Unzipping web content..." unzip "${S}"/web/Project_Mayhem_III_webserver_*.zip -d "${S}/web/" || die "Unzip web content failed..." } src_install() { einstall INSTALL_ROOT="${D}" || die "Install failed!" for doc in LICENSE.GPL README.linux copying.txt known_issues.txt; do dodoc "${doc}"; done rm ${D}/usr/share/xbmc/README.linux ${D}/usr/share/xbmc/LICENSE.GPL ${D}/usr/share/xbmc/*.txt mkdir -p "${D}/etc/env.d" echo "CONFIG_PROTECT=\"/usr/share/${PN}/userdata\"" > "${D}/etc/env.d/95${PN}" insinto /usr/share/applications doins tools/Linux/${PN}.desktop insinto /usr/share/pixmaps doins tools/Linux/${PN}.png } pkg_postinst() { elog "Toggle fullscreen mode using the backslash key" elog "For documentation, visit http://xbmc.org/wiki/?title=XBMC_Online_Manual" }