summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Quinteiro <gentoo@quinteiro.org>2013-04-08 22:58:52 -0700
committerJose Quinteiro <gentoo@quinteiro.org>2013-04-12 16:26:34 -0700
commit842949fd00ca494711ef4834316e6042e53459fd (patch)
tree7b8e5e5633cbbdf6fc0f388132461e7200e0a5b3
parentProposed fix for Bug 427928 (diff)
downloadJoseQ-842949fd00ca494711ef4834316e6042e53459fd.tar.gz
JoseQ-842949fd00ca494711ef4834316e6042e53459fd.tar.bz2
JoseQ-842949fd00ca494711ef4834316e6042e53459fd.zip
Fix xbmc on older x86 platforms
-rw-r--r--media-tv/xbmc/Manifest6
-rw-r--r--media-tv/xbmc/files/xbmc-9999-detect-sse2.patch173
-rw-r--r--media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch16
-rw-r--r--media-tv/xbmc/files/xbmc-9999-nomythtv.patch68
-rw-r--r--media-tv/xbmc/metadata.xml23
-rw-r--r--media-tv/xbmc/xbmc-12.1-r1.ebuild258
6 files changed, 544 insertions, 0 deletions
diff --git a/media-tv/xbmc/Manifest b/media-tv/xbmc/Manifest
new file mode 100644
index 0000000..b1a92e1
--- /dev/null
+++ b/media-tv/xbmc/Manifest
@@ -0,0 +1,6 @@
+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
+MISC metadata.xml 1140 SHA256 00929104e646c293b0ee5dc8a42701b940a0e908f7293c15a277ce138a56999a SHA512 e6a4b148543b613ffad57925310bc7562629e18f726cc958bf2de64020b0ec3d72cf82eb2e506a194c1c3610361d96ff41245d1e7a411be08f87719abbb80410 WHIRLPOOL 92f8748f2fedb7fe0bd34ed29e4e4ff25cb55b7ceacc15a9a4c561c3544530d216d5494de1862591156f3290e641a38aa91000c2b33e850d8a923e1818eb5ac1
diff --git a/media-tv/xbmc/files/xbmc-9999-detect-sse2.patch b/media-tv/xbmc/files/xbmc-9999-detect-sse2.patch
new file mode 100644
index 0000000..0de2c6d
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-9999-detect-sse2.patch
@@ -0,0 +1,173 @@
+From b40e2fe115df5465851de8194a3b414241f1104b Mon Sep 17 00:00:00 2001
+From: Jose Quinteiro <gentoo@quinteiro.org>
+Date: Mon, 8 Apr 2013 22:26:22 -0700
+Subject: [PATCH 1/1] Detect SSE2 support
+
+Compilation on an older 32-bit Athlon XP chip fails with the error
+"./Utils/AEUtil.h:50:12: error: '__m128i' does not name a type"
+This is because the __m128i type is only available on SSE2 platforms.
+Modify the preprocessor logic to detect SSE and SSE2 support separately.
+
+The "emmintrin.h" header should only be included on SSE2 platforms as
+well.
+---
+ xbmc/cores/AudioEngine/Utils/AEConvert.cpp | 25 ++++++++++---------------
+ xbmc/cores/AudioEngine/Utils/AEUtil.cpp | 4 ++--
+ xbmc/cores/AudioEngine/Utils/AEUtil.h | 6 +++++-
+ 3 files changed, 17 insertions(+), 18 deletions(-)
+
+diff --git a/xbmc/cores/AudioEngine/Utils/AEConvert.cpp b/xbmc/cores/AudioEngine/Utils/AEConvert.cpp
+index 97ec87b..211ec10 100644
+--- a/xbmc/cores/AudioEngine/Utils/AEConvert.cpp
++++ b/xbmc/cores/AudioEngine/Utils/AEConvert.cpp
+@@ -33,11 +33,6 @@
+ #include <math.h>
+ #include <string.h>
+
+-#ifdef __SSE__
+-#include <xmmintrin.h>
+-#include <emmintrin.h>
+-#endif
+-
+ #ifdef __ARM_NEON__
+ #include <arm_neon.h>
+ #endif
+@@ -517,7 +512,7 @@ unsigned int CAEConvert::Float_S8(float *data, const unsigned int samples, uint8
+ unsigned int CAEConvert::Float_S16LE(float *data, const unsigned int samples, uint8_t *dest)
+ {
+ int16_t *dst = (int16_t*)dest;
+- #ifdef __SSE__
++ #ifdef __SSE2__
+
+ unsigned int count = samples;
+ unsigned int unaligned = (0x10 - ((uintptr_t)data & 0xF)) >> 2;
+@@ -623,7 +618,7 @@ unsigned int CAEConvert::Float_S16LE(float *data, const unsigned int samples, ui
+ /* cleanup */
+ _mm_empty();
+
+- #else /* no SSE */
++ #else /* no SSE2 */
+
+ uint32_t i = 0;
+ uint32_t even = samples & ~0x3;
+@@ -651,7 +646,7 @@ unsigned int CAEConvert::Float_S16LE(float *data, const unsigned int samples, ui
+ unsigned int CAEConvert::Float_S16BE(float *data, const unsigned int samples, uint8_t *dest)
+ {
+ int16_t *dst = (int16_t*)dest;
+- #ifdef __SSE__
++ #ifdef __SSE2__
+
+ unsigned int count = samples;
+ unsigned int unaligned = (0x10 - ((uintptr_t)data & 0xF)) >> 2;
+@@ -757,7 +752,7 @@ unsigned int CAEConvert::Float_S16BE(float *data, const unsigned int samples, ui
+ /* cleanup */
+ _mm_empty();
+
+- #else /* no SSE */
++ #else /* no SSE2 */
+
+ uint32_t i = 0;
+ uint32_t even = samples & ~0x3;
+@@ -785,7 +780,7 @@ unsigned int CAEConvert::Float_S16BE(float *data, const unsigned int samples, ui
+ unsigned int CAEConvert::Float_S24NE4(float *data, const unsigned int samples, uint8_t *dest)
+ {
+ int32_t *dst = (int32_t*)dest;
+- #ifdef __SSE__
++ #ifdef __SSE2__
+
+ const __m128 mul = _mm_set_ps1((float)INT24_MAX+.5f);
+ unsigned int count = samples;
+@@ -835,7 +830,7 @@ unsigned int CAEConvert::Float_S24NE4(float *data, const unsigned int samples, u
+ }
+ }
+ _mm_empty();
+- #else /* no SSE */
++ #else /* no SSE2 */
+ for (uint32_t i = 0; i < samples; ++i)
+ *dst++ = (safeRound(*data++ * ((float)INT24_MAX+.5f)) & 0xFFFFFF) << 8;
+ #endif
+@@ -925,7 +920,7 @@ unsigned int CAEConvert::Float_S24NE3(float *data, const unsigned int samples, u
+ unsigned int CAEConvert::Float_S32LE(float *data, const unsigned int samples, uint8_t *dest)
+ {
+ int32_t *dst = (int32_t*)dest;
+- #ifdef __SSE__
++ #ifdef __SSE2__
+ const __m128 mul = _mm_set_ps1((float)INT32_MAX);
+ unsigned int count = samples;
+
+@@ -985,7 +980,7 @@ unsigned int CAEConvert::Float_S32LE(float *data, const unsigned int samples, ui
+ _mm_empty();
+ #else
+
+- /* no SIMD */
++ /* no SSE2 */
+ for (uint32_t i = 0; i < samples; ++i, ++data, ++dst)
+ {
+ dst[0] = safeRound(data[0] * (float)INT32_MAX);
+@@ -1034,7 +1029,7 @@ unsigned int CAEConvert::Float_S32LE_Neon(float *data, const unsigned int sample
+ unsigned int CAEConvert::Float_S32BE(float *data, const unsigned int samples, uint8_t *dest)
+ {
+ int32_t *dst = (int32_t*)dest;
+- #ifdef __SSE__
++ #ifdef __SSE2__
+ const __m128 mul = _mm_set_ps1((float)INT32_MAX);
+ unsigned int count = samples;
+
+@@ -1093,7 +1088,7 @@ unsigned int CAEConvert::Float_S32BE(float *data, const unsigned int samples, ui
+ }
+ _mm_empty();
+ #else
+- /* no SIMD */
++ /* no SSE2 */
+ for (uint32_t i = 0; i < samples; ++i, ++data, ++dst)
+ {
+ dst[0] = safeRound(data[0] * (float)INT32_MAX);
+diff --git a/xbmc/cores/AudioEngine/Utils/AEUtil.cpp b/xbmc/cores/AudioEngine/Utils/AEUtil.cpp
+index 6de84dc..2b6e0cd 100644
+--- a/xbmc/cores/AudioEngine/Utils/AEUtil.cpp
++++ b/xbmc/cores/AudioEngine/Utils/AEUtil.cpp
+@@ -30,7 +30,7 @@ using namespace std;
+
+ /* declare the rng seed and initialize it */
+ unsigned int CAEUtil::m_seed = (unsigned int)(CurrentHostCounter() / 1000.0f);
+-#ifdef __SSE__
++#ifdef __SSE2__
+ /* declare the SSE seed and initialize it */
+ MEMALIGN(16, __m128i CAEUtil::m_sseSeed) = _mm_set_epi32(CAEUtil::m_seed, CAEUtil::m_seed+1, CAEUtil::m_seed, CAEUtil::m_seed+1);
+ #endif
+@@ -386,7 +386,7 @@ float CAEUtil::FloatRand1(const float min, const float max)
+
+ void CAEUtil::FloatRand4(const float min, const float max, float result[4], __m128 *sseresult/* = NULL */)
+ {
+- #ifdef __SSE__
++ #ifdef __SSE2__
+ /*
+ this method may be called from other SSE code, we need
+ to calculate the delta & factor using SSE as the FPU
+diff --git a/xbmc/cores/AudioEngine/Utils/AEUtil.h b/xbmc/cores/AudioEngine/Utils/AEUtil.h
+index 458dc00..112c180 100644
+--- a/xbmc/cores/AudioEngine/Utils/AEUtil.h
++++ b/xbmc/cores/AudioEngine/Utils/AEUtil.h
+@@ -36,6 +36,10 @@
+ #define __m128 void
+ #endif
+
++#ifdef __SSE2__
++#include <emmintrin.h>
++#endif
++
+ #ifdef __GNUC__
+ #define MEMALIGN(b, x) x __attribute__((aligned(b)))
+ #else
+@@ -46,7 +50,7 @@ class CAEUtil
+ {
+ private:
+ static unsigned int m_seed;
+- #ifdef __SSE__
++ #ifdef __SSE2__
+ static __m128i m_sseSeed;
+ #endif
+
+--
+1.8.1.5
+
diff --git a/media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch b/media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch
new file mode 100644
index 0000000..82a7383
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch
@@ -0,0 +1,16 @@
+http://bugs.gentoo.org/400617
+
+do not force any particular ABI or FPU or SIMD compiler flags for arm
+targets. let the toolchain and user CFLAGS control that.
+
+--- a/configure.in
++++ b/configure.in
+@@ -571,7 +571,7 @@
+ elif test "$target_platform" = "target_raspberry_pi"; then
+ ARCH="arm"
+ use_arch="arm"
+-elif test "$use_arch" = "arm"; then
++elif false; then
+ CFLAGS="$CFLAGS -mno-apcs-stack-check"
+ CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
+ FFMPEG_EXTRACFLAGS=""
diff --git a/media-tv/xbmc/files/xbmc-9999-nomythtv.patch b/media-tv/xbmc/files/xbmc-9999-nomythtv.patch
new file mode 100644
index 0000000..f793ba3
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-9999-nomythtv.patch
@@ -0,0 +1,68 @@
+http://trac.xbmc.org/ticket/11775
+
+make mythtv support optional
+
+diff --git a/Makefile.in b/Makefile.in
+index 9ffae7e..17cc525 100755
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -147,7 +147,7 @@ LIB_DIRS=\
+ lib/cpluff \
+ lib/xbmc-dll-symbols
+
+-ifeq (@USE_MYSQL@,1)
++ifeq (@USE_MYTHTV@,1)
+ LIB_DIRS += lib/cmyth
+ CMYTH=cmyth
+ endif
+diff --git a/configure.in b/configure.in
+index d44825f..629d7b4 100755
+--- a/configure.in
++++ b/configure.in
+@@ -387,6 +387,12 @@ AC_ARG_ENABLE([mysql],
+ [use_mysql=$enableval],
+ [use_mysql=yes])
+
++AC_ARG_ENABLE([mythtv],
++ [AS_HELP_STRING([--disable-mythtv],
++ [disable mythtv])],
++ [use_mythtv=$enableval],
++ [use_mythtv=yes])
++
+ AC_ARG_ENABLE([webserver],
+ [AS_HELP_STRING([--disable-webserver],
+ [disable webserver])],
+@@ -748,6 +754,9 @@ if test "$use_mysql" = "yes"; then
+ else
+ AC_MSG_ERROR($missing_program)
+ fi
++ if test "$use_mythtv" = "yes"; then
++ AC_DEFINE([HAVE_MYTHTV],[1],["Define to 1 if you want mythtv support"])
++ fi
+ fi
+ AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
+@@ -1895,6 +1904,15 @@ else
+ final_message="$final_message\n MySQL:\tNo"
+ USE_MYSQL=0
+ fi
++
++if test "$use_mythtv" = "yes"; then
++ final_message="$final_message\n MythTV:\tYes"
++ USE_MYTHTV=1
++else
++ final_message="$final_message\n MythTV:\tNo"
++ USE_MYTHTV=0
++fi
++
+ if test "$use_webserver" = "yes"; then
+ final_message="$final_message\n Webserver:\tYes"
+ USE_WEB_SERVER=1
+@@ -2123,6 +2141,7 @@ AC_SUBST(USE_LIBUDEV)
+ AC_SUBST(USE_LIBUSB)
+ AC_SUBST(USE_LIBCEC)
+ AC_SUBST(USE_MYSQL)
++AC_SUBST(USE_MYTHTV)
+ AC_SUBST(USE_WEB_SERVER)
+
+
diff --git a/media-tv/xbmc/metadata.xml b/media-tv/xbmc/metadata.xml
new file mode 100644
index 0000000..3a1b608
--- /dev/null
+++ b/media-tv/xbmc/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>xbox</herd>
+<use>
+ <flag name='airplay'>enable AirPlay support</flag>
+ <flag name='bluray'>Enable playback of Blu-ray filesystems</flag>
+ <flag name='cec'>Enable support for HDMI-CEC devices via libcec</flag>
+ <flag name='fishbmc'>Enable fishBMC visualization plugin</flag>
+ <flag name='gles'>Enable support for GLES</flag>
+ <flag name='goom'>Enable GOOM visualization plugin</flag>
+ <flag name='midi'>Support MIDI files</flag>
+ <flag name='nfs'>Enable NFS client support</flag>
+ <flag name='projectm'>Enable projectM visualization plugin</flag>
+ <flag name='pvr'>Enable MythTV support</flag>
+ <flag name='rtmp'>Enable Real Time Messaging Protocol using librtmp</flag>
+ <flag name='rsxs'>Enable really slick X screensavers</flag>
+ <flag name='sftp'>Support browsing files over SFTP</flag>
+ <flag name='vaapi'>Enables VAAPI (Video Acceleration API) for hardware decoding</flag>
+ <flag name='webserver'>Enable internal webserver</flag>
+ <flag name='xrandr'>Support X randr extension</flag>
+</use>
+</pkgmetadata>
diff --git a/media-tv/xbmc/xbmc-12.1-r1.ebuild b/media-tv/xbmc/xbmc-12.1-r1.ebuild
new file mode 100644
index 0000000..14790a8
--- /dev/null
+++ b/media-tv/xbmc/xbmc-12.1-r1.ebuild
@@ -0,0 +1,258 @@
+# 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 <media-video/libav-0.8.2-r1 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_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"
+}