From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- media-tv/kodi/Manifest | 23 ++ media-tv/kodi/files/generate.sh | 34 +++ .../kodi/files/kodi-17.3-ftpparse_string.patch | 82 ++++++ .../kodi/files/kodi-17.3-unrar-vulnerability.patch | 45 +++ media-tv/kodi/files/kodi-17.4-mariadb.patch | 23 ++ media-tv/kodi/files/kodi-cmake-no-java.patch | 56 ++++ media-tv/kodi/kodi-17.3-r1.ebuild | 290 +++++++++++++++++++ media-tv/kodi/kodi-17.3.ebuild | 284 ++++++++++++++++++ media-tv/kodi/kodi-17.4-r1.ebuild | 296 +++++++++++++++++++ media-tv/kodi/kodi-17.4.ebuild | 291 +++++++++++++++++++ media-tv/kodi/kodi-9999.ebuild | 321 +++++++++++++++++++++ media-tv/kodi/metadata.xml | 29 ++ 12 files changed, 1774 insertions(+) create mode 100644 media-tv/kodi/Manifest create mode 100755 media-tv/kodi/files/generate.sh create mode 100644 media-tv/kodi/files/kodi-17.3-ftpparse_string.patch create mode 100644 media-tv/kodi/files/kodi-17.3-unrar-vulnerability.patch create mode 100644 media-tv/kodi/files/kodi-17.4-mariadb.patch create mode 100644 media-tv/kodi/files/kodi-cmake-no-java.patch create mode 100644 media-tv/kodi/kodi-17.3-r1.ebuild create mode 100644 media-tv/kodi/kodi-17.3.ebuild create mode 100644 media-tv/kodi/kodi-17.4-r1.ebuild create mode 100644 media-tv/kodi/kodi-17.4.ebuild create mode 100644 media-tv/kodi/kodi-9999.ebuild create mode 100644 media-tv/kodi/metadata.xml (limited to 'media-tv/kodi') diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest new file mode 100644 index 000000000000..4f25b03cd326 --- /dev/null +++ b/media-tv/kodi/Manifest @@ -0,0 +1,23 @@ +AUX generate.sh 803 SHA256 8e32ccbd56e2d36d9d0504282881b3ee1d33ee7293827b75444b917093955d09 SHA512 064b11416be5583202d92ab0c87156b7098bf4a97c7875ad3a0b11e048ebcfd69aeb22653e8175e7ad0cd400ed2d9c27aa8d1d25be04d34438f4c4f86e329986 WHIRLPOOL 3565b3f6ef9650bfbb3b9e4b6ee5b71d1d245e62520f00f88f1c0b2ade6bf923200a1e94efdbbea8d5e53449f38ac78bc4714280e276e085c91ada404ebfeb89 +AUX kodi-17.3-ftpparse_string.patch 2076 SHA256 332c31ff05d41813021a14b337f903b0fa096196036bbf4fd7ebe4c78447da8d SHA512 d23865fe6624291d88c0a7674aa52b7e15889a96eb41590827248d8215643f773d0f02871efa858d2c533674627d4e6ebc69cba56be6ec9b58277bb2d6c204df WHIRLPOOL 7ddc32530f91840f5387c6767676cb17e5e243116821a7c1bef45750a17ee71895a74d9fb2e1260828537cacca89036a24fd2ce346a3eaf1ed5b0a91bca11335 +AUX kodi-17.3-unrar-vulnerability.patch 1883 SHA256 85e60dba6e78a7dd6c39667898cd1cbb2da176d5d9917006e09c015f4fa8028c SHA512 5c59a3c47ea9bcd21712da0ca0dc6bf0618f2f9cad6fd011ebcc94ae90868159e528237727e174a5b137b2e6ef2cb895c01c1b4be91cae0c402697a7d85791aa WHIRLPOOL 701a33d7c88105bcb108cb1eb006491f0a45baffaae9a4b66e3de2d7820dcb0888162b54321276c3cf5afb90a03f7eece1c2392f30d1fb5a535872502d49214b +AUX kodi-17.4-mariadb.patch 999 SHA256 cf25973c666e7f61b8068f19b1bf55273e1b956c44855c4b0313121e20ebbd27 SHA512 4262dbcab7acaf495cb9fb4780cdc32c7f9f1933a0246b5cd8b4d2c94cb665b8cfba6900cd1677ce5a2703f3579c7d54a209876963146bc8ebedb11e7dbc11c1 WHIRLPOOL b59c1d8a19388c15158d73ea14d5e49bc5994ff721280298fc669a62bb298577856f6a5526c6da4506c886a81fa1fa2e8812a475fbb0c678b0a6eb737f5b9c60 +AUX kodi-cmake-no-java.patch 2297 SHA256 571c477b39531c3d924a18f3f404485875fe4e7752d700984cc4140db804fce5 SHA512 9eb7d64694411ce7e47976291fabce96b055c8b4b60bdd7cd37f992d8a3c813de1ef828464e6996124303b015b5c64eccbade10290747180f4ac1fe6a1747d19 WHIRLPOOL 68cceb70ec22cd636586e7bdbe27f1dcd27d689647e7482d15497882a228f3aa73750436926ab3b16008119c9faca65511486fcaa235ce35e566d267f1b63c44 +DIST ffmpeg-kodi-3.1.6-Krypton.tar.gz 11170735 SHA256 01f914742f6af8afd1d2eb076425975e24c4eed75f5d57f1c816086dc4625192 SHA512 060d06946ee71106196587b36eccf7fb7d0710d6ee72dae2e08f23e5bf7e223a3bac77f1730121f494ecf5f860a40635978023317a06f27a3b28752fa537f1a1 WHIRLPOOL ae6f0b3b798e92cd72aed8eb3e6dc82708c86052590b30ae93e1b8275dca89c5a4470dbc8ff51bfefd72bd40036b7bd1b7695ee77e90bab35b5e80bcb8b79826 +DIST ffmpeg-kodi-3.1.9-Krypton-17.4.tar.gz 11186492 SHA256 ead247d5d804399951531ba904d1b59b60c9163e2d8fbab014cf495a40f91266 SHA512 4f399578f95d42357c73dc01fb5372042070ce11ff82e97695cc5a69574f35b9a860042ea0d43cfd562f03ac06fd888c074a838944c0c1aef7a692f89ea85dda WHIRLPOOL 24c3c926bb0f204a66d4e01c9d96e34ab22d20389f9274ead9ff01393c62a1502f8604f9096f36f1fafb5c0526d6ccb5062a8b90e34a9773f2cfa89f8f87d069 +DIST ffmpeg-kodi-3.3.3-Leia-Alpha-1.tar.gz 11865820 SHA256 d8767a13f6968a79657629c61aa97db265f699401db8c00ebfe69eb9d3bad262 SHA512 ee3ef407501493834c1ccdc63b26c4ab521d27cd470d4ce3dabd7d34fa1ac8c1690a83639ed9cd8d38ca0039a7ae2a89812a6b614f21542e7fd5354ab5f10596 WHIRLPOOL 0117ea950fbae6d59ac3c6f322cbc8f7fbae45400a7c46eda27f7b172836f1a70812346a091692e5cdac55870ccb6ae6698b24a747fc7c7f2c578591736a41f3 +DIST kodi-17.3-generated-addons.tar.xz 57548 SHA256 6175ac64dbcbe2c747cd77f876b8e2bb3e516daa4707d7ccf768d76a89b27bd1 SHA512 56d1912f5e24d3fcda3010783a5b32728ece9c81c718ac6f8db2cbbd096059fe97b8d1971b34bbde1216558a8e5db874f7b2179e1f18942774ae5486167bca9a WHIRLPOOL 1023c69687ac9958e72ab70c15a280800ea4866f8e0dc2740d9bfd50f75bef71c28f23f01a841f254022610e1388d14217ea384213161264dae721515c9dabe3 +DIST kodi-17.3.tar.gz 58466114 SHA256 1de8653a3729cefd1baaf09ecde5ace01a1e3a58fbf29d48c1363f2503d331a1 SHA512 832071c3e9f332281a767f29168f6d6d003a86b42df849e81d907c2280f81f959ae42a850eddc889ae2280bba6106de3355e701ff2d71c88ee14cb20c84e7987 WHIRLPOOL 0ed5585f891459292a1cfd4451bee1f2b19af217e462b810468b00395ee024ba346300f84c67c6dc428d27abcaef4eec9dc7b844e66e2ab83543830a106a1634 +DIST kodi-17.4-generated-addons.tar.xz 57576 SHA256 dffa734a5fd40493b338ce76cdf49e42572b437fd449ceded3183ac09929e015 SHA512 80bb6b159c3556c75ad02110c5431fbc21339b74988421269f049cdf9b630a7e819aa5816f315aa7279247cab3d09680c5966449642d0c3e25ef1c789b285581 WHIRLPOOL 39715af523582b1eb982b6da7bb6f2a6557f99f9bb38cfd69899f0e92db977cf965648c1ff2ad6bf2e77d09b26ef655256b5c1025bc224984f0040a3713958ba +DIST kodi-17.4.tar.gz 58475144 SHA256 b05e11b2d108222bfc3ff0c9a466d798c0feedf1228166239948e6ed37c3cb4f SHA512 fc4eff6606c84459ab24323888d39bf1f5d433aaf7136c17d85631f768761f61e498297c500befc986dd6de14de87a5a28f7a9c36c8d7c35d49ca15c99db37ef WHIRLPOOL 15f35516da71f9e64b4e7fdfa2a285236961db36ccc98fe2fa65809a0ef355c5e7b2a37cf3e36cd3bc9bc6717a3e26b7537e77d8828c09daaca7d79f9150c7d6 +DIST libdvdcss-2f12236bc1c92f73c21e973363f79eb300de603f.tar.gz 95395 SHA256 b6eb2d929ff56cb051152c32010afc5e7cf5fe8c5ae32dca412a2b46b6b57e34 SHA512 12ba7aa653fcb26d5336bf2a8110c924d634cec79f684bbf19dc38ea33f69fb68c22c97f4c09e5ca7c35f95f6c324a6d70ccc2c501a99122a9321cafd33b2cd9 WHIRLPOOL 8570ad8d2b6e629cc1c7e544be2853cab3bb50fd73438cea47c7a0919b251cecf906f7446ef3714c54ee3e636278dc0dabab47f772440624ff49877068b7b50a +DIST libdvdnav-43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac.tar.gz 130603 SHA256 8e3f0563e16df898fe115e1723e3f78dbc953f6e9cf4f04568add215371d9ed2 SHA512 901c6f24afa1d78b6ed78d1ee30daf634ca0bbc0467ef9cc3416bcab4fbc4fda6869ffa051791d85c0b510de748805328627681ef044668a7857299f0035232e WHIRLPOOL 588d060f418f18ef193061ff88260ac7929647b2babde5b78ab73141ffc7f3782ce1254bfee1234ec0da8bb28bc16ede301b4ec1e2d3073b9c6d22cb526f06ca +DIST libdvdread-17d99db97e7b8f23077b342369d3c22a6250affd.tar.gz 124326 SHA256 e7179b2054163652596a56301c9f025515cb08c6d6310b42b897c3ad11c0199b SHA512 e59ae0bfdc62698e407e3d70503c6a7c5e308545c9dae7843e25db3b5b62d9b26256be77ef4e884263add6b4abec3438c324bfd5715f6ca2ce7fa5962d43a6c2 WHIRLPOOL b42130027d201e545fabc27677bd4238d04bcbc5a0e622ca6da396ac340ea94b5c60004557334464a31dac880603dab99e2f189e41d6cddbe9e32728c626085a +EBUILD kodi-17.3-r1.ebuild 8578 SHA256 fa8ebd38137a7df6c484cab7042f1303cf1284287f3b80a9f2ed3fcd43675d7d SHA512 c28e83c02371954747024c2d28d7348632773d7977ded7870d4c85242b4a4e3bf1f54008beff6fcfd50ff0a42cf0131d1fa25a09c83326f22371ce30bfa9cbb9 WHIRLPOOL 97ee56487651ee966fbd054234d456f05576675f1e13453a1a3d4cc28b001683600f8f5a1850e48c8f75aa121f63eab9134bd040c20ccf20c516f381d163f3d4 +EBUILD kodi-17.3.ebuild 8451 SHA256 786a0a33fcbc3a003989d0e6b733a0e6fc0d1b31c7f284d07cf12220cae35dc6 SHA512 de1310214a2a5087793dd6040786c0c97ed7c3fbdbba933ace0dc3623b8c58ac91bad0591a37e9c021d5b548567f9d5cf76dbd87685a80f317fd50f8bc7c7e78 WHIRLPOOL b5ca0a7864d4ce135660c93625c1761641f31b79e74f2f49846a2bcad7a431d46ad26fd8852a155ebf0ca1c2aa3d77543116fe29e6360ab8831b38f11e791f03 +EBUILD kodi-17.4-r1.ebuild 8791 SHA256 3060e2630be81ec93d730d9273a5d5ebdb056f33e74b1c7cac846e7afa5106f4 SHA512 f691fbc68fbb5e2c4fd7406f370071735c4f30b487c957f43b6b424f7f0b6c99e184b7e0bd752a224638cb456d25a54e16e7dcf957cd1cdead777d7bf07e32f7 WHIRLPOOL 6aacfc2b20545e8701e3e9ba358aea73b5a0a89083bd086bbabc1b7549d58ce2016077d85320e65c65b8cf318465f1ccaa2a802ac66be1056b50397edfab8a12 +EBUILD kodi-17.4.ebuild 8681 SHA256 19035885bb21b3e78cec298e749f77949857d5a5647ebc8524263684e7d22d99 SHA512 b4c5456292e67fd3051114f5d6d7de9d6241af0ba55c7d850e2d38bf58c0d22134c05f8134312e45f947e5dc736935a925f6b6b24f31465c879b5122ea86a714 WHIRLPOOL 56980d9351a6a992618cdccec8a77da66170a7ad14a62a4f4883c5e016f2135384c461b1d742d8cbb784bd1c7e3a065720f1c4faedfce9a035399d33a3363798 +EBUILD kodi-9999.ebuild 9403 SHA256 d3c8f0647982189ba21dcc0600fd2e4285bcf29bcee0e5c0247b1fefd4f77236 SHA512 7cde42449aa74ffd11bc0c66269648736025c9f021206ae0639816b604b75913b4e65a15fa4e9e4d16c66d7362c966fb8583438cbb93faac0bbcddc5f4a9cdab WHIRLPOOL bafdfd78ef353d3115d5cdee9061c59ae5646dd63c7068e6e236635fe5e5410154d49ba6057ab0c49bd66a82304d069af5dee9b4c27984bbb985d7291806dad6 +MISC ChangeLog 10199 SHA256 3f5e1658ba52c3c11da3a40af2339ab0cae0416e7d0d9b0b3433f1d02e6e3edc SHA512 b437c274abf9d6b4651468397b8be5df7cd4e5bf1fdea94120e0c642d368bb3af6bc90f9253c940c65ef5c2352d9e7063041bd73efbf0f9e1e43876f5298070c WHIRLPOOL f8945ddb9ee4c3ef8ddac0bfc216ea3a5307b04a6f8d9c94c6338a880efe484e6a4654dab0baf3bd721c810da5670d8ba390132b15fc24a5876b1ddeb472252d +MISC ChangeLog-2015 3574 SHA256 5c2511969e6a8bb6539549dd321d0883acf23d2e2be8232a04f1ce8bed0a84b2 SHA512 49f435da4fee73c3406d7c26ba752c584a9d95469cd75cdc5c4154271093ed9d4d8d9c3cce789fcaea361c389b89643af593599733e97d34a9d8a771cc14936a WHIRLPOOL 5b82789cdbac9fc836b79a922d7604dc3c107f94024b4a6092155baf7e19aceb711be0ff6dc64ea2a4b6de3a2c54a1a457a9c1daee05ebec96c94c7e68fa21ae +MISC metadata.xml 1716 SHA256 b3f5652694008ec0fba636013aefdeca3707abc43e0561041d31a5d4d5dedfcf SHA512 4ea0d31caa3a4c10ff5a421fa830c9db3eeb2628cecc19759ad218eb551d2c4382016ec5655a5c5be1e257eec29cad0717523a9fe3f251ff762cdf0ba60b4355 WHIRLPOOL 68819dd60cafb92496e2776fd94ebb0167477e45d5ab3063e351ecbe51ab714fb3fdeca9dec4654d0d185a1284c47265180e50973a0a919a91625b7a0a58182d diff --git a/media-tv/kodi/files/generate.sh b/media-tv/kodi/files/generate.sh new file mode 100755 index 000000000000..2e5b67fb90e1 --- /dev/null +++ b/media-tv/kodi/files/generate.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# Generate the various interface files that normally requires java. +# This makes building the release versions much nicer. + +set -eux + +PV=$1 +PN=kodi +P="${PN}-${PV}" +DISTDIR="/usr/portage/distfiles" +GITDIR="/usr/local/src/kodi/git" + +if [[ ${PV} != "9999" ]] ; then + rm -rf xbmc-*/ + tar xf ${DISTDIR}/${P}.tar.gz + d=$(echo xbmc-*/) +else + stamp=$(date --date="$(git log -n1 --pretty=format:%ci master)" -u +%Y%m%d) + P+="-${stamp}" + cd ${GITDIR} + d=. +fi +#cd ${d} && git init . && git add . && git commit -qmm && cd .. +make -C ${d} -j -f codegenerator.mk +tar="${DISTDIR}/${P}-generated-addons.tar.xz" +tar cf - \ + ${d}/xbmc/interfaces/python/generated/*.cpp \ + ${d}/xbmc/interfaces/json-rpc/ServiceDescription.h \ + | xz > "${tar}" +if [[ ${PV} != "9999" ]] ; then + rm -rf xbmc-*/ +fi + +du -b "${tar}" diff --git a/media-tv/kodi/files/kodi-17.3-ftpparse_string.patch b/media-tv/kodi/files/kodi-17.3-ftpparse_string.patch new file mode 100644 index 000000000000..da8d57a3d6b2 --- /dev/null +++ b/media-tv/kodi/files/kodi-17.3-ftpparse_string.patch @@ -0,0 +1,82 @@ +From 634153c85115b44015cdb1ddd6263f5a87e4e41b Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +Date: Sun, 7 May 2017 17:30:47 +0300 +Subject: [PATCH] FTPParse.cpp: use std::string + +--- + xbmc/filesystem/FTPParse.cpp | 44 ++++++++++++++++++++++---------------------- + 1 file changed, 22 insertions(+), 22 deletions(-) + +diff --git a/xbmc/filesystem/FTPParse.cpp b/xbmc/filesystem/FTPParse.cpp +index 8dd9633ae19e..d78349adb580 100644 +--- a/xbmc/filesystem/FTPParse.cpp ++++ b/xbmc/filesystem/FTPParse.cpp +@@ -30,7 +30,7 @@ CFTPParse::CFTPParse() + m_time = 0; + } + +-string CFTPParse::getName() ++std::string CFTPParse::getName() + { + return m_name; + } +@@ -55,16 +55,16 @@ time_t CFTPParse::getTime() + return m_time; + } + +-void CFTPParse::setTime(string str) ++void CFTPParse::setTime(std::string str) + { + /* Variables used to capture patterns via the regexes */ +- string month; +- string day; +- string year; +- string hour; +- string minute; +- string second; +- string am_or_pm; ++ std::string month; ++ std::string day; ++ std::string year; ++ std::string hour; ++ std::string minute; ++ std::string second; ++ std::string am_or_pm; + + /* time struct used to set the time_t variable */ + struct tm time_struct = {}; +@@ -334,21 +334,21 @@ int CFTPParse::getDayOfWeek(int month, int date, int year) + return day_of_week; + } + +-int CFTPParse::FTPParse(string str) ++int CFTPParse::FTPParse(std::string str) + { + /* Various variable to capture patterns via the regexes */ +- string permissions; +- string link_count; +- string owner; +- string group; +- string size; +- string date; +- string name; +- string type; +- string stuff; +- string facts; +- string version; +- string file_id; ++ std::string permissions; ++ std::string link_count; ++ std::string owner; ++ std::string group; ++ std::string size; ++ std::string date; ++ std::string name; ++ std::string type; ++ std::string stuff; ++ std::string facts; ++ std::string version; ++ std::string file_id; + + /* Regex for standard Unix listing formats */ + pcrecpp::RE unix_re("^([-bcdlps])" // type diff --git a/media-tv/kodi/files/kodi-17.3-unrar-vulnerability.patch b/media-tv/kodi/files/kodi-17.3-unrar-vulnerability.patch new file mode 100644 index 000000000000..95644d6921e7 --- /dev/null +++ b/media-tv/kodi/files/kodi-17.3-unrar-vulnerability.patch @@ -0,0 +1,45 @@ +See https://trac.kodi.tv/ticket/17510 +diff --git a/lib/UnrarXLib/rarvm.cpp b/lib/UnrarXLib/rarvm.cpp +index 901c35dcb4..42df0a0110 100644 +--- a/lib/UnrarXLib/rarvm.cpp ++++ b/lib/UnrarXLib/rarvm.cpp +@@ -873,14 +873,16 @@ void RarVM::ExecuteStandardFilter(VM_StandardFilters FilterType) + break; + case VMSF_DELTA: + { +- int DataSize=R[4],Channels=R[0],SrcPos=0,Border=DataSize*2; +- SET_VALUE(false,&Mem[VM_GLOBALMEMADDR+0x20],DataSize); +- if (DataSize>=VM_GLOBALMEMADDR/2) +- break; +- for (int CurChannel=0;CurChannelVM_MEMSIZE/2 || Channels>MAX3_UNPACK_CHANNELS || Channels==0) ++ break; ++ ++ // Bytes from same channels are grouped to continual data blocks, ++ // so we need to place them back to their interleaving positions. ++ for (uint CurChannel=0;CurChannel +Date: Tue, 29 Aug 2017 09:08:05 +0200 +Subject: [PATCH] Merge pull request #12727 from candrews/patch-6 + +[cmake] FindMySqlClient: Compatibility with MariaDB +--- + project/cmake/modules/FindMySqlClient.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/project/cmake/modules/FindMySqlClient.cmake b/project/cmake/modules/FindMySqlClient.cmake +index ceccea39b1e3..7b485778e4fc 100644 +--- a/project/cmake/modules/FindMySqlClient.cmake ++++ b/project/cmake/modules/FindMySqlClient.cmake +@@ -21,7 +21,7 @@ else() + set(EXTRA_FIND_ARGS) + endif() + +-find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql_time.h) ++find_path(MYSQLCLIENT_INCLUDE_DIR NAMES mysql/mysql.h mysql/server/mysql.h) + find_library(MYSQLCLIENT_LIBRARY_RELEASE NAMES mysqlclient libmysql + PATH_SUFFIXES mysql + ${EXTRA_FIND_ARGS}) diff --git a/media-tv/kodi/files/kodi-cmake-no-java.patch b/media-tv/kodi/files/kodi-cmake-no-java.patch new file mode 100644 index 000000000000..2d965ab351ee --- /dev/null +++ b/media-tv/kodi/files/kodi-cmake-no-java.patch @@ -0,0 +1,56 @@ +diff --git a/xbmc/interfaces/swig/CMakeLists.txt b/xbmc/interfaces/swig/CMakeLists.txt +index 6e676159eb..d45a2ecbab 100644 +--- a/xbmc/interfaces/swig/CMakeLists.txt ++++ b/xbmc/interfaces/swig/CMakeLists.txt +@@ -1,43 +1,21 @@ + function(generate_file file) +- set(classpath ${GROOVY_DIR}/groovy-all-${GROOVY_VER}.jar +- ${GROOVY_DIR}/commons-lang-${COMMONS_VER}.jar +- ${CORE_SOURCE_DIR}/tools/codegenerator +- ${CMAKE_CURRENT_SOURCE_DIR}/../python) +- if(NOT CORE_SYSTEM_NAME STREQUAL windows) +- set(devnull "/dev/null") +- string(REPLACE ";" ":" classpath "${classpath}") +- else() +- set(devnull "nul") +- endif() +- +- set(CPP_FILE ${file}.cpp) +- add_custom_command(OUTPUT ${CPP_FILE} +- COMMAND ${SWIG_EXECUTABLE} +- ARGS -w401 -c++ -o ${file}.xml -xml -I${CORE_SOURCE_DIR}/xbmc -xmllang python ${CMAKE_CURRENT_SOURCE_DIR}/../swig/${file} +- COMMAND ${Java_JAVA_EXECUTABLE} +- ARGS -cp "${classpath}" groovy.ui.GroovyMain ${CORE_SOURCE_DIR}/tools/codegenerator/Generator.groovy ${file}.xml ${CMAKE_CURRENT_SOURCE_DIR}/../python/PythonSwig.cpp.template ${file}.cpp > ${devnull} +- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../swig/${file}) ++ set(CPP_FILE ${CORE_SOURCE_DIR}/xbmc/interfaces/python/generated/${file}.cpp) + set(SOURCES ${SOURCES} "${CPP_FILE}" PARENT_SCOPE) + endfunction() + +-find_package(Java COMPONENTS Runtime REQUIRED) + find_package(SWIG REQUIRED) + + # The generated bindings +-set(INPUTS AddonModuleXbmcaddon.i +- AddonModuleXbmcgui.i +- AddonModuleXbmc.i +- AddonModuleXbmcplugin.i +- AddonModuleXbmcvfs.i +- AddonModuleXbmcwsgi.i) +- +-set(GROOVY_DIR ${CORE_SOURCE_DIR}/tools/codegenerator/groovy) +-set(GROOVY_VER 2.4.4) +-set(COMMONS_VER 2.6) ++set(INPUTS AddonModuleXbmcaddon ++ AddonModuleXbmcgui ++ AddonModuleXbmc ++ AddonModuleXbmcplugin ++ AddonModuleXbmcvfs ++ AddonModuleXbmcwsgi) + + foreach(INPUT IN LISTS INPUTS) + generate_file(${INPUT}) +- list(APPEND GEN_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${INPUT}.cpp) ++ list(APPEND GEN_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${INPUT}.i.cpp) + endforeach() + + add_library(python_binding STATIC ${SOURCES}) diff --git a/media-tv/kodi/kodi-17.3-r1.ebuild b/media-tv/kodi/kodi-17.3-r1.ebuild new file mode 100644 index 000000000000..439cdcf8d0a0 --- /dev/null +++ b/media-tv/kodi/kodi-17.3-r1.ebuild @@ -0,0 +1,290 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +# Does not work with py3 here +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite" + +inherit autotools cmake-utils eutils linux-info pax-utils python-single-r1 + +LIBDVDCSS_COMMIT="2f12236bc1c92f73c21e973363f79eb300de603f" +LIBDVDREAD_COMMIT="17d99db97e7b8f23077b342369d3c22a6250affd" +LIBDVDNAV_COMMIT="43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac" +FFMPEG_VERSION="3.1.6" +CODENAME="Krypton" +PATCHES=( + "${FILESDIR}/${P}-ftpparse_string.patch" + "${FILESDIR}/${P}-unrar-vulnerability.patch" +) +SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_COMMIT}.tar.gz -> libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz + https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_COMMIT}.tar.gz -> libdvdread-${LIBDVDREAD_COMMIT}.tar.gz + https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_COMMIT}.tar.gz -> libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz + !system-ffmpeg? ( https://github.com/xbmc/FFmpeg/archive/${FFMPEG_VERSION}-${CODENAME}.tar.gz -> ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}.tar.gz )" + +DESCRIPTION="Kodi is a free and open source media-player and entertainment hub" +HOMEPAGE="https://kodi.tv/ http://kodi.wiki/" + +LICENSE="GPL-2" +SLOT="0" +# use flag is called libusb so that it doesn't fool people in thinking that +# it is _required_ for USB support. Otherwise they'll disable udev and +# that's going to be worse. +IUSE="airplay alsa bluetooth bluray caps cec +css dbus debug dvd gles libressl libusb lirc mysql nfs nonfree +opengl pulseaudio samba sftp systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau webserver +X +xslt zeroconf" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + || ( gles opengl ) + gles? ( X ) + opengl? ( X ) + udev? ( !libusb ) + udisks? ( dbus ) + upower? ( dbus ) +" + +COMMON_DEPEND="${PYTHON_DEPS} + airplay? ( + app-pda/libplist + net-libs/shairplay + ) + alsa? ( media-libs/alsa-lib ) + bluetooth? ( net-wireless/bluez ) + bluray? ( >=media-libs/libbluray-0.7.0 ) + caps? ( sys-libs/libcap ) + dbus? ( sys-apps/dbus ) + dev-db/sqlite + dev-libs/expat + dev-libs/fribidi + cec? ( >=dev-libs/libcec-4.0 ) + dev-libs/libpcre[cxx] + dev-libs/libxml2 + >=dev-libs/lzo-2.04 + dev-libs/tinyxml[stl] + >=dev-libs/yajl-2 + dev-python/pillow[${PYTHON_USEDEP}] + dev-libs/libcdio + gles? ( media-libs/mesa[gles2] ) + libusb? ( virtual/libusb:1 ) + media-fonts/corefonts + >=media-fonts/noto-20160531 + media-fonts/roboto + media-libs/fontconfig + media-libs/freetype + >=media-libs/libass-0.13.4 + media-libs/mesa[egl] + >=media-libs/taglib-1.11.1 + system-ffmpeg? ( >=media-video/ffmpeg-${FFMPEG_VERSION}:=[encode,postproc] ) + mysql? ( virtual/mysql ) + >=net-misc/curl-7.51.0 + nfs? ( net-fs/libnfs:= ) + opengl? ( media-libs/glu ) + !libressl? ( >=dev-libs/openssl-1.0.2j:0= ) + libressl? ( dev-libs/libressl:0= ) + pulseaudio? ( media-sound/pulseaudio ) + samba? ( >=net-fs/samba-3.4.6[smbclient(+)] ) + sftp? ( net-libs/libssh[sftp] ) + sys-libs/zlib + udev? ( virtual/udev ) + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 ) + system-ffmpeg? ( media-video/ffmpeg[vdpau] ) + ) + webserver? ( >=net-libs/libmicrohttpd-0.9.50[messages] ) + X? ( + x11-libs/libdrm + x11-libs/libX11 + x11-libs/libXrandr + x11-libs/libXrender + ) + xslt? ( dev-libs/libxslt ) + zeroconf? ( net-dns/avahi[dbus] ) +" +RDEPEND="${COMMON_DEPEND} + lirc? ( + || ( app-misc/lirc app-misc/inputlircd ) + ) + !media-tv/xbmc + udisks? ( sys-fs/udisks:0 ) + upower? ( + systemd? ( sys-power/upower ) + !systemd? ( + || ( sys-power/upower-pm-utils sys-power/upower ) + ) + ) +" +DEPEND="${COMMON_DEPEND} + app-arch/bzip2 + app-arch/unzip + app-arch/xz-utils + app-arch/zip + dev-lang/swig + dev-libs/crossguid + dev-util/cmake + dev-util/gperf + media-libs/giflib + >=media-libs/libjpeg-turbo-1.5.1:= + >=media-libs/libpng-1.6.26:0= + test? ( dev-cpp/gtest ) + virtual/pkgconfig + x86? ( dev-lang/nasm ) +" +case ${PV} in +9999) + EGIT_REPO_URI="https://github.com/xbmc/xbmc.git" + inherit git-r3 + # Force java for latest git version to avoid having to hand maintain the + # generated addons package. #488118 + DEPEND+=" + virtual/jre + " + ;; +*) + MY_PV=${PV/_p/_r} + MY_PV=${MY_PV/_alpha/a} + MY_PV=${MY_PV/_beta/b} + MY_PV=${MY_PV/_rc/rc} + MY_P="${PN}-${MY_PV}" + SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}-${CODENAME}.tar.gz -> ${MY_P}.tar.gz + !java? ( https://github.com/candrews/gentoo-kodi/raw/master/${MY_P}-generated-addons.tar.xz )" + KEYWORDS="amd64 ~x86" + IUSE+=" java" + DEPEND+=" + java? ( virtual/jre ) + " + + S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME} + ;; +esac + +CONFIG_CHECK="~IP_MULTICAST" +ERROR_IP_MULTICAST=" +In some cases Kodi needs to access multicast addresses. +Please consider enabling IP_MULTICAST under Networking options. +" + +CMAKE_USE_DIR=${S}/project/cmake/ + +pkg_setup() { + check_extra_config + python-single-r1_pkg_setup +} + +src_prepare() { + if in_iuse java && use !java; then + eapply "${FILESDIR}"/${PN}-cmake-no-java.patch + fi + cmake-utils_src_prepare + + # 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 + + # Prepare tools and libs witch are configured with autotools during compile time + AUTOTOOLS_DIRS=( + "${S}"/lib/cpluff + "${S}"/tools/depends/native/TexturePacker/src + "${S}"/tools/depends/native/JsonSchemaBuilder/src + ) + + local d + for d in "${AUTOTOOLS_DIRS[@]}" ; do + pushd ${d} >/dev/null || die + AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" eautoreconf + popd >/dev/null || die + done + elibtoolize + + # Prevent autoreconf rerun + sed -e 's/autoreconf -vif/echo "autoreconf already done in src_prepare()"/' -i \ + "${S}"/project/cmake/modules/FindCpluff.cmake \ + "${S}"/tools/depends/native/TexturePacker/src/autogen.sh \ + "${S}"/tools/depends/native/JsonSchemaBuilder/src/autogen.sh \ + || die +} + +src_configure() { + local mycmakeargs=( + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + -DENABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124 + -DENABLE_ALSA=$(usex alsa) + -DENABLE_AIRTUNES=$(usex airplay) + -DENABLE_AVAHI=$(usex zeroconf) + -DENABLE_BLUETOOTH=$(usex bluetooth) + -DENABLE_BLURAY=$(usex bluray) + -DENABLE_CCACHE=OFF + -DENABLE_CEC=$(usex cec) + -DENABLE_DBUS=$(usex dbus) + -DENABLE_DVDCSS=$(usex css) + -DENABLE_INTERNAL_CROSSGUID=OFF + -DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)" + -DENABLE_CAP=$(usex caps) + -DENABLE_LIRC=$(usex lirc) + -DENABLE_MICROHTTPD=$(usex webserver) + -DENABLE_MYSQLCLIENT=$(usex mysql) + -DENABLE_NFS=$(usex nfs) + -DENABLE_NONFREE=$(usex nonfree) + -DENABLE_OPENGLES=$(usex gles) + -DENABLE_OPENGL=$(usex opengl) + -DENABLE_OPENSSL=ON + -DENABLE_OPTICAL=$(usex dvd) + -DENABLE_PLIST=$(usex airplay) + -DENABLE_PULSEAUDIO=$(usex pulseaudio) + -DENABLE_SMBCLIENT=$(usex samba) + -DENABLE_SSH=$(usex sftp) + -DENABLE_UDEV=$(usex udev) + -DENABLE_UPNP=$(usex upnp) + -DENABLE_VAAPI=$(usex vaapi) + -DENABLE_VDPAU=$(usex vdpau) + -DENABLE_X11=$(usex X) + -DENABLE_XSLT=$(usex xslt) + -Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_COMMIT}.tar.gz" + -Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz" + -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz" + ) + + use libusb && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) ) + + use !system-ffmpeg && mycmakeargs+=( -DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}.tar.gz" ) + + cmake-utils_src_configure +} + +src_compile() { + cmake-utils_src_compile all + use test && emake -C "${BUILD_DIR}" kodi-test +} + +src_test() { + emake -C "${BUILD_DIR}" test +} + +src_install() { + cmake-utils_src_install + + pax-mark Em "${ED%/}"/usr/$(get_libdir)/${PN}/${PN}.bin + + rm "${ED%/}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die + + newicon media/icon48x48.png kodi.png + + # Replace bundled fonts with system ones. + rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die + dosym ../../../../fonts/noto/NotoSans-Regular.ttf \ + usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf + + local f + for f in NotoMono-Regular.ttf NotoSans-Bold.ttf NotoSans-Regular.ttf ; do + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/"${f}" || die + dosym ../../../../fonts/noto/"${f}" \ + usr/share/kodi/addons/skin.estuary/fonts/"${f}" + done + + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf || die + dosym ../../../../fonts/roboto/Roboto-Thin.ttf \ + usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf + + python_domodule tools/EventClients/lib/python/xbmcclient.py + python_newscript "tools/EventClients/Clients/Kodi Send/kodi-send.py" kodi-send +} diff --git a/media-tv/kodi/kodi-17.3.ebuild b/media-tv/kodi/kodi-17.3.ebuild new file mode 100644 index 000000000000..48000044633d --- /dev/null +++ b/media-tv/kodi/kodi-17.3.ebuild @@ -0,0 +1,284 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +# Does not work with py3 here +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite" + +inherit autotools cmake-utils eutils linux-info pax-utils python-single-r1 + +LIBDVDCSS_COMMIT="2f12236bc1c92f73c21e973363f79eb300de603f" +LIBDVDREAD_COMMIT="17d99db97e7b8f23077b342369d3c22a6250affd" +LIBDVDNAV_COMMIT="43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac" +FFMPEG_VERSION="3.1.6" +CODENAME="Krypton" +PATCHES=( + "${FILESDIR}/${P}-ftpparse_string.patch" +) +SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_COMMIT}.tar.gz -> libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz + https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_COMMIT}.tar.gz -> libdvdread-${LIBDVDREAD_COMMIT}.tar.gz + https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_COMMIT}.tar.gz -> libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz + !system-ffmpeg? ( https://github.com/xbmc/FFmpeg/archive/${FFMPEG_VERSION}-${CODENAME}.tar.gz -> ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}.tar.gz )" + +DESCRIPTION="Kodi is a free and open source media-player and entertainment hub" +HOMEPAGE="https://kodi.tv/ http://kodi.wiki/" + +LICENSE="GPL-2" +SLOT="0" +# use flag is called libusb so that it doesn't fool people in thinking that +# it is _required_ for USB support. Otherwise they'll disable udev and +# that's going to be worse. +IUSE="airplay alsa bluetooth bluray caps cec +css dbus debug dvd gles libressl libusb lirc mysql nfs nonfree +opengl pulseaudio samba sftp systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau webserver +X +xslt zeroconf" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + || ( gles opengl ) + gles? ( X ) + opengl? ( X ) + udev? ( !libusb ) + udisks? ( dbus ) + upower? ( dbus ) +" + +COMMON_DEPEND="${PYTHON_DEPS} + airplay? ( + app-pda/libplist + net-libs/shairplay + ) + alsa? ( media-libs/alsa-lib ) + bluetooth? ( net-wireless/bluez ) + bluray? ( >=media-libs/libbluray-0.7.0 ) + caps? ( sys-libs/libcap ) + dbus? ( sys-apps/dbus ) + dev-db/sqlite + dev-libs/expat + dev-libs/fribidi + cec? ( >=dev-libs/libcec-4.0 ) + dev-libs/libpcre[cxx] + dev-libs/libxml2 + >=dev-libs/lzo-2.04 + dev-libs/tinyxml[stl] + >=dev-libs/yajl-2 + dev-python/pillow[${PYTHON_USEDEP}] + dev-libs/libcdio + gles? ( media-libs/mesa[gles2] ) + libusb? ( virtual/libusb:1 ) + media-fonts/corefonts + >=media-fonts/noto-20160531 + media-fonts/roboto + media-libs/fontconfig + media-libs/freetype + >=media-libs/libass-0.13.4 + media-libs/mesa[egl] + >=media-libs/taglib-1.11.1 + system-ffmpeg? ( >=media-video/ffmpeg-${FFMPEG_VERSION}:=[encode,postproc] ) + mysql? ( virtual/mysql ) + >=net-misc/curl-7.51.0 + nfs? ( net-fs/libnfs:= ) + opengl? ( media-libs/glu ) + !libressl? ( >=dev-libs/openssl-1.0.2j:0= ) + libressl? ( dev-libs/libressl:0= ) + pulseaudio? ( media-sound/pulseaudio ) + samba? ( >=net-fs/samba-3.4.6[smbclient(+)] ) + sftp? ( net-libs/libssh[sftp] ) + sys-libs/zlib + udev? ( virtual/udev ) + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 ) + system-ffmpeg? ( media-video/ffmpeg[vdpau] ) + ) + webserver? ( >=net-libs/libmicrohttpd-0.9.50[messages] ) + X? ( + x11-libs/libdrm + x11-libs/libX11 + x11-libs/libXrandr + x11-libs/libXrender + ) + xslt? ( dev-libs/libxslt ) + zeroconf? ( net-dns/avahi[dbus] ) +" +RDEPEND="${COMMON_DEPEND} + lirc? ( + || ( app-misc/lirc app-misc/inputlircd ) + ) + !media-tv/xbmc + udisks? ( sys-fs/udisks:0 ) + upower? ( + systemd? ( sys-power/upower ) + !systemd? ( + || ( sys-power/upower-pm-utils sys-power/upower ) + ) + ) +" +DEPEND="${COMMON_DEPEND} + app-arch/bzip2 + app-arch/unzip + app-arch/xz-utils + app-arch/zip + dev-lang/swig + dev-libs/crossguid + dev-util/cmake + dev-util/gperf + media-libs/giflib + >=media-libs/libjpeg-turbo-1.5.1:= + >=media-libs/libpng-1.6.26:0= + test? ( dev-cpp/gtest ) + virtual/pkgconfig + x86? ( dev-lang/nasm ) +" +case ${PV} in +9999) + EGIT_REPO_URI="https://github.com/xbmc/xbmc.git" + inherit git-r3 + # Force java for latest git version to avoid having to hand maintain the + # generated addons package. #488118 + DEPEND+=" + virtual/jre + " + ;; +*) + MY_PV=${PV/_p/_r} + MY_PV=${MY_PV/_alpha/a} + MY_PV=${MY_PV/_beta/b} + MY_PV=${MY_PV/_rc/rc} + MY_P="${PN}-${MY_PV}" + SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}-${CODENAME}.tar.gz -> ${MY_P}.tar.gz + !java? ( https://github.com/candrews/gentoo-kodi/raw/master/${MY_P}-generated-addons.tar.xz )" + KEYWORDS="amd64 x86" + IUSE+=" java" + DEPEND+=" + java? ( virtual/jre ) + " + + S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME} + ;; +esac + +CONFIG_CHECK="~IP_MULTICAST" +ERROR_IP_MULTICAST=" +In some cases Kodi needs to access multicast addresses. +Please consider enabling IP_MULTICAST under Networking options. +" + +CMAKE_USE_DIR=${S}/project/cmake/ + +pkg_setup() { + check_extra_config + python-single-r1_pkg_setup +} + +src_prepare() { + if in_iuse java && use !java; then + eapply "${FILESDIR}"/${PN}-cmake-no-java.patch + fi + cmake-utils_src_prepare + + # 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 + + # Prepare tools and libs witch are configured with autotools during compile time + AUTOTOOLS_DIRS=( + "${S}"/lib/cpluff + "${S}"/tools/depends/native/TexturePacker/src + "${S}"/tools/depends/native/JsonSchemaBuilder/src + ) + + local d + for d in "${AUTOTOOLS_DIRS[@]}" ; do + pushd ${d} >/dev/null || die + AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" eautoreconf + popd >/dev/null || die + done + elibtoolize + + # Prevent autoreconf rerun + sed -e 's/autoreconf -vif/echo "autoreconf already done in src_prepare()"/' -i \ + "${S}"/project/cmake/modules/FindCpluff.cmake \ + "${S}"/tools/depends/native/TexturePacker/src/autogen.sh \ + "${S}"/tools/depends/native/JsonSchemaBuilder/src/autogen.sh \ + || die +} + +src_configure() { + local mycmakeargs=( + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + -DENABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124 + -DENABLE_ALSA=$(usex alsa) + -DENABLE_AIRTUNES=$(usex airplay) + -DENABLE_AVAHI=$(usex zeroconf) + -DENABLE_BLUETOOTH=$(usex bluetooth) + -DENABLE_BLURAY=$(usex bluray) + -DENABLE_CCACHE=OFF + -DENABLE_CEC=$(usex cec) + -DENABLE_DBUS=$(usex dbus) + -DENABLE_DVDCSS=$(usex css) + -DENABLE_INTERNAL_CROSSGUID=OFF + -DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)" + -DENABLE_CAP=$(usex caps) + -DENABLE_LIRC=$(usex lirc) + -DENABLE_MICROHTTPD=$(usex webserver) + -DENABLE_MYSQLCLIENT=$(usex mysql) + -DENABLE_NFS=$(usex nfs) + -DENABLE_NONFREE=$(usex nonfree) + -DENABLE_OPENGLES=$(usex gles) + -DENABLE_OPENGL=$(usex opengl) + -DENABLE_OPENSSL=ON + -DENABLE_OPTICAL=$(usex dvd) + -DENABLE_PLIST=$(usex airplay) + -DENABLE_PULSEAUDIO=$(usex pulseaudio) + -DENABLE_SMBCLIENT=$(usex samba) + -DENABLE_SSH=$(usex sftp) + -DENABLE_UDEV=$(usex udev) + -DENABLE_UPNP=$(usex upnp) + -DENABLE_VAAPI=$(usex vaapi) + -DENABLE_VDPAU=$(usex vdpau) + -DENABLE_X11=$(usex X) + -DENABLE_XSLT=$(usex xslt) + -Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_COMMIT}.tar.gz" + -Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz" + -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz" + ) + + use libusb && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) ) + + use !system-ffmpeg && mycmakeargs+=( -DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}.tar.gz" ) + + cmake-utils_src_configure +} + +src_compile() { + cmake-utils_src_compile all $(usev test) +} + +src_install() { + cmake-utils_src_install + + pax-mark Em "${ED%/}"/usr/$(get_libdir)/${PN}/${PN}.bin + + rm "${ED%/}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die + + newicon media/icon48x48.png kodi.png + + # Replace bundled fonts with system ones. + rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die + dosym ../../../../fonts/noto/NotoSans-Regular.ttf \ + usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf + + local f + for f in NotoMono-Regular.ttf NotoSans-Bold.ttf NotoSans-Regular.ttf ; do + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/"${f}" || die + dosym ../../../../fonts/noto/"${f}" \ + usr/share/kodi/addons/skin.estuary/fonts/"${f}" + done + + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf || die + dosym ../../../../fonts/roboto/Roboto-Thin.ttf \ + usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf + + python_domodule tools/EventClients/lib/python/xbmcclient.py + python_newscript "tools/EventClients/Clients/Kodi Send/kodi-send.py" kodi-send +} diff --git a/media-tv/kodi/kodi-17.4-r1.ebuild b/media-tv/kodi/kodi-17.4-r1.ebuild new file mode 100644 index 000000000000..de54ded326de --- /dev/null +++ b/media-tv/kodi/kodi-17.4-r1.ebuild @@ -0,0 +1,296 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +# Does not work with py3 here +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite" + +inherit autotools cmake-utils eutils linux-info pax-utils python-single-r1 versionator + +LIBDVDCSS_COMMIT="2f12236bc1c92f73c21e973363f79eb300de603f" +LIBDVDREAD_COMMIT="17d99db97e7b8f23077b342369d3c22a6250affd" +LIBDVDNAV_COMMIT="43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac" +FFMPEG_VERSION="3.1.9" +FFMPEG_KODI_VERSION="$(get_version_component_range 1-2)" +CODENAME="Krypton" +PATCHES=( + "${FILESDIR}/${P}-mariadb.patch" +) +SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_COMMIT}.tar.gz -> libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz + https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_COMMIT}.tar.gz -> libdvdread-${LIBDVDREAD_COMMIT}.tar.gz + https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_COMMIT}.tar.gz -> libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz + !system-ffmpeg? ( https://github.com/xbmc/FFmpeg/archive/${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz -> ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz )" + +DESCRIPTION="Kodi is a free and open source media-player and entertainment hub" +HOMEPAGE="https://kodi.tv/ http://kodi.wiki/" + +LICENSE="GPL-2" +SLOT="0" +# use flag is called libusb so that it doesn't fool people in thinking that +# it is _required_ for USB support. Otherwise they'll disable udev and +# that's going to be worse. +IUSE="airplay alsa bluetooth bluray caps cec +css dbus debug dvd gles lcms libressl libusb lirc mysql nfs nonfree +opengl pulseaudio samba sftp systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau webserver +X +xslt zeroconf" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + || ( gles opengl ) + gles? ( X ) + opengl? ( X ) + udev? ( !libusb ) + udisks? ( dbus ) + upower? ( dbus ) +" + +COMMON_DEPEND="${PYTHON_DEPS} + airplay? ( + app-pda/libplist + net-libs/shairplay + ) + alsa? ( media-libs/alsa-lib ) + bluetooth? ( net-wireless/bluez ) + bluray? ( >=media-libs/libbluray-0.7.0 ) + caps? ( sys-libs/libcap ) + dbus? ( sys-apps/dbus ) + dev-db/sqlite + dev-libs/expat + dev-libs/fribidi + cec? ( >=dev-libs/libcec-4.0 ) + dev-libs/libpcre[cxx] + dev-libs/libxml2 + >=dev-libs/lzo-2.04 + dev-libs/tinyxml[stl] + >=dev-libs/yajl-2 + dev-python/pillow[${PYTHON_USEDEP}] + dev-libs/libcdio + gles? ( media-libs/mesa[gles2] ) + lcms? ( media-libs/lcms:2 ) + libusb? ( virtual/libusb:1 ) + media-fonts/corefonts + >=media-fonts/noto-20160531 + media-fonts/roboto + media-libs/fontconfig + media-libs/freetype + >=media-libs/libass-0.13.4 + media-libs/mesa[egl] + >=media-libs/taglib-1.11.1 + system-ffmpeg? ( >=media-video/ffmpeg-${FFMPEG_VERSION}:=[encode,openssl,postproc] ) + mysql? ( virtual/mysql ) + >=net-misc/curl-7.51.0 + nfs? ( net-fs/libnfs:= ) + opengl? ( media-libs/glu ) + !libressl? ( >=dev-libs/openssl-1.0.2j:0= ) + libressl? ( dev-libs/libressl:0= ) + pulseaudio? ( media-sound/pulseaudio ) + samba? ( >=net-fs/samba-3.4.6[smbclient(+)] ) + sftp? ( net-libs/libssh[sftp] ) + sys-libs/zlib + udev? ( virtual/udev ) + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 ) + system-ffmpeg? ( media-video/ffmpeg[vdpau] ) + ) + webserver? ( >=net-libs/libmicrohttpd-0.9.50[messages] ) + X? ( + x11-libs/libdrm + x11-libs/libX11 + x11-libs/libXrandr + x11-libs/libXrender + ) + xslt? ( dev-libs/libxslt ) + zeroconf? ( net-dns/avahi[dbus] ) +" +RDEPEND="${COMMON_DEPEND} + lirc? ( + || ( app-misc/lirc app-misc/inputlircd ) + ) + !media-tv/xbmc + udisks? ( sys-fs/udisks:0 ) + upower? ( + systemd? ( sys-power/upower ) + !systemd? ( + || ( sys-power/upower-pm-utils sys-power/upower ) + ) + ) +" +DEPEND="${COMMON_DEPEND} + app-arch/bzip2 + app-arch/unzip + app-arch/xz-utils + app-arch/zip + dev-lang/swig + dev-libs/crossguid + dev-util/cmake + dev-util/gperf + media-libs/giflib + >=media-libs/libjpeg-turbo-1.5.1:= + >=media-libs/libpng-1.6.26:0= + test? ( dev-cpp/gtest ) + virtual/pkgconfig + x86? ( dev-lang/nasm ) +" +case ${PV} in +9999) + EGIT_REPO_URI="https://github.com/xbmc/xbmc.git" + inherit git-r3 + # Force java for latest git version to avoid having to hand maintain the + # generated addons package. #488118 + DEPEND+=" + virtual/jre + " + ;; +*) + MY_PV=${PV/_p/_r} + MY_PV=${MY_PV/_alpha/a} + MY_PV=${MY_PV/_beta/b} + MY_PV=${MY_PV/_rc/rc} + MY_P="${PN}-${MY_PV}" + SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}-${CODENAME}.tar.gz -> ${MY_P}.tar.gz + !java? ( https://github.com/candrews/gentoo-kodi/raw/master/${MY_P}-generated-addons.tar.xz )" + KEYWORDS="~amd64 ~x86" + IUSE+=" java" + DEPEND+=" + java? ( virtual/jre ) + " + + S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME} + ;; +esac + +CONFIG_CHECK="~IP_MULTICAST" +ERROR_IP_MULTICAST=" +In some cases Kodi needs to access multicast addresses. +Please consider enabling IP_MULTICAST under Networking options. +" + +CMAKE_USE_DIR=${S}/project/cmake/ + +pkg_setup() { + check_extra_config + python-single-r1_pkg_setup +} + +src_prepare() { + if in_iuse java && use !java; then + eapply "${FILESDIR}"/${PN}-cmake-no-java.patch + fi + cmake-utils_src_prepare + + # 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 + + # Prepare tools and libs witch are configured with autotools during compile time + AUTOTOOLS_DIRS=( + "${S}"/lib/cpluff + "${S}"/tools/depends/native/TexturePacker/src + "${S}"/tools/depends/native/JsonSchemaBuilder/src + ) + + local d + for d in "${AUTOTOOLS_DIRS[@]}" ; do + pushd ${d} >/dev/null || die + AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" eautoreconf + popd >/dev/null || die + done + elibtoolize + + # Prevent autoreconf rerun + sed -e 's/autoreconf -vif/echo "autoreconf already done in src_prepare()"/' -i \ + "${S}"/project/cmake/modules/FindCpluff.cmake \ + "${S}"/tools/depends/native/TexturePacker/src/autogen.sh \ + "${S}"/tools/depends/native/JsonSchemaBuilder/src/autogen.sh \ + || die +} + +src_configure() { + local mycmakeargs=( + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + -DENABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124 + -DENABLE_ALSA=$(usex alsa) + -DENABLE_AIRTUNES=$(usex airplay) + -DENABLE_AVAHI=$(usex zeroconf) + -DENABLE_BLUETOOTH=$(usex bluetooth) + -DENABLE_BLURAY=$(usex bluray) + -DENABLE_CCACHE=OFF + -DENABLE_CEC=$(usex cec) + -DENABLE_DBUS=$(usex dbus) + -DENABLE_DVDCSS=$(usex css) + -DENABLE_INTERNAL_CROSSGUID=OFF + -DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)" + -DENABLE_CAP=$(usex caps) + -DENABLE_LCMS2=$(usex lcms) + -DENABLE_LIRC=$(usex lirc) + -DENABLE_MICROHTTPD=$(usex webserver) + -DENABLE_MYSQLCLIENT=$(usex mysql) + -DENABLE_NFS=$(usex nfs) + -DENABLE_NONFREE=$(usex nonfree) + -DENABLE_OPENGLES=$(usex gles) + -DENABLE_OPENGL=$(usex opengl) + -DENABLE_OPENSSL=ON + -DENABLE_OPTICAL=$(usex dvd) + -DENABLE_PLIST=$(usex airplay) + -DENABLE_PULSEAUDIO=$(usex pulseaudio) + -DENABLE_SMBCLIENT=$(usex samba) + -DENABLE_SSH=$(usex sftp) + -DENABLE_UDEV=$(usex udev) + -DENABLE_UPNP=$(usex upnp) + -DENABLE_VAAPI=$(usex vaapi) + -DENABLE_VDPAU=$(usex vdpau) + -DENABLE_X11=$(usex X) + -DENABLE_XSLT=$(usex xslt) + -Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_COMMIT}.tar.gz" + -Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz" + -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz" + ) + + use libusb && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) ) + + if use system-ffmpeg; then + mycmakeargs+=( -DWITH_FFMPEG="yes" ) + else + mycmakeargs+=( -DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz" ) + fi + + cmake-utils_src_configure +} + +src_compile() { + cmake-utils_src_compile all + use test && emake -C "${BUILD_DIR}" kodi-test +} + +src_test() { + emake -C "${BUILD_DIR}" test +} + +src_install() { + cmake-utils_src_install + + pax-mark Em "${ED%/}"/usr/$(get_libdir)/${PN}/${PN}.bin + + rm "${ED%/}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die + + newicon media/icon48x48.png kodi.png + + # Replace bundled fonts with system ones. + rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die + dosym ../../../../fonts/noto/NotoSans-Regular.ttf \ + usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf + + local f + for f in NotoMono-Regular.ttf NotoSans-Bold.ttf NotoSans-Regular.ttf ; do + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/"${f}" || die + dosym ../../../../fonts/noto/"${f}" \ + usr/share/kodi/addons/skin.estuary/fonts/"${f}" + done + + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf || die + dosym ../../../../fonts/roboto/Roboto-Thin.ttf \ + usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf + + python_domodule tools/EventClients/lib/python/xbmcclient.py + python_newscript "tools/EventClients/Clients/Kodi Send/kodi-send.py" kodi-send +} diff --git a/media-tv/kodi/kodi-17.4.ebuild b/media-tv/kodi/kodi-17.4.ebuild new file mode 100644 index 000000000000..50e4a9c83256 --- /dev/null +++ b/media-tv/kodi/kodi-17.4.ebuild @@ -0,0 +1,291 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +# Does not work with py3 here +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite" + +inherit autotools cmake-utils eutils linux-info pax-utils python-single-r1 versionator + +LIBDVDCSS_COMMIT="2f12236bc1c92f73c21e973363f79eb300de603f" +LIBDVDREAD_COMMIT="17d99db97e7b8f23077b342369d3c22a6250affd" +LIBDVDNAV_COMMIT="43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac" +FFMPEG_VERSION="3.1.9" +FFMPEG_KODI_VERSION="$(get_version_component_range 1-2)" +CODENAME="Krypton" +SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_COMMIT}.tar.gz -> libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz + https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_COMMIT}.tar.gz -> libdvdread-${LIBDVDREAD_COMMIT}.tar.gz + https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_COMMIT}.tar.gz -> libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz + !system-ffmpeg? ( https://github.com/xbmc/FFmpeg/archive/${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz -> ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz )" + +DESCRIPTION="Kodi is a free and open source media-player and entertainment hub" +HOMEPAGE="https://kodi.tv/ http://kodi.wiki/" + +LICENSE="GPL-2" +SLOT="0" +# use flag is called libusb so that it doesn't fool people in thinking that +# it is _required_ for USB support. Otherwise they'll disable udev and +# that's going to be worse. +IUSE="airplay alsa bluetooth bluray caps cec +css dbus debug dvd gles libressl libusb lirc mysql nfs nonfree +opengl pulseaudio samba sftp systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau webserver +X +xslt zeroconf" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + || ( gles opengl ) + gles? ( X ) + opengl? ( X ) + udev? ( !libusb ) + udisks? ( dbus ) + upower? ( dbus ) +" + +COMMON_DEPEND="${PYTHON_DEPS} + airplay? ( + app-pda/libplist + net-libs/shairplay + ) + alsa? ( media-libs/alsa-lib ) + bluetooth? ( net-wireless/bluez ) + bluray? ( >=media-libs/libbluray-0.7.0 ) + caps? ( sys-libs/libcap ) + dbus? ( sys-apps/dbus ) + dev-db/sqlite + dev-libs/expat + dev-libs/fribidi + cec? ( >=dev-libs/libcec-4.0 ) + dev-libs/libpcre[cxx] + dev-libs/libxml2 + >=dev-libs/lzo-2.04 + dev-libs/tinyxml[stl] + >=dev-libs/yajl-2 + dev-python/pillow[${PYTHON_USEDEP}] + dev-libs/libcdio + gles? ( media-libs/mesa[gles2] ) + libusb? ( virtual/libusb:1 ) + media-fonts/corefonts + >=media-fonts/noto-20160531 + media-fonts/roboto + media-libs/fontconfig + media-libs/freetype + >=media-libs/libass-0.13.4 + media-libs/mesa[egl] + >=media-libs/taglib-1.11.1 + system-ffmpeg? ( >=media-video/ffmpeg-${FFMPEG_VERSION}:=[encode,openssl,postproc] ) + mysql? ( virtual/mysql ) + >=net-misc/curl-7.51.0 + nfs? ( net-fs/libnfs:= ) + opengl? ( media-libs/glu ) + !libressl? ( >=dev-libs/openssl-1.0.2j:0= ) + libressl? ( dev-libs/libressl:0= ) + pulseaudio? ( media-sound/pulseaudio ) + samba? ( >=net-fs/samba-3.4.6[smbclient(+)] ) + sftp? ( net-libs/libssh[sftp] ) + sys-libs/zlib + udev? ( virtual/udev ) + vaapi? ( x11-libs/libva[opengl] ) + vdpau? ( + || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 ) + system-ffmpeg? ( media-video/ffmpeg[vdpau] ) + ) + webserver? ( >=net-libs/libmicrohttpd-0.9.50[messages] ) + X? ( + x11-libs/libdrm + x11-libs/libX11 + x11-libs/libXrandr + x11-libs/libXrender + ) + xslt? ( dev-libs/libxslt ) + zeroconf? ( net-dns/avahi[dbus] ) +" +RDEPEND="${COMMON_DEPEND} + lirc? ( + || ( app-misc/lirc app-misc/inputlircd ) + ) + !media-tv/xbmc + udisks? ( sys-fs/udisks:0 ) + upower? ( + systemd? ( sys-power/upower ) + !systemd? ( + || ( sys-power/upower-pm-utils sys-power/upower ) + ) + ) +" +DEPEND="${COMMON_DEPEND} + app-arch/bzip2 + app-arch/unzip + app-arch/xz-utils + app-arch/zip + dev-lang/swig + dev-libs/crossguid + dev-util/cmake + dev-util/gperf + media-libs/giflib + >=media-libs/libjpeg-turbo-1.5.1:= + >=media-libs/libpng-1.6.26:0= + test? ( dev-cpp/gtest ) + virtual/pkgconfig + x86? ( dev-lang/nasm ) +" +case ${PV} in +9999) + EGIT_REPO_URI="https://github.com/xbmc/xbmc.git" + inherit git-r3 + # Force java for latest git version to avoid having to hand maintain the + # generated addons package. #488118 + DEPEND+=" + virtual/jre + " + ;; +*) + MY_PV=${PV/_p/_r} + MY_PV=${MY_PV/_alpha/a} + MY_PV=${MY_PV/_beta/b} + MY_PV=${MY_PV/_rc/rc} + MY_P="${PN}-${MY_PV}" + SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}-${CODENAME}.tar.gz -> ${MY_P}.tar.gz + !java? ( https://github.com/candrews/gentoo-kodi/raw/master/${MY_P}-generated-addons.tar.xz )" + KEYWORDS="~amd64 ~x86" + IUSE+=" java" + DEPEND+=" + java? ( virtual/jre ) + " + + S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME} + ;; +esac + +CONFIG_CHECK="~IP_MULTICAST" +ERROR_IP_MULTICAST=" +In some cases Kodi needs to access multicast addresses. +Please consider enabling IP_MULTICAST under Networking options. +" + +CMAKE_USE_DIR=${S}/project/cmake/ + +pkg_setup() { + check_extra_config + python-single-r1_pkg_setup +} + +src_prepare() { + if in_iuse java && use !java; then + eapply "${FILESDIR}"/${PN}-cmake-no-java.patch + fi + cmake-utils_src_prepare + + # 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 + + # Prepare tools and libs witch are configured with autotools during compile time + AUTOTOOLS_DIRS=( + "${S}"/lib/cpluff + "${S}"/tools/depends/native/TexturePacker/src + "${S}"/tools/depends/native/JsonSchemaBuilder/src + ) + + local d + for d in "${AUTOTOOLS_DIRS[@]}" ; do + pushd ${d} >/dev/null || die + AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" eautoreconf + popd >/dev/null || die + done + elibtoolize + + # Prevent autoreconf rerun + sed -e 's/autoreconf -vif/echo "autoreconf already done in src_prepare()"/' -i \ + "${S}"/project/cmake/modules/FindCpluff.cmake \ + "${S}"/tools/depends/native/TexturePacker/src/autogen.sh \ + "${S}"/tools/depends/native/JsonSchemaBuilder/src/autogen.sh \ + || die +} + +src_configure() { + local mycmakeargs=( + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + -DENABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124 + -DENABLE_ALSA=$(usex alsa) + -DENABLE_AIRTUNES=$(usex airplay) + -DENABLE_AVAHI=$(usex zeroconf) + -DENABLE_BLUETOOTH=$(usex bluetooth) + -DENABLE_BLURAY=$(usex bluray) + -DENABLE_CCACHE=OFF + -DENABLE_CEC=$(usex cec) + -DENABLE_DBUS=$(usex dbus) + -DENABLE_DVDCSS=$(usex css) + -DENABLE_INTERNAL_CROSSGUID=OFF + -DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)" + -DENABLE_CAP=$(usex caps) + -DENABLE_LIRC=$(usex lirc) + -DENABLE_MICROHTTPD=$(usex webserver) + -DENABLE_MYSQLCLIENT=$(usex mysql) + -DENABLE_NFS=$(usex nfs) + -DENABLE_NONFREE=$(usex nonfree) + -DENABLE_OPENGLES=$(usex gles) + -DENABLE_OPENGL=$(usex opengl) + -DENABLE_OPENSSL=ON + -DENABLE_OPTICAL=$(usex dvd) + -DENABLE_PLIST=$(usex airplay) + -DENABLE_PULSEAUDIO=$(usex pulseaudio) + -DENABLE_SMBCLIENT=$(usex samba) + -DENABLE_SSH=$(usex sftp) + -DENABLE_UDEV=$(usex udev) + -DENABLE_UPNP=$(usex upnp) + -DENABLE_VAAPI=$(usex vaapi) + -DENABLE_VDPAU=$(usex vdpau) + -DENABLE_X11=$(usex X) + -DENABLE_XSLT=$(usex xslt) + -Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_COMMIT}.tar.gz" + -Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz" + -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz" + ) + + use libusb && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) ) + + if use system-ffmpeg; then + mycmakeargs+=( -DWITH_FFMPEG="yes" ) + else + mycmakeargs+=( -DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz" ) + fi + + cmake-utils_src_configure +} + +src_compile() { + cmake-utils_src_compile all + use test && emake -C "${BUILD_DIR}" kodi-test +} + +src_test() { + emake -C "${BUILD_DIR}" test +} + +src_install() { + cmake-utils_src_install + + pax-mark Em "${ED%/}"/usr/$(get_libdir)/${PN}/${PN}.bin + + rm "${ED%/}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die + + newicon media/icon48x48.png kodi.png + + # Replace bundled fonts with system ones. + rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die + dosym ../../../../fonts/noto/NotoSans-Regular.ttf \ + usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf + + local f + for f in NotoMono-Regular.ttf NotoSans-Bold.ttf NotoSans-Regular.ttf ; do + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/"${f}" || die + dosym ../../../../fonts/noto/"${f}" \ + usr/share/kodi/addons/skin.estuary/fonts/"${f}" + done + + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf || die + dosym ../../../../fonts/roboto/Roboto-Thin.ttf \ + usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf + + python_domodule tools/EventClients/lib/python/xbmcclient.py + python_newscript "tools/EventClients/Clients/Kodi Send/kodi-send.py" kodi-send +} diff --git a/media-tv/kodi/kodi-9999.ebuild b/media-tv/kodi/kodi-9999.ebuild new file mode 100644 index 000000000000..0f68a3f58fe6 --- /dev/null +++ b/media-tv/kodi/kodi-9999.ebuild @@ -0,0 +1,321 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +# Does not work with py3 here +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite" + +inherit autotools cmake-utils eutils linux-info pax-utils python-single-r1 + +LIBDVDCSS_COMMIT="2f12236bc1c92f73c21e973363f79eb300de603f" +LIBDVDREAD_COMMIT="17d99db97e7b8f23077b342369d3c22a6250affd" +LIBDVDNAV_COMMIT="43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac" +FFMPEG_VERSION="3.3.3" +CODENAME="Leia" +FFMPEG_KODI_VERSION="Alpha-1" +SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_COMMIT}.tar.gz -> libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz + https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_COMMIT}.tar.gz -> libdvdread-${LIBDVDREAD_COMMIT}.tar.gz + https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_COMMIT}.tar.gz -> libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz + !system-ffmpeg? ( https://github.com/xbmc/FFmpeg/archive/${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz -> ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz )" + +DESCRIPTION="Kodi is a free and open source media-player and entertainment hub" +HOMEPAGE="https://kodi.tv/ http://kodi.wiki/" + +LICENSE="GPL-2" +SLOT="0" +# use flag is called libusb so that it doesn't fool people in thinking that +# it is _required_ for USB support. Otherwise they'll disable udev and +# that's going to be worse. +IUSE="airplay alsa bluetooth bluray caps cec +css dbus debug dvd gbm gles lcms libressl libusb lirc mysql nfs +opengl pulseaudio samba sftp systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau wayland webserver +X +xslt zeroconf" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + gbm? ( gles ) + || ( gles opengl ) + ^^ ( gbm wayland X ) + udev? ( !libusb ) + udisks? ( dbus ) + upower? ( dbus ) +" + +COMMON_DEPEND="${PYTHON_DEPS} + airplay? ( + app-pda/libplist + net-libs/shairplay + ) + alsa? ( >=media-libs/alsa-lib-1.1.4.1 ) + bluetooth? ( net-wireless/bluez ) + bluray? ( >=media-libs/libbluray-1.0.1 ) + caps? ( sys-libs/libcap ) + dbus? ( sys-apps/dbus ) + dev-db/sqlite + dev-libs/expat + >=dev-libs/fribidi-0.19.7 + cec? ( >=dev-libs/libcec-4.0 ) + dev-libs/libpcre[cxx] + >=dev-libs/libxml2-2.9.4 + >=dev-libs/lzo-2.04 + dev-libs/tinyxml[stl] + dev-python/pillow[${PYTHON_USEDEP}] + >=dev-libs/libcdio-0.94 + dev-libs/libfmt + gbm? ( media-libs/mesa[gbm] ) + gles? ( media-libs/mesa[gles2] ) + lcms? ( media-libs/lcms:2 ) + libusb? ( virtual/libusb:1 ) + media-fonts/corefonts + >=media-fonts/noto-20160531 + media-fonts/roboto + >=media-libs/fontconfig-2.12.4 + >=media-libs/freetype-2.8 + >=media-libs/libass-0.13.4 + media-libs/mesa[egl] + >=media-libs/taglib-1.11.1 + system-ffmpeg? ( >=media-video/ffmpeg-${FFMPEG_VERSION}:=[encode,openssl,postproc] ) + mysql? ( virtual/mysql ) + >=net-misc/curl-7.51.0 + nfs? ( net-fs/libnfs:= ) + opengl? ( media-libs/glu ) + !libressl? ( >=dev-libs/openssl-1.0.2l:0= ) + libressl? ( dev-libs/libressl:0= ) + pulseaudio? ( media-sound/pulseaudio ) + samba? ( >=net-fs/samba-3.4.6[smbclient(+)] ) + sftp? ( net-libs/libssh[sftp] ) + >=sys-libs/zlib-1.2.11 + udev? ( virtual/udev ) + vaapi? ( + x11-libs/libva[egl] + opengl? ( x11-libs/libva[opengl] ) + system-ffmpeg? ( media-video/ffmpeg[vaapi] ) + vdpau? ( x11-libs/libva[vdpau] ) + wayland? ( x11-libs/libva[wayland] ) + X? ( x11-libs/libva[X] ) + ) + virtual/libiconv + vdpau? ( + || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 ) + system-ffmpeg? ( media-video/ffmpeg[vdpau] ) + ) + wayland? ( + dev-cpp/waylandpp + media-libs/mesa[wayland] + >=dev-libs/wayland-protocols-1.7 + x11-libs/libxkbcommon + ) + webserver? ( >=net-libs/libmicrohttpd-0.9.55[messages] ) + X? ( + x11-libs/libX11 + x11-libs/libXrandr + x11-libs/libXrender + system-ffmpeg? ( media-video/ffmpeg[X] ) + ) + x11-libs/libdrm + xslt? ( dev-libs/libxslt ) + zeroconf? ( net-dns/avahi[dbus] ) +" +RDEPEND="${COMMON_DEPEND} + lirc? ( + || ( app-misc/lirc app-misc/inputlircd ) + ) + !media-tv/xbmc + udisks? ( sys-fs/udisks:0 ) + upower? ( + systemd? ( sys-power/upower ) + !systemd? ( + || ( sys-power/upower-pm-utils sys-power/upower ) + ) + ) +" +DEPEND="${COMMON_DEPEND} + app-arch/bzip2 + app-arch/xz-utils + dev-lang/swig + dev-libs/crossguid + dev-libs/rapidjson + dev-util/cmake + dev-util/gperf + media-libs/giflib + >=media-libs/libjpeg-turbo-1.5.1:= + >=media-libs/libpng-1.6.26:0= + test? ( dev-cpp/gtest ) + virtual/pkgconfig + x86? ( dev-lang/nasm ) +" +case ${PV} in +9999) + EGIT_REPO_URI="https://github.com/xbmc/xbmc.git" + inherit git-r3 + # Force java for latest git version to avoid having to hand maintain the + # generated addons package. #488118 + DEPEND+=" + virtual/jre + " + ;; +*) + MY_PV=${PV/_p/_r} + MY_PV=${MY_PV/_alpha/a} + MY_PV=${MY_PV/_beta/b} + MY_PV=${MY_PV/_rc/rc} + MY_P="${PN}-${MY_PV}" + SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}-${CODENAME}.tar.gz -> ${MY_P}.tar.gz + !java? ( https://github.com/candrews/gentoo-kodi/raw/master/${MY_P}-generated-addons.tar.xz )" + KEYWORDS="~amd64 ~x86" + IUSE+=" java" + DEPEND+=" + java? ( virtual/jre ) + " + + S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME} + ;; +esac + +CONFIG_CHECK="~IP_MULTICAST" +ERROR_IP_MULTICAST=" +In some cases Kodi needs to access multicast addresses. +Please consider enabling IP_MULTICAST under Networking options. +" + +pkg_setup() { + check_extra_config + python-single-r1_pkg_setup +} + +src_prepare() { + if in_iuse java && use !java; then + eapply "${FILESDIR}"/${PN}-cmake-no-java.patch + fi + cmake-utils_src_prepare + + # 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 + + # Prepare tools and libs witch are configured with autotools during compile time + AUTOTOOLS_DIRS=( + "${S}"/lib/cpluff + "${S}"/tools/depends/native/TexturePacker/src + "${S}"/tools/depends/native/JsonSchemaBuilder/src + ) + + local d + for d in "${AUTOTOOLS_DIRS[@]}" ; do + pushd ${d} >/dev/null || die + AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" eautoreconf + popd >/dev/null || die + done + elibtoolize + + # Prevent autoreconf rerun + sed -e 's/autoreconf -vif/echo "autoreconf already done in src_prepare()"/' -i \ + "${S}"/cmake/modules/FindCpluff.cmake \ + "${S}"/tools/depends/native/TexturePacker/src/autogen.sh \ + "${S}"/tools/depends/native/JsonSchemaBuilder/src/autogen.sh \ + || die +} + +src_configure() { + local mycmakeargs=( + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + -DENABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124 + -DENABLE_ALSA=$(usex alsa) + -DENABLE_AIRTUNES=$(usex airplay) + -DENABLE_AVAHI=$(usex zeroconf) + -DENABLE_BLUETOOTH=$(usex bluetooth) + -DENABLE_BLURAY=$(usex bluray) + -DENABLE_CCACHE=OFF + -DENABLE_CEC=$(usex cec) + -DENABLE_DBUS=$(usex dbus) + -DENABLE_DVDCSS=$(usex css) + -DENABLE_INTERNAL_CROSSGUID=OFF + -DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)" + -DENABLE_CAP=$(usex caps) + -DENABLE_LCMS2=$(usex lcms) + -DENABLE_LIRC=$(usex lirc) + -DENABLE_MICROHTTPD=$(usex webserver) + -DENABLE_MYSQLCLIENT=$(usex mysql) + -DENABLE_NFS=$(usex nfs) + -DENABLE_OPENGLES=$(usex gles) + -DENABLE_OPENGL=$(usex opengl) + -DENABLE_OPENSSL=ON + -DENABLE_OPTICAL=$(usex dvd) + -DENABLE_PLIST=$(usex airplay) + -DENABLE_PULSEAUDIO=$(usex pulseaudio) + -DENABLE_SMBCLIENT=$(usex samba) + -DENABLE_SSH=$(usex sftp) + -DENABLE_UDEV=$(usex udev) + -DENABLE_UPNP=$(usex upnp) + -DENABLE_VAAPI=$(usex vaapi) + -DENABLE_VDPAU=$(usex vdpau) + -DENABLE_XSLT=$(usex xslt) + -Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_COMMIT}.tar.gz" + -Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_COMMIT}.tar.gz" + -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_COMMIT}.tar.gz" + ) + + use libusb && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) ) + + if use system-ffmpeg; then + mycmakeargs+=( -DWITH_FFMPEG="yes" ) + else + mycmakeargs+=( -DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz" ) + fi + + if use gbm; then + mycmakeargs+=( -DCORE_PLATFORM_NAME="gbm" ) + fi + + if use wayland; then + mycmakeargs+=( -DCORE_PLATFORM_NAME="wayland" ) + if use opengl; then + mycmakeargs+=( -DWAYLAND_RENDER_SYSTEM="gl" ) + else + mycmakeargs+=( -DWAYLAND_RENDER_SYSTEM="gles" ) + fi + fi + + if use X; then + mycmakeargs+=( -DCORE_PLATFORM_NAME="x11" ) + fi + + cmake-utils_src_configure +} + +src_compile() { + cmake-utils_src_compile all + use test && emake -C "${BUILD_DIR}" kodi-test +} + +src_test() { + emake -C "${BUILD_DIR}" test +} + +src_install() { + cmake-utils_src_install + + pax-mark Em "${ED%/}"/usr/$(get_libdir)/${PN}/${PN}.bin + + rm "${ED%/}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die + + newicon media/icon48x48.png kodi.png + + # Replace bundled fonts with system ones. + rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die + dosym ../../../../fonts/noto/NotoSans-Regular.ttf \ + usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf + + local f + for f in NotoMono-Regular.ttf NotoSans-Bold.ttf NotoSans-Regular.ttf ; do + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/"${f}" || die + dosym ../../../../fonts/noto/"${f}" \ + usr/share/kodi/addons/skin.estuary/fonts/"${f}" + done + + rm "${ED%/}"/usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf || die + dosym ../../../../fonts/roboto/Roboto-Thin.ttf \ + usr/share/kodi/addons/skin.estuary/fonts/Roboto-Thin.ttf + + python_domodule tools/EventClients/lib/python/xbmcclient.py + python_newscript "tools/EventClients/Clients/Kodi Send/kodi-send.py" kodi-send +} diff --git a/media-tv/kodi/metadata.xml b/media-tv/kodi/metadata.xml new file mode 100644 index 000000000000..919f9f79dc4d --- /dev/null +++ b/media-tv/kodi/metadata.xml @@ -0,0 +1,29 @@ + + + + + candrews@gentoo.org + Craig Andrews + + + enable AirPlay support + Enable playback of Blu-ray filesystems + Enable support for HDMI-CEC devices via libcec + Use the Graphics Buffer Manager for EGL on KMS. + Enable support for GLES + Enable support for controlling Totem with a remote control using app-misc/lirc + Enable NFS client support + Enable non-free components + Enable optical (CD/DVD drive) support + Support browsing files over SFTP + Use system ffmpeg instead of the bundled one + Use virtual/libusb for usb device hotplug support. This flag should only be enabled if you're running a non-Linux kernel or you don't want to use sys-fs/udev. + Use sys-fs/udev rules to handle devices' permissions and hotplug support. Unless you know what you're doing do not disable this flag on Linux kernels. This is provided as an option for completeness. + Enable internal webserver + Enable XSLT support using dev-libs/libxslt + + + https://trac.kodi.tv/ + xbmc/xbmc + + -- cgit v1.2.3