summaryrefslogtreecommitdiff
path: root/media-tv/kodi
diff options
context:
space:
mode:
Diffstat (limited to 'media-tv/kodi')
-rw-r--r--media-tv/kodi/Manifest8
-rw-r--r--media-tv/kodi/files/kodi-17-adapt-to-deprecated-symbols-and-functions.patch401
-rw-r--r--media-tv/kodi/files/kodi-17-fix-audio-with-latest-ffmpeg.patch15
-rw-r--r--media-tv/kodi/kodi-17.6-r10.ebuild278
-rw-r--r--media-tv/kodi/kodi-17.6-r11.ebuild277
-rw-r--r--media-tv/kodi/kodi-18.1.ebuild320
-rw-r--r--media-tv/kodi/kodi-9999.ebuild2
7 files changed, 1299 insertions, 2 deletions
diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
index 0d4b1e0fa25d..e26d7d485100 100644
--- a/media-tv/kodi/Manifest
+++ b/media-tv/kodi/Manifest
@@ -1,4 +1,6 @@
AUX generate.sh 803 BLAKE2B 67f5af566254df6205fb4a97eeae72c3d4e6a49b3eee48d828ba8894462cf7fa658469701d03bd3a0616795f61cb3375689d137fc2b2537cf2800a782a1188d2 SHA512 064b11416be5583202d92ab0c87156b7098bf4a97c7875ad3a0b11e048ebcfd69aeb22653e8175e7ad0cd400ed2d9c27aa8d1d25be04d34438f4c4f86e329986
+AUX kodi-17-adapt-to-deprecated-symbols-and-functions.patch 17601 BLAKE2B 480fea66d1151b4fc03c6006ad8a3a9239c0a527b02f3d2ec6afbc42cb1a5e747b3be73ed49b6b727cefd044f002987dc27d2ee086242edc2b4198b0f6791f0f SHA512 733c86a24eb3b38e03187d929ff997b3f0174eae6adf61a4558a8bc0fdc4fcfc70e879d0fdc6594a8e116f801f18ec07faab04bfd00727878872b6fd357fa453
+AUX kodi-17-fix-audio-with-latest-ffmpeg.patch 580 BLAKE2B f979e3ff53e6ff08b6852059c3a82779b8688976f593fd480c1b4d464fa5f1edb21d103a24809ba435db69aca4acf03d4b0002c716caf9f3a1fad5d8b18ed71e SHA512 3c35ef05b79cf0af9bacc74bb79dd1178efb1cb6de0354b7a35c732c2006cc7071748a062f3b274591dcb30179d4cc0af527a223dcad2919426bac663f038dbb
AUX kodi-17.3-ftpparse_string.patch 2076 BLAKE2B 9f00998669c07637eddcf829075babe11d69ed779c30e6364115fdeab83b8d95be63a9f123934909e708f19769d0260f4e47e5857ba76c139fd59ce59526ecb5 SHA512 d23865fe6624291d88c0a7674aa52b7e15889a96eb41590827248d8215643f773d0f02871efa858d2c533674627d4e6ebc69cba56be6ec9b58277bb2d6c204df
AUX kodi-17.3-unrar-vulnerability.patch 1883 BLAKE2B 1e522f0e2637f7e3aec1077f2cef07ba7b2feb5987ec1ad6674c769ab590b36eecb198a52bec1d46903de608f206839a2f0742adf33ce624bb0fbfd1a939057e SHA512 5c59a3c47ea9bcd21712da0ca0dc6bf0618f2f9cad6fd011ebcc94ae90868159e528237727e174a5b137b2e6ef2cb895c01c1b4be91cae0c402697a7d85791aa
AUX kodi-17.5-network-test-fix.patch 1410 BLAKE2B 2ab9947262307b4679a46b752ecd7b0bb8b482818dae3acbb427ddeab4cb4443c49812d292a7de57b39476ed073a6032537a00f2bf7ae2506a66a0653c5303aa SHA512 60f6971cce1bfade8c9cf658a392aab7d9a009a61b198f55c71315ef58747c65ada947488ecd085cedad89d9e72cb893b1e0aee1fc7e570db5950f5efbc0e2aa
@@ -18,6 +20,7 @@ DIST kodi-18.0rc2.tar.gz 50969888 BLAKE2B 982d660c6f87706fa5d50c5ece84ea3d27adcd
DIST kodi-18.0rc3.tar.gz 50978485 BLAKE2B 791053553f475dbcacc2bc7c3a1e420849de3f48d3eb3d788f958b2b2c3fb47454cfd909f36cefee37050923c39173690b5d48d517a042254d796aeafb39fcb8 SHA512 622e3fff01e8d856bb524339796410d3fc3226539ae91c69a367464e8f5aeb28ca3ffd605dc4a4f9944e4cc59a1949d7da6fec70175d978a44f3b5bbb59190c3
DIST kodi-18.0rc4.tar.gz 50985659 BLAKE2B 5b2475d98e084e007aebf0a5e142d03ddd08b11c9067ddf0c978892ce15a4b8f22009156bfe4e26df1ebab55bf724182c4573207440e1e9f50dd5f6b739f8a3e SHA512 cec2af70e6babed79ed649846342cbcfe979ad90a4ef4dde250e114477991c48dcfffac56a6234dc16913c9896a9a31337ebbb19488f0abf68e6c1f410d12607
DIST kodi-18.0rc5.tar.gz 50988431 BLAKE2B 4abf13057e04f1cc3f600bbedaa9f5d641a0af59d283817410aa38c41141d8835b8ce59ac3a851e1f59752396236dd195e7ace5f233ad22127597c8a964986f4 SHA512 d5eca9c4c7380c93d1339187017c36ad8424a7484cbe0f77281c561e37896e44a36da534a894ecd30fc4eea43fc0b1703bb0e545d04d5f8c7c93eaae23066884
+DIST kodi-18.1.tar.gz 51001112 BLAKE2B 65de0adff0e387821f0043156a20da2d99feb6c1d2390efa5d16c7e3bdc1f724024c0d00781be59b16a78a73b5ebb2d16602f806d32c95362732114279d42d71 SHA512 2df32e14e1138474cf0a1b8102b4c734e1a54799b1aab049cfe9f623f467e0c9eb87237b4c81ded280e72bc4655a27a887904d164927b3fd227a9c9311531ebc
DIST kodi-18.1rc1.tar.gz 51006614 BLAKE2B f547b72d84943ea48be54640c2569df11a779f5fd0e8f7ca822e6c85d78f20f1945d67dc277dc175a7f5534bf2694e6f6893e6e22a3002382ed7924b8b6b8cdc SHA512 1d9fff991ec0e72f9a23179269c0ea6ab5729bf0904eaeb7154a200ee8acf38043a7ef319eb603fef9db02367b7a98356f571df8397a23672673bc0f26070cec
DIST libdvdcss-1.4.2-Leia-Beta-5.tar.gz 101068 BLAKE2B 283aa2cec0a2200d3569bc280cb9659e9224a6b3a77db8a35b269cd8caf1337ac9d8b92b806df66f63ef7458a46bd6261f0b8b14678b10e26644a79dcbeea5da SHA512 5185dbdbeb1bd13ea9d8723f1f4ab599d6f3102f5ba1096cd085aa1cda252c045f327c719227bba8e1b742352ade5e335106c8d0c1637a5a6b93ce661620dd7e
DIST libdvdcss-2f12236bc1c92f73c21e973363f79eb300de603f.tar.gz 95395 BLAKE2B fb3973e098201d177309ad7ca50131725eee4bc6f30f425efa5fea406411f6143ba03abd82cd6c91a250419d3e0a29aafcbf981ba015f6e14cd0ceb001222c12 SHA512 12ba7aa653fcb26d5336bf2a8110c924d634cec79f684bbf19dc38ea33f69fb68c22c97f4c09e5ca7c35f95f6c324a6d70ccc2c501a99122a9321cafd33b2cd9
@@ -26,6 +29,8 @@ DIST libdvdnav-6.0.0-Leia-Alpha-3.tar.gz 137942 BLAKE2B 7573434a0ae8e8ccabf48173
DIST libdvdread-17d99db97e7b8f23077b342369d3c22a6250affd.tar.gz 124326 BLAKE2B 37521d50f9983290df5209db417e39ea4f3dcf5c36eafe9f75a8c23689c7302c29c4197e40eebb0f1b35cd16e5264e251a72548a0ce2ec2ba1a3a22c1768adaf SHA512 e59ae0bfdc62698e407e3d70503c6a7c5e308545c9dae7843e25db3b5b62d9b26256be77ef4e884263add6b4abec3438c324bfd5715f6ca2ce7fa5962d43a6c2
DIST libdvdread-6.0.0-Leia-Alpha-3.tar.gz 130649 BLAKE2B 0c206acdaf0776841ab792c74e023af07d9539eb72e03ae164382a31ed950f60e5e15f1d055979d28f1398924471b294d11f064b11b8373353b3962a3777ff3c SHA512 b3419ba0a1a2dd70f1bb6236afdfe1c6e88c9ad4264198b289e3bba9375e077cecf7f89848c7b09debaa445327f3507101f3d157e692f7a7163b2bb52643e1e7
EBUILD kodi-17.3-r1.ebuild 8480 BLAKE2B b631eebc108988594dea9e3c27271ad68f0dafd8b8521c3fe94384431792129354be8361e9d8885d0f992693c1254002f3bf0abd221f2b3011e76c5bd5bbb287 SHA512 85a8a39d6cc6015a41a2b3fd31a4d0d57c63a04e70e4fdd1707511353c59c55d3bcebafc3e4298d0a1cb69f674a421c73ac7292d87696b18f3aa10fac91e6603
+EBUILD kodi-17.6-r10.ebuild 8198 BLAKE2B b05f335f45793fc08fa0c47dfb34680a26a9ec53428fe13e8fe8207226d286d4c809a002e9e74b5e29e98a9d18c7cd190969eb3510da3df23c6e8d89cec190b9 SHA512 b0fb40e4710439cd34ac2b0998b20068f8a54d4527d65848920f4b929c3ec19249ae34f70b9e98e6de7704a21ba93e9299a042032d7164c6c33e5b1397532177
+EBUILD kodi-17.6-r11.ebuild 8172 BLAKE2B 41da33d03ee4300df4624da98a8930d46ad6c3b9c39394e0dc61c195ef1b09b04bbaab0f0972196c1c92aa81900e42a41488ddc888961447f05b22740d722370 SHA512 cab44f7e2a98870d9bb71ec0bee3760edd63b81c6bad4bf2375f6a59e822910dbbf16d42590936fb600df5fd0f3cb1da577ce06a2a17ce0198255cce1892cd2f
EBUILD kodi-17.6-r6.ebuild 8685 BLAKE2B 1146805552d46f802fe7ac0ce569f5ef0acc92662206dfed327fcccb6c4594d4a04dd61cce501aa1eb8b72bcc9847b8bf63a6f647a196690c1ff15e352716372 SHA512 caf8f41edc15290a29c4f7c8ee534f7ff53f8858b51d2f9c26fd741f60983aebd9d1611064203620a962b00d9f6cbbdbf50c506905468d193ff6af337e29fe44
EBUILD kodi-17.6-r7.ebuild 8768 BLAKE2B aed28022afb2c90e9826d5d633eac7435d646657e194ae1744ff8bf56c37710fa0e8169711798ac36aed90a09a994ef9415a3ba2cd778ff2dc173b767e2fa3c5 SHA512 f2e7bf671b120137887fe78540146f5355db891d296ce5b3e7f52df722b2ce24fd3b8ca23ec8b8b7ef1c2e720f5a0dd445dd7758eb4fa4929350318b1ecde69d
EBUILD kodi-17.6-r8.ebuild 8772 BLAKE2B d41f9854da871e126a08525963b5a293f64cc17c8b405af884240f83c81d17de501da9980c97ed7ab56e930cf731f4cdaab4b4cae837f3cef3925640aa786651 SHA512 0e52b44fb4fe197357309414a01bf5408c053e3116c6325624a65eb923a48b6f4b51cec27de8d4537b37acaa9a3327ea50935ca904a6cbdbcea3887bcc4b8741
@@ -36,6 +41,7 @@ EBUILD kodi-18.0_rc2.ebuild 9366 BLAKE2B d11bbfae54b8b67923d6574255bdb67efcd2caa
EBUILD kodi-18.0_rc3.ebuild 9403 BLAKE2B d073a91f5978d43efdf5c949212f8ddf85c5b7c420efa23f0fc6cbdf68ccbd25938d51e6c2b9a9ea4f15d087d0f8b6056e40e4e869126d5d2e8ffb7eb392ec0e SHA512 8f7d21e27df2b1c6140e5b6f307c7bde22ef7392f9d99743708d7ea57cf96de30dc1deeb7d592702fcb639206010f3a2bcd951e96b085bd05bccf4744fa9c15e
EBUILD kodi-18.0_rc4.ebuild 9403 BLAKE2B d073a91f5978d43efdf5c949212f8ddf85c5b7c420efa23f0fc6cbdf68ccbd25938d51e6c2b9a9ea4f15d087d0f8b6056e40e4e869126d5d2e8ffb7eb392ec0e SHA512 8f7d21e27df2b1c6140e5b6f307c7bde22ef7392f9d99743708d7ea57cf96de30dc1deeb7d592702fcb639206010f3a2bcd951e96b085bd05bccf4744fa9c15e
EBUILD kodi-18.0_rc5.ebuild 9403 BLAKE2B e54754cd12d199debb26d33df09b928a5b30835aad9edbc6325580f5d34a58d2e07c95d45339cf6e720dda0a6908f686ce6765c843207037f2bfac15eeaa7090 SHA512 4fc6dbcc909fd40d35c6ab0d01d9410f7848b3eddd62c090b3fe07593c2aee05e8f55d3613ac75e718bdf4162d947372436566703e3d95366006e3f3b4e43400
+EBUILD kodi-18.1.ebuild 9392 BLAKE2B 8e258f9f0e539c8ec2196090acd109f7b88a6b9579ed60caed41ff7c7dbcc9cdc1ba0150a72e783c60bc84a0478185e79386bf482ab9331a1a05be910bf0a80e SHA512 fa1f46e1e7b7c8672c8c38fefc60f973c9891c5f644bb6e8fe8bad556b9e8269bbe70c2a0b09a9a77637d9560405bebd2ee22c556172f013bc922f17a5fc7c98
EBUILD kodi-18.1_rc1.ebuild 9398 BLAKE2B de021d468f8cd086e3b36b35a4cc7d13759fd520562408c64a2f241ef179221b470ed23ce49d666fd3e608fb673143e636cbe94b401b4f9a6893e11ffa19fa11 SHA512 63888cfe324ea00be70d901ca734704da4b6996f0838695510040ffbce1c2109b5a48c05cf3a5efd971c7ff3ca02aed9b9d006dd175eb48b9248e169ad7abff8
-EBUILD kodi-9999.ebuild 9398 BLAKE2B de021d468f8cd086e3b36b35a4cc7d13759fd520562408c64a2f241ef179221b470ed23ce49d666fd3e608fb673143e636cbe94b401b4f9a6893e11ffa19fa11 SHA512 63888cfe324ea00be70d901ca734704da4b6996f0838695510040ffbce1c2109b5a48c05cf3a5efd971c7ff3ca02aed9b9d006dd175eb48b9248e169ad7abff8
+EBUILD kodi-9999.ebuild 9392 BLAKE2B 8e258f9f0e539c8ec2196090acd109f7b88a6b9579ed60caed41ff7c7dbcc9cdc1ba0150a72e783c60bc84a0478185e79386bf482ab9331a1a05be910bf0a80e SHA512 fa1f46e1e7b7c8672c8c38fefc60f973c9891c5f644bb6e8fe8bad556b9e8269bbe70c2a0b09a9a77637d9560405bebd2ee22c556172f013bc922f17a5fc7c98
MISC metadata.xml 1766 BLAKE2B 53c734014a9d366496190b89c31c2988751ab9bb0065b4c98e2e0162a5e2a0431c8e1bc0ef944b74403492e463e879bf0c68c7efad485a60549a2051cffd6aee SHA512 389444c93cd6e15a1773663db5705bc7658e957435ede722f5e3bd6ef2ea9f761ff352e2e06f1baeff21e66bcb63203cb4a5ad47c0544a0577dbaf734d4a1ba8
diff --git a/media-tv/kodi/files/kodi-17-adapt-to-deprecated-symbols-and-functions.patch b/media-tv/kodi/files/kodi-17-adapt-to-deprecated-symbols-and-functions.patch
new file mode 100644
index 000000000000..0ec08810db5e
--- /dev/null
+++ b/media-tv/kodi/files/kodi-17-adapt-to-deprecated-symbols-and-functions.patch
@@ -0,0 +1,401 @@
+From 19f28e88a5dfed82e9844f69210f7c045f18ca8e Mon Sep 17 00:00:00 2001
+From: Rainer Hochecker <fernetmenta@online.de>
+Date: Wed, 1 Nov 2017 16:12:13 +0100
+Subject: [PATCH] ffmpeg: drop deprecated symbols and functions
+
+---
+ xbmc/cdrip/EncoderFFmpeg.cpp | 4 +-
+ .../AudioEngine/Encoders/AEEncoderFFmpeg.h | 2 +-
+ .../AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 2 +-
+ .../Engines/ActiveAE/ActiveAEFilter.cpp | 6 +--
+ .../DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp | 6 +--
+ .../Overlay/DVDOverlayCodecFFmpeg.cpp | 2 +-
+ .../DVDCodecs/Video/DVDVideoCodec.h | 1 +
+ .../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 39 +++++--------------
+ .../DVDCodecs/Video/DVDVideoPPFFmpeg.cpp | 5 +--
+ .../VideoPlayer/DVDCodecs/Video/VAAPI.cpp | 4 +-
+ .../DVDDemuxers/DVDDemuxClient.cpp | 6 +--
+ .../DVDDemuxers/DVDDemuxFFmpeg.cpp | 6 +--
+ .../VideoPlayer/DVDDemuxers/DVDDemuxUtils.cpp | 4 +-
+ xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp | 1 -
+ xbmc/guilib/FFmpegImage.cpp | 4 +-
+ xbmc/utils/BitstreamConverter.cpp | 12 +++---
+ 16 files changed, 40 insertions(+), 64 deletions(-)
+
+Index: kodi-17.6+dfsg1/xbmc/cdrip/EncoderFFmpeg.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cdrip/EncoderFFmpeg.cpp
++++ kodi-17.6+dfsg1/xbmc/cdrip/EncoderFFmpeg.cpp
+@@ -119,8 +119,8 @@
+
+ if(m_Format->oformat->flags & AVFMT_GLOBALHEADER)
+ {
+- m_CodecCtx->flags |= CODEC_FLAG_GLOBAL_HEADER;
+- m_Format->flags |= CODEC_FLAG_GLOBAL_HEADER;
++ m_CodecCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
++ m_Format->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+ }
+
+ switch(m_iInBitsPerSample)
+Index: kodi-17.6+dfsg1/xbmc/cores/AudioEngine/Encoders/AEEncoderFFmpeg.h
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/AudioEngine/Encoders/AEEncoderFFmpeg.h
++++ kodi-17.6+dfsg1/xbmc/cores/AudioEngine/Encoders/AEEncoderFFmpeg.h
+@@ -56,7 +56,7 @@
+ SwrContext *m_SwrCtx;
+ CAEChannelInfo m_Layout;
+ AVPacket m_Pkt;
+- uint8_t m_Buffer[8 + FF_MIN_BUFFER_SIZE];
++ uint8_t m_Buffer[8 + AV_INPUT_BUFFER_MIN_SIZE];
+ int m_BufferSize;
+ int m_OutputSize;
+ double m_OutputRatio;
+Index: kodi-17.6+dfsg1/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
++++ kodi-17.6+dfsg1/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
+@@ -2955,7 +2955,7 @@
+ int fileSize = sound->GetFileSize();
+
+ fmt_ctx = avformat_alloc_context();
+- unsigned char* buffer = (unsigned char*)av_malloc(SOUNDBUFFER_SIZE+FF_INPUT_BUFFER_PADDING_SIZE);
++ unsigned char* buffer = (unsigned char*)av_malloc(SOUNDBUFFER_SIZE+AV_INPUT_BUFFER_PADDING_SIZE);
+ io_ctx = avio_alloc_context(buffer, SOUNDBUFFER_SIZE, 0,
+ sound, CActiveAESound::Read, NULL, CActiveAESound::Seek);
+ io_ctx->max_packet_size = sound->GetChunkSize();
+Index: kodi-17.6+dfsg1/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.cpp
++++ kodi-17.6+dfsg1/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.cpp
+@@ -91,8 +91,8 @@
+ return false;
+ }
+
+- AVFilter* srcFilter = avfilter_get_by_name("abuffer");
+- AVFilter* outFilter = avfilter_get_by_name("abuffersink");
++ const AVFilter* srcFilter = avfilter_get_by_name("abuffer");
++ const AVFilter* outFilter = avfilter_get_by_name("abuffersink");
+
+ std::string args = StringUtils::Format("time_base=1/%d:sample_rate=%d:sample_fmt=%s:channel_layout=0x%" PRIx64,
+ m_sampleRate,
+@@ -121,7 +121,7 @@
+
+ bool CActiveAEFilter::CreateAtempoFilter()
+ {
+- AVFilter *atempo;
++ const AVFilter *atempo;
+
+ atempo = avfilter_get_by_name("atempo");
+ m_pFilterCtxAtempo = avfilter_graph_alloc_filter(m_pFilterGraph, atempo, "atempo");
+Index: kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp
++++ kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp
+@@ -82,8 +82,8 @@
+ m_pCodecContext->debug = 0;
+ m_pCodecContext->workaround_bugs = 1;
+
+- if (pCodec->capabilities & CODEC_CAP_TRUNCATED)
+- m_pCodecContext->flags |= CODEC_FLAG_TRUNCATED;
++ if (pCodec->capabilities & AV_CODEC_CAP_TRUNCATED)
++ m_pCodecContext->flags |= AV_CODEC_FLAG_TRUNCATED;
+
+ m_matrixEncoding = AV_MATRIX_ENCODING_NONE;
+ m_channels = 0;
+@@ -98,7 +98,7 @@
+
+ if( hints.extradata && hints.extrasize > 0 )
+ {
+- m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + FF_INPUT_BUFFER_PADDING_SIZE);
++ m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + AV_INPUT_BUFFER_PADDING_SIZE);
+ if(m_pCodecContext->extradata)
+ {
+ m_pCodecContext->extradata_size = hints.extrasize;
+Index: kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/VideoPlayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
++++ kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
+@@ -73,7 +73,7 @@
+ if( hints.extradata && hints.extrasize > 0 )
+ {
+ m_pCodecContext->extradata_size = hints.extrasize;
+- m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + FF_INPUT_BUFFER_PADDING_SIZE);
++ m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + AV_INPUT_BUFFER_PADDING_SIZE);
+ memcpy(m_pCodecContext->extradata, hints.extradata, hints.extrasize);
+
+ // start parsing of extra data - create a copy to be safe and make it zero-terminating to avoid access violations!
+Index: kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodec.h
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodec.h
++++ kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodec.h
+@@ -118,6 +118,7 @@
+ int8_t* qp_table; //< Quantization parameters, primarily used by filters
+ int qstride;
+ int qscale_type;
++ int pict_type;
+
+ unsigned int iWidth;
+ unsigned int iHeight;
+Index: kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
++++ kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+@@ -171,7 +171,7 @@
+ ctx->SetHardware(NULL);
+ avctx->get_buffer2 = avcodec_default_get_buffer2;
+ avctx->slice_flags = 0;
+- avctx->hwaccel_context = 0;
++ av_buffer_unref(&avctx->hw_frames_ctx);
+ }
+
+ const AVPixelFormat * cur = fmt;
+@@ -382,16 +382,6 @@
+ else
+ m_decoderState = STATE_SW_SINGLE;
+
+-#if defined(TARGET_DARWIN_IOS)
+- // ffmpeg with enabled neon will crash and burn if this is enabled
+- m_pCodecContext->flags &= CODEC_FLAG_EMU_EDGE;
+-#else
+- if (pCodec->id != AV_CODEC_ID_H264 && pCodec->capabilities & CODEC_CAP_DR1
+- && pCodec->id != AV_CODEC_ID_VP8
+- )
+- m_pCodecContext->flags |= CODEC_FLAG_EMU_EDGE;
+-#endif
+-
+ // if we don't do this, then some codecs seem to fail.
+ m_pCodecContext->coded_height = hints.height;
+ m_pCodecContext->coded_width = hints.width;
+@@ -400,7 +390,7 @@
+ if( hints.extradata && hints.extrasize > 0 )
+ {
+ m_pCodecContext->extradata_size = hints.extrasize;
+- m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + FF_INPUT_BUFFER_PADDING_SIZE);
++ m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + AV_INPUT_BUFFER_PADDING_SIZE);
+ memcpy(m_pCodecContext->extradata, hints.extradata, hints.extrasize);
+ }
+
+@@ -791,6 +781,7 @@
+ m_droppedFrames = 0;
+ m_iLastKeyframe = m_pCodecContext->has_b_frames;
+ avcodec_flush_buffers(m_pCodecContext);
++ av_frame_unref(m_pFrame);
+
+ if (m_pHardware)
+ m_pHardware->Reset();
+@@ -883,22 +874,10 @@
+ pDvdVideoPicture->color_range = 0;
+
+ int qscale_type;
+- pDvdVideoPicture->qp_table = av_frame_get_qp_table(m_pFrame, &pDvdVideoPicture->qstride, &qscale_type);
+-
+- switch (qscale_type)
+- {
+- case FF_QSCALE_TYPE_MPEG1:
+- pDvdVideoPicture->qscale_type = DVP_QSCALE_MPEG1;
+- break;
+- case FF_QSCALE_TYPE_MPEG2:
+- pDvdVideoPicture->qscale_type = DVP_QSCALE_MPEG2;
+- break;
+- case FF_QSCALE_TYPE_H264:
+- pDvdVideoPicture->qscale_type = DVP_QSCALE_H264;
+- break;
+- default:
+- pDvdVideoPicture->qscale_type = DVP_QSCALE_UNKNOWN;
+- }
++ pDvdVideoPicture->qp_table = av_frame_get_qp_table(m_pFrame,
++ &pDvdVideoPicture->qstride,
++ &pDvdVideoPicture->qscale_type);
++ pDvdVideoPicture->pict_type = m_pFrame->pict_type;
+
+ if (pDvdVideoPicture->iRepeatPicture)
+ pDvdVideoPicture->dts = DVD_NOPTS_VALUE;
+@@ -989,8 +968,8 @@
+ return -1;
+ }
+
+- AVFilter* srcFilter = avfilter_get_by_name("buffer");
+- AVFilter* outFilter = avfilter_get_by_name("buffersink"); // should be last filter in the graph for now
++ const AVFilter* srcFilter = avfilter_get_by_name("buffer");
++ const AVFilter* outFilter = avfilter_get_by_name("buffersink"); // should be last filter in the graph for now
+
+ std::string args = StringUtils::Format("%d:%d:%d:%d:%d:%d:%d",
+ m_pCodecContext->width,
+Index: kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoPPFFmpeg.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoPPFFmpeg.cpp
++++ kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoPPFFmpeg.cpp
+@@ -132,15 +132,12 @@
+ }
+ }
+
+- int pict_type = (m_pSource->qscale_type != DVP_QSCALE_MPEG1) ?
+- PP_PICT_TYPE_QP2 : 0;
+-
+ pp_postprocess((const uint8_t**)m_pSource->data, m_pSource->iLineSize,
+ m_pTarget->data, m_pTarget->iLineSize,
+ m_pSource->iWidth, m_pSource->iHeight,
+ m_pSource->qp_table, m_pSource->qstride,
+ m_pMode, m_pContext,
+- pict_type); //m_pSource->iFrameType);
++ m_pSource->pict_type | m_pSource->qscale_type ? PP_PICT_TYPE_QP2 : 0);
+
+ //Copy frame information over to target, but make sure it is set as allocated should decoder have forgotten
+ m_pTarget->iFlags = m_pSource->iFlags | DVP_FLAG_ALLOCATED;
+Index: kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp
++++ kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp
+@@ -3090,8 +3090,8 @@
+ return false;
+ }
+
+- AVFilter* srcFilter = avfilter_get_by_name("buffer");
+- AVFilter* outFilter = avfilter_get_by_name("buffersink");
++ const AVFilter* srcFilter = avfilter_get_by_name("buffer");
++ const AVFilter* outFilter = avfilter_get_by_name("buffersink");
+
+ std::string args = StringUtils::Format("%d:%d:%d:%d:%d:%d:%d",
+ m_config.vidWidth,
+Index: kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp
++++ kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp
+@@ -25,7 +25,7 @@
+ #include "settings/Settings.h"
+ #include "../DVDClock.h"
+
+-#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - FF_INPUT_BUFFER_PADDING_SIZE)
++#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - AV_INPUT_BUFFER_PADDING_SIZE)
+
+
+ class CDemuxStreamClientInternal
+@@ -179,9 +179,9 @@
+ st->changes++;
+ st->disabled = false;
+ st->ExtraSize = len;
+- st->ExtraData = new uint8_t[len+FF_INPUT_BUFFER_PADDING_SIZE];
++ st->ExtraData = new uint8_t[len+AV_INPUT_BUFFER_PADDING_SIZE];
+ memcpy(st->ExtraData, pkt->pData, len);
+- memset((uint8_t*)st->ExtraData + len, 0 , FF_INPUT_BUFFER_PADDING_SIZE);
++ memset((uint8_t*)st->ExtraData + len, 0 , AV_INPUT_BUFFER_PADDING_SIZE);
+ stream->m_parser_split = false;
+ }
+ }
+Index: kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
++++ kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
+@@ -78,7 +78,7 @@
+ {}
+ };
+
+-#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - FF_INPUT_BUFFER_PADDING_SIZE)
++#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - AV_INPUT_BUFFER_PADDING_SIZE)
+
+ std::string CDemuxStreamAudioFFmpeg::GetStreamName()
+ {
+@@ -1881,12 +1881,12 @@
+ // Found extradata, fill it in. This will cause
+ // a new stream to be created and used.
+ st->codec->extradata_size = i;
+- st->codec->extradata = (uint8_t*)av_malloc(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
++ st->codec->extradata = (uint8_t*)av_malloc(st->codec->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
+ if (st->codec->extradata)
+ {
+ CLog::Log(LOGDEBUG, "CDVDDemuxFFmpeg::Read() fetching extradata, extradata_size(%d)", st->codec->extradata_size);
+ memcpy(st->codec->extradata, pkt->data, st->codec->extradata_size);
+- memset(st->codec->extradata + i, 0, FF_INPUT_BUFFER_PADDING_SIZE);
++ memset(st->codec->extradata + i, 0, AV_INPUT_BUFFER_PADDING_SIZE);
+ }
+ else
+ {
+Index: kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxUtils.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxUtils.cpp
++++ kodi-17.6+dfsg1/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxUtils.cpp
+@@ -68,7 +68,7 @@
+ * Note, if the first 23 bits of the additional bytes are not 0 then damaged
+ * MPEG bitstreams could cause overread and segfault
+ */
+- pPacket->pData =(uint8_t*)_aligned_malloc(iDataSize + FF_INPUT_BUFFER_PADDING_SIZE, 16);
++ pPacket->pData =(uint8_t*)_aligned_malloc(iDataSize + AV_INPUT_BUFFER_PADDING_SIZE, 16);
+ if (!pPacket->pData)
+ {
+ FreeDemuxPacket(pPacket);
+@@ -76,7 +76,7 @@
+ }
+
+ // reset the last 8 bytes to 0;
+- memset(pPacket->pData + iDataSize, 0, FF_INPUT_BUFFER_PADDING_SIZE);
++ memset(pPacket->pData + iDataSize, 0, AV_INPUT_BUFFER_PADDING_SIZE);
+ }
+
+ // setup defaults
+Index: kodi-17.6+dfsg1/xbmc/guilib/FFmpegImage.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/guilib/FFmpegImage.cpp
++++ kodi-17.6+dfsg1/xbmc/guilib/FFmpegImage.cpp
+@@ -551,7 +551,7 @@
+ tdm.avOutctx->time_base.num = 1;
+ tdm.avOutctx->time_base.den = 1;
+ tdm.avOutctx->pix_fmt = jpg_output ? AV_PIX_FMT_YUVJ420P : AV_PIX_FMT_RGBA;
+- tdm.avOutctx->flags = CODEC_FLAG_QSCALE;
++ tdm.avOutctx->flags = AV_CODEC_FLAG_QSCALE;
+ tdm.avOutctx->mb_lmin = tdm.avOutctx->qmin * FF_QP2LAMBDA;
+ tdm.avOutctx->mb_lmax = tdm.avOutctx->qmax * FF_QP2LAMBDA;
+ tdm.avOutctx->global_quality = tdm.avOutctx->qmin * FF_QP2LAMBDA;
+Index: kodi-17.6+dfsg1/xbmc/utils/BitstreamConverter.cpp
+===================================================================
+--- kodi-17.6+dfsg1.orig/xbmc/utils/BitstreamConverter.cpp
++++ kodi-17.6+dfsg1/xbmc/utils/BitstreamConverter.cpp
+@@ -686,13 +686,13 @@
+ unit_size = extradata[0] << 8 | extradata[1];
+ total_size += unit_size + 4;
+
+- if (total_size > INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE ||
++ if (total_size > INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE ||
+ (extradata + 2 + unit_size) > ((uint8_t*)in_extradata + in_extrasize))
+ {
+ av_free(out);
+ return false;
+ }
+- tmp = av_realloc(out, total_size + FF_INPUT_BUFFER_PADDING_SIZE);
++ tmp = av_realloc(out, total_size + AV_INPUT_BUFFER_PADDING_SIZE);
+ if (!tmp)
+ {
+ av_free(out);
+@@ -713,7 +713,7 @@
+ }
+
+ if (out)
+- memset(out + total_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
++ memset(out + total_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
+
+ if (!sps_seen)
+ CLog::Log(LOGDEBUG, "SPS NALU missing or invalid. The resulting stream may not play");
+@@ -776,13 +776,13 @@
+ }
+ total_size += unit_size + 4;
+
+- if (total_size > INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE ||
++ if (total_size > INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE ||
+ (extradata + unit_size) > ((uint8_t*)in_extradata + in_extrasize))
+ {
+ av_free(out);
+ return false;
+ }
+- tmp = av_realloc(out, total_size + FF_INPUT_BUFFER_PADDING_SIZE);
++ tmp = av_realloc(out, total_size + AV_INPUT_BUFFER_PADDING_SIZE);
+ if (!tmp)
+ {
+ av_free(out);
+@@ -796,7 +796,7 @@
+ }
+
+ if (out)
+- memset(out + total_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
++ memset(out + total_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
+
+ if (!sps_seen)
+ CLog::Log(LOGDEBUG, "SPS NALU missing or invalid. The resulting stream may not play");
diff --git a/media-tv/kodi/files/kodi-17-fix-audio-with-latest-ffmpeg.patch b/media-tv/kodi/files/kodi-17-fix-audio-with-latest-ffmpeg.patch
new file mode 100644
index 000000000000..5f5e613bed2d
--- /dev/null
+++ b/media-tv/kodi/files/kodi-17-fix-audio-with-latest-ffmpeg.patch
@@ -0,0 +1,15 @@
+From: Stefan Hachmann <stefan@hachmann-it.de>
+To: 881536@bugs.debian.org
+Subject: Re: Bug#881536: ffmpeg: Breaks sound in kodi
+
+--- a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp
++++ b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp
+@@ -486,7 +486,7 @@
+ // guess next pts
+ m_audioClock += audioframe.duration;
+
+- int ret = m_pAudioCodec->Decode(nullptr, 0, DVD_NOPTS_VALUE, DVD_NOPTS_VALUE);
++ int ret = 0;
+ if (ret < 0)
+ {
+ CLog::Log(LOGERROR, "CVideoPlayerAudio::DecodeFrame - Decode Error. Skipping audio packet (%d)", ret);
diff --git a/media-tv/kodi/kodi-17.6-r10.ebuild b/media-tv/kodi/kodi-17.6-r10.ebuild
new file mode 100644
index 000000000000..240a7f8fc808
--- /dev/null
+++ b/media-tv/kodi/kodi-17.6-r10.ebuild
@@ -0,0 +1,278 @@
+# Copyright 1999-2019 Gentoo Authors
+# 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.11"
+FFMPEG_KODI_VERSION="17.5"
+CODENAME="Krypton"
+PATCHES=(
+ "${FILESDIR}/${P}-nmblookup.patch"
+ "${FILESDIR}/${P}-wrapper.patch"
+ "${FILESDIR}/${PN}-17-adapt-to-deprecated-symbols-and-functions.patch"
+ "${FILESDIR}/${PN}-17-fix-audio-with-latest-ffmpeg.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="A free and open source media-player and entertainment hub"
+HOMEPAGE="https://kodi.tv/ https://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 mariadb mysql nfs nonfree +opengl pulseaudio samba sftp systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau webserver +xslt zeroconf"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ || ( gles opengl )
+ ?? ( mariadb mysql )
+ 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 )
+ virtual/ttf-fonts
+ 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]
+ <media-video/ffmpeg-3.4
+ )
+ mysql? ( dev-db/mysql-connector-c:= )
+ mariadb? ( dev-db/mariadb-connector-c:=[mysqlcompat] )
+ >=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] )
+ 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? ( 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_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=ON
+ -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"
+ )
+
+ if use mysql || use mariadb ; then
+ mycmakeargs+=( -DENABLE_MYSQLCLIENT="yes" )
+ else
+ mycmakeargs+=( -DENABLE_MYSQLCLIENT="no" )
+ fi
+
+ 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
+
+ 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.6-r11.ebuild b/media-tv/kodi/kodi-17.6-r11.ebuild
new file mode 100644
index 000000000000..fb3ef921341e
--- /dev/null
+++ b/media-tv/kodi/kodi-17.6-r11.ebuild
@@ -0,0 +1,277 @@
+# Copyright 1999-2019 Gentoo Authors
+# 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.11"
+FFMPEG_KODI_VERSION="17.5"
+CODENAME="Krypton"
+PATCHES=(
+ "${FILESDIR}/${P}-nmblookup.patch"
+ "${FILESDIR}/${P}-wrapper.patch"
+ "${FILESDIR}/${PN}-17-adapt-to-deprecated-symbols-and-functions.patch"
+ "${FILESDIR}/${PN}-17-fix-audio-with-latest-ffmpeg.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="A free and open source media-player and entertainment hub"
+HOMEPAGE="https://kodi.tv/ https://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 mariadb mysql nfs nonfree +opengl pulseaudio samba sftp systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau webserver +xslt zeroconf"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ || ( gles opengl )
+ ?? ( mariadb mysql )
+ 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 )
+ virtual/ttf-fonts
+ 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? ( dev-db/mysql-connector-c:= )
+ mariadb? ( dev-db/mariadb-connector-c:=[mysqlcompat] )
+ >=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] )
+ 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? ( 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_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=ON
+ -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"
+ )
+
+ if use mysql || use mariadb ; then
+ mycmakeargs+=( -DENABLE_MYSQLCLIENT="yes" )
+ else
+ mycmakeargs+=( -DENABLE_MYSQLCLIENT="no" )
+ fi
+
+ 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
+
+ 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-18.1.ebuild b/media-tv/kodi/kodi-18.1.ebuild
new file mode 100644
index 000000000000..46debc7cf613
--- /dev/null
+++ b/media-tv/kodi/kodi-18.1.ebuild
@@ -0,0 +1,320 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+PYTHON_REQ_USE="libressl?,sqlite,ssl"
+LIBDVDCSS_VERSION="1.4.2-Leia-Beta-5"
+LIBDVDREAD_VERSION="6.0.0-Leia-Alpha-3"
+LIBDVDNAV_VERSION="6.0.0-Leia-Alpha-3"
+FFMPEG_VERSION="4.0.3"
+CODENAME="Leia"
+FFMPEG_KODI_VERSION="RC5"
+SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_VERSION}.tar.gz -> libdvdcss-${LIBDVDCSS_VERSION}.tar.gz
+ https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_VERSION}.tar.gz -> libdvdread-${LIBDVDREAD_VERSION}.tar.gz
+ https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_VERSION}.tar.gz -> libdvdnav-${LIBDVDNAV_VERSION}.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 )"
+
+if [[ ${PV} == *9999 ]] ; then
+ PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
+ EGIT_REPO_URI="https://github.com/xbmc/xbmc.git"
+ inherit git-r3
+else
+ PYTHON_COMPAT=( python2_7 )
+ 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"
+ KEYWORDS="~amd64 ~x86"
+ S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME}
+fi
+
+inherit autotools cmake-utils eutils gnome2-utils linux-info pax-utils python-single-r1 xdg-utils
+
+DESCRIPTION="A free and open source media-player and entertainment hub"
+HOMEPAGE="https://kodi.tv/ https://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 dvd gbm gles lcms libressl libusb lirc mariadb mysql nfs +opengl pulseaudio samba systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau wayland webserver +X +xslt zeroconf"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ || ( gles opengl )
+ ^^ ( gbm wayland X )
+ ?? ( mariadb mysql )
+ udev? ( !libusb )
+ udisks? ( dbus )
+ upower? ( dbus )
+"
+
+COMMON_DEPEND="${PYTHON_DEPS}
+ airplay? (
+ >=app-pda/libplist-2.0.0
+ net-libs/shairplay
+ )
+ alsa? ( >=media-libs/alsa-lib-1.1.4.1 )
+ bluetooth? ( net-wireless/bluez )
+ bluray? ( >=media-libs/libbluray-1.0.2 )
+ caps? ( sys-libs/libcap )
+ dbus? ( sys-apps/dbus )
+ dev-db/sqlite
+ dev-libs/expat
+ dev-libs/flatbuffers
+ >=dev-libs/fribidi-0.19.7
+ cec? ( >=dev-libs/libcec-4.0 )
+ dev-libs/libpcre[cxx]
+ >=dev-libs/libinput-1.10.5
+ >=dev-libs/libxml2-2.9.4
+ >=dev-libs/lzo-2.04
+ dev-libs/tinyxml[stl]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/pycryptodome[${PYTHON_USEDEP}]' 'python3*')
+ >=dev-libs/libcdio-0.94
+ dev-libs/libfmt
+ dev-libs/libfstrcmp
+ gbm? ( media-libs/mesa[gbm] )
+ gles? ( media-libs/mesa[gles2] )
+ lcms? ( media-libs/lcms:2 )
+ libusb? ( virtual/libusb:1 )
+ virtual/ttf-fonts
+ 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,postproc]
+ libressl? ( media-video/ffmpeg[libressl,-openssl] )
+ !libressl? ( media-video/ffmpeg[-libressl,openssl] )
+ )
+ mysql? ( dev-db/mysql-connector-c:= )
+ mariadb? ( dev-db/mariadb-connector-c:= )
+ >=net-misc/curl-7.56.1
+ nfs? ( >=net-fs/libnfs-2.0.0:= )
+ 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(+)] )
+ >=sys-libs/zlib-1.2.11
+ udev? ( virtual/udev )
+ vaapi? (
+ x11-libs/libva:=
+ 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-0.2.3:=
+ media-libs/mesa[wayland]
+ >=dev-libs/wayland-protocols-1.7
+ >=x11-libs/libxkbcommon-0.4.1
+ )
+ 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 )
+ !media-tv/xbmc
+ udisks? ( sys-fs/udisks:2 )
+ upower? ( 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
+ virtual/jre
+ x86? ( dev-lang/nasm )
+"
+
+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_unpack() {
+ if [[ ${PV} == *9999 ]] ; then
+ if python_is_python3; then
+ EGIT_BRANCH="feature_python3"
+ ewarn "Using the experimental Python 3 branch!"
+ ewarn "See https://kodi.wiki/view/Migration_to_Python_3 for more information."
+ ewarn "To use the non-experimental Python 2 version:"
+ ewarn "echo '~${CATEGORY}/${P} PYTHON_TARGETS: -* python2_7 PYTHON_SINGLE_TARGET: -* python2_7' >> /etc/portage/package.use"
+ ewarn "then re-merge using: emerge -a =${CATEGORY}/${PF}"
+ fi
+ git-r3_src_unpack
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ 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/platform/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_INTERNAL_FSTRCMP=OFF
+ -DENABLE_CAP=$(usex caps)
+ -DENABLE_LCMS2=$(usex lcms)
+ -DENABLE_LIRCCLIENT=$(usex lirc)
+ -DENABLE_MARIADBCLIENT=$(usex mariadb)
+ -DENABLE_MYSQLCLIENT=$(usex mysql)
+ -DENABLE_MICROHTTPD=$(usex webserver)
+ -DENABLE_MYSQLCLIENT=$(usex mysql)
+ -DENABLE_NFS=$(usex nfs)
+ -DENABLE_OPENGLES=$(usex gles)
+ -DENABLE_OPENGL=$(usex opengl)
+ -DENABLE_OPTICAL=$(usex dvd)
+ -DENABLE_PLIST=$(usex airplay)
+ -DENABLE_PULSEAUDIO=$(usex pulseaudio)
+ -DENABLE_SMBCLIENT=$(usex samba)
+ -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_VERSION}.tar.gz"
+ -Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_VERSION}.tar.gz"
+ -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_VERSION}.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"
+ -DGBM_RENDER_SYSTEM="$(usex opengl gl gles)"
+ )
+ fi
+
+ if use wayland; then
+ mycmakeargs+=(
+ -DCORE_PLATFORM_NAME="wayland"
+ -DWAYLAND_RENDER_SYSTEM="$(usex opengl gl gles)"
+ )
+ 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
+
+ newicon media/icon48x48.png kodi.png
+
+ 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/KodiSend/kodi-send.py" kodi-send
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+ xdg_desktop_database_update
+}
diff --git a/media-tv/kodi/kodi-9999.ebuild b/media-tv/kodi/kodi-9999.ebuild
index b840a567c2ec..46debc7cf613 100644
--- a/media-tv/kodi/kodi-9999.ebuild
+++ b/media-tv/kodi/kodi-9999.ebuild
@@ -42,7 +42,7 @@ 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 mariadb mysql nfs +opengl pulseaudio samba systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau wayland webserver +X +xslt zeroconf"
+IUSE="airplay alsa bluetooth bluray caps cec +css dbus dvd gbm gles lcms libressl libusb lirc mariadb mysql nfs +opengl pulseaudio samba systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau wayland webserver +X +xslt zeroconf"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
|| ( gles opengl )