summaryrefslogtreecommitdiff
path: root/media-tv/kodi
diff options
context:
space:
mode:
Diffstat (limited to 'media-tv/kodi')
-rw-r--r--media-tv/kodi/Manifest23
-rwxr-xr-xmedia-tv/kodi/files/generate.sh34
-rw-r--r--media-tv/kodi/files/kodi-17.3-ftpparse_string.patch82
-rw-r--r--media-tv/kodi/files/kodi-17.3-unrar-vulnerability.patch45
-rw-r--r--media-tv/kodi/files/kodi-17.4-mariadb.patch23
-rw-r--r--media-tv/kodi/files/kodi-cmake-no-java.patch56
-rw-r--r--media-tv/kodi/kodi-17.3-r1.ebuild290
-rw-r--r--media-tv/kodi/kodi-17.3.ebuild284
-rw-r--r--media-tv/kodi/kodi-17.4-r1.ebuild296
-rw-r--r--media-tv/kodi/kodi-17.4.ebuild291
-rw-r--r--media-tv/kodi/kodi-9999.ebuild321
-rw-r--r--media-tv/kodi/metadata.xml29
12 files changed, 1774 insertions, 0 deletions
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 <stefan@saraev.ca>
+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;CurChannel<Channels;CurChannel++)
++ uint DataSize=R[4],Channels=R[0],SrcPos=0,Border=DataSize*2;
++ if (DataSize>VM_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<Channels;CurChannel++)
+ {
+ byte PrevByte=0;
+- for (int DestPos=DataSize+CurChannel;DestPos<Border;DestPos+=Channels)
++ for (uint DestPos=DataSize+CurChannel;DestPos<Border;DestPos+=Channels)
+ Mem[DestPos]=(PrevByte-=Mem[SrcPos++]);
+ }
+ }
+diff --git a/lib/UnrarXLib/unpack.hpp b/lib/UnrarXLib/unpack.hpp
+index 83fb0f0254..36ac30d181 100644
+--- a/lib/UnrarXLib/unpack.hpp
++++ b/lib/UnrarXLib/unpack.hpp
+@@ -1,6 +1,12 @@
+ #ifndef _RAR_UNPACK_
+ #define _RAR_UNPACK_
+
++// Limit maximum number of channels in RAR3 delta filter to some reasonable
++// value to prevent too slow processing of corrupt archives with invalid
++// channels number. Must be equal or larger than v3_MAX_FILTER_CHANNELS.
++// No need to provide it for RAR5, which uses only 5 bits to store channels.
++#define MAX3_UNPACK_CHANNELS 1024
++
+ enum BLOCK_TYPES {BLOCK_LZ,BLOCK_PPM};
+
+ struct Decode
diff --git a/media-tv/kodi/files/kodi-17.4-mariadb.patch b/media-tv/kodi/files/kodi-17.4-mariadb.patch
new file mode 100644
index 000000000000..6def8f8a3043
--- /dev/null
+++ b/media-tv/kodi/files/kodi-17.4-mariadb.patch
@@ -0,0 +1,23 @@
+From ff848b104182467e5048351fdf27a07dd55a34a6 Mon Sep 17 00:00:00 2001
+From: Wolfgang Schupp <w.schupp@a1.net>
+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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>candrews@gentoo.org</email>
+ <name>Craig Andrews</name>
+ </maintainer>
+ <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="gbm">Use the Graphics Buffer Manager for EGL on KMS.</flag>
+ <flag name="gles">Enable support for GLES</flag>
+ <flag name="lirc">Enable support for controlling Totem with a remote control using <pkg>app-misc/lirc</pkg></flag>
+ <flag name="nfs">Enable NFS client support</flag>
+ <flag name="nonfree">Enable non-free components</flag>
+ <flag name="dvd">Enable optical (CD/DVD drive) support</flag>
+ <flag name="sftp">Support browsing files over SFTP</flag>
+ <flag name="system-ffmpeg">Use system ffmpeg instead of the bundled one</flag>
+ <flag name="libusb">Use <pkg>virtual/libusb</pkg> 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 <pkg>sys-fs/udev</pkg>.</flag>
+ <flag name="udev">Use <pkg>sys-fs/udev</pkg> 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.</flag>
+ <flag name="webserver">Enable internal webserver</flag>
+ <flag name="xslt">Enable XSLT support using <pkg>dev-libs/libxslt</pkg></flag>
+ </use>
+ <upstream>
+ <bugs-to>https://trac.kodi.tv/</bugs-to>
+ <remote-id type="github">xbmc/xbmc</remote-id>
+ </upstream>
+</pkgmetadata>