From a198e55bbea9ba705fd81bff4d226dca5b72de38 Mon Sep 17 00:00:00 2001 From: Jose Quinteiro Date: Sat, 29 Jun 2013 14:02:04 -0700 Subject: Fix xbmc on older x86 platforms --- media-tv/xbmc/Manifest | 6 +- .../xbmc/files/xbmc-12.0-system-projectm.patch | 113 +++++++++ media-tv/xbmc/xbmc-12.1-r1.ebuild | 258 -------------------- media-tv/xbmc/xbmc-12.2-r2.ebuild | 265 +++++++++++++++++++++ 4 files changed, 382 insertions(+), 260 deletions(-) create mode 100644 media-tv/xbmc/files/xbmc-12.0-system-projectm.patch delete mode 100644 media-tv/xbmc/xbmc-12.1-r1.ebuild create mode 100644 media-tv/xbmc/xbmc-12.2-r2.ebuild diff --git a/media-tv/xbmc/Manifest b/media-tv/xbmc/Manifest index b1a92e1..63792fb 100644 --- a/media-tv/xbmc/Manifest +++ b/media-tv/xbmc/Manifest @@ -1,6 +1,8 @@ +AUX xbmc-12.0-system-projectm.patch 3951 SHA256 4750781ecb5be94e3d23375e4bfb46a84d240083c70e03da034c328ec2cfc185 SHA512 a8ad1207f7f9f591af9bc2034ac56793c6a5b33406542adaef65fb5a1b89c233990c6e9f740a966a67c16bd389454c03c828ce9f97f8a07e23aac67d902775a7 WHIRLPOOL 21489d98ed7aad3519533142a89076697acf06fc565f2438e6a32b244b4b1908b9a9737b2cfa4f5dcf36369bbbe30af63b98acb99ae9e7460b69fbf6df18df1b AUX xbmc-9999-detect-sse2.patch 5898 SHA256 b2e7372f989089e80b99e684e24a4546079588aa4a1bc77afc8bf297028a7725 SHA512 1bf5b49c3e3ebc59dc432162550e23c8f2f89fd4c7abd68271368affb92b2f8fb114ad9171da7d47edb691ec9df970242a4b9e555266f31e3c073bbe2e42032a WHIRLPOOL 4a04fa2a3b75183893106dbf4a2829e66a6234295b232e20246c615084a0e15755e9d7e2beef5905847b3cecfe9173a7689ea734462ed050174a7fde6aee0f0c AUX xbmc-9999-no-arm-flags.patch 478 SHA256 075db2562d31914d86b4394500d4b3168ea77114b63d1a7929ddae96111017a2 SHA512 b958cf3ab4877dbae4e5bd1376e8b9bd82f0dab43b1695c1d85e0e8ff366ef278ff686fe6394a04b3d79e19f11d8c92689fc049d2874e3fc12c907e36e993064 WHIRLPOOL f322fa4db24ff6f3372bdadd3dba8fbd4aed5849dc676f8c63d654f2c83de2165e60b26af821647a46cfa5ff129e7e0cb7c39c5cddbc2e5d9ec675bb148b2d63 AUX xbmc-9999-nomythtv.patch 1680 SHA256 fe0289d1361b0dde3c261bc082bcad123c9cc9a2b7398e4eb48773f976be93a2 SHA512 403389bb1bf1442be1a8d23106bd78dc672c66fcf588b6076e6105023a69a92ca58cdaa91c9e2664123f244c3d5f42a9de6f72845c702339e3f8a0e976330ca1 WHIRLPOOL dcf13b59133f2b7288bc734803ad1317d6e943f7cd85b0428ec257b2ec9fb6a23311fbdd8574dbfb985a473dac7cf8ca30c2ac6d59b62797adb1f63d8bcc0b12 -DIST xbmc-12.1.tar.gz 67430677 SHA256 29e3f36e1884913088f786179a4c925f52e46e9ba7bf8f24e35e934177c01ec3 SHA512 a8b5194766e32e09fa65c0e3656ff180c15761ce2348dc8a1fff0c65247b47e644db4fc91a829e73907b6a52c8e1bdebf624640b9dd06cea2c46bda1d2b3b4a5 WHIRLPOOL 13dbaf040faaaef1b04da892949e9684d7a958cec286b3a5f8cb449ec0fea6b5f96c2a473ece840b86103eb03dd1f39dd66411e5b0526785256d2cc92e1e95e8 -EBUILD xbmc-12.1-r1.ebuild 6919 SHA256 8768dc40d91a3067e1a480f2784044cc8e5586189a226981df5adbf390b11817 SHA512 1db5261602225d74437647aeffb06bc8b2ef6431833db04b288b687a35444c0ba20eda0cdfdc80abe7990b17694a3dc54376e61f6024f33081d1e606fa947ca9 WHIRLPOOL 94cb5aee4d9802884493b618fa9d62af02ec870a859fad86108e031969ec14a3b36fee15dfbf8eff89fedeab62b072003ddfc2ef05fb6db6ea8571dce2ac4eb6 +DIST xbmc-12.2.tar.gz 67663000 SHA256 b2330634fc513d27a44b131bbbe4ca6b61d60a1fe6c7ca27a7dc749df0bcea1c SHA512 d6812886b4d1a5c28c8150b164d714f8855ccb1ac4e74811c9eb03d09e12a6f05bedd3c034132ae79e0bff66efd54ced9c2c1140da6b4ad7b82dbb90fa3d1c39 WHIRLPOOL c3fc97e5f45a38a259bca06af0b171630ac16832034410e45174d900358b1d16b72940b29475dcad72a2198d8722859a229152379ab7784a7d61f961eb261ddb +DIST xbmc_backports-12-1.tar.bz2 5010 SHA256 a222c32f5a4a0a8690b1544674cfbfeddf81943e85b6ea716768b83c9eba5fa8 SHA512 19b29808f7a3a7b0642f8463bdd229041588d2f42952fe55a17ab69b5b259cde249eb763598893463218d0ab6c747bf3c81e045bdbf5655f9f5f2d2067cb35d2 WHIRLPOOL cc6870dabca8b53a1a6055a4218a8f9bbb2c031ab3b928040325fb121ea75ae6db431542660d28c3bc6900a904e2c0949d69651b2f63faffe8bc7f670d519f06 +EBUILD xbmc-12.2-r2.ebuild 7168 SHA256 b4e156b4ae442eb99d9694ccb0eda0f45b0104df9c0d397b0e4a4130d7fb55ab SHA512 709d020b1f0c0cf82ae10f73af68f181f991eb4591a075e1c708e7e857f230777a951404385118fb4972c6df8909b1f88d7a9d6685a4bda05646ae365ecaec81 WHIRLPOOL 7f01b154366f99e43176ef4e56574f53443e32d0eff0ec4c88a226bffea5ede1932150d301a991d75afe3f66ac471ed33620bad66c774f865c1bcb611c9eb032 MISC metadata.xml 1140 SHA256 00929104e646c293b0ee5dc8a42701b940a0e908f7293c15a277ce138a56999a SHA512 e6a4b148543b613ffad57925310bc7562629e18f726cc958bf2de64020b0ec3d72cf82eb2e506a194c1c3610361d96ff41245d1e7a411be08f87719abbb80410 WHIRLPOOL 92f8748f2fedb7fe0bd34ed29e4e4ff25cb55b7ceacc15a9a4c561c3544530d216d5494de1862591156f3290e641a38aa91000c2b33e850d8a923e1818eb5ac1 diff --git a/media-tv/xbmc/files/xbmc-12.0-system-projectm.patch b/media-tv/xbmc/files/xbmc-12.0-system-projectm.patch new file mode 100644 index 0000000..959071c --- /dev/null +++ b/media-tv/xbmc/files/xbmc-12.0-system-projectm.patch @@ -0,0 +1,113 @@ +From 72f017641cf7acdb1d3caf408bbcdaec39de8ce3 Mon Sep 17 00:00:00 2001 +From: Tomas Chvatal +Date: Sat, 23 Feb 2013 11:21:44 +0100 +Subject: [PATCH] Allow usage of system ProjectM + +Conflicts: + configure.in +--- + configure.in | 45 ++++++++++++++++++++++++---- + xbmc/visualizations/XBMCProjectM/Makefile.in | 12 ++++---- + 2 files changed, 45 insertions(+), 12 deletions(-) + +diff --git a/configure.in b/configure.in +index 78104ad..296eb4d 100644 +--- a/configure.in ++++ b/configure.in +@@ -302,9 +302,15 @@ AC_ARG_ENABLE([rsxs], + + AC_ARG_ENABLE([projectm], + [AS_HELP_STRING([--enable-projectm], +- [enable ProjectM visualisation (default is yes)])], ++ [enable ProjectM visualisation (default is auto)])], + [use_projectm=$enableval], +- [use_projectm=yes]) ++ [use_projectm=auto]) ++ ++AC_ARG_WITH([projectm-presets-dir], ++ [AS_HELP_STRING([--with-projectm-presets-dir], ++ [path to ProjectM presets to incude in default list (default is bundled path)])], ++ [projectm_presets_dir=$withval], ++ [projectm_presets_dir=bundled]) + + AC_ARG_ENABLE([x11], + [AS_HELP_STRING([--enable-x11], +@@ -1257,9 +1263,38 @@ fi + if test "$use_projectm" = "no" || test "$use_gl" = "no"; then + AC_MSG_NOTICE($projectm_disabled) + DISABLE_PROJECTM=1 ++ DISABLE_INTERNAL_PROJECTM=1 + else +- AC_MSG_NOTICE($projectm_enabled) +- DISABLE_PROJECTM=0 ++ if test "$host_vendor" != "apple" ; then ++ if test "$use_projectm" = "yes"; then ++ PKG_CHECK_MODULES([PROJECTM],[libprojectM],,[use_projectm="no";AC_MSG_ERROR([$projectm_disabled])]) ++ else ++ PKG_CHECK_MODULES([PROJECTM],[libprojectM],,[use_projectm="no";AC_MSG_RESULT([$projectm_disabled])]) ++ fi ++ if test "$use_projectm" != "no"; then ++ INCLUDES="$INCLUDES $PROJECTM_CFLAGS";LIBS="$LIBS $PROJECTM_LIBS" ++ fi ++ DISABLE_INTERNAL_PROJECTM=1 ++ else ++ DISABLE_INTERNAL_PROJECTM=0 ++ fi ++ if test "$use_projectm" != "no"; then ++ AC_MSG_NOTICE($projectm_enabled) ++ DISABLE_PROJECTM=0 ++ # verify preset dir actually exist if user don't want to use bundled one ++ if test "$projectm_presets_dir" != "bundled" ; then ++ if ! test -d "$projectm_presets_dir"; then ++ AC_MSG_ERROR([$projectm_presets_dir is not existing directory]) ++ fi ++ PROJECTM_PRESETS_DIR=$projectm_presets_dir ++ else ++ PROJECTM_PRESETS_DIR=libprojectM/presets/ ++ fi ++ AC_SUBST(PROJECTM_PRESETS_DIR) ++ else ++ AC_MSG_NOTICE($projectm_disabled) ++ DISABLE_PROJECTM=1 ++ fi + fi + + # skin touched +@@ -2661,7 +2696,7 @@ XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[ + sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make + fi + set +x +-], [$DISABLE_PROJECTM]) ++], [$DISABLE_INTERNAL_PROJECTM]) + + XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[ + ./configure \ +diff --git a/xbmc/visualizations/XBMCProjectM/Makefile.in b/xbmc/visualizations/XBMCProjectM/Makefile.in +index 249338c..2c16306 100644 +--- a/xbmc/visualizations/XBMCProjectM/Makefile.in ++++ b/xbmc/visualizations/XBMCProjectM/Makefile.in +@@ -18,16 +18,14 @@ $(SLIB): $(OBJS) libprojectM/libprojectM.dylib + libprojectM/libprojectM.dylib: + $(MAKE) -C libprojectM + else +-$(SLIB): $(OBJS) libprojectM/libprojectM.so +- $(CXX) $(CXXFLAGS) $(LDFLAGS) ./libprojectM/CMakeFiles/projectM.dir/*.o -fPIC -shared -o $(SLIB) $(OBJS) `cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o ++$(SLIB): $(OBJS) ++ $(CXX) $(CXXFLAGS) $(LDFLAGS) -fPIC -shared $(OBJS) `cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o -o $(SLIB) + $(MAKE) $(PRESETS) +- +-libprojectM/libprojectM.so: +- $(MAKE) -C libprojectM + endif + +-$(PRESETS): libprojectM/presets/* +- zip -j $@ libprojectM/presets/* ++$(PRESETS): ++ zip -j $@ @PROJECTM_PRESETS_DIR@/* ++ + + CLEAN_FILES = \ + libprojectM/libprojectM.so \ +-- +1.8.1.5 + diff --git a/media-tv/xbmc/xbmc-12.1-r1.ebuild b/media-tv/xbmc/xbmc-12.1-r1.ebuild deleted file mode 100644 index 14790a8..0000000 --- a/media-tv/xbmc/xbmc-12.1-r1.ebuild +++ /dev/null @@ -1,258 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/xbmc-12.1.ebuild,v 1.4 2013/04/01 06:35:52 vapier Exp $ - -EAPI="4" - -# Does not work with py3 here -# It might work with py:2.5 but I didn't test that -PYTHON_DEPEND="2:2.6" -PYTHON_USE_WITH=sqlite - -inherit eutils python multiprocessing autotools - -case ${PV} in -9999) - EGIT_REPO_URI="git://github.com/xbmc/xbmc.git" - inherit git-2 - SRC_URI="!java? ( mirror://gentoo/${P}-20121224-generated-addons.tar.xz )" - ;; -*_alpha*|*_beta*|*_rc*) - MY_PV="Frodo_${PV#*_}" - MY_P="${PN}-${MY_PV}" - SRC_URI="https://github.com/xbmc/xbmc/archive/${MY_PV}.tar.gz -> ${P}.tar.gz - !java? ( mirror://gentoo/${P}-generated-addons.tar.xz )" - KEYWORDS="~amd64 ~x86" - ;; -*) - MY_P=${P/_/-*_} - SRC_URI="http://mirrors.xbmc.org/releases/source/${MY_P}.tar.gz" - KEYWORDS="~amd64 ~x86" - ;; -esac - -DESCRIPTION="XBMC is a free and open source media-player and entertainment hub" -HOMEPAGE="http://xbmc.org/" - -LICENSE="GPL-2" -SLOT="0" -IUSE="airplay alsa altivec avahi bluetooth bluray caps cec css debug gles goom java joystick midi mysql neon nfs +opengl profile +projectm pulseaudio pvr +rsxs rtmp +samba +sdl sse sse2 sftp udev upnp +usb vaapi vdpau webserver +X +xrandr" -REQUIRED_USE=" - pvr? ( mysql ) - rsxs? ( X ) - xrandr? ( X ) -" - -COMMON_DEPEND="app-arch/bzip2 - app-arch/unzip - app-arch/zip - app-i18n/enca - airplay? ( app-pda/libplist ) - >=dev-lang/python-2.4 - dev-libs/boost - dev-libs/fribidi - dev-libs/libcdio[-minimal] - cec? ( >=dev-libs/libcec-2.1 ) - dev-libs/libpcre[cxx] - >=dev-libs/lzo-2.04 - dev-libs/tinyxml[stl] - dev-libs/yajl - dev-python/simplejson - media-libs/alsa-lib - media-libs/flac - media-libs/fontconfig - media-libs/freetype - >=media-libs/glew-1.5.6 - media-libs/jasper - media-libs/jbigkit - >=media-libs/libass-0.9.7 - bluray? ( media-libs/libbluray ) - css? ( media-libs/libdvdcss ) - media-libs/libmad - media-libs/libmodplug - media-libs/libmpeg2 - media-libs/libogg - media-libs/libpng - projectm? ( media-libs/libprojectm ) - media-libs/libsamplerate - sdl? ( media-libs/libsdl[audio,opengl,video,X] ) - alsa? ( media-libs/libsdl[alsa] ) - >=media-libs/taglib-1.8 - media-libs/libvorbis - sdl? ( - media-libs/sdl-gfx - >=media-libs/sdl-image-1.2.10[gif,jpeg,png] - media-libs/sdl-mixer - media-libs/sdl-sound - ) - media-libs/tiff - pulseaudio? ( media-sound/pulseaudio ) - media-sound/wavpack - || ( media-libs/libpostproc =virtual/ffmpeg-0.6[encode] - rtmp? ( media-video/rtmpdump ) - avahi? ( net-dns/avahi ) - nfs? ( net-fs/libnfs ) - webserver? ( net-libs/libmicrohttpd[messages] ) - sftp? ( net-libs/libssh ) - net-misc/curl - samba? ( >=net-fs/samba-3.4.6[smbclient] ) - bluetooth? ( net-wireless/bluez ) - sys-apps/dbus - caps? ( sys-libs/libcap ) - sys-libs/zlib - virtual/jpeg - usb? ( virtual/libusb ) - mysql? ( virtual/mysql ) - opengl? ( - virtual/glu - virtual/opengl - ) - gles? ( virtual/opengl ) - vaapi? ( x11-libs/libva[opengl] ) - vdpau? ( - || ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 ) - virtual/ffmpeg[vdpau] - ) - X? ( - x11-apps/xdpyinfo - x11-apps/mesa-progs - x11-libs/libXinerama - xrandr? ( x11-libs/libXrandr ) - x11-libs/libXrender - )" -RDEPEND="${COMMON_DEPEND} - udev? ( sys-fs/udisks:0 sys-power/upower )" -DEPEND="${COMMON_DEPEND} - app-arch/xz-utils - dev-lang/swig - dev-util/gperf - X? ( x11-proto/xineramaproto ) - dev-util/cmake - x86? ( dev-lang/nasm ) - java? ( virtual/jre )" - -S=${WORKDIR}/${MY_P} - -pkg_setup() { - python_set_active_version 2 - python_pkg_setup -} - -src_unpack() { - [[ ${PV} == "9999" ]] && git-2_src_unpack || default -} - -src_prepare() { - epatch "${FILESDIR}"/${PN}-9999-nomythtv.patch - epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617 - epatch "${FILESDIR}"/${PN}-9999-detect-sse2.patch - # The mythtv patch touches configure.ac, so force a regen - rm -f configure - - # some dirs ship generated autotools, some dont - multijob_init - local d - for d in $(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f) ; do - [[ -e ${d} ]] && continue - pushd ${d/%configure/.} >/dev/null || die - AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \ - multijob_child_init eautoreconf - popd >/dev/null - done - multijob_finish - elibtoolize - - # Disable internal func checks as our USE/DEPEND - # stuff handles this just fine already #408395 - export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes - - local squish #290564 - use altivec && squish="-DSQUISH_USE_ALTIVEC=1 -maltivec" - use sse && squish="-DSQUISH_USE_SSE=1 -msse" - use sse2 && squish="-DSQUISH_USE_SSE=2 -msse2" - sed -i \ - -e '/^CXXFLAGS/{s:-D[^=]*=.::;s:-m[[:alnum:]]*::}' \ - -e "1iCXXFLAGS += ${squish}" \ - lib/libsquish/Makefile.in || die - - # Fix XBMC's final version string showing as "exported" - # instead of the SVN revision number. - export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported} - - # avoid long delays when powerkit isn't running #348580 - sed -i \ - -e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \ - xbmc/linux/*.cpp || die - - epatch_user #293109 - - # Tweak autotool timestamps to avoid regeneration - find . -type f -print0 | xargs -0 touch -r configure -} - -src_configure() { - # Disable documentation generation - export ac_cv_path_LATEX=no - # Avoid help2man - export HELP2MAN=$(type -P help2man || echo true) - # No configure flage for this #403561 - export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth) - # Requiring java is asine #434662 - export ac_cv_path_JAVA_EXE=$(which $(usex java java true)) - - econf \ - --docdir=/usr/share/doc/${PF} \ - --disable-ccache \ - --disable-optimizations \ - --enable-external-libraries \ - --enable-gl \ - $(use_enable airplay) \ - $(use_enable avahi) \ - $(use_enable bluray libbluray) \ - $(use_enable caps libcap) \ - $(use_enable cec libcec) \ - $(use_enable css dvdcss) \ - $(use_enable debug) \ - $(use_enable gles) \ - $(use_enable goom) \ - --disable-hal \ - $(use_enable joystick) \ - $(use_enable midi mid) \ - $(use_enable mysql) \ - $(use_enable neon) \ - $(use_enable nfs) \ - $(use_enable opengl gl) \ - $(use_enable profile profiling) \ - $(use_enable projectm) \ - $(use_enable pulseaudio pulse) \ - $(use_enable pvr mythtv) \ - $(use_enable rsxs) \ - $(use_enable rtmp) \ - $(use_enable samba) \ - $(use_enable sdl) \ - $(use_enable sftp ssh) \ - $(use_enable usb libusb) \ - $(use_enable upnp) \ - $(use_enable vaapi) \ - $(use_enable vdpau) \ - $(use_enable webserver) \ - $(use_enable X x11) \ - $(use_enable xrandr) -} - -src_install() { - default - rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* - - domenu tools/Linux/xbmc.desktop - newicon tools/Linux/xbmc-48x48.png xbmc.png - - insinto "$(python_get_sitedir)" #309885 - doins tools/EventClients/lib/python/xbmcclient.py || die - newbin "tools/EventClients/Clients/XBMC Send/xbmc-send.py" xbmc-send || die -} - -pkg_postinst() { - elog "Visit http://wiki.xbmc.org/?title=XBMC_Online_Manual" -} diff --git a/media-tv/xbmc/xbmc-12.2-r2.ebuild b/media-tv/xbmc/xbmc-12.2-r2.ebuild new file mode 100644 index 0000000..8b2f0fb --- /dev/null +++ b/media-tv/xbmc/xbmc-12.2-r2.ebuild @@ -0,0 +1,265 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/xbmc-12.2-r1.ebuild,v 1.4 2013/06/27 18:08:05 ago Exp $ + +EAPI=5 + +# Does not work with py3 here +# It might work with py:2.5 but I didn't test that +PYTHON_COMPAT=( python{2_6,2_7} ) +PYTHON_REQ_USE="sqlite" + +inherit eutils python-single-r1 multiprocessing autotools + +BACKPORTS_VERSION=1 + +case ${PV} in +9999) + EGIT_REPO_URI="git://github.com/xbmc/xbmc.git" + inherit git-2 + SRC_URI="!java? ( mirror://gentoo/${P}-20121224-generated-addons.tar.xz )" + ;; +*_alpha*|*_beta*|*_rc*) + MY_PV="Frodo_${PV#*_}" + MY_P="${PN}-${MY_PV}" + SRC_URI="https://github.com/xbmc/xbmc/archive/${MY_PV}.tar.gz -> ${P}.tar.gz + !java? ( mirror://gentoo/${P}-generated-addons.tar.xz )" + KEYWORDS="amd64 x86" + ;; +*) + MY_P=${P/_/-*_} + SRC_URI="http://mirrors.xbmc.org/releases/source/${MY_P}.tar.gz + mirror://gentoo/${PN}_backports-12-${BACKPORTS_VERSION}.tar.bz2" + KEYWORDS="amd64 x86" + ;; +esac + +DESCRIPTION="XBMC is a free and open source media-player and entertainment hub" +HOMEPAGE="http://xbmc.org/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="airplay alsa altivec avahi bluetooth bluray caps cec css debug gles goom java joystick midi mysql neon nfs +opengl profile +projectm pulseaudio pvr +rsxs rtmp +samba +sdl sse sse2 sftp udev upnp +usb vaapi vdpau webserver +X +xrandr" +REQUIRED_USE=" + pvr? ( mysql ) + rsxs? ( X ) + X? ( sdl ) + xrandr? ( X ) +" + +COMMON_DEPEND="${PYTHON_DEPS} + app-arch/bzip2 + app-arch/unzip + app-arch/zip + app-i18n/enca + airplay? ( app-pda/libplist ) + dev-libs/boost + dev-libs/fribidi + dev-libs/libcdio[-minimal] + cec? ( >=dev-libs/libcec-2.1 ) + dev-libs/libpcre[cxx] + >=dev-libs/lzo-2.04 + dev-libs/tinyxml[stl] + dev-libs/yajl + dev-python/simplejson[${PYTHON_USEDEP}] + media-libs/alsa-lib + media-libs/flac + media-libs/fontconfig + media-libs/freetype + >=media-libs/glew-1.5.6 + media-libs/jasper + media-libs/jbigkit + >=media-libs/libass-0.9.7 + bluray? ( media-libs/libbluray ) + css? ( media-libs/libdvdcss ) + media-libs/libmad + media-libs/libmodplug + media-libs/libmpeg2 + media-libs/libogg + media-libs/libpng + projectm? ( media-libs/libprojectm ) + media-libs/libsamplerate + sdl? ( media-libs/libsdl[audio,opengl,video,X] ) + alsa? ( media-libs/libsdl[alsa] ) + >=media-libs/taglib-1.8 + media-libs/libvorbis + sdl? ( + media-libs/sdl-gfx + >=media-libs/sdl-image-1.2.10[gif,jpeg,png] + media-libs/sdl-mixer + media-libs/sdl-sound + ) + media-libs/tiff + pulseaudio? ( media-sound/pulseaudio ) + media-sound/wavpack + || ( media-libs/libpostproc media-video/ffmpeg ) + >=virtual/ffmpeg-0.6[encode] + rtmp? ( media-video/rtmpdump ) + avahi? ( net-dns/avahi ) + nfs? ( net-fs/libnfs ) + webserver? ( net-libs/libmicrohttpd[messages] ) + sftp? ( net-libs/libssh ) + net-misc/curl + samba? ( >=net-fs/samba-3.4.6[smbclient] ) + bluetooth? ( net-wireless/bluez ) + sys-apps/dbus + caps? ( sys-libs/libcap ) + sys-libs/zlib + virtual/jpeg + usb? ( virtual/libusb ) + mysql? ( virtual/mysql ) + opengl? ( + virtual/glu + virtual/opengl + ) + gles? ( virtual/opengl ) + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 ) + virtual/ffmpeg[vdpau] + ) + X? ( + x11-apps/xdpyinfo + x11-apps/mesa-progs + x11-libs/libXinerama + xrandr? ( x11-libs/libXrandr ) + x11-libs/libXrender + )" +RDEPEND="${COMMON_DEPEND} + udev? ( sys-fs/udisks:0 sys-power/upower )" +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + dev-lang/swig + dev-util/gperf + X? ( x11-proto/xineramaproto ) + dev-util/cmake + x86? ( dev-lang/nasm ) + java? ( virtual/jre )" + +S=${WORKDIR}/${MY_P} + +pkg_setup() { + python-single-r1_pkg_setup +} + +src_unpack() { + [[ ${PV} == "9999" ]] && git-2_src_unpack || default +} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-9999-nomythtv.patch + epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617 + epatch "${FILESDIR}"/${PN}-12.0-system-projectm.patch + epatch "${FILESDIR}"/${PN}-9999-detect-sse2.patch + # Backported fixes + EPATCH_MULTI_MSG="Applying patches backported from master..." \ + EPATCH_SUFFIX="patch" \ + epatch "${WORKDIR}/${PN}_backports" + # The mythtv patch touches configure.ac, so force a regen + rm -f configure + + # some dirs ship generated autotools, some dont + multijob_init + local d + for d in $(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f) ; do + [[ -e ${d} ]] && continue + pushd ${d/%configure/.} >/dev/null || die + AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \ + multijob_child_init eautoreconf + popd >/dev/null + done + multijob_finish + elibtoolize + + # Disable internal func checks as our USE/DEPEND + # stuff handles this just fine already #408395 + export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes + + local squish #290564 + use altivec && squish="-DSQUISH_USE_ALTIVEC=1 -maltivec" + use sse && squish="-DSQUISH_USE_SSE=1 -msse" + use sse2 && squish="-DSQUISH_USE_SSE=2 -msse2" + sed -i \ + -e '/^CXXFLAGS/{s:-D[^=]*=.::;s:-m[[:alnum:]]*::}' \ + -e "1iCXXFLAGS += ${squish}" \ + lib/libsquish/Makefile.in || die + + # Fix XBMC's final version string showing as "exported" + # instead of the SVN revision number. + export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported} + + # avoid long delays when powerkit isn't running #348580 + sed -i \ + -e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \ + xbmc/linux/*.cpp || die + + epatch_user #293109 + + # Tweak autotool timestamps to avoid regeneration + find . -type f -print0 | xargs -0 touch -r configure +} + +src_configure() { + # Disable documentation generation + export ac_cv_path_LATEX=no + # Avoid help2man + export HELP2MAN=$(type -P help2man || echo true) + # No configure flage for this #403561 + export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth) + # Requiring java is asine #434662 + export ac_cv_path_JAVA_EXE=$(which $(usex java java true)) + + econf \ + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --disable-optimizations \ + --enable-external-libraries \ + --enable-gl \ + $(use_enable airplay) \ + $(use_enable avahi) \ + $(use_enable bluray libbluray) \ + $(use_enable caps libcap) \ + $(use_enable cec libcec) \ + $(use_enable css dvdcss) \ + $(use_enable debug) \ + $(use_enable gles) \ + $(use_enable goom) \ + --disable-hal \ + $(use_enable joystick) \ + $(use_enable midi mid) \ + $(use_enable mysql) \ + $(use_enable neon) \ + $(use_enable nfs) \ + $(use_enable opengl gl) \ + $(use_enable profile profiling) \ + $(use_enable projectm) \ + $(use_enable pulseaudio pulse) \ + $(use_enable pvr mythtv) \ + $(use_enable rsxs) \ + $(use_enable rtmp) \ + $(use_enable samba) \ + $(use_enable sdl) \ + $(use_enable sftp ssh) \ + $(use_enable usb libusb) \ + $(use_enable upnp) \ + $(use_enable vaapi) \ + $(use_enable vdpau) \ + $(use_enable webserver) \ + $(use_enable X x11) \ + $(use_enable xrandr) +} + +src_install() { + default + rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* + + domenu tools/Linux/xbmc.desktop + newicon tools/Linux/xbmc-48x48.png xbmc.png + + python_domodule tools/EventClients/lib/python/xbmcclient.py + python_newscript "tools/EventClients/Clients/XBMC Send/xbmc-send.py" xbmc-send +} + +pkg_postinst() { + elog "Visit http://wiki.xbmc.org/?title=XBMC_Online_Manual" +} -- cgit v1.2.3-65-gdbad