summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlackNoxis <steven.darklight@gmail.com>2014-12-31 22:34:20 +0200
committerBlackNoxis <steven.darklight@gmail.com>2014-12-31 22:34:20 +0200
commit2010db343b5e432cc97eefdab742cd6eb9cfc897 (patch)
treefa5b4f0b4a601ccc89e8cad2d6b13823ed9eeb12
parentd0644431947c183f4f14d791ec65ca644968ffd5 (diff)
Added few modifications from upstream
-rw-r--r--media-tv/xbmc/Manifest30
-rwxr-xr-xmedia-tv/xbmc/files/generate.sh16
-rw-r--r--media-tv/xbmc/files/xbmc-11.0-ffmpeg-0.10.2.patch41
-rw-r--r--media-tv/xbmc/files/xbmc-11.0-ffmpeg.patch46
-rw-r--r--media-tv/xbmc/files/xbmc-11.0-libav-r1.patch71
-rw-r--r--media-tv/xbmc/files/xbmc-11.0-libav.patch72
-rw-r--r--media-tv/xbmc/files/xbmc-11.0-nfs-limits.patch28
-rw-r--r--media-tv/xbmc/files/xbmc-11.0-no-arm-flags.patch16
-rw-r--r--media-tv/xbmc/files/xbmc-11.0-nomythtv.patch206
-rw-r--r--media-tv/xbmc/files/xbmc-12.1-nomythtv.patch68
-rw-r--r--media-tv/xbmc/files/xbmc-12.3-no-sse2.patch185
-rw-r--r--media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch12
-rw-r--r--media-tv/xbmc/files/xbmc-9999-nomythtv.patch218
-rw-r--r--media-tv/xbmc/metadata.xml21
-rw-r--r--media-tv/xbmc/xbmc-12.2-r1.ebuild262
-rw-r--r--media-tv/xbmc/xbmc-12.3.ebuild264
16 files changed, 1346 insertions, 210 deletions
diff --git a/media-tv/xbmc/Manifest b/media-tv/xbmc/Manifest
index 57e32828..d52ba1c5 100644
--- a/media-tv/xbmc/Manifest
+++ b/media-tv/xbmc/Manifest
@@ -1,26 +1,4 @@
-AUX xbmc-10.0-python-2.7.patch 30308 SHA256 8f6b2a0a962ad250fc317542d0fa180585d3c9e630ca98f99299b6f750555085 SHA512 dca28d98f89f22e11fcae10253b4bb5aa41a663e0d963449e27c0c9996630f64ee027f70edd41e6adc040567ccb8a12ec8a5e4b18d7d10ab56e081da9c392009 WHIRLPOOL e8de7861b41dd183469f66cae542d0ba8bfcb2a34f57ad2d3bb05b568469da32588efbf67ec0666fc5a9d01f3a51779d9929b969eb14d8cda162b16f7d0ba3c7
-AUX xbmc-10.1-gcc-4.6.patch 4295 SHA256 cef1154bc3352b215bfece1a749d901d43ec7aa0c6d050921ae8745c553e84c9 SHA512 aca5c7ca5aaaceaa376e357b987dcdfc08e5772819778f8cc173711b54f2539fca19f4ba7c5251f374515f4ed7080c3a926259867115dd4984943bcfffbdd14c WHIRLPOOL 2f6742addc4d59f5c10c510fdc39d04ed4bb96a185e3cf05d6313236b28ca011cd821791f6775c7c30d808f2558fd174af92e2ce6bb09e4c2f05a562d1f03714
-AUX xbmc-10.1-headers.patch 294 SHA256 8b8e86cf7edef227e8267c52d60545b753eea11261f078131ee30f9eac8bb002 SHA512 3a355ed831dea0c2ec85ff25c7abd57003dfe74eb892bf4776dadc4b27e046358632fe61adf9afc4e6b27bb44abc859970a3c14c648a2ae28b58d11c4d0a46fa WHIRLPOOL f9894204a8e0850438d4bc0dcd7daea0e9c4e64780f3478f8b304832caf1cda52080d89b5c3503e50a8289a934134d21e77f8afd0c7da8550ea85fb4122810d7
-AUX xbmc-10.1-libpng-1.5.patch 19253 SHA256 1a0985b91ee9862a538a43689d005dc88d49bf5a70d917896fb69ee416369ff7 SHA512 40ce41d6b27e5cd6df82f6d6ba24ee7bc39f13a735cbb9746cf9818dafa9ae16526b38e84be98bd69eb57b52e2201317529b1546e5bf694b10dfe671303a4614 WHIRLPOOL 6f17fc198204b0ff97be0294c2400ac41cce16a4cec55dfe0657b69da9a57f6c36beefc7f6a7c499aab79e8d6eacd715e09f4d35e00d657e2b0d10f397bba15e
-AUX xbmc-11.0-libpng-1.5.patch 18833 SHA256 83b49d44b7855dcb2f7d34e2e9628f4c1f8e06ae8f9e94ac06a6036620705daa SHA512 b014e37abb3e8b5c4c2fc0a4070fb71d562b3b40c6a844dad85cff3cea442c42bb78f88004d4f7b3767fdb12c530ac660162247fd44ca3e1ac42592b004b06c0 WHIRLPOOL 16b24676f7ac06a59a534e79c981c34c105bed68f9ab4b465e3fa51372ed2025ea9706a988df8d47f18677d36f6dedd8ff47aa34f0e74c89015c746bdea1953e
-AUX xbmc-11.0-no-exec-stack.patch 807 SHA256 e36c83746838dd362512a046dc066c0f3fdc1252289b2761be381f84262cab78 SHA512 d0d4c2d4bb257c722ec40470fb6c8da59033009152598e69133b6184b25da36debf42f86859389c878a072603f3d583e28a52519e8dca47d9bdf7edd5f9e44c5 WHIRLPOOL d18dd387fe55b18be78fdad08b0a4319c2a5ccd161f1dfc0d5ab8015d88c5842780415c903a098a4683524658fc31c07e285e61fcff04ad6e4777c77e5691f38
-AUX xbmc-11.0_beta1-libpng-1.5-fix-plt-trn-get.patch 1659 SHA256 fed3ba39de959c46bc43431b229347c187690848ccd3bdc823bb7291bc425e84 SHA512 b4cbbdaa54a098d6b98d686966ecbf566fa86905d184b2bb4a3b97c51f3b2171249dfd0451a31971f137bc7ec8602e1859abf757d4ef5a5c1563cbb3726a4574 WHIRLPOOL e6c31d89fa1d214d5e0d2f866a5f6fd321791057c9bfdf05e36509fb60e8578a598203f7f121ad9025a71c1de31fd3693af68a8bedca92bf7f2ff7138c307e5d
-AUX xbmc-11.0_beta1-libpng-1.5-headers.patch 450 SHA256 28765af28836502ce2df92c00b0df27733137111f7fbb11a5cd0b5b7c47b0713 SHA512 494e85af4b87db1cb476d6158fc4412016ee3b385cb55beadf4ac176d9be55d637faac43c35b97ec7856ff48b230f0ab2080265b4e9997b27198a02ace9071ac WHIRLPOOL 5e57311cd42e5689b4b8ab5e42019e115c2f2962eccfc3a0c6453c52926580a2e0905d216b82e71b546f536f625918627084cbc30ac8d188d346fa27e6a2cf82
-AUX xbmc-11.0_beta1-libpng-1.5.patch 18687 SHA256 359cc4893cc6922b86269770c11c5e80fd5b33e711ebf1645b232e4f3fc91c28 SHA512 c20e7d04773f66353856df5ce38b1d695df26d235921d01311460789f3215f49a1421616f4f98b33786a7aac09526d720ae442a637c378ee081aa19be706cf44 WHIRLPOOL cd4945e373cbb7f6ab501b13a0ab35fece28bb97cec2f3d85b700961fbd8d78202a531c89bcbca81020834a28756e4a18c4abb5e53465be34af77d6d2f3134b1
-AUX xbmc-9.11-TexturePacker-parallel-build.patch 357 SHA256 a9b990cdd5473e72cc83cda36cc9faaf67e97649cec45af9c529455464b12d43 SHA512 b6f4f4b8c30643e7b5333782cb9ba1a524e85bdefb5ae2fed373d37d1281eeb2835265bc20f99916a7c2dda79069463d1abcfd40870d3264b26192c3ba5332f2 WHIRLPOOL 68ec8b9168960564af5d2fbe93e8eaf91978f8b0c476cee2f52f1209c567b2a77e9193264226d172fa7c1dee24d5405e5dcfc0e79d8f7257e92227fc40662198
-AUX xbmc-9.11-jpeg-speedup.patch 804 SHA256 3115b8668b60e307536a9314fc02c837d4f94f89571d403761b614a22447e2d8 SHA512 6ad4468f0be722070d27b339de062aea85efff2bf1217767c86f2e8249145ba4fbded635a577ae2e30233d86834cb8a8067f14e349cbbb557b48b02037516ba6 WHIRLPOOL 2621a243e8b49a9608a3736319cf101bc00e48fcbc60ca53264af7e4cf666ae49ae82803225d955ba83fedb4df416cad0ea97e4e8e568c2af55a0cbf8366c659
-AUX xbmc-9.11-libpng14.patch 4263 SHA256 0516a466f2646867478781251d665e87f6f0697fcd9ce29b91c87194fafc7da6 SHA512 fe07dbb7ad2ef7a511d00e63f697f018f2af06b601f0bc1cd70a6e1d1232026c206539a893da02992510232e7e194d6a23ad4e32dad529796e232cd07743647d WHIRLPOOL 39e2303850b732a2e4f4c5254cdd152162995c9d34140c0f9312951f4b19e54d626d7b976fc1472b1fa9bd8c11849acb0bc917a8abec657e74b185b883562eb7
-AUX xbmc-9.11-shader-upscalers.patch 29024 SHA256 965099c217920d5db259944adc4250ed73e4b08ddcd7b0d88d843c9a9a41d396 SHA512 0f6628a667178672519bc6ea6aa594825d2443df5ec3fbedb99f1abb4aa935670824f46792057b467e9f250722ae0ba41f9071f17afedf23e9908bb9f7db9bf2 WHIRLPOOL d80b9b2c8d9e9761c74a3f3ea8007f4835d057da8a9612785939c59edca90234d26ac41a21fc93a66b0fd02612380e3aa36111004ec5e90f2cd5b475f2790bdb
-AUX xbmc-9.11-use-cdio-system-headers-on-non-win32.patch 3623 SHA256 ceb6952025c8baf5bb4eed18380c9bf6022893407f22a3e587eebd657863ab83 SHA512 1889fdf1199066cd3fac1bf11179e49c1841b85a9c654ffefb9e67966debecec276ae5cfa2c4b07dd3334e362bbc4742da29204308ff7dea12b650022da7c71a WHIRLPOOL cd05c51666472c741e3d321fa689f9b58c952d81b2c81d3636d474b81bed59c4401017580cd83880be72cf0aba37e41c5ef73bc9295538a37c626ee61468c3f6
-AUX xbmc-9.11-wavpack.patch 2637 SHA256 b09e9072f0a2d4451588c40b0b300611944ba7d4cefbae0c400389ed9f8485dc SHA512 00ac9886e0cd03481672629ddd94f7a92996aa577daa24d71bc7abc5becdc6c1272ee1ff198ea3333f03cd206a25b2194b7f076232cec3b833cd042eb8a4867a WHIRLPOOL 9d03ae7488c5ffa9f9a3ceadc80626d57f807ac25da3efd37e57471e3c7b93afb3781c11486e97ab9634206642516513f1babc4b69435385a8ce57075e586541
-AUX xbmc-9999-arm-kill-softfp.patch 638 SHA256 40e70e18a658e839ef0b73644a4dda2a6acb30710f04ff049e38780d80ac58ad SHA512 0f99ad8437d140109d4c78b3986ce5ef3449ceea1150844e65ccc526a8ef49c6457c9a99a7ea48d3d8e55c82f683a35b139dae7c08e906f2d77331722260b2db WHIRLPOOL 0a1369d463bf7eb72a4505c16718cb176bca986b7803a5f424504e16e1bfbf51392d0c0f889c75da362ebebc9a3ccecbafa90ac7ff1ced3914675b6f280d139d
-AUX xbmc-9999-libpng-1.5-fix-plt-trn-get.patch 1545 SHA256 cea0af47be10345a98fb262c4d5b75d0fd789741d60673288445e1afae80e73b SHA512 e8d071706f8975b9ee72ded98a4d2921b92cf18b3bce10ff745fce482b01d1eab7244eb9a10cb2c22eca1ec3492dba2510c6471966266a81e2728ea095603562 WHIRLPOOL 59c59b822b25fabacbd8a999844d83636a9821fd00f8cfe1a0710dc743f3ab37ed617921c3c98a3521dce12190aeb3bb51123eb8bfb00b9300873d773573be65
-AUX xbmc-9999-no-arm-flags.patch 542 SHA256 72164a8b91f3209cff06ea1a103580f827135951a7a798eefabc04ee1a6d3e84 SHA512 7d40be4bdef2a2b1e53f8b96c489a87ec67975ae486fb44e619d66c1b5333ad33f896f64cca4e1c8050c3d92cd6537a9ca776e743c88fc2c8cabea1eae62b4b5 WHIRLPOOL 7c6666198b7d987028925e0f578d71796f6541995aa87964de3275f6a087610ef69d630ac349500a7c534de213b8fbff4cca6c25c3d0e6f1b1d8cd89f27d3d9d
-AUX xbmc-9999-no-exec-stack.patch 782 SHA256 0d3085458ff9c8c22f4dd406ee611d74909bb1dc2de4788b67e30cb5967c819f SHA512 2b7391955dfd5b987b5872ad1956b994f6387809d69281ff246755fb0fb85a7fed4216faa5f862a633ce9a7847013d813f23d31546126c8d0616b7217eb513e4 WHIRLPOOL 4da69df4a62d136e8a5a6e3e11102e2584e4fbcabed47bb5cc8bafc300ea4b979b996e469f6e59536370e27bbf9309eb9c5afc9f7bd4710fb950d5227bb38c94
-AUX xbmc-9999-nomythtv.patch 6190 SHA256 ffb1eb49f94b4ae41e5d79172499671915122a58af248b0585ee276e4aa2c87e SHA512 4a9ff4b4f5cb56c92932f05b5b812bee0fdce37ed9f568a6e0dc0cd62335e2131361a63d8026b64f9c7078fa9c4ef0e439b52234c722b1b854aeeed1cc2764c7 WHIRLPOOL ce457b509c6fd222ae6002420db7cc438e1352114f38790b623f04e6834eb5508d4609a1bf71628bfafde3bcef830e84b42448619c19227d5729d6d8a824a13c
-DIST xbmc-10.1.tar.gz 130187822 SHA256 3403195b7eb1d076523f2394793b7f050df00743892b031f6fea86b998559d8a
-DIST xbmc-11.0.tar.gz 63012044 SHA256 1fe5d310c16138f26e2b13bc545604e95f48ace6c8636f23e77da402cd7b0b19
-DIST xbmc-12.0.tar.gz 67176825 SHA256 53018cd014b5203df5e5ef4080931ef499d3740815f32d17dce92ef7d050c16f SHA512 37da579b055d4ea72cd18cf92541b47e6c42682091ef123baccdbce740b23842ac7c28eea032ada9a9c2232be034c7c4113ee8107ac3c7287834d08d4bcb67d6 WHIRLPOOL 6282dd7a728696c9a4577725d949d54992996d18a7b3c054c7d318b070fcad33efc4292afb83aa934c586cf718de67e294b2c498e491311b896e6a632cfa5b73
-EBUILD xbmc-10.1.ebuild 6173 SHA256 b2f407fec89fd9483763e996f8ff2c4c1560a43a567deb286864733eee1de9e0 SHA512 cf52a66cf74cdfe325392575cc8572c04158b162e3680708d6d4ec543a81d5711797a57052db4d308f0acc3e26bb4cf03cc6e9339136bf7b44f40e1753f042d3 WHIRLPOOL 74daaeba7dc990a45c58dce5c03fb0d6a649270b7a728b74f7c1a6ef4063aacb8bf774c7d521fecd702c2b7047619bb10af46baaeab64d5ddba1696f23bd36ad
-EBUILD xbmc-11.0.ebuild 6033 SHA256 173fe31166bb69cf1b416c2ea2c5702652909cdeb3a6b41319be8b5705860c5c SHA512 acc46cc5f5cbc3a7c75c03f50a02b3fdb0824b9f0dce55db8dc15b8801d1540a867a5fc8056de1b82a54410575c685ead1d0d07f6e620947f80ec0880b5a5706 WHIRLPOOL 092b112933213f031b1ca45911dd0795855ca8181359ef7398119ec6cfab2f7d669cf68082ddae5330f875a7ed3c6df8003992ff1cc0be000df7bbab48f775cc
-EBUILD xbmc-12.0.ebuild 6481 SHA256 b232410feb0c2715dc2b2e9ad9204f1e1f09a9237c0cc57b9a2f23f8a9e2b8d3 SHA512 65a1cac4a88b806ecc327cfec1ac3ef90dc73868a82c8ace3a47fcf5eb2b61f125d317646c096b671bc88f7814e08231ace11312e74e595a8c421696bd1982c3 WHIRLPOOL da70651c655c64ca82895236d11e1ae4462cce62809ab0338364b142bcd03c42c6d244c75591df381cc93bc9809d44b6f5f6a9a518fd52e150d4c520a21d2622
+DIST xbmc-12.2.tar.gz 67663000 SHA256 b2330634fc513d27a44b131bbbe4ca6b61d60a1fe6c7ca27a7dc749df0bcea1c SHA512 d6812886b4d1a5c28c8150b164d714f8855ccb1ac4e74811c9eb03d09e12a6f05bedd3c034132ae79e0bff66efd54ced9c2c1140da6b4ad7b82dbb90fa3d1c39 WHIRLPOOL c3fc97e5f45a38a259bca06af0b171630ac16832034410e45174d900358b1d16b72940b29475dcad72a2198d8722859a229152379ab7784a7d61f961eb261ddb
+DIST xbmc-12.3-generated-addons.tar.xz 52228 SHA256 477f789dea36969149fe118ecac1c4f3d8c3414772cc6c569be4aefb7e3f221e SHA512 2107271445c0cdcc14b348d011e12ffaaee75bbec506496798f64218256ab9e86cc0ada5edc1e70e509ac1ab366695fae4c15e90bd47fa57ccfe723d7e406b85 WHIRLPOOL 3963577539dee04f33dc4b988944f906688d77864d5e6a6b403e4578c9a91f2b77c256e6b4ed234a9722524c1c3acc626a28ff44c6376c09d93f24008abf54cd
+DIST xbmc-12.3.tar.gz 64615159 SHA256 3e15c960d034efdea5f92a7b74716cb48094842d077b076025fd8640754ede73 SHA512 abe5333f940460a2d40b04a4821f932b44c7605e0d4954e48781317aa25ee04e102b051165842094c5804024c637ca30506773dc3319aba7ab6dbfbe1973ccaa WHIRLPOOL 035cf5792c3c9785eb0a5227406c66298591bafc1251889d4e4a2742ffd715c374c0b6e092f5705db181412de9cae6d1eb3e9c370f3390858b4651f4c135fda1
+DIST xbmc_backports-12-1.tar.bz2 5010 SHA256 a222c32f5a4a0a8690b1544674cfbfeddf81943e85b6ea716768b83c9eba5fa8 SHA512 19b29808f7a3a7b0642f8463bdd229041588d2f42952fe55a17ab69b5b259cde249eb763598893463218d0ab6c747bf3c81e045bdbf5655f9f5f2d2067cb35d2 WHIRLPOOL cc6870dabca8b53a1a6055a4218a8f9bbb2c031ab3b928040325fb121ea75ae6db431542660d28c3bc6900a904e2c0949d69651b2f63faffe8bc7f670d519f06
diff --git a/media-tv/xbmc/files/generate.sh b/media-tv/xbmc/files/generate.sh
new file mode 100755
index 00000000..1e610a7a
--- /dev/null
+++ b/media-tv/xbmc/files/generate.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+set -eux
+
+PV=$1
+PN=xbmc
+P="${PN}-${PV}"
+DISTDIR="/usr/portage/distfiles"
+
+rm -rf ${PN}-*/
+tar xf ${DISTDIR}/${P}.tar.gz
+cd ${PN}-*/
+make codegenerated -f codegenerator.mk -j
+cd ..
+tar cf - ${PN}-*/xbmc/interfaces/python/generated/*.cpp | xz > ${DISTDIR}/${P}-generated-addons.tar.xz
+rm -rf ${PN}-*/
diff --git a/media-tv/xbmc/files/xbmc-11.0-ffmpeg-0.10.2.patch b/media-tv/xbmc/files/xbmc-11.0-ffmpeg-0.10.2.patch
new file mode 100644
index 00000000..b6a2d731
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-11.0-ffmpeg-0.10.2.patch
@@ -0,0 +1,41 @@
+From 4d74bd14c0fa158c5a2bcf18192f418fafc3a053 Mon Sep 17 00:00:00 2001
+From: Tomas Chvatal <tchvatal@suse.cz>
+Date: Fri, 23 Mar 2012 11:59:02 +0100
+Subject: [PATCH 1/2] Add support for new ffmpeg-10/11 api.
+
+---
+ configure.in | 3 +++
+ lib/DllAvUtil.h | 3 +++
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index bca9239..bea66ac 100755
+--- a/configure.in
++++ b/configure.in
+@@ -1225,6 +1225,9 @@ if test "$use_external_ffmpeg" = "yes"; then
+ # old FFmpeg have this in libavcodec/opt.h instead:
+ AC_CHECK_HEADERS([libavutil/opt.h])
+
++ # new FFmpeg have math headers
++ AC_CHECK_HEADERS([libavutil/mathematics.h],,)
++
+ # We'll support the use of rgb2rgb.h if it exists.
+ AC_CHECK_HEADERS([libswscale/rgb2rgb.h],,)
+ AC_CHECK_HEADERS([ffmpeg/rgb2rgb.h],,)
+diff --git a/lib/DllAvUtil.h b/lib/DllAvUtil.h
+index e882cac..e3b8a02 100644
+--- a/lib/DllAvUtil.h
++++ b/lib/DllAvUtil.h
+@@ -59,6 +59,9 @@ extern "C" {
+ #else
+ #include <ffmpeg/mem.h>
+ #endif
++ #if (defined HAVE_LIBAVUTIL_MATHEMATICS_H)
++ #include <libavutil/mathematics.h>
++ #endif
+ #else
+ #include "libavutil/avutil.h"
+ #include "libavutil/crc.h"
+--
+1.7.3.4
+
diff --git a/media-tv/xbmc/files/xbmc-11.0-ffmpeg.patch b/media-tv/xbmc/files/xbmc-11.0-ffmpeg.patch
new file mode 100644
index 00000000..51372fdc
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-11.0-ffmpeg.patch
@@ -0,0 +1,46 @@
+https://bugs.gentoo.org/406215
+
+From 97212837ec81c3869ba60e0690f26c09b9428747 Mon Sep 17 00:00:00 2001
+From: Tomas Chvatal <tchvatal@suse.cz>
+Date: Fri, 30 Mar 2012 10:00:46 +0200
+Subject: [PATCH] Ensure we include proper header on ffmpeg.
+
+---
+ configure.in | 3 +++
+ lib/DllAvFilter.h | 6 +++++-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index bca9239..d209f80 100755
+--- a/configure.in
++++ b/configure.in
+@@ -1229,6 +1229,9 @@ if test "$use_external_ffmpeg" = "yes"; then
+ AC_CHECK_HEADERS([libswscale/rgb2rgb.h],,)
+ AC_CHECK_HEADERS([ffmpeg/rgb2rgb.h],,)
+
++ # check for avcodec header as it is not present on libav
++ AC_CHECK_HEADERS([libavfilter/avcodec.h],,)
++
+ # Check if AVFilterBufferRefVideoProps AVRational member is named
+ # 'pixel_aspect' or 'sample_aspect_ratio'.
+ AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
+diff --git a/lib/DllAvFilter.h b/lib/DllAvFilter.h
+index 827746e..d47623b 100644
+--- a/lib/DllAvFilter.h
++++ b/lib/DllAvFilter.h
+@@ -48,7 +48,11 @@ extern "C" {
+ #endif
+ /* for av_vsrc_buffer_add_frame */
+ #if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,8,0)
+- #include <libavfilter/vsrc_buffer.h>
++ #if defined(HAVE_LIBAVFILTER_AVCODEC_H)
++ #include <libavfilter/avcodec.h>
++ #else
++ #include <libavfilter/vsrc_buffer.h>
++ #endif
+ #elif LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,7,0)
+ int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter,
+ AVFrame *frame);
+--
+1.7.3.4
+
diff --git a/media-tv/xbmc/files/xbmc-11.0-libav-r1.patch b/media-tv/xbmc/files/xbmc-11.0-libav-r1.patch
new file mode 100644
index 00000000..84a215a7
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-11.0-libav-r1.patch
@@ -0,0 +1,71 @@
+Patch rebased to current patches backported from upstream by Alexis Ballier.
+Based on the previous patch, submitted upstream but not merged it seems:
+
+https://bugs.gentoo.org/406215
+
+From c74abc298e2075f431d9fa700fcfc5e1bbbddf22 Mon Sep 17 00:00:00 2001
+From: Tomas Chvatal <tchvatal@suse.cz>
+Date: Fri, 23 Mar 2012 12:08:53 +0100
+Subject: [PATCH 2/2] Add support for libav api as it sligthly differ.
+
+The libav use micro version as 0
+The ffmpeg use the micro version as 100+
+
+Simply check if the variable is defined then it is not libav.
+Index: xbmc-11.0/lib/DllAvFilter.h
+===================================================================
+--- xbmc-11.0.orig/lib/DllAvFilter.h
++++ xbmc-11.0/lib/DllAvFilter.h
+@@ -45,7 +45,11 @@ extern "C" {
+ #if (defined HAVE_LIBAVFILTER_AVFILTER_H)
+ #include <libavfilter/avfiltergraph.h>
+ #include <libavfilter/buffersink.h>
+- #include <libavfilter/avcodec.h>
++ #if LIBAVFILTER_VERSION_MICRO < 50 // Libav
++ #include <libavfilter/vsrc_buffer.h>
++ #else
++ #include <libavfilter/avcodec.h>
++ #endif
+ #elif (defined HAVE_FFMPEG_AVFILTER_H)
+ #include <ffmpeg/avfiltergraph.h>
+ #include <ffmpeg/buffersink.h>
+@@ -75,7 +79,11 @@ public:
+ virtual int avfilter_graph_parse(AVFilterGraph *graph, const char *filters, AVFilterInOut **inputs, AVFilterInOut **outputs, void *log_ctx)=0;
+ virtual int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx)=0;
+ #if LIBAVFILTER_VERSION_INT < AV_VERSION_INT(3,0,0)
++#if LIBAVFILTER_VERSION_MICRO < 50 // Libav
++ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int64_t pts, AVRational pixel_aspect)=0;
++#else
+ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int flags)=0;
++#endif
+ #else
+ virtual int av_buffersrc_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int flags)=0;
+ #endif
+@@ -135,7 +143,11 @@ public:
+ return ::avfilter_graph_config(graphctx, log_ctx);
+ }
+ #if LIBAVFILTER_VERSION_INT < AV_VERSION_INT(3,0,0)
++#if LIBAVFILTER_VERSION_MICRO < 50 // Libav
++ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int64_t pts, AVRational pixel_aspect) { return ::av_vsrc_buffer_add_frame(buffer_filter, frame, pts, pixel_aspect); }
++#else
+ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int flags) { return ::av_vsrc_buffer_add_frame(buffer_filter, frame, flags); }
++#endif
+ #else
+ virtual int av_buffersrc_add_frame(AVFilterContext *buffer_filter, AVFrame* frame, int flags) { return ::av_buffersrc_add_frame(buffer_filter, frame, flags); }
+ #endif
+Index: xbmc-11.0/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+===================================================================
+--- xbmc-11.0.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
++++ xbmc-11.0/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+@@ -833,7 +833,11 @@ int CDVDVideoCodecFFmpeg::FilterProcess(
+ if (frame)
+ {
+ #if LIBAVFILTER_VERSION_INT < AV_VERSION_INT(3,0,0)
++#if LIBAVFILTER_VERSION_MICRO < 50 // Libav
++ result = m_dllAvFilter.av_vsrc_buffer_add_frame(m_pFilterIn, frame, frame->pts, m_pCodecContext->sample_aspect_ratio);
++#else
+ result = m_dllAvFilter.av_vsrc_buffer_add_frame(m_pFilterIn, frame, 0);
++#endif
+ #else
+ result = m_dllAvFilter.av_buffersrc_add_frame(m_pFilterIn, frame, 0);
+ #endif
diff --git a/media-tv/xbmc/files/xbmc-11.0-libav.patch b/media-tv/xbmc/files/xbmc-11.0-libav.patch
new file mode 100644
index 00000000..0aaa1ce4
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-11.0-libav.patch
@@ -0,0 +1,72 @@
+https://bugs.gentoo.org/406215
+
+From c74abc298e2075f431d9fa700fcfc5e1bbbddf22 Mon Sep 17 00:00:00 2001
+From: Tomas Chvatal <tchvatal@suse.cz>
+Date: Fri, 23 Mar 2012 12:08:53 +0100
+Subject: [PATCH 2/2] Add support for libav api as it sligthly differ.
+
+The libav use micro version as 0
+The ffmpeg use the micro version as 100+
+
+Simply check if the variable is defined then it is not libav.
+---
+ lib/DllAvFilter.h | 10 +++++++++-
+ .../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 4 ++++
+ 2 files changed, 13 insertions(+), 1 deletions(-)
+
+diff --git a/lib/DllAvFilter.h b/lib/DllAvFilter.h
+index 302e35c..827746e 100644
+--- a/lib/DllAvFilter.h
++++ b/lib/DllAvFilter.h
+@@ -48,7 +48,7 @@ extern "C" {
+ #endif
+ /* for av_vsrc_buffer_add_frame */
+ #if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,8,0)
+- #include <libavfilter/avcodec.h>
++ #include <libavfilter/vsrc_buffer.h>
+ #elif LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,7,0)
+ int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter,
+ AVFrame *frame);
+@@ -83,7 +83,11 @@ public:
+ virtual int avfilter_poll_frame(AVFilterLink *link)=0;
+ virtual int avfilter_request_frame(AVFilterLink *link)=0;
+ #if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,13,0)
++#if LIBAVFILTER_VERSION_MICRO
+ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int flags)=0;
++#else
++ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int64_t pts, AVRational pixel_aspect)=0;
++#endif
+ #elif LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,7,0)
+ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame)=0;
+ #elif LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53,3,0)
+@@ -172,7 +176,11 @@ public:
+ virtual int avfilter_poll_frame(AVFilterLink *link) { return ::avfilter_poll_frame(link); }
+ virtual int avfilter_request_frame(AVFilterLink *link) { return ::avfilter_request_frame(link); }
+ #if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,13,0)
++#if LIBAVFILTER_VERSION_MICRO
+ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int flags) { return ::av_vsrc_buffer_add_frame(buffer_filter, frame, flags); }
++#else
++ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int64_t pts, AVRational pixel_aspect) { return ::av_vsrc_buffer_add_frame(buffer_filter, frame, pts, pixel_aspect); }
++#endif
+ #elif LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,7,0)
+ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame) { return ::av_vsrc_buffer_add_frame(buffer_filter, frame); }
+ #elif LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53,3,0)
+diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+index b4e1451..4e5eedf 100644
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+@@ -814,7 +814,11 @@ int CDVDVideoCodecFFmpeg::FilterProcess(AVFrame* frame)
+ if (frame)
+ {
+ #if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,13,0)
++#if LIBAVFILTER_VERSION_MICRO
+ result = m_dllAvFilter.av_vsrc_buffer_add_frame(m_pFilterIn, frame, 0);
++#else
++ result = m_dllAvFilter.av_vsrc_buffer_add_frame(m_pFilterIn, frame, frame->pts, m_pCodecContext->sample_aspect_ratio);
++#endif
+ #elif LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,7,0)
+ result = m_dllAvFilter.av_vsrc_buffer_add_frame(m_pFilterIn, frame);
+ #elif LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53,3,0)
+--
+1.7.3.4
+
diff --git a/media-tv/xbmc/files/xbmc-11.0-nfs-limits.patch b/media-tv/xbmc/files/xbmc-11.0-nfs-limits.patch
new file mode 100644
index 00000000..ebee2d06
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-11.0-nfs-limits.patch
@@ -0,0 +1,28 @@
+https://bugs.gentoo.org/445174
+
+fix from upstream
+
+From 6ffd1cb4e2cba40888c24ff84afd04a5a07a22e9 Mon Sep 17 00:00:00 2001
+From: Torsten Kurbad <github@tk-webart.de>
+Date: Wed, 28 Nov 2012 21:29:29 +0100
+Subject: [PATCH] NFSDirectory.cpp must include limits.h
+
+---
+ xbmc/filesystem/NFSDirectory.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/xbmc/filesystem/NFSDirectory.cpp b/xbmc/filesystem/NFSDirectory.cpp
+index 4dc0f31..d306331 100644
+--- a/xbmc/filesystem/NFSDirectory.cpp
++++ b/xbmc/filesystem/NFSDirectory.cpp
+@@ -35,6 +35,7 @@
+ #include "threads/SingleLock.h"
+ using namespace XFILE;
+ using namespace std;
++#include <limits.h>
+ #include <nfsc/libnfs-raw-mount.h>
+ #include <nfsc/libnfs-raw-nfs.h>
+
+--
+1.8.0
+
diff --git a/media-tv/xbmc/files/xbmc-11.0-no-arm-flags.patch b/media-tv/xbmc/files/xbmc-11.0-no-arm-flags.patch
new file mode 100644
index 00000000..179697a8
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-11.0-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 @@
+ LIBS="$LIBS -framework DiskArbitration"
+ LIBS="$LIBS -framework ApplicationServices"
+ fi
+-elif test "$use_arch" = "arm"; then
++elif false; then
+ CFLAGS="$CFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
+ CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
+ FFMPEG_EXTRACFLAGS="-mfloat-abi=softfp"
diff --git a/media-tv/xbmc/files/xbmc-11.0-nomythtv.patch b/media-tv/xbmc/files/xbmc-11.0-nomythtv.patch
new file mode 100644
index 00000000..09286dba
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-11.0-nomythtv.patch
@@ -0,0 +1,206 @@
+http://trac.xbmc.org/ticket/11775
+
+make mysql/mythtv support optional
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -127,13 +127,17 @@ endif
+ LIB_DIRS=\
+ lib/cximage-6.0 \
+ lib/libexif \
+- lib/cmyth \
+ lib/libhdhomerun \
+ lib/libid3tag \
+ lib/libapetag \
+ lib/cpluff \
+ lib/xbmc-dll-symbols
+
++ifeq (@BUILD_MYTHTV@,1)
++LIB_DIRS+=\
++ lib/cmyth
++endif
++
+ SS_DIRS=
+ ifeq (@USE_OPENGL@,1)
+ SS_DIRS+= xbmc/screensavers/rsxs-0.9/xbmc
+@@ -418,7 +422,10 @@ imagelib: dllloader
+ $(MAKE) -C lib/cximage-6.0
+
+ codecs: papcodecs dvdpcodecs
+-libs: cmyth libhdhomerun libid3tag imagelib libexif system/libcpluff-@ARCH@.so
++libs: libhdhomerun libid3tag imagelib libexif system/libcpluff-@ARCH@.so
++ifeq (@BUILD_MYTHTV@,1)
++libs: cmyth
++endif
+ externals: codecs libs visualizations screensavers
+
+ xcode_depends: \
+--- a/configure.in
++++ b/configure.in
+@@ -68,6 +68,9 @@ goom_enabled="== GOOM enabled. =="
+ goom_disabled="== GOOM disabled. =="
+ pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
+ pulse_disabled="== PulseAudio support manually disabled. =="
++mysql_not_found="Could not find libmysqlclient. MySQL (and MythTV) support disabled. =="
++mysql_disabled="== MySQL support disabled. =="
++mythtv_disabled="== MythTV support disabled. =="
+ dvdcss_enabled="== DVDCSS support enabled. =="
+ dvdcss_disabled="== DVDCSS support disabled. =="
+ hal_not_found="== Could not find hal. HAL support disabled. =="
+@@ -238,6 +241,18 @@ AC_ARG_ENABLE([ffmpeg_libvorbis],
+ [use_ffmpeg_libvorbis=$enableval],
+ [use_ffmpeg_libvorbis=no])
+
++AC_ARG_ENABLE([mysql],
++ [AS_HELP_STRING([--enable-mysql],
++ [enable MySQL support (default is auto)])],
++ [use_mysql=$enableval],
++ [use_mysql=auto])
++
++AC_ARG_ENABLE([mythtv],
++ [AS_HELP_STRING([--enable-mythtv],
++ [enable MythTV support (default is auto)])],
++ [use_mythtv=$enableval],
++ [use_mythtv=auto])
++
+ AC_ARG_ENABLE([dvdcss],
+ [AS_HELP_STRING([--enable-dvdcss],
+ [enable DVDCSS support (default is yes)])],
+@@ -563,14 +578,31 @@ else
+ fi
+
+ # platform common libraries
+-AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, "yes", "no")
+-if test $MYSQL_CONFIG = "yes"; then
+- INCLUDES="$INCLUDES `mysql_config --include`"
+- MYSQL_LIBS=`mysql_config --libs`
+- LIBS="$LIBS $MYSQL_LIBS"
+- AC_SUBST(MYSQL_LIBS)
+-else
+- AC_MSG_ERROR($missing_program)
++have_mysql=no
++if test "$use_mysql" != "no"; then
++ AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, "yes", "no")
++ if test $MYSQL_CONFIG = "yes"; then
++ INCLUDES="$INCLUDES `mysql_config --include`"
++ MYSQL_LIBS=`mysql_config --libs`
++ LIBS="$LIBS $MYSQL_LIBS"
++ AC_SUBST(MYSQL_LIBS)
++ AC_CHECK_LIB([mysqlclient], [main], have_mysql=yes)
++ fi
++fi
++if test "$have_mysql" = "yes"; then
++ BUILD_MYTHTV=1
++ AC_DEFINE([BUILD_MYSQL], [1], [Define to 1 to build MySQL.])
++ if test "$use_mysql" != "no"; then
++ AC_DEFINE([BUILD_MYTHTV], [1], [Define to 1 to build mythtv.])
++ fi
++elif test "$use_mysql" = "yes" || test "$use_mythtv" = "yes"; then
++ AC_MSG_ERROR([$mysql_not_found])
++else
++ BUILD_MYTHTV=0
++ use_mysql=no
++ AC_MSG_NOTICE($mysql_disabled)
++ use_mythtv=no
++ AC_MSG_NOTICE($mythtv_disabled)
+ fi
+ AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
+@@ -594,7 +625,6 @@ AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
+-AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_RESULT([Could not find suitable version of libssh]))
+ AC_CHECK_LIB([smbclient], [main],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
+@@ -1319,6 +1349,18 @@ else
+ final_message="$final_message\n HAL Support:\tNo"
+ fi
+
++if test "$use_mysql" = "yes"; then
++ final_message="$final_message\n MySQL:\tYes"
++else
++ final_message="$final_message\n MySQL:\tNo"
++fi
++
++if test "$use_mythtv" = "yes"; then
++ final_message="$final_message\n MythTV:\tYes"
++else
++ final_message="$final_message\n MythTV:\tNo"
++fi
++
+ # DVDCSS
+ if test "$use_dvdcss" = "yes"; then
+ AC_MSG_NOTICE($dvdcss_enabled)
+@@ -1490,6 +1532,8 @@ AC_SUBST(USE_EXTERNAL_FFMPEG)
+ AC_SUBST(PYTHON_VERSION)
+ AC_SUBST(OUTPUT_FILES)
+ AC_SUBST(HAVE_XBMC_NONFREE)
++AC_SUBST(BUILD_MYSQL)
++AC_SUBST(BUILD_MYTHTV)
+ AC_SUBST(USE_ASAP_CODEC)
+ AC_SUBST(LIBCURL_BASENAME)
+ AC_SUBST(LIBFLAC_BASENAME)
+--- a/xbmc/dbwrappers/Database.cpp
++++ b/xbmc/dbwrappers/Database.cpp
+@@ -29,7 +29,9 @@
+ #include "utils/AutoPtrHandle.h"
+ #include "utils/log.h"
+ #include "utils/URIUtils.h"
++#ifdef BUILD_MYSQL
+ #include "mysqldataset.h"
++#endif /* BUILD_MYSQL */
+ #include "sqlitedataset.h"
+
+
+@@ -266,6 +268,7 @@
+
+ m_sqlite = true;
+
++#ifdef BUILD_MYSQL
+ if ( dbSettings.type.Equals("mysql") )
+ {
+ // check we have all information before we cancel the fallback
+@@ -276,7 +279,8 @@
+ CLog::Log(LOGINFO, "Essential mysql database information is missing. Require at least host, user and pass defined.");
+ }
+ else
++#endif /* BUILD_MYSQL */
+ {
+ dbSettings.type = "sqlite3";
+ dbSettings.host = _P(g_settings.GetDatabaseFolder());
+ dbSettings.name = GetBaseDBName();
+@@ -369,10 +373,12 @@
+ {
+ m_pDB.reset( new SqliteDatabase() ) ;
+ }
++#ifdef BUILD_MYSQL
+ else if (dbSettings.type.Equals("mysql"))
+ {
+ m_pDB.reset( new MysqlDatabase() ) ;
+ }
++#endif /* BUILD_MYSQL */
+ else
+ {
+ CLog::Log(LOGERROR, "Unable to determine database type: %s", dbSettings.type.c_str());
+--- a/xbmc/dbwrappers/mysqldataset.cpp
++++ b/xbmc/dbwrappers/mysqldataset.cpp
+@@ -23,9 +23,11 @@
+ #include <string>
+ #include <set>
+
++#include "system.h" // for GetLastError()
++#ifdef BUILD_MYSQL
++
+ #include "mysqldataset.h"
+ #include "utils/log.h"
+-#include "system.h" // for GetLastError()
+ #include "mysql/errmsg.h"
+ #ifdef _WIN32
+ #pragma comment(lib, "mysqlclient.lib")
+@@ -1562,3 +1564,4 @@
+
+ }//namespace
+
++#endif /* BUILD_MYSQL */
diff --git a/media-tv/xbmc/files/xbmc-12.1-nomythtv.patch b/media-tv/xbmc/files/xbmc-12.1-nomythtv.patch
new file mode 100644
index 00000000..f793ba34
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-12.1-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/files/xbmc-12.3-no-sse2.patch b/media-tv/xbmc/files/xbmc-12.3-no-sse2.patch
new file mode 100644
index 00000000..a0f787c0
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-12.3-no-sse2.patch
@@ -0,0 +1,185 @@
+https://bugs.gentoo.org/475266
+
+From 07ccc514dc688f0dd53f603d206894023e65ab20 Mon Sep 17 00:00:00 2001
+From: Jose Quinteiro <gentoo@quinteiro.org>
+Date: Sat, 27 Apr 2013 11:29:51 -0700
+Subject: [PATCH] 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 | 9 ++++++++-
+ 3 files changed, 20 insertions(+), 18 deletions(-)
+
+diff --git a/xbmc/cores/AudioEngine/Utils/AEConvert.cpp b/xbmc/cores/AudioEngine/Utils/AEConvert.cpp
+index 0b0b646..7cfde5e 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
+@@ -929,7 +924,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(MUL32);
+ unsigned int count = samples;
+
+@@ -989,7 +984,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] * MUL32);
+@@ -1038,7 +1033,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(MUL32);
+ unsigned int count = samples;
+
+@@ -1097,7 +1092,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] * MUL32);
+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 48cbc3b..6fdb7f2 100644
+--- a/xbmc/cores/AudioEngine/Utils/AEUtil.h
++++ b/xbmc/cores/AudioEngine/Utils/AEUtil.h
+@@ -27,6 +27,9 @@
+ #ifdef TARGET_WINDOWS
+ #if _M_IX86_FP>0 && !defined(__SSE__)
+ #define __SSE__
++#if _M_IX86_FP>1 && !defined(__SSE2__)
++#define __SSE2__
++#endif
+ #endif
+ #endif
+
+@@ -36,6 +39,10 @@
+ #define __m128 void
+ #endif
+
++#ifdef __SSE2__
++#include <emmintrin.h>
++#endif
++
+ #ifdef __GNUC__
+ #define MEMALIGN(b, x) x __attribute__((aligned(b)))
+ #else
+@@ -63,7 +70,7 @@ class CAEUtil
+ {
+ private:
+ static unsigned int m_seed;
+- #ifdef __SSE__
++ #ifdef __SSE2__
+ static __m128i m_sseSeed;
+ #endif
+
+--
+1.8.4.3
+
diff --git a/media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch b/media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch
index 179697a8..82a73835 100644
--- a/media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch
+++ b/media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch
@@ -6,11 +6,11 @@ targets. let the toolchain and user CFLAGS control that.
--- a/configure.in
+++ b/configure.in
@@ -571,7 +571,7 @@
- LIBS="$LIBS -framework DiskArbitration"
- LIBS="$LIBS -framework ApplicationServices"
- fi
+ elif test "$target_platform" = "target_raspberry_pi"; then
+ ARCH="arm"
+ use_arch="arm"
-elif test "$use_arch" = "arm"; then
+elif false; then
- CFLAGS="$CFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
- CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
- FFMPEG_EXTRACFLAGS="-mfloat-abi=softfp"
+ 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
index 09286dba..f793ba34 100644
--- a/media-tv/xbmc/files/xbmc-9999-nomythtv.patch
+++ b/media-tv/xbmc/files/xbmc-9999-nomythtv.patch
@@ -1,206 +1,68 @@
http://trac.xbmc.org/ticket/11775
-make mysql/mythtv support optional
+make mythtv support optional
+diff --git a/Makefile.in b/Makefile.in
+index 9ffae7e..17cc525 100755
--- a/Makefile.in
+++ b/Makefile.in
-@@ -127,13 +127,17 @@ endif
- LIB_DIRS=\
- lib/cximage-6.0 \
- lib/libexif \
-- lib/cmyth \
- lib/libhdhomerun \
- lib/libid3tag \
- lib/libapetag \
+@@ -147,7 +147,7 @@ LIB_DIRS=\
lib/cpluff \
lib/xbmc-dll-symbols
-+ifeq (@BUILD_MYTHTV@,1)
-+LIB_DIRS+=\
-+ lib/cmyth
-+endif
-+
- SS_DIRS=
- ifeq (@USE_OPENGL@,1)
- SS_DIRS+= xbmc/screensavers/rsxs-0.9/xbmc
-@@ -418,7 +422,10 @@ imagelib: dllloader
- $(MAKE) -C lib/cximage-6.0
-
- codecs: papcodecs dvdpcodecs
--libs: cmyth libhdhomerun libid3tag imagelib libexif system/libcpluff-@ARCH@.so
-+libs: libhdhomerun libid3tag imagelib libexif system/libcpluff-@ARCH@.so
-+ifeq (@BUILD_MYTHTV@,1)
-+libs: cmyth
-+endif
- externals: codecs libs visualizations screensavers
-
- xcode_depends: \
+-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
-@@ -68,6 +68,9 @@ goom_enabled="== GOOM enabled. =="
- goom_disabled="== GOOM disabled. =="
- pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
- pulse_disabled="== PulseAudio support manually disabled. =="
-+mysql_not_found="Could not find libmysqlclient. MySQL (and MythTV) support disabled. =="
-+mysql_disabled="== MySQL support disabled. =="
-+mythtv_disabled="== MythTV support disabled. =="
- dvdcss_enabled="== DVDCSS support enabled. =="
- dvdcss_disabled="== DVDCSS support disabled. =="
- hal_not_found="== Could not find hal. HAL support disabled. =="
-@@ -238,6 +241,18 @@ AC_ARG_ENABLE([ffmpeg_libvorbis],
- [use_ffmpeg_libvorbis=$enableval],
- [use_ffmpeg_libvorbis=no])
+@@ -387,6 +387,12 @@ AC_ARG_ENABLE([mysql],
+ [use_mysql=$enableval],
+ [use_mysql=yes])
-+AC_ARG_ENABLE([mysql],
-+ [AS_HELP_STRING([--enable-mysql],
-+ [enable MySQL support (default is auto)])],
-+ [use_mysql=$enableval],
-+ [use_mysql=auto])
-+
+AC_ARG_ENABLE([mythtv],
-+ [AS_HELP_STRING([--enable-mythtv],
-+ [enable MythTV support (default is auto)])],
++ [AS_HELP_STRING([--disable-mythtv],
++ [disable mythtv])],
+ [use_mythtv=$enableval],
-+ [use_mythtv=auto])
++ [use_mythtv=yes])
+
- AC_ARG_ENABLE([dvdcss],
- [AS_HELP_STRING([--enable-dvdcss],
- [enable DVDCSS support (default is yes)])],
-@@ -563,14 +578,31 @@ else
- fi
-
- # platform common libraries
--AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, "yes", "no")
--if test $MYSQL_CONFIG = "yes"; then
-- INCLUDES="$INCLUDES `mysql_config --include`"
-- MYSQL_LIBS=`mysql_config --libs`
-- LIBS="$LIBS $MYSQL_LIBS"
-- AC_SUBST(MYSQL_LIBS)
--else
-- AC_MSG_ERROR($missing_program)
-+have_mysql=no
-+if test "$use_mysql" != "no"; then
-+ AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, "yes", "no")
-+ if test $MYSQL_CONFIG = "yes"; then
-+ INCLUDES="$INCLUDES `mysql_config --include`"
-+ MYSQL_LIBS=`mysql_config --libs`
-+ LIBS="$LIBS $MYSQL_LIBS"
-+ AC_SUBST(MYSQL_LIBS)
-+ AC_CHECK_LIB([mysqlclient], [main], have_mysql=yes)
-+ fi
-+fi
-+if test "$have_mysql" = "yes"; then
-+ BUILD_MYTHTV=1
-+ AC_DEFINE([BUILD_MYSQL], [1], [Define to 1 to build MySQL.])
-+ if test "$use_mysql" != "no"; then
-+ AC_DEFINE([BUILD_MYTHTV], [1], [Define to 1 to build mythtv.])
+ 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
-+elif test "$use_mysql" = "yes" || test "$use_mythtv" = "yes"; then
-+ AC_MSG_ERROR([$mysql_not_found])
-+else
-+ BUILD_MYTHTV=0
-+ use_mysql=no
-+ AC_MSG_NOTICE($mysql_disabled)
-+ use_mythtv=no
-+ AC_MSG_NOTICE($mythtv_disabled)
fi
AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
-@@ -594,7 +625,6 @@ AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
- AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
- AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
- AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
--AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
- AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_RESULT([Could not find suitable version of libssh]))
- AC_CHECK_LIB([smbclient], [main],, AC_MSG_ERROR($missing_library))
- AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
-@@ -1319,6 +1349,18 @@ else
- final_message="$final_message\n HAL Support:\tNo"
+@@ -1895,6 +1904,15 @@ else
+ final_message="$final_message\n MySQL:\tNo"
+ USE_MYSQL=0
fi
-
-+if test "$use_mysql" = "yes"; then
-+ final_message="$final_message\n MySQL:\tYes"
-+else
-+ final_message="$final_message\n MySQL:\tNo"
-+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
+
- # DVDCSS
- if test "$use_dvdcss" = "yes"; then
- AC_MSG_NOTICE($dvdcss_enabled)
-@@ -1490,6 +1532,8 @@ AC_SUBST(USE_EXTERNAL_FFMPEG)
- AC_SUBST(PYTHON_VERSION)
- AC_SUBST(OUTPUT_FILES)
- AC_SUBST(HAVE_XBMC_NONFREE)
-+AC_SUBST(BUILD_MYSQL)
-+AC_SUBST(BUILD_MYTHTV)
- AC_SUBST(USE_ASAP_CODEC)
- AC_SUBST(LIBCURL_BASENAME)
- AC_SUBST(LIBFLAC_BASENAME)
---- a/xbmc/dbwrappers/Database.cpp
-+++ b/xbmc/dbwrappers/Database.cpp
-@@ -29,7 +29,9 @@
- #include "utils/AutoPtrHandle.h"
- #include "utils/log.h"
- #include "utils/URIUtils.h"
-+#ifdef BUILD_MYSQL
- #include "mysqldataset.h"
-+#endif /* BUILD_MYSQL */
- #include "sqlitedataset.h"
-
-
-@@ -266,6 +268,7 @@
-
- m_sqlite = true;
-
-+#ifdef BUILD_MYSQL
- if ( dbSettings.type.Equals("mysql") )
- {
- // check we have all information before we cancel the fallback
-@@ -276,7 +279,8 @@
- CLog::Log(LOGINFO, "Essential mysql database information is missing. Require at least host, user and pass defined.");
- }
- else
-+#endif /* BUILD_MYSQL */
- {
- dbSettings.type = "sqlite3";
- dbSettings.host = _P(g_settings.GetDatabaseFolder());
- dbSettings.name = GetBaseDBName();
-@@ -369,10 +373,12 @@
- {
- m_pDB.reset( new SqliteDatabase() ) ;
- }
-+#ifdef BUILD_MYSQL
- else if (dbSettings.type.Equals("mysql"))
- {
- m_pDB.reset( new MysqlDatabase() ) ;
- }
-+#endif /* BUILD_MYSQL */
- else
- {
- CLog::Log(LOGERROR, "Unable to determine database type: %s", dbSettings.type.c_str());
---- a/xbmc/dbwrappers/mysqldataset.cpp
-+++ b/xbmc/dbwrappers/mysqldataset.cpp
-@@ -23,9 +23,11 @@
- #include <string>
- #include <set>
-
-+#include "system.h" // for GetLastError()
-+#ifdef BUILD_MYSQL
-+
- #include "mysqldataset.h"
- #include "utils/log.h"
--#include "system.h" // for GetLastError()
- #include "mysql/errmsg.h"
- #ifdef _WIN32
- #pragma comment(lib, "mysqlclient.lib")
-@@ -1562,3 +1564,4 @@
+ 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)
- }//namespace
-+#endif /* BUILD_MYSQL */
diff --git a/media-tv/xbmc/metadata.xml b/media-tv/xbmc/metadata.xml
new file mode 100644
index 00000000..02050d13
--- /dev/null
+++ b/media-tv/xbmc/metadata.xml
@@ -0,0 +1,21 @@
+<?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='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.2-r1.ebuild b/media-tv/xbmc/xbmc-12.2-r1.ebuild
new file mode 100644
index 00000000..556fba18
--- /dev/null
+++ b/media-tv/xbmc/xbmc-12.2-r1.ebuild
@@ -0,0 +1,262 @@
+# 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.5 2013/07/06 12:12:03 scarabeus 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
+ 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 )
+ )
+ 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
+ # 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))
+
+ # Sabayon, we need libav-9, and all is broken as usual
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --disable-ccache \
+ --disable-optimizations \
+ --enable-external-libraries \
+ --disable-external-ffmpeg \
+ --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"
+}
diff --git a/media-tv/xbmc/xbmc-12.3.ebuild b/media-tv/xbmc/xbmc-12.3.ebuild
new file mode 100644
index 00000000..c6acdbc7
--- /dev/null
+++ b/media-tv/xbmc/xbmc-12.3.ebuild
@@ -0,0 +1,264 @@
+# 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.3.ebuild,v 1.2 2013/12/31 19:18:32 vapier 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
+ mirror://gentoo/${P}-generated-addons.tar.xz"
+ 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[sound,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
+ rtmp? ( media-video/rtmpdump )
+ avahi? ( net-dns/avahi )
+ nfs? ( net-fs/libnfs )
+ webserver? ( net-libs/libmicrohttpd[messages] )
+ sftp? ( net-libs/libssh[sftp] )
+ 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 )
+ )
+ 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}-Frodo
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ [[ ${PV} == "9999" ]] && git-2_src_unpack || default
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-12.1-nomythtv.patch
+ epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617
+ epatch "${FILESDIR}"/${PN}-12.3-no-sse2.patch #475266
+ # 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 -exec 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))
+
+ # Sabayon, we need libav-9, and all is broken as usual
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --disable-ccache \
+ --disable-optimizations \
+ --enable-external-libraries \
+ --disable-external-ffmpeg \
+ --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"
+}