diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /media-tv/xbmc | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.xz |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'media-tv/xbmc')
23 files changed, 3123 insertions, 0 deletions
diff --git a/media-tv/xbmc/Manifest b/media-tv/xbmc/Manifest new file mode 100644 index 00000000000..21fe5e7dd15 --- /dev/null +++ b/media-tv/xbmc/Manifest @@ -0,0 +1,13 @@ +DIST xbmc-11.0.tar.gz 63012044 SHA256 1fe5d310c16138f26e2b13bc545604e95f48ace6c8636f23e77da402cd7b0b19 SHA512 ba738129f70dd171b3fae385ab44317f62c9041a116bfe809d6d07c99ea69c663ad5d598552a17be0b942251ce12a68f34d0be21b303b256055849a6dde90043 WHIRLPOOL 4dd068749c86542e39b8fc42b45bbb56e885813b17876d3583cb4d91c902ff075e1f16f1c19720e3430dc149c40e52e7d1ab3323f666263fb353a59e2ef94a8e +DIST xbmc-12-libav.tar.xz 6080 SHA256 84ba05dc66a476d2cb940c10355a22a04c5ef3b4fd6bd96a87a1fb2ffa7ccc0c SHA512 cde76dd435fb449ec843aaaa41a46f0fb4efeeb753669f9e4d052c06f00fe512be9fe994d5dd56794f47ce2f49146a2782f2da72dd78a1f66e5f54ca15723f13 WHIRLPOOL 07ba9e3fb3a4ba6d2c52055bcbe52009a87363bc8e0b21ebc90965bd3562196eee728103028fe8baaad250def5c6f76616a19731f825955648df9ff01c905e6b +DIST xbmc-12.1.tar.gz 67430677 SHA256 29e3f36e1884913088f786179a4c925f52e46e9ba7bf8f24e35e934177c01ec3 SHA512 a8b5194766e32e09fa65c0e3656ff180c15761ce2348dc8a1fff0c65247b47e644db4fc91a829e73907b6a52c8e1bdebf624640b9dd06cea2c46bda1d2b3b4a5 WHIRLPOOL 13dbaf040faaaef1b04da892949e9684d7a958cec286b3a5f8cb449ec0fea6b5f96c2a473ece840b86103eb03dd1f39dd66411e5b0526785256d2cc92e1e95e8 +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-13.0_r2-generated-addons.tar.xz 312524 SHA256 82e2c219a09a758c5cc7a29c4e719c48255523ee79e2ac9fe72d39b45730e32e SHA512 1399b922711424844756d4f56696ea4be34b3ffbeedfc23bb832cb8e0ee9d6831f1c31ebc41d49f20c262f0cbb52601786e33550d5aca5de4de520fcee0f53ec WHIRLPOOL 67f184b241e90c369cee7ceaf3f714c002093a5b4e82614cd1413af35e7c3aef1adb2460d9286c54a40e5a74de37864eff86d5631e0a0ea33a69e3b29082e477 +DIST xbmc-13.0_r2.tar.gz 65616107 SHA256 663b99f3e196ead51d90f06ccfa864b4e5ade385dfc5972acb0f854d525f2903 SHA512 c56d11959797f4c6c3b1831afeab03332913fe6cc00f2542c45af725fe932ba3b997c2af997a602665734a6bcc061c40b8e876144894fdeab91b56df98958433 WHIRLPOOL 394b76c9d20dd90a0d04306d301d4bb656fe99afab6e7392d6274bd3eb8c9a3083bfe192f3850f6ea7123ed537baa64f658a48b14eee68b8226b4e620a76d199 +DIST xbmc-13.1-generated-addons.tar.xz 54968 SHA256 fb0c265640e8d468ed094d83be5089274b7effc1ad1946c42ce21d831442d00e SHA512 7081e25621141eaf76d552fe648fcf9ff4697fc76991b2081806ae829af6094012194cfab93b0c836242197ded00ff88458b89ed6008532b38552d3114d2a776 WHIRLPOOL d83a4290af3e9a2a88dccf074d73692e34a9877d2ff7ff6a946a601b0c8e9d01105eb04bf1d28f62bf648d7221df787b42e52b416f2e924bfa5208342b3ef51a +DIST xbmc-13.1.tar.gz 65758346 SHA256 344b604eae2ddb47c032dd7964d01f27e6fcd7a8873c84c0841d5da75961a678 SHA512 918126a85a8194dd49d5c82a5a56d2006b811ff5fca535e95bcc5ef4ab135c5907d01595c2ceb4accdc69aef5afc621adae249a1fef85425945560a646e970b0 WHIRLPOOL d429dd9a03974aedd5cd256f0cf1409dcf7434ec1bafeaa0fcdaaa0d8bb08442183143d514d33b1de4934a5e800b03a8f64df5abdd7203d8a0557638e124b53a +DIST xbmc-13.2-generated-addons.tar.xz 55008 SHA256 26d72e282f0458acb48b283edc27f7b71fc3f285344b8d4df6835a2520ae5650 SHA512 7b77bc22e0c665b74d90276cfa8b827222b22930f4d3bf335191dd5a8123f8bd74367de123199e124b02c7075aa81536058ace38926f4c03d0449ea55fd83254 WHIRLPOOL 449fe73e5ca7f5d973fb1d49e4e84f47955bced804bfea93a5bda67481af096dfa10581435fd84a26d59cb30f4b0eedd7096c905d5b1749286f85b042f90b626 +DIST xbmc-13.2.tar.gz 65900491 SHA256 acbf5dffa3034a3406240ee3cf81e721386cd383d23d056ddde1f769e050e585 SHA512 83a514410748b05da4c626caff34fec7b6b26a8bdea9f158e1c75721d3a47d36eb1f97ed4c162f6c2472a97f658e3b5285c1e0b144bfb4f654932586eee4d1c8 WHIRLPOOL 54e8551fa8393b9fd1076572e87b4d5a7e1b52acaa0443d14cfc8ed08e69a2efb86e3bb2cbe97d8894989ad7f892f512649165089e3d1035307f8cc820772e6f +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 00000000000..68d1082bcae --- /dev/null +++ b/media-tv/xbmc/files/generate.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +set -eux + +PV=$1 +PN=xbmc +P="${PN}-${PV}" +DISTDIR="/usr/portage/distfiles" +GITDIR="/usr/local/src/xbmc/git" + +if [[ ${PV} != "9999" ]] ; then + rm -rf ${PN}-*/ + tar xf ${DISTDIR}/${P}.tar.gz + d=$(echo ${PN}-*/) +else + stamp=$(date --date="$(git log -n1 --pretty=format:%ci master)" -u +%Y%m%d) + P+="-${stamp}" + cd ${GITDIR} + d=. +fi +make -C ${d} -j -f codegenerator.mk +tar="${DISTDIR}/${P}-generated-addons.tar.xz" +tar cf - ${d}/xbmc/interfaces/python/generated/*.cpp | xz > "${tar}" +if [[ ${PV} != "9999" ]] ; then + rm -rf ${PN}-*/ +fi + +du -b "${tar}" 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 00000000000..b6a2d731dc1 --- /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 00000000000..51372fdc1db --- /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.patch b/media-tv/xbmc/files/xbmc-11.0-libav.patch new file mode 100644 index 00000000000..0aaa1ce4184 --- /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 00000000000..ebee2d06318 --- /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 00000000000..179697a8f5c --- /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-no-exec-stack.patch b/media-tv/xbmc/files/xbmc-11.0-no-exec-stack.patch new file mode 100644 index 00000000000..35ff747d4f8 --- /dev/null +++ b/media-tv/xbmc/files/xbmc-11.0-no-exec-stack.patch @@ -0,0 +1,30 @@ +http://trac.xbmc.org/ticket/12735 + +merged upstream already + +From f0e33eefa4b5d46f26811db2f5e943dcd7f2870e Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Thu, 1 Mar 2012 00:04:49 -0500 +Subject: [PATCH] mark stack as non-executable + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + xbmc/utils/fastmemcpy-arm.S | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/xbmc/utils/fastmemcpy-arm.S b/xbmc/utils/fastmemcpy-arm.S +index 0e810a7..3d77c68 100644 +--- a/xbmc/utils/fastmemcpy-arm.S ++++ b/xbmc/utils/fastmemcpy-arm.S +@@ -527,3 +527,8 @@ copy_last_3_and_return: + + #endif /* __ARM_ARCH__ < 7 */ + #endif ++ ++#if defined(__linux__) && defined(__ELF__) ++/* we don't need an executable stack */ ++.section .note.GNU-stack,"",%progbits ++#endif +-- +1.7.8.4 + 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 00000000000..09286dba0a8 --- /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 00000000000..f793ba34dcf --- /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 00000000000..a0f787c0386 --- /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 new file mode 100644 index 00000000000..82a738356ff --- /dev/null +++ b/media-tv/xbmc/files/xbmc-9999-no-arm-flags.patch @@ -0,0 +1,16 @@ +http://bugs.gentoo.org/400617 + +do not force any particular ABI or FPU or SIMD compiler flags for arm +targets. let the toolchain and user CFLAGS control that. + +--- a/configure.in ++++ b/configure.in +@@ -571,7 +571,7 @@ + elif test "$target_platform" = "target_raspberry_pi"; then + ARCH="arm" + use_arch="arm" +-elif test "$use_arch" = "arm"; then ++elif false; then + CFLAGS="$CFLAGS -mno-apcs-stack-check" + CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check" + FFMPEG_EXTRACFLAGS="" diff --git a/media-tv/xbmc/files/xbmc-9999-nomythtv.patch b/media-tv/xbmc/files/xbmc-9999-nomythtv.patch new file mode 100644 index 00000000000..40ab23b98d1 --- /dev/null +++ b/media-tv/xbmc/files/xbmc-9999-nomythtv.patch @@ -0,0 +1,67 @@ +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 +@@ -209,7 +209,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 +@@ -479,6 +479,12 @@ AC_ARG_ENABLE([mysql], + [AS_HELP_STRING([--disable-mysql], + [disable mysql])], + ++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])], +@@ -1080,6 +1086,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)) +@@ -2372,6 +2381,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 +@@ -2675,6 +2693,7 @@ AC_SUBST(USE_LIBUDEV) + AC_SUBST(USE_LIBUSB) + AC_SUBST(USE_LIBCEC) + AC_SUBST(USE_MYSQL) ++AC_SUBST(USE_MYTHTV) + AC_SUBST(USE_WAYLAND) + diff --git a/media-tv/xbmc/metadata.xml b/media-tv/xbmc/metadata.xml new file mode 100644 index 00000000000..af5099eea16 --- /dev/null +++ b/media-tv/xbmc/metadata.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>xbox</herd> +<use> + <flag name='airplay'>enable AirPlay support</flag> + <flag name='bluray'>Enable playback of Blu-ray filesystems</flag> + <flag name='cec'>Enable support for HDMI-CEC devices via libcec</flag> + <flag name='fishbmc'>Enable fishBMC visualization plugin</flag> + <flag name='gles'>Enable support for GLES</flag> + <flag name='goom'>Enable GOOM visualization plugin</flag> + <flag name='midi'>Support MIDI files</flag> + <flag name='nfs'>Enable NFS client support</flag> + <flag name='projectm'>Enable projectM visualization plugin</flag> + <flag name='pvr'>Enable MythTV support</flag> + <flag name='rtmp'>Enable Real Time Messaging Protocol using librtmp</flag> + <flag name='rsxs'>Enable really slick X screensavers</flag> + <flag name='sftp'>Support browsing files over SFTP</flag> + <flag name='webserver'>Enable internal webserver</flag> + <flag name='xrandr'>Support X randr extension</flag> +</use> +<upstream> + <bugs-to>http://trac.kodi.tv/</bugs-to> + <remote-id type="github">xbmc/xbmc</remote-id> +</upstream> +</pkgmetadata> diff --git a/media-tv/xbmc/xbmc-11.0.ebuild b/media-tv/xbmc/xbmc-11.0.ebuild new file mode 100644 index 00000000000..978781f50f1 --- /dev/null +++ b/media-tv/xbmc/xbmc-11.0.ebuild @@ -0,0 +1,238 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +# Does not work with py3 here +# It might work with py:2.5 but I didn't test that +PYTHON_DEPEND="2:2.6" +PYTHON_USE_WITH=sqlite + +inherit eutils python + +EGIT_REPO_URI="git://github.com/xbmc/xbmc.git" +if [[ ${PV} == "9999" ]] ; then + inherit git-2 autotools +else + inherit autotools + MY_P=${P/_/-*_} + SRC_URI="http://mirrors.xbmc.org/releases/source/${MY_P}.tar.gz" + KEYWORDS="amd64 x86" + S=${WORKDIR}/${MY_P} +fi + +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 cec css debug goom joystick midi mysql profile +projectm pulseaudio pvr +rsxs rtmp +samba cpu_flags_x86_sse cpu_flags_x86_sse2 udisks upower vaapi vdpau webserver +xrandr" +REQUIRED_USE="pvr? ( mysql )" + +COMMON_DEPEND="virtual/glu + virtual/opengl + app-arch/bzip2 + app-arch/unzip + app-arch/zip + app-i18n/enca + airplay? ( app-pda/libplist ) + >=dev-lang/python-2.4 + dev-libs/boost + dev-libs/fribidi + dev-libs/libcdio[-minimal] + cec? ( dev-libs/libcec ) + dev-libs/libpcre[cxx] + >=dev-libs/lzo-2.04 + dev-libs/yajl + dev-python/simplejson + media-libs/alsa-lib + media-libs/flac + media-libs/fontconfig + media-libs/freetype + >=media-libs/glew-1.5.6 + media-libs/jasper + media-libs/jbigkit + virtual/jpeg + >=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 + media-libs/libsdl[sound,opengl,video,X] + alsa? ( media-libs/libsdl[alsa] ) + media-libs/libvorbis + media-libs/sdl-gfx + >=media-libs/sdl-image-1.2.10[gif,jpeg,png] + media-libs/sdl-mixer + media-libs/sdl-sound + media-libs/tiff + pulseaudio? ( media-sound/pulseaudio ) + media-sound/wavpack + || ( media-libs/libpostproc <media-video/libav-0.8.2-r1 media-video/ffmpeg:0 ) + >=virtual/ffmpeg-0.6[encode] + rtmp? ( media-video/rtmpdump ) + avahi? ( net-dns/avahi ) + webserver? ( net-libs/libmicrohttpd ) + net-misc/curl + samba? ( >=net-fs/samba-3.4.6[smbclient] ) + bluetooth? ( net-wireless/bluez ) + sys-apps/dbus + sys-libs/zlib + mysql? ( virtual/mysql ) + x11-apps/xdpyinfo + x11-apps/mesa-progs + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 ) + virtual/ffmpeg[vdpau] + ) + x11-libs/libXinerama + xrandr? ( x11-libs/libXrandr ) + x11-libs/libXrender" +RDEPEND="${COMMON_DEPEND} + !media-tv/kodi + udisks? ( sys-fs/udisks:0 ) + upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )" +DEPEND="${COMMON_DEPEND} + dev-util/gperf + x11-proto/xineramaproto + dev-util/cmake + x86? ( dev-lang/nasm )" + +pkg_setup() { + python_set_active_version 2 + python_pkg_setup +} + +src_unpack() { + if [[ ${PV} == "9999" ]] ; then + git-2_src_unpack + cd "${S}" + rm -f configure + else + unpack ${A} + cd "${S}" + fi + + # Fix case sensitivity + mv media/Fonts/{a,A}rial.ttf || die + mv media/{S,s}plash.png || die +} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-11.0-nomythtv.patch + epatch "${FILESDIR}"/${PN}-11.0-no-arm-flags.patch #400617 + epatch "${FILESDIR}"/${PN}-11.0-no-exec-stack.patch + epatch "${FILESDIR}"/${PN}-11.0-ffmpeg-0.10.2.patch #406215 + epatch "${FILESDIR}"/${PN}-11.0-libav.patch #406215 + epatch "${FILESDIR}"/${PN}-11.0-ffmpeg.patch #406215 + epatch "${FILESDIR}"/${P}-nfs-limits.patch #445174 + # The mythtv patch touches configure.ac, so force a regen + rm -f configure + + # some dirs ship generated autotools, some dont + local d + for d in \ + . \ + lib/{libdvd/lib*/,cpluff,libapetag,libid3tag/libid3tag} \ + xbmc/screensavers/rsxs-* \ + xbmc/visualizations/Goom/goom2k4-0 + do + [[ -e ${d}/configure ]] && continue + pushd ${d} >/dev/null + eautoreconf + popd >/dev/null + done + + local squish #290564 + use altivec && squish="-DSQUISH_USE_ALTIVEC=1 -maltivec" + use cpu_flags_x86_sse && squish="-DSQUISH_USE_SSE=1 -msse" + use cpu_flags_x86_sse2 && squish="-DSQUISH_USE_SSE=2 -msse2" + sed -i \ + -e '/^CXXFLAGS/{s:-D[^=]*=.::;s:-m[[:alnum:]]*::}' \ + -e "1iCXXFLAGS += ${squish}" \ + lib/libsquish/Makefile.in || die + + # 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 + + # 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 lsb-release dependency + sed -i \ + -e 's:lsb_release -d:cat /etc/gentoo-release:' \ + xbmc/utils/SystemInfo.cpp || die + + # 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) + + econf \ + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --disable-optimizations \ + --enable-external-libraries \ + --enable-gl \ + $(use_enable airplay) \ + $(use_enable avahi) \ + $(use_enable bluray libbluray) \ + $(use_enable cec libcec) \ + $(use_enable css dvdcss) \ + $(use_enable debug) \ + $(use_enable goom) \ + --disable-hal \ + $(use_enable joystick) \ + $(use_enable midi mid) \ + $(use_enable mysql) \ + $(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 vaapi) \ + $(use_enable vdpau) \ + $(use_enable webserver) \ + $(use_enable xrandr) +} + +src_install() { + default + rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* + + domenu tools/Linux/xbmc.desktop + newicon tools/Linux/xbmc-48x48.png xbmc.png + + insinto "$(python_get_sitedir)" #309885 + doins tools/EventClients/lib/python/xbmcclient.py || die + newbin "tools/EventClients/Clients/XBMC Send/xbmc-send.py" xbmc-send || die +} + +pkg_postinst() { + elog "Visit http://wiki.xbmc.org/?title=XBMC_Online_Manual" +} diff --git a/media-tv/xbmc/xbmc-12.1-r1.ebuild b/media-tv/xbmc/xbmc-12.1-r1.ebuild new file mode 100644 index 00000000000..d02d76c6ea1 --- /dev/null +++ b/media-tv/xbmc/xbmc-12.1-r1.ebuild @@ -0,0 +1,267 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +# Does not work with py3 here +# It might work with py:2.5 but I didn't test that +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite" + +inherit eutils python-single-r1 multiprocessing autotools + +case ${PV} in +9999) + EGIT_REPO_URI="git://github.com/xbmc/xbmc.git" + inherit git-2 + SRC_URI="!java? ( mirror://gentoo/${P}-20121224-generated-addons.tar.xz )" + ;; +*_alpha*|*_beta*|*_rc*) + MY_PV="Frodo_${PV#*_}" + MY_P="${PN}-${MY_PV}" + SRC_URI="https://github.com/xbmc/xbmc/archive/${MY_PV}.tar.gz -> ${P}.tar.gz + !java? ( mirror://gentoo/${P}-generated-addons.tar.xz )" + KEYWORDS="~amd64 ~x86" + ;; +*) + MY_P=${P/_/-*_} + SRC_URI="http://mirrors.xbmc.org/releases/source/${MY_P}.tar.gz" + KEYWORDS="~amd64 ~x86" + ;; +esac + +# libav patchset +SRC_URI+=" http://dev.gentooexperimental.org/~scarabeus/xbmc-12-libav.tar.xz" + +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 cpu_flags_x86_sse cpu_flags_x86_sse2 sftp udisks upnp upower +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 + || ( media-libs/libpostproc media-video/ffmpeg:0 ) + >=virtual/ffmpeg-9[encode] + 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 ) + virtual/ffmpeg[vdpau] + ) + X? ( + x11-apps/xdpyinfo + x11-apps/mesa-progs + x11-libs/libXinerama + xrandr? ( x11-libs/libXrandr ) + x11-libs/libXrender + )" +RDEPEND="${COMMON_DEPEND} + !media-tv/kodi + udisks? ( sys-fs/udisks:0 ) + upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )" +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}-12.1-nomythtv.patch + epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617 + # The mythtv patch touches configure.ac, so force a regen + rm -f configure + + # libav patchset + EPATCH_FORCE="yes" \ + EPATCH_SOURCE="${WORKDIR}" \ + EPATCH_SUFFIX="patch" \ + epatch + + # 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 cpu_flags_x86_sse && squish="-DSQUISH_USE_SSE=1 -msse" + use cpu_flags_x86_sse2 && squish="-DSQUISH_USE_SSE=2 -msse2" + sed -i \ + -e '/^CXXFLAGS/{s:-D[^=]*=.::;s:-m[[:alnum:]]*::}' \ + -e "1iCXXFLAGS += ${squish}" \ + lib/libsquish/Makefile.in || die + + # Fix XBMC's final version string showing as "exported" + # instead of the SVN revision number. + export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported} + + # avoid long delays when powerkit isn't running #348580 + sed -i \ + -e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \ + xbmc/linux/*.cpp || die + + epatch_user #293109 + + # Tweak autotool timestamps to avoid regeneration + find . -type f -print0 | xargs -0 touch -r configure +} + +src_configure() { + # Disable documentation generation + export ac_cv_path_LATEX=no + # Avoid help2man + export HELP2MAN=$(type -P help2man || echo true) + # No configure flage for this #403561 + export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth) + # Requiring java is asine #434662 + export ac_cv_path_JAVA_EXE=$(which $(usex java java true)) + + econf \ + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --disable-optimizations \ + --enable-external-libraries \ + $(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) \ + --with-projectm-presets-dir="${EPREFIX}/usr/share/projectM/presets/" \ + $(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.2-r1.ebuild b/media-tv/xbmc/xbmc-12.2-r1.ebuild new file mode 100644 index 00000000000..a5d2a1fc203 --- /dev/null +++ b/media-tv/xbmc/xbmc-12.2-r1.ebuild @@ -0,0 +1,264 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +# Does not work with py3 here +# It might work with py:2.5 but I didn't test that +PYTHON_COMPAT=( python2_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 cpu_flags_x86_sse cpu_flags_x86_sse2 sftp udisks upnp upower +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 + || ( media-libs/libpostproc media-video/ffmpeg:0 ) + >=virtual/ffmpeg-0.6[encode] + rtmp? ( media-video/rtmpdump ) + avahi? ( net-dns/avahi ) + nfs? ( net-fs/libnfs ) + webserver? ( net-libs/libmicrohttpd[messages] ) + sftp? ( net-libs/libssh[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 ) + virtual/ffmpeg[vdpau] + ) + X? ( + x11-apps/xdpyinfo + x11-apps/mesa-progs + x11-libs/libXinerama + xrandr? ( x11-libs/libXrandr ) + x11-libs/libXrender + )" +RDEPEND="${COMMON_DEPEND} + !media-tv/kodi + udisks? ( sys-fs/udisks:0 ) + upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )" +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}-12.1-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 cpu_flags_x86_sse && squish="-DSQUISH_USE_SSE=1 -msse" + use cpu_flags_x86_sse2 && squish="-DSQUISH_USE_SSE=2 -msse2" + sed -i \ + -e '/^CXXFLAGS/{s:-D[^=]*=.::;s:-m[[:alnum:]]*::}' \ + -e "1iCXXFLAGS += ${squish}" \ + lib/libsquish/Makefile.in || die + + # Fix XBMC's final version string showing as "exported" + # instead of the SVN revision number. + export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported} + + # avoid long delays when powerkit isn't running #348580 + sed -i \ + -e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \ + xbmc/linux/*.cpp || die + + epatch_user #293109 + + # Tweak autotool timestamps to avoid regeneration + find . -type f -print0 | xargs -0 touch -r configure +} + +src_configure() { + # Disable documentation generation + export ac_cv_path_LATEX=no + # Avoid help2man + export HELP2MAN=$(type -P help2man || echo true) + # No configure flage for this #403561 + export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth) + # Requiring java is asine #434662 + export ac_cv_path_JAVA_EXE=$(which $(usex java java true)) + + econf \ + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --disable-optimizations \ + --enable-external-libraries \ + $(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 00000000000..3ecead50c01 --- /dev/null +++ b/media-tv/xbmc/xbmc-12.3.ebuild @@ -0,0 +1,269 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +# Does not work with py3 here +# It might work with py:2.5 but I didn't test that +PYTHON_COMPAT=( python2_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 cpu_flags_x86_sse cpu_flags_x86_sse2 sftp udisks upnp upower +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 + || ( media-libs/libpostproc media-video/ffmpeg:0 ) + >=virtual/ffmpeg-0.6[encode] + rtmp? ( media-video/rtmpdump ) + avahi? ( net-dns/avahi ) + nfs? ( net-fs/libnfs ) + webserver? ( net-libs/libmicrohttpd[messages] ) + sftp? ( net-libs/libssh[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 + media-libs/mesa[gles2] + ) + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 ) + virtual/ffmpeg[vdpau] + ) + X? ( + x11-apps/xdpyinfo + x11-apps/mesa-progs + x11-libs/libXinerama + xrandr? ( x11-libs/libXrandr ) + x11-libs/libXrender + )" +RDEPEND="${COMMON_DEPEND} + !media-tv/kodi + udisks? ( sys-fs/udisks:0 ) + upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )" +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 cpu_flags_x86_sse && squish="-DSQUISH_USE_SSE=1 -msse" + use cpu_flags_x86_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)) + + econf \ + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --disable-optimizations \ + --enable-external-libraries \ + $(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-13.0_p2.ebuild b/media-tv/xbmc/xbmc-13.0_p2.ebuild new file mode 100644 index 00000000000..765b6b0df6a --- /dev/null +++ b/media-tv/xbmc/xbmc-13.0_p2.ebuild @@ -0,0 +1,309 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +# Does not work with py3 here +# It might work with py:2.5 but I didn't test that +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite" + +inherit eutils python-single-r1 multiprocessing autotools + +CODENAME="Gotham" +case ${PV} in +9999) + EGIT_REPO_URI="git://github.com/xbmc/xbmc.git" + inherit git-2 + #SRC_URI="!java? ( mirror://gentoo/${P}-20130413-generated-addons.tar.xz )" + ;; +*_alpha*|*_beta*|*_rc*) + MY_PV="${CODENAME}_${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" + S=${WORKDIR}/${MY_P} + ;; +*|*_p*) + MY_PV=${PV/_p/_r} + MY_P="${PN}-${MY_PV}" + SRC_URI="http://mirrors.xbmc.org/releases/source/${MY_P}.tar.gz + http://mirrors.xbmc.org/releases/source/${MY_P}-generated-addons.tar.xz" + KEYWORDS="~amd64 ~x86" + + S=${WORKDIR}/${PN}- + [[ ${PV} == *_p* ]] \ + && S+=${PV/_p/-${CODENAME}_r} \ + || S+=${MY_PV} + ;; +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 +fishbmc gles goom java joystick midi mysql nfs +opengl profile +projectm pulseaudio pvr +rsxs rtmp +samba +sdl cpu_flags_x86_sse cpu_flags_x86_sse2 sftp udisks upnp upower +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-fonts/corefonts + media-fonts/roboto + 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 + || ( >=media-video/ffmpeg-1.2.1:0=[encode] ( media-libs/libpostproc >=media-video/libav-10_alpha:=[encode] ) ) + 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 + media-libs/mesa[gles2] + ) + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 ) + || ( >=media-video/ffmpeg-1.2.1:0=[vdpau] >=media-video/libav-10_alpha:=[vdpau] ) + ) + X? ( + x11-apps/xdpyinfo + x11-apps/mesa-progs + x11-libs/libXinerama + xrandr? ( x11-libs/libXrandr ) + x11-libs/libXrender + )" +RDEPEND="${COMMON_DEPEND} + !media-tv/kodi + udisks? ( sys-fs/udisks:0 ) + upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )" +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 )" +# Force java for latest git version to avoid having to hand maintain the +# generated addons package. #488118 +[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre" + +pkg_setup() { + python-single-r1_pkg_setup + + if has_version 'media-video/libav' ; then + ewarn "Building ${PN} against media-video/libav is not supported upstream." + ewarn "It requires building a (small) wrapper library with some code" + ewarn "from media-video/ffmpeg." + ewarn "If you experience issues, please try with media-video/ffmpeg." + fi +} + +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 + # 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 + + [[ ${PV} == "9999" ]] && emake -f codegenerator.mk + + # 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 cpu_flags_x86_sse && squish="-DSQUISH_USE_SSE=1 -msse" + use cpu_flags_x86_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 + [[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true)) + + econf \ + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --disable-optimizations \ + --enable-external-libraries \ + $(has_version 'media-video/libav' && echo "--enable-libav-compat") \ + $(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 fishbmc) \ + $(use_enable gles) \ + $(use_enable goom) \ + --disable-hal \ + $(use_enable joystick) \ + $(use_enable midi mid) \ + $(use_enable mysql) \ + $(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 media/icon48x48.png xbmc.png + + # Remove optional addons (platform specific and disabled by USE flag). + local disabled_addons=( + repository.pvr-{android,ios,osx{32,64},win32}.xbmc.org + visualization.dxspectrum + ) + use fishbmc || disabled_addons+=( visualization.fishbmc ) + use projectm || disabled_addons+=( visualization.{milkdrop,projectm} ) + use rsxs || disabled_addons+=( screensaver.rsxs.{euphoria,plasma,solarwinds} ) + rm -rf "${disabled_addons[@]/#/${ED}/usr/share/xbmc/addons/}" + + # Punt simplejson bundle, we use the system one anyway. + rm -rf "${ED}"/usr/share/xbmc/addons/script.module.simplejson/lib + # Remove fonconfig settings that are used only on MacOSX. + # Can't be patched upstream because they just find all files and install + # them into same structure like they have in git. + rm -rf "${ED}"/usr/share/xbmc/system/players/dvdplayer/etc + + # Replace bundled fonts with system ones + # teletext.ttf: unknown + # bold-caps.ttf: unknown + # roboto: roboto-bold, roboto-regular + # arial.ttf: font mashed from droid/roboto, not removed wrt bug#460514 + rm -rf "${ED}"/usr/share/xbmc/addons/skin.confluence/fonts/Roboto-* + dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \ + /usr/share/xbmc/addons/skin.confluence/fonts/Roboto-Regular.ttf + dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \ + /usr/share/xbmc/addons/skin.confluence/fonts/Roboto-Bold.ttf + + 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-13.1.ebuild b/media-tv/xbmc/xbmc-13.1.ebuild new file mode 100644 index 00000000000..51885841091 --- /dev/null +++ b/media-tv/xbmc/xbmc-13.1.ebuild @@ -0,0 +1,306 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +# Does not work with py3 here +# It might work with py:2.5 but I didn't test that +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite" + +inherit eutils python-single-r1 multiprocessing autotools + +CODENAME="Gotham" +case ${PV} in +9999) + EGIT_REPO_URI="git://github.com/xbmc/xbmc.git" + inherit git-2 + #SRC_URI="!java? ( mirror://gentoo/${P}-20130413-generated-addons.tar.xz )" + ;; +*_alpha*|*_beta*|*_rc*) + MY_PV="${CODENAME}_${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" + S=${WORKDIR}/${MY_P} + ;; +*|*_p*) + MY_PV=${PV/_p/_r} + MY_P="${PN}-${MY_PV}" + SRC_URI="http://mirrors.xbmc.org/releases/source/${MY_P}.tar.gz + http://mirrors.xbmc.org/releases/source/${MY_P}-generated-addons.tar.xz" + KEYWORDS="~amd64 ~x86" + + S=${WORKDIR}/${MY_P}-${CODENAME} + ;; +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 +fishbmc gles goom java joystick midi mysql nfs +opengl profile +projectm pulseaudio pvr +rsxs rtmp +samba +sdl cpu_flags_x86_sse cpu_flags_x86_sse2 sftp udisks upnp upower +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-fonts/corefonts + media-fonts/roboto + 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 + || ( >=media-video/ffmpeg-1.2.1:0=[encode] ( media-libs/libpostproc >=media-video/libav-10_alpha:=[encode] ) ) + 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 + media-libs/mesa[gles2] + ) + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 ) + || ( >=media-video/ffmpeg-1.2.1:0=[vdpau] >=media-video/libav-10_alpha:=[vdpau] ) + ) + X? ( + x11-apps/xdpyinfo + x11-apps/mesa-progs + x11-libs/libXinerama + xrandr? ( x11-libs/libXrandr ) + x11-libs/libXrender + )" +RDEPEND="${COMMON_DEPEND} + !media-tv/kodi + udisks? ( sys-fs/udisks:0 ) + upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )" +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 )" +# Force java for latest git version to avoid having to hand maintain the +# generated addons package. #488118 +[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre" + +pkg_setup() { + python-single-r1_pkg_setup + + if has_version 'media-video/libav' ; then + ewarn "Building ${PN} against media-video/libav is not supported upstream." + ewarn "It requires building a (small) wrapper library with some code" + ewarn "from media-video/ffmpeg." + ewarn "If you experience issues, please try with media-video/ffmpeg." + fi +} + +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 + # 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 + + [[ ${PV} == "9999" ]] && emake -f codegenerator.mk + + # 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 cpu_flags_x86_sse && squish="-DSQUISH_USE_SSE=1 -msse" + use cpu_flags_x86_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 + [[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true)) + + econf \ + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --disable-optimizations \ + --enable-external-libraries \ + $(has_version 'media-video/libav' && echo "--enable-libav-compat") \ + $(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 fishbmc) \ + $(use_enable gles) \ + $(use_enable goom) \ + --disable-hal \ + $(use_enable joystick) \ + $(use_enable midi mid) \ + $(use_enable mysql) \ + $(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 media/icon48x48.png xbmc.png + + # Remove optional addons (platform specific and disabled by USE flag). + local disabled_addons=( + repository.pvr-{android,ios,osx{32,64},win32}.xbmc.org + visualization.dxspectrum + ) + use fishbmc || disabled_addons+=( visualization.fishbmc ) + use projectm || disabled_addons+=( visualization.{milkdrop,projectm} ) + use rsxs || disabled_addons+=( screensaver.rsxs.{euphoria,plasma,solarwinds} ) + rm -rf "${disabled_addons[@]/#/${ED}/usr/share/xbmc/addons/}" + + # Punt simplejson bundle, we use the system one anyway. + rm -rf "${ED}"/usr/share/xbmc/addons/script.module.simplejson/lib + # Remove fonconfig settings that are used only on MacOSX. + # Can't be patched upstream because they just find all files and install + # them into same structure like they have in git. + rm -rf "${ED}"/usr/share/xbmc/system/players/dvdplayer/etc + + # Replace bundled fonts with system ones + # teletext.ttf: unknown + # bold-caps.ttf: unknown + # roboto: roboto-bold, roboto-regular + # arial.ttf: font mashed from droid/roboto, not removed wrt bug#460514 + rm -rf "${ED}"/usr/share/xbmc/addons/skin.confluence/fonts/Roboto-* + dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \ + /usr/share/xbmc/addons/skin.confluence/fonts/Roboto-Regular.ttf + dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \ + /usr/share/xbmc/addons/skin.confluence/fonts/Roboto-Bold.ttf + + 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-13.2-r1.ebuild b/media-tv/xbmc/xbmc-13.2-r1.ebuild new file mode 100644 index 00000000000..d86dc7e43a1 --- /dev/null +++ b/media-tv/xbmc/xbmc-13.2-r1.ebuild @@ -0,0 +1,309 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +# Does not work with py3 here +# It might work with py:2.5 but I didn't test that +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite" + +inherit eutils python-single-r1 multiprocessing autotools + +CODENAME="Gotham" +case ${PV} in +9999) + EGIT_REPO_URI="git://github.com/xbmc/xbmc.git" + inherit git-2 + #SRC_URI="!java? ( mirror://gentoo/${P}-20130413-generated-addons.tar.xz )" + ;; +*_alpha*|*_beta*|*_rc*) + MY_PV="${CODENAME}_${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" + S=${WORKDIR}/${MY_P} + ;; +*|*_p*) + MY_PV=${PV/_p/_r} + MY_P="${PN}-${MY_PV}" + SRC_URI="http://mirrors.xbmc.org/releases/source/${MY_P}.tar.gz + http://mirrors.xbmc.org/releases/source/${MY_P}-generated-addons.tar.xz" + KEYWORDS="~amd64 ~x86" + + S=${WORKDIR}/${MY_P}-${CODENAME} + ;; +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 +fishbmc gles goom java joystick libav midi mysql nfs +opengl profile +projectm pulseaudio pvr +rsxs rtmp +samba +sdl cpu_flags_x86_sse cpu_flags_x86_sse2 sftp udisks upnp upower +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-fonts/corefonts + media-fonts/roboto + 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 + !libav? ( >=media-video/ffmpeg-1.2.1:0=[encode] ) + libav? ( media-libs/libpostproc:0= + >=media-video/libav-10_alpha:0=[encode] ) + 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 + media-libs/mesa[gles2] + ) + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 ) + !libav? ( >=media-video/ffmpeg-1.2.1:0=[vdpau] ) + libav? ( >=media-video/libav-10_alpha:0=[vdpau] ) + ) + X? ( + x11-apps/xdpyinfo + x11-apps/mesa-progs + x11-libs/libXinerama + xrandr? ( x11-libs/libXrandr ) + x11-libs/libXrender + )" +RDEPEND="${COMMON_DEPEND} + !media-tv/kodi + udisks? ( sys-fs/udisks:0 ) + upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )" +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 )" +# Force java for latest git version to avoid having to hand maintain the +# generated addons package. #488118 +[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre" + +pkg_setup() { + python-single-r1_pkg_setup + + if use libav ; then + ewarn "Building ${PN} against media-video/libav is not supported upstream." + ewarn "It requires building a (small) wrapper library with some code" + ewarn "from media-video/ffmpeg." + ewarn "If you experience issues, please try with media-video/ffmpeg." + fi +} + +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 + # 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 + + [[ ${PV} == "9999" ]] && emake -f codegenerator.mk + + # 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 cpu_flags_x86_sse && squish="-DSQUISH_USE_SSE=1 -msse" + use cpu_flags_x86_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 + [[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true)) + + econf \ + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --disable-optimizations \ + --enable-external-libraries \ + $(usex libav "--enable-libav-compat" "") \ + $(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 fishbmc) \ + $(use_enable gles) \ + $(use_enable goom) \ + --disable-hal \ + $(use_enable joystick) \ + $(use_enable midi mid) \ + $(use_enable mysql) \ + $(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 media/icon48x48.png xbmc.png + + # Remove optional addons (platform specific and disabled by USE flag). + local disabled_addons=( + repository.pvr-{android,ios,osx{32,64},win32}.xbmc.org + visualization.dxspectrum + ) + use fishbmc || disabled_addons+=( visualization.fishbmc ) + use projectm || disabled_addons+=( visualization.{milkdrop,projectm} ) + use rsxs || disabled_addons+=( screensaver.rsxs.{euphoria,plasma,solarwinds} ) + rm -rf "${disabled_addons[@]/#/${ED}/usr/share/xbmc/addons/}" + + # Punt simplejson bundle, we use the system one anyway. + rm -rf "${ED}"/usr/share/xbmc/addons/script.module.simplejson/lib + # Remove fonconfig settings that are used only on MacOSX. + # Can't be patched upstream because they just find all files and install + # them into same structure like they have in git. + rm -rf "${ED}"/usr/share/xbmc/system/players/dvdplayer/etc + + # Replace bundled fonts with system ones + # teletext.ttf: unknown + # bold-caps.ttf: unknown + # roboto: roboto-bold, roboto-regular + # arial.ttf: font mashed from droid/roboto, not removed wrt bug#460514 + rm -rf "${ED}"/usr/share/xbmc/addons/skin.confluence/fonts/Roboto-* + dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \ + /usr/share/xbmc/addons/skin.confluence/fonts/Roboto-Regular.ttf + dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \ + /usr/share/xbmc/addons/skin.confluence/fonts/Roboto-Bold.ttf + + 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-13.2.ebuild b/media-tv/xbmc/xbmc-13.2.ebuild new file mode 100644 index 00000000000..6dce54c7514 --- /dev/null +++ b/media-tv/xbmc/xbmc-13.2.ebuild @@ -0,0 +1,306 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +# Does not work with py3 here +# It might work with py:2.5 but I didn't test that +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite" + +inherit eutils python-single-r1 multiprocessing autotools + +CODENAME="Gotham" +case ${PV} in +9999) + EGIT_REPO_URI="git://github.com/xbmc/xbmc.git" + inherit git-2 + #SRC_URI="!java? ( mirror://gentoo/${P}-20130413-generated-addons.tar.xz )" + ;; +*_alpha*|*_beta*|*_rc*) + MY_PV="${CODENAME}_${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" + S=${WORKDIR}/${MY_P} + ;; +*|*_p*) + MY_PV=${PV/_p/_r} + MY_P="${PN}-${MY_PV}" + SRC_URI="http://mirrors.xbmc.org/releases/source/${MY_P}.tar.gz + http://mirrors.xbmc.org/releases/source/${MY_P}-generated-addons.tar.xz" + KEYWORDS="amd64 x86" + + S=${WORKDIR}/${MY_P}-${CODENAME} + ;; +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 +fishbmc gles goom java joystick midi mysql nfs +opengl profile +projectm pulseaudio pvr +rsxs rtmp +samba +sdl cpu_flags_x86_sse cpu_flags_x86_sse2 sftp udisks upnp upower +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-fonts/corefonts + media-fonts/roboto + 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 + || ( >=media-video/ffmpeg-1.2.1:0=[encode] ( media-libs/libpostproc >=media-video/libav-10_alpha:=[encode] ) ) + 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 + media-libs/mesa[gles2] + ) + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 ) + || ( >=media-video/ffmpeg-1.2.1:0=[vdpau] >=media-video/libav-10_alpha:=[vdpau] ) + ) + X? ( + x11-apps/xdpyinfo + x11-apps/mesa-progs + x11-libs/libXinerama + xrandr? ( x11-libs/libXrandr ) + x11-libs/libXrender + )" +RDEPEND="${COMMON_DEPEND} + !media-tv/kodi + udisks? ( sys-fs/udisks:0 ) + upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )" +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 )" +# Force java for latest git version to avoid having to hand maintain the +# generated addons package. #488118 +[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre" + +pkg_setup() { + python-single-r1_pkg_setup + + if has_version 'media-video/libav' ; then + ewarn "Building ${PN} against media-video/libav is not supported upstream." + ewarn "It requires building a (small) wrapper library with some code" + ewarn "from media-video/ffmpeg." + ewarn "If you experience issues, please try with media-video/ffmpeg." + fi +} + +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 + # 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 + + [[ ${PV} == "9999" ]] && emake -f codegenerator.mk + + # 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 cpu_flags_x86_sse && squish="-DSQUISH_USE_SSE=1 -msse" + use cpu_flags_x86_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 + [[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true)) + + econf \ + --docdir=/usr/share/doc/${PF} \ + --disable-ccache \ + --disable-optimizations \ + --enable-external-libraries \ + $(has_version 'media-video/libav' && echo "--enable-libav-compat") \ + $(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 fishbmc) \ + $(use_enable gles) \ + $(use_enable goom) \ + --disable-hal \ + $(use_enable joystick) \ + $(use_enable midi mid) \ + $(use_enable mysql) \ + $(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 media/icon48x48.png xbmc.png + + # Remove optional addons (platform specific and disabled by USE flag). + local disabled_addons=( + repository.pvr-{android,ios,osx{32,64},win32}.xbmc.org + visualization.dxspectrum + ) + use fishbmc || disabled_addons+=( visualization.fishbmc ) + use projectm || disabled_addons+=( visualization.{milkdrop,projectm} ) + use rsxs || disabled_addons+=( screensaver.rsxs.{euphoria,plasma,solarwinds} ) + rm -rf "${disabled_addons[@]/#/${ED}/usr/share/xbmc/addons/}" + + # Punt simplejson bundle, we use the system one anyway. + rm -rf "${ED}"/usr/share/xbmc/addons/script.module.simplejson/lib + # Remove fonconfig settings that are used only on MacOSX. + # Can't be patched upstream because they just find all files and install + # them into same structure like they have in git. + rm -rf "${ED}"/usr/share/xbmc/system/players/dvdplayer/etc + + # Replace bundled fonts with system ones + # teletext.ttf: unknown + # bold-caps.ttf: unknown + # roboto: roboto-bold, roboto-regular + # arial.ttf: font mashed from droid/roboto, not removed wrt bug#460514 + rm -rf "${ED}"/usr/share/xbmc/addons/skin.confluence/fonts/Roboto-* + dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \ + /usr/share/xbmc/addons/skin.confluence/fonts/Roboto-Regular.ttf + dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \ + /usr/share/xbmc/addons/skin.confluence/fonts/Roboto-Bold.ttf + + 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-9999.ebuild b/media-tv/xbmc/xbmc-9999.ebuild new file mode 100644 index 00000000000..7a9f08e0df3 --- /dev/null +++ b/media-tv/xbmc/xbmc-9999.ebuild @@ -0,0 +1,13 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +DESCRIPTION="Stub ebuild to migrate people to media-tv/kodi" +HOMEPAGE="http://kodi.tv/ http://kodi.wiki/" + +LICENSE="metapackage" +SLOT="0" + +RDEPEND="media-tv/kodi" |