diff options
-rw-r--r-- | media-tv/xbmc/Manifest | 30 | ||||
-rwxr-xr-x | media-tv/xbmc/files/generate.sh | 16 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-11.0-ffmpeg-0.10.2.patch | 41 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-11.0-ffmpeg.patch | 46 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-11.0-libav-r1.patch | 71 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-11.0-libav.patch | 72 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-11.0-nfs-limits.patch | 28 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-11.0-no-arm-flags.patch | 16 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-11.0-nomythtv.patch | 206 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-12.1-nomythtv.patch | 68 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-12.3-no-sse2.patch | 185 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch | 12 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-9999-nomythtv.patch | 218 | ||||
-rw-r--r-- | media-tv/xbmc/metadata.xml | 21 | ||||
-rw-r--r-- | media-tv/xbmc/xbmc-12.2-r1.ebuild | 262 | ||||
-rw-r--r-- | media-tv/xbmc/xbmc-12.3.ebuild | 264 |
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" +} |