public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2015-08-26  5:23 Mike Frysinger
  0 siblings, 0 replies; 24+ messages in thread
From: Mike Frysinger @ 2015-08-26  5:23 UTC (permalink / raw
  To: gentoo-commits

commit:     6cb9d45a40954976452a12d0e440a415e5e28171
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 26 05:19:55 2015 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Aug 26 05:22:47 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6cb9d45a

media-tv/kodi: fix from upstream for building w/gcc-5 #557300

 media-tv/kodi/files/kodi-14.1-gcc-5.patch | 47 +++++++++++++++++++++++++++++++
 media-tv/kodi/kodi-14.1.ebuild            |  1 +
 2 files changed, 48 insertions(+)

diff --git a/media-tv/kodi/files/kodi-14.1-gcc-5.patch b/media-tv/kodi/files/kodi-14.1-gcc-5.patch
new file mode 100644
index 0000000..5134ea1
--- /dev/null
+++ b/media-tv/kodi/files/kodi-14.1-gcc-5.patch
@@ -0,0 +1,47 @@
+https://bugs.gentoo.org/557300
+
+fix from upstream
+
+From 2d792707c7ad60c598616183bd1e7c41382961c3 Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Tue, 19 May 2015 16:43:36 -0500
+Subject: [PATCH] Always declare gnu89 inline standard
+
+GCC5 switches the minimum inline standard requirements from gnu89 to gnu11.
+---
+ xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h | 4 ----
+ xbmc/screensavers/rsxs-0.9/lib/argp.h           | 2 +-
+ 2 files changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h b/xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h
+index ff4f575..92eda3b 100644
+--- a/xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h
++++ b/xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h
+@@ -198,11 +198,7 @@ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
+ #endif
+ 
+ #ifndef ARGP_FS_EI
+-#ifdef __clang__
+ #define ARGP_FS_EI extern inline __attribute__ ((__gnu_inline__))
+-#else
+-#define ARGP_FS_EI extern inline
+-#endif
+ #endif
+ 
+ ARGP_FS_EI size_t
+diff --git a/xbmc/screensavers/rsxs-0.9/lib/argp.h b/xbmc/screensavers/rsxs-0.9/lib/argp.h
+index ae7fa04..c83c75e 100644
+--- a/xbmc/screensavers/rsxs-0.9/lib/argp.h
++++ b/xbmc/screensavers/rsxs-0.9/lib/argp.h
+@@ -559,7 +559,7 @@ extern void *__argp_input (const struct argp *__restrict __argp,
+ # endif
+ 
+ # ifndef ARGP_EI
+-#  define ARGP_EI extern __inline__
++#  define ARGP_EI extern __inline__ __attribute__ ((gnu_inline)) 
+ # endif
+ 
+ ARGP_EI void
+-- 
+2.4.4
+

diff --git a/media-tv/kodi/kodi-14.1.ebuild b/media-tv/kodi/kodi-14.1.ebuild
index 1fcd391..7740ec6 100644
--- a/media-tv/kodi/kodi-14.1.ebuild
+++ b/media-tv/kodi/kodi-14.1.ebuild
@@ -153,6 +153,7 @@ src_prepare() {
 	epatch "${FILESDIR}"/${PN}-9999-nomythtv.patch
 	epatch "${FILESDIR}"/${P}-no-arm-flags.patch #400617
 	epatch "${FILESDIR}"/${PN}-14.0-dvddemux-ffmpeg.patch #526992#36
+	epatch "${FILESDIR}"/${P}-gcc-5.patch #557300
 	# The mythtv patch touches configure.ac, so force a regen
 	rm -f configure
 


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2015-08-26  5:27 Mike Frysinger
  0 siblings, 0 replies; 24+ messages in thread
From: Mike Frysinger @ 2015-08-26  5:27 UTC (permalink / raw
  To: gentoo-commits

commit:     39c613fa629724e051b7adb9c5d9415935817c8b
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 26 05:26:12 2015 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Aug 26 05:26:12 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=39c613fa

media-tv/kodi: version bump #544760

 media-tv/kodi/Manifest                            |   2 +
 media-tv/kodi/files/kodi-15.1-gcc-5.patch         | 172 +++++++++++++
 media-tv/kodi/files/kodi-15.1-texturepacker.patch |  25 ++
 media-tv/kodi/kodi-15.1.ebuild                    | 283 ++++++++++++++++++++++
 4 files changed, 482 insertions(+)

diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
index 4ef5ffd..5ee4833 100644
--- a/media-tv/kodi/Manifest
+++ b/media-tv/kodi/Manifest
@@ -1,2 +1,4 @@
 DIST kodi-14.1-generated-addons.tar.xz 71072 SHA256 0666eae88a3214f7577544975524b95a9f55b107cde5124d5d299351427c5d39 SHA512 a26889ba8af33316ac61bbf5a55ec6cd72cb867eac9b6d7c626ff890f3287de8704cf8372a5e2b72d6075ab8c31ba3d8465d1da0c9437065fe6e0171a560142f WHIRLPOOL 34a7067964febd71d5e07333a1ef90c14ad3d7d09e82aa4a3245b8174b068a1b2b31d0d6e5d20a449d11d34701b59611b725c8f37ce61702489c84bda16f227a
 DIST kodi-14.1.tar.gz 70832109 SHA256 a38059e292cf8523918834e49fcc2d688525ceb7951ddf7f5ee535f4147255d6 SHA512 05dccad279073fc804faf2f179ba370f612d53c823dd333fdd151e05de37eb8202cc981ba48afff695d475bafde9c8f05f562fe09883593a70299a2f098a9849 WHIRLPOOL 464ff2673c9e65466dff73d3c91b8754ee68d64b4a18ebb0b0c6e8efa2da1cc32ab22686530a8469a105bf7a089d8928db64c5c61d272462c13485006875b506
+DIST kodi-15.1-generated-addons.tar.xz 73988 SHA256 97f0236542044a909d982cbf9a031f76395a59a1d4a79187c1102845579ed8f2 SHA512 559c188471c84503840b8b2010b73f15cf083367a1e1d0d5cfe7c144e36821a07c6fff1ff379ad8e8b254bc0cc2555c0a17ae998003adf86b051febde97bf2f1 WHIRLPOOL 01b76391d6aa7c624ad23329c962416cdf4662b96e99724bb566d7ed20b08b1525acd4f12671eef04ac10e5255d097f7c2452d2bfd87f7dfd3f4c1cd621fe2a6
+DIST kodi-15.1.tar.gz 61477835 SHA256 72b2610d8fbff807128d74429f25bf6716ba880c27c2c5d9fad012ec7fc70705 SHA512 b597253aa51d3d446ecb85ffe163362b5e55717d6fee16eab81725b9cdf0a5a9e4a2291aa526b9e63fbb34ef206100df30c9368684e2ddedc49e35f140d604f0 WHIRLPOOL 3596c00f9d25193e1e84cdfbf7fe5a6e6bdcce37caa710b8dd2b0b7aaa043164410459009dc793991373886abed8755298ee8803edf7b90227509d0c3578b8b9

diff --git a/media-tv/kodi/files/kodi-15.1-gcc-5.patch b/media-tv/kodi/files/kodi-15.1-gcc-5.patch
new file mode 100644
index 0000000..b96cc82
--- /dev/null
+++ b/media-tv/kodi/files/kodi-15.1-gcc-5.patch
@@ -0,0 +1,172 @@
+fix from upstream
+
+From 38693b251f5d80a7414b077e02c1636af65afb3d Mon Sep 17 00:00:00 2001
+From: Craig Andrews <candrews@integralblue.com>
+Date: Thu, 30 Jul 2015 23:06:41 -0400
+Subject: [PATCH] [rsxs] Use stdbool.h from GCC 5.2.0
+
+---
+ xbmc/screensavers/rsxs-0.9/lib/stdbool_.h | 137 +++++++++---------------------
+ 1 file changed, 38 insertions(+), 99 deletions(-)
+
+diff --git a/xbmc/screensavers/rsxs-0.9/lib/stdbool_.h b/xbmc/screensavers/rsxs-0.9/lib/stdbool_.h
+index efa80ba..a951510 100644
+--- a/xbmc/screensavers/rsxs-0.9/lib/stdbool_.h
++++ b/xbmc/screensavers/rsxs-0.9/lib/stdbool_.h
+@@ -1,115 +1,54 @@
+-/* Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+-   Written by Bruno Haible <haible@clisp.cons.org>, 2001.
++/* Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 2, or (at your option)
+-   any later version.
++This file is part of GCC.
+ 
+-   This program is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++GCC is free software; you can redistribute it and/or modify
++it under the terms of the GNU General Public License as published by
++the Free Software Foundation; either version 3, or (at your option)
++any later version.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, write to the Free Software Foundation,
+-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
++GCC is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++GNU General Public License for more details.
+ 
+-#ifndef _STDBOOL_H
+-#define _STDBOOL_H
+-
+-/* ISO C 99 <stdbool.h> for platforms that lack it.  */
+-
+-/* Usage suggestions:
+-
+-   Programs that use <stdbool.h> should be aware of some limitations
+-   and standards compliance issues.
+-
+-   Standards compliance:
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
+ 
+-       - <stdbool.h> must be #included before 'bool', 'false', 'true'
+-         can be used.
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
++<http://www.gnu.org/licenses/>.  */
+ 
+-       - You cannot assume that sizeof (bool) == 1.
++/*
++ * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
++ */
+ 
+-       - Programs should not undefine the macros bool, true, and false,
+-         as C99 lists that as an "obsolescent feature".
+-
+-   Limitations of this substitute, when used in a C89 environment:
+-
+-       - <stdbool.h> must be #included before the '_Bool' type can be used.
+-
+-       - You cannot assume that _Bool is a typedef; it might be a macro.
++#ifndef _STDBOOL_H
++#define _STDBOOL_H
+ 
+-       - In C99, casts and automatic conversions to '_Bool' or 'bool' are
+-         performed in such a way that every nonzero value gets converted
+-         to 'true', and zero gets converted to 'false'.  This doesn't work
+-         with this substitute.  With this substitute, only the values 0 and 1
+-         give the expected result when converted to _Bool' or 'bool'.
++#ifndef __cplusplus
+ 
+-   Also, it is suggested that programs use 'bool' rather than '_Bool';
+-   this isn't required, but 'bool' is more common.  */
++#define bool	_Bool
++#define true	1
++#define false	0
+ 
++#else /* __cplusplus */
+ 
+-/* 7.16. Boolean type and values */
++/* Supporting _Bool in C++ is a GCC extension.  */
++#define _Bool	bool
+ 
+-/* BeOS <sys/socket.h> already #defines false 0, true 1.  We use the same
+-   definitions below, but temporarily we have to #undef them.  */
+-#ifdef __BEOS__
+-# include <OS.h> /* defines bool but not _Bool */
+-# undef false
+-# undef true
++#if __cplusplus < 201103L
++/* Defining these macros in C++98 is a GCC extension.  */
++#define bool	bool
++#define false	false
++#define true	true
+ #endif
+ 
+-/* For the sake of symbolic names in gdb, we define true and false as
+-   enum constants, not only as macros.
+-   It is tempting to write
+-      typedef enum { false = 0, true = 1 } _Bool;
+-   so that gdb prints values of type 'bool' symbolically. But if we do
+-   this, values of type '_Bool' may promote to 'int' or 'unsigned int'
+-   (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
+-   (see ISO C 99 6.3.1.1.(2)).  So we add a negative value to the
+-   enum; this ensures that '_Bool' promotes to 'int'.  */
+-#if defined __cplusplus || defined __BEOS__
+-  /* A compiler known to have 'bool'.  */
+-  /* If the compiler already has both 'bool' and '_Bool', we can assume they
+-     are the same types.  */
+-# if !@HAVE__BOOL@
+-typedef bool _Bool;
+-# endif
+-#else
+-# if !defined __GNUC__
+-   /* If @HAVE__BOOL@:
+-        Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
+-        the built-in _Bool type is used.  See
+-          http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+-          http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+-          http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+-        Similar bugs are likely with other compilers as well; this file
+-        wouldn't be used if <stdbool.h> was working.
+-        So we override the _Bool type.
+-      If !@HAVE__BOOL@:
+-        Need to define _Bool ourselves. As 'signed char' or as an enum type?
+-        Use of a typedef, with SunPRO C, leads to a stupid
+-          "warning: _Bool is a keyword in ISO C99".
+-        Use of an enum type, with IRIX cc, leads to a stupid
+-          "warning(1185): enumerated type mixed with another type".
+-        The only benefit of the enum type, debuggability, is not important
+-        with these compilers.  So use 'signed char' and no typedef.  */
+-#  define _Bool signed char
+-enum { false = 0, true = 1 };
+-# else
+-   /* With this compiler, trust the _Bool type if the compiler has it.  */
+-#  if !@HAVE__BOOL@
+-typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
+-#  endif
+-# endif
+-#endif
+-#define bool _Bool
++#endif /* __cplusplus */
+ 
+-/* The other macros must be usable in preprocessor directives.  */
+-#define false 0
+-#define true 1
+-#define __bool_true_false_are_defined 1
++/* Signal that all the definitions are present.  */
++#define __bool_true_false_are_defined	1
+ 
+-#endif /* _STDBOOL_H */
++#endif	/* stdbool.h */
+-- 
+2.4.4
+

diff --git a/media-tv/kodi/files/kodi-15.1-texturepacker.patch b/media-tv/kodi/files/kodi-15.1-texturepacker.patch
new file mode 100644
index 0000000..19309c5
--- /dev/null
+++ b/media-tv/kodi/files/kodi-15.1-texturepacker.patch
@@ -0,0 +1,25 @@
+--- tools/depends/native/TexturePacker/Makefile
++++ tools/depends/native/TexturePacker/Makefile
+@@ -9,14 +9,10 @@
+ 
+ ifeq ($(NATIVEPLATFORM),)
+   PLATFORM = native
+-  EXTRA_CONFIGURE = --enable-static
+ else
+   PLATFORM = $(NATIVEPLATFORM)
+ endif
+ 
+-ifeq ($(NATIVE_OS), linux)
+-  EXTRA_CONFIGURE = --enable-static
+-endif
+ ifeq ($(NATIVE_OS), android)
+   EXTRA_CONFIGURE = --enable-static
+ endif
+@@ -35,7 +35,6 @@ all: .installed-$(PLATFORM)
+ $(PLATFORM): ../libsquish-native/.installed-$(PLATFORM)
+ 	-rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
+ 	cd $(PLATFORM); cp -a $(SOURCE)/* .
+-	cd $(PLATFORM); ./autogen.sh
+ 	cd $(PLATFORM); ./configure --prefix=$(PREFIX) $(EXTRA_CONFIGURE) EXTRA_DEFINES="$(NATIVE_ARCH_DEFINES)"
+ 
+ 

diff --git a/media-tv/kodi/kodi-15.1.ebuild b/media-tv/kodi/kodi-15.1.ebuild
new file mode 100644
index 0000000..80d6765
--- /dev/null
+++ b/media-tv/kodi/kodi-15.1.ebuild
@@ -0,0 +1,283 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+# Does not work with py3 here
+# It might work with py:2.5 but I didn't test that
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit eutils linux-info python-single-r1 multiprocessing autotools
+
+CODENAME="Isengard"
+case ${PV} in
+9999)
+	EGIT_REPO_URI="git://github.com/xbmc/xbmc.git"
+	inherit git-r3
+	;;
+*|*_p*)
+	MY_PV=${PV/_p/_r}
+	MY_P="${PN}-${MY_PV}"
+	SRC_URI="http://mirrors.kodi.tv/releases/source/${MY_PV}-${CODENAME}.tar.gz -> ${P}.tar.gz
+		https://github.com/xbmc/xbmc/archive/${PV}-${CODENAME}.tar.gz -> ${P}.tar.gz
+		!java? ( http://mirrors.kodi.tv/releases/source/${MY_P}-generated-addons.tar.xz )"
+	KEYWORDS="~amd64 ~x86"
+
+	S=${WORKDIR}/xbmc-${PV}-${CODENAME}
+	;;
+esac
+
+DESCRIPTION="Kodi is a free and open source media-player and entertainment hub"
+HOMEPAGE="http://kodi.tv/ http://kodi.wiki/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="airplay alsa avahi bluetooth bluray caps cec css dbus debug +fishbmc gles goom java joystick midi mysql nfs +opengl profile +projectm pulseaudio +rsxs rtmp +samba sftp +spectrum test +texturepacker udisks upnp upower +usb vaapi vdpau +waveform webserver +X"
+REQUIRED_USE="
+	rsxs? ( X )
+	udisks? ( dbus )
+	upower? ( dbus )
+"
+
+COMMON_DEPEND="${PYTHON_DEPS}
+	app-arch/bzip2
+	app-arch/unzip
+	app-arch/zip
+	app-i18n/enca
+	airplay? ( app-pda/libplist )
+	dev-libs/boost
+	dev-libs/expat
+	dev-libs/fribidi
+	dev-libs/libcdio[-minimal]
+	cec? ( >=dev-libs/libcec-3.0 )
+	dev-libs/libpcre[cxx]
+	dev-libs/libxml2
+	dev-libs/libxslt
+	>=dev-libs/lzo-2.04
+	dev-libs/tinyxml[stl]
+	dev-libs/yajl
+	dev-python/simplejson[${PYTHON_USEDEP}]
+	media-fonts/corefonts
+	media-fonts/roboto
+	alsa? ( media-libs/alsa-lib )
+	media-libs/flac
+	media-libs/fontconfig
+	media-libs/freetype
+	media-libs/jasper
+	media-libs/jbigkit
+	>=media-libs/libass-0.9.7
+	bluray? ( media-libs/libbluray )
+	css? ( media-libs/libdvdcss )
+	media-libs/libmad
+	media-libs/libmodplug
+	media-libs/libmpeg2
+	media-libs/libogg
+	media-libs/libpng
+	projectm? ( media-libs/libprojectm )
+	media-libs/libsamplerate
+	joystick? ( media-libs/libsdl2 )
+	>=media-libs/taglib-1.8
+	media-libs/libvorbis
+	media-libs/tiff
+	pulseaudio? ( media-sound/pulseaudio )
+	media-sound/wavpack
+	>=media-video/ffmpeg-2.6:=[encode]
+	rtmp? ( media-video/rtmpdump )
+	avahi? ( net-dns/avahi )
+	nfs? ( net-fs/libnfs )
+	webserver? ( net-libs/libmicrohttpd[messages] )
+	sftp? ( net-libs/libssh[sftp] )
+	net-misc/curl
+	samba? ( >=net-fs/samba-3.4.6[smbclient(+)] )
+	bluetooth? ( net-wireless/bluez )
+	dbus? ( sys-apps/dbus )
+	caps? ( sys-libs/libcap )
+	sys-libs/zlib
+	virtual/jpeg
+	usb? ( virtual/libusb )
+	mysql? ( virtual/mysql )
+	opengl? (
+		virtual/glu
+		virtual/opengl
+		>=media-libs/glew-1.5.6
+	)
+	gles? (
+		media-libs/mesa[gles2]
+	)
+	vaapi? ( x11-libs/libva[opengl] )
+	vdpau? (
+		|| ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 )
+		media-video/ffmpeg[vdpau]
+	)
+	X? (
+		x11-apps/xdpyinfo
+		x11-apps/mesa-progs
+		x11-libs/libXinerama
+		x11-libs/libXrandr
+		x11-libs/libXrender
+	)"
+RDEPEND="${COMMON_DEPEND}
+	!media-tv/xbmc
+	udisks? ( sys-fs/udisks:0 )
+	upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )"
+DEPEND="${COMMON_DEPEND}
+	app-arch/xz-utils
+	dev-lang/swig
+	dev-util/gperf
+	X? ( x11-proto/xineramaproto )
+	dev-util/cmake
+	x86? ( dev-lang/nasm )
+	java? ( virtual/jre )
+	test? ( dev-cpp/gtest )"
+# Force java for latest git version to avoid having to hand maintain the
+# generated addons package.  #488118
+[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre"
+
+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() {
+	[[ ${PV} == "9999" ]] && git-r3_src_unpack || default
+}
+
+src_prepare() {
+	epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617
+	epatch "${FILESDIR}"/${P}-texturepacker.patch
+	epatch "${FILESDIR}"/${P}-gcc-5.patch #544760
+
+	# some dirs ship generated autotools, some dont
+	multijob_init
+	local d dirs=(
+		tools/depends/native/TexturePacker/src/configure
+		$(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f)
+	)
+	for d in "${dirs[@]}" ; do
+		[[ -e ${d} ]] && continue
+		pushd ${d/%configure/.} >/dev/null || die
+		AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \
+		multijob_child_init eautoreconf
+		popd >/dev/null
+	done
+	multijob_finish
+	elibtoolize
+
+	[[ ${PV} == "9999" ]] && emake -f codegenerator.mk
+
+	# Disable internal func checks as our USE/DEPEND
+	# stuff handles this just fine already #408395
+	export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes
+
+	# Fix the final version string showing as "exported"
+	# instead of the SVN revision number.
+	export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported}
+
+	# avoid long delays when powerkit isn't running #348580
+	sed -i \
+		-e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
+		xbmc/linux/*.cpp || die
+
+	epatch_user #293109
+
+	# Tweak autotool timestamps to avoid regeneration
+	find . -type f -exec touch -r configure {} +
+}
+
+src_configure() {
+	# Disable documentation generation
+	export ac_cv_path_LATEX=no
+	# Avoid help2man
+	export HELP2MAN=$(type -P help2man || echo true)
+	# No configure flage for this #403561
+	export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth)
+	# Requiring java is asine #434662
+	[[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true))
+
+	econf \
+		--docdir=/usr/share/doc/${PF} \
+		--disable-ccache \
+		--disable-optimizations \
+		--with-ffmpeg=shared \
+		$(use_enable alsa) \
+		$(use_enable airplay) \
+		$(use_enable avahi) \
+		$(use_enable bluray libbluray) \
+		$(use_enable caps libcap) \
+		$(use_enable cec libcec) \
+		$(use_enable css dvdcss) \
+		$(use_enable dbus) \
+		$(use_enable debug) \
+		$(use_enable fishbmc) \
+		$(use_enable gles) \
+		$(use_enable goom) \
+		$(use_enable joystick) \
+		$(use_enable midi mid) \
+		$(use_enable mysql) \
+		$(use_enable nfs) \
+		$(use_enable opengl gl) \
+		$(use_enable profile profiling) \
+		$(use_enable projectm) \
+		$(use_enable pulseaudio pulse) \
+		$(use_enable rsxs) \
+		$(use_enable rtmp) \
+		$(use_enable samba) \
+		$(use_enable sftp ssh) \
+		$(use_enable spectrum) \
+		$(use_enable usb libusb) \
+		$(use_enable test gtest) \
+		$(use_enable texturepacker) \
+		$(use_enable upnp) \
+		$(use_enable vaapi) \
+		$(use_enable vdpau) \
+		$(use_enable waveform) \
+		$(use_enable webserver) \
+		$(use_enable X x11)
+}
+
+src_compile() {
+	emake V=1
+}
+
+src_install() {
+	default
+	rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}*
+
+	domenu tools/Linux/kodi.desktop
+	newicon media/icon48x48.png kodi.png
+
+	# Remove optional addons (platform specific).
+	local disabled_addons=(
+		repository.pvr-{android,ios,osx{32,64},win32}.xbmc.org
+		visualization.dxspectrum
+		visualization.vortex
+	)
+	rm -rf "${disabled_addons[@]/#/${ED}/usr/share/kodi/addons/}"
+
+	# Remove fonconfig settings that are used only on MacOSX.
+	# Can't be patched upstream because they just find all files and install
+	# them into same structure like they have in git.
+	rm -rf "${ED}"/usr/share/kodi/system/players/dvdplayer/etc
+
+	# Replace bundled fonts with system ones
+	# teletext.ttf: unknown
+	# bold-caps.ttf: unknown
+	# roboto: roboto-bold, roboto-regular
+	# arial.ttf: font mashed from droid/roboto, not removed wrt bug#460514
+	rm -rf "${ED}"/usr/share/kodi/addons/skin.confluence/fonts/Roboto-*
+	dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \
+		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Regular.ttf
+	dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \
+		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Bold.ttf
+
+	python_domodule tools/EventClients/lib/python/xbmcclient.py
+	python_newscript "tools/EventClients/Clients/Kodi Send/kodi-send.py" kodi-send
+}


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2016-02-24 10:00 Alexis Ballier
  0 siblings, 0 replies; 24+ messages in thread
From: Alexis Ballier @ 2016-02-24 10:00 UTC (permalink / raw
  To: gentoo-commits

commit:     cc7f541fccd5c782bdf551b8ff2780a8523e142d
Author:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 24 09:59:45 2016 +0000
Commit:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
CommitDate: Wed Feb 24 09:59:45 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cc7f541f

media-tv/kodi: backport upstream fix to build with ffmpeg-3. Bug #574998

Package-Manager: portage-2.2.27
Signed-off-by: Alexis Ballier <aballier <AT> gentoo.org>

 media-tv/kodi/files/kodi-16-ffmpeg3.patch | 641 ++++++++++++++++++++++++++++++
 media-tv/kodi/kodi-16.0.ebuild            |   1 +
 2 files changed, 642 insertions(+)

diff --git a/media-tv/kodi/files/kodi-16-ffmpeg3.patch b/media-tv/kodi/files/kodi-16-ffmpeg3.patch
new file mode 100644
index 0000000..755af69
--- /dev/null
+++ b/media-tv/kodi/files/kodi-16-ffmpeg3.patch
@@ -0,0 +1,641 @@
+
+Changes from original commit are only in file paths & quilt refresh.
+
+commit c31b7d374062f87c7512d9872cbceac920465913
+Author: Philip Langdale <philipl@overt.org>
+Date:   Mon Sep 21 19:49:36 2015 -0700
+
+    ffmpeg: Update AVPixelFormat and AV_PIX_FMT_* to compile with master
+    
+    The deprecated PixelFormat and PIX_FMT_* names have been removed in
+    ffmpeg master.
+
+Index: xbmc-16.0-Jarvis/xbmc/cores/FFmpeg.h
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/FFmpeg.h
++++ xbmc-16.0-Jarvis/xbmc/cores/FFmpeg.h
+@@ -24,7 +24,6 @@
+ #include "utils/CPUInfo.h"
+ 
+ extern "C" {
+-#include "libswscale/swscale.h"
+ #include "libavcodec/avcodec.h"
+ #include "libavformat/avformat.h"
+ #include "libavutil/avutil.h"
+@@ -33,23 +32,6 @@ extern "C" {
+ #include "libpostproc/postprocess.h"
+ }
+ 
+-inline int SwScaleCPUFlags()
+-{
+-  unsigned int cpuFeatures = g_cpuInfo.GetCPUFeatures();
+-  int flags = 0;
+-
+-  if (cpuFeatures & CPU_FEATURE_MMX)
+-    flags |= SWS_CPU_CAPS_MMX;
+-  if (cpuFeatures & CPU_FEATURE_MMX2)
+-    flags |= SWS_CPU_CAPS_MMX2;
+-  if (cpuFeatures & CPU_FEATURE_3DNOW)
+-    flags |= SWS_CPU_CAPS_3DNOW;
+-  if (cpuFeatures & CPU_FEATURE_ALTIVEC)
+-    flags |= SWS_CPU_CAPS_ALTIVEC;
+-
+-  return flags;
+-}
+-
+ inline int PPCPUFlags()
+ {
+   unsigned int cpuFeatures = g_cpuInfo.GetCPUFeatures();
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp
+@@ -39,7 +39,7 @@ extern "C" {
+ #include "libswscale/swscale.h"
+ }
+ 
+-// allocate a new picture (PIX_FMT_YUV420P)
++// allocate a new picture (AV_PIX_FMT_YUV420P)
+ DVDVideoPicture* CDVDCodecUtils::AllocatePicture(int iWidth, int iHeight)
+ {
+   DVDVideoPicture* pPicture = new DVDVideoPicture;
+@@ -264,13 +264,13 @@ DVDVideoPicture* CDVDCodecUtils::Convert
+ 
+         int dstformat;
+         if (format == RENDER_FMT_UYVY422)
+-          dstformat = PIX_FMT_UYVY422;
++          dstformat = AV_PIX_FMT_UYVY422;
+         else
+-          dstformat = PIX_FMT_YUYV422;
++          dstformat = AV_PIX_FMT_YUYV422;
+ 
+-        struct SwsContext *ctx = sws_getContext(pSrc->iWidth, pSrc->iHeight, PIX_FMT_YUV420P,
++        struct SwsContext *ctx = sws_getContext(pSrc->iWidth, pSrc->iHeight, AV_PIX_FMT_YUV420P,
+                                                            pPicture->iWidth, pPicture->iHeight, (AVPixelFormat)dstformat,
+-                                                           SWS_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
++                                                           SWS_BILINEAR, NULL, NULL, NULL);
+         sws_scale(ctx, src, srcStride, 0, pSrc->iHeight, dst, dstStride);
+         sws_freeContext(ctx);
+       }
+@@ -403,25 +403,25 @@ double CDVDCodecUtils::NormalizeFramedur
+ }
+ 
+ struct EFormatMap {
+-  PixelFormat   pix_fmt;
++  AVPixelFormat   pix_fmt;
+   ERenderFormat format;
+ };
+ 
+ static const EFormatMap g_format_map[] = {
+-   { PIX_FMT_YUV420P,     RENDER_FMT_YUV420P    }
+-,  { PIX_FMT_YUVJ420P,    RENDER_FMT_YUV420P    }
+-,  { PIX_FMT_YUV420P10,   RENDER_FMT_YUV420P10  }
+-,  { PIX_FMT_YUV420P16,   RENDER_FMT_YUV420P16  }
+-,  { PIX_FMT_UYVY422,     RENDER_FMT_UYVY422    }
+-,  { PIX_FMT_YUYV422,     RENDER_FMT_YUYV422    }
+-,  { PIX_FMT_VAAPI_VLD,   RENDER_FMT_VAAPI      }
+-,  { PIX_FMT_DXVA2_VLD,   RENDER_FMT_DXVA       }
+-,  { PIX_FMT_NONE     ,   RENDER_FMT_NONE       }
++   { AV_PIX_FMT_YUV420P,     RENDER_FMT_YUV420P    }
++,  { AV_PIX_FMT_YUVJ420P,    RENDER_FMT_YUV420P    }
++,  { AV_PIX_FMT_YUV420P10,   RENDER_FMT_YUV420P10  }
++,  { AV_PIX_FMT_YUV420P16,   RENDER_FMT_YUV420P16  }
++,  { AV_PIX_FMT_UYVY422,     RENDER_FMT_UYVY422    }
++,  { AV_PIX_FMT_YUYV422,     RENDER_FMT_YUYV422    }
++,  { AV_PIX_FMT_VAAPI_VLD,   RENDER_FMT_VAAPI      }
++,  { AV_PIX_FMT_DXVA2_VLD,   RENDER_FMT_DXVA       }
++,  { AV_PIX_FMT_NONE     ,   RENDER_FMT_NONE       }
+ };
+ 
+ ERenderFormat CDVDCodecUtils::EFormatFromPixfmt(int fmt)
+ {
+-  for(const EFormatMap *p = g_format_map; p->pix_fmt != PIX_FMT_NONE; ++p)
++  for(const EFormatMap *p = g_format_map; p->pix_fmt != AV_PIX_FMT_NONE; ++p)
+   {
+     if(p->pix_fmt == fmt)
+       return p->format;
+@@ -431,10 +431,10 @@ ERenderFormat CDVDCodecUtils::EFormatFro
+ 
+ int CDVDCodecUtils::PixfmtFromEFormat(ERenderFormat fmt)
+ {
+-  for(const EFormatMap *p = g_format_map; p->pix_fmt != PIX_FMT_NONE; ++p)
++  for(const EFormatMap *p = g_format_map; p->pix_fmt != AV_PIX_FMT_NONE; ++p)
+   {
+     if(p->format == fmt)
+       return p->pix_fmt;
+   }
+-  return PIX_FMT_NONE;
++  return AV_PIX_FMT_NONE;
+ }
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+@@ -77,8 +77,8 @@ enum DecoderState
+   STATE_SW_MULTI
+ };
+ 
+-enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
+-                                                , const PixelFormat * fmt )
++enum AVPixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
++                                                , const AVPixelFormat * fmt )
+ {
+   CDVDVideoCodecFFmpeg* ctx  = (CDVDVideoCodecFFmpeg*)avctx->opaque;
+ 
+@@ -104,8 +104,8 @@ enum PixelFormat CDVDVideoCodecFFmpeg::G
+     avctx->hwaccel_context = 0;
+   }
+ 
+-  const PixelFormat * cur = fmt;
+-  while(*cur != PIX_FMT_NONE)
++  const AVPixelFormat * cur = fmt;
++  while(*cur != AV_PIX_FMT_NONE)
+   {
+ #ifdef HAVE_LIBVDPAU
+     if(VDPAU::CDecoder::IsVDPAUFormat(*cur) && CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEVDPAU))
+@@ -137,7 +137,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::G
+ #endif
+ #ifdef HAVE_LIBVA
+     // mpeg4 vaapi decoding is disabled
+-    if(*cur == PIX_FMT_VAAPI_VLD && CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEVAAPI))
++    if(*cur == AV_PIX_FMT_VAAPI_VLD && CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEVAAPI))
+     {
+       VAAPI::CDecoder* dec = new VAAPI::CDecoder();
+       if(dec->Open(avctx, ctx->m_pCodecContext, *cur, ctx->m_uSurfacesCount) == true)
+@@ -214,11 +214,11 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStre
+ 
+   for(std::vector<ERenderFormat>::iterator it = options.m_formats.begin(); it != options.m_formats.end(); ++it)
+   {
+-    m_formats.push_back((PixelFormat)CDVDCodecUtils::PixfmtFromEFormat(*it));
++    m_formats.push_back((AVPixelFormat)CDVDCodecUtils::PixfmtFromEFormat(*it));
+     if(*it == RENDER_FMT_YUV420P)
+-      m_formats.push_back(PIX_FMT_YUVJ420P);
++      m_formats.push_back(AV_PIX_FMT_YUVJ420P);
+   }
+-  m_formats.push_back(PIX_FMT_NONE); /* always add none to get a terminated list in ffmpeg world */
++  m_formats.push_back(AV_PIX_FMT_NONE); /* always add none to get a terminated list in ffmpeg world */
+ 
+   pCodec = avcodec_find_decoder(hints.codec);
+ 
+@@ -655,7 +655,7 @@ bool CDVDVideoCodecFFmpeg::GetPictureCom
+   pDvdVideoPicture->color_transfer = m_pCodecContext->color_trc;
+   pDvdVideoPicture->color_matrix = m_pCodecContext->colorspace;
+   if(m_pCodecContext->color_range == AVCOL_RANGE_JPEG
+-  || m_pCodecContext->pix_fmt     == PIX_FMT_YUVJ420P)
++  || m_pCodecContext->pix_fmt     == AV_PIX_FMT_YUVJ420P)
+     pDvdVideoPicture->color_range = 1;
+   else
+     pDvdVideoPicture->color_range = 0;
+@@ -738,8 +738,8 @@ bool CDVDVideoCodecFFmpeg::GetPicture(DV
+   pDvdVideoPicture->iFlags |= pDvdVideoPicture->data[0] ? 0 : DVP_FLAG_DROPPED;
+   pDvdVideoPicture->extended_format = 0;
+ 
+-  PixelFormat pix_fmt;
+-  pix_fmt = (PixelFormat)m_pFrame->format;
++  AVPixelFormat pix_fmt;
++  pix_fmt = (AVPixelFormat)m_pFrame->format;
+ 
+   pDvdVideoPicture->format = CDVDCodecUtils::EFormatFromPixfmt(pix_fmt);
+   return true;
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
+@@ -46,7 +46,7 @@ public:
+     public:
+              IHardwareDecoder() {}
+     virtual ~IHardwareDecoder() {};
+-    virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces) = 0;
++    virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces) = 0;
+     virtual int  Decode    (AVCodecContext* avctx, AVFrame* frame) = 0;
+     virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture) = 0;
+     virtual int  Check     (AVCodecContext* avctx) = 0;
+@@ -77,7 +77,7 @@ public:
+   void               SetHardware(IHardwareDecoder* hardware);
+ 
+ protected:
+-  static enum PixelFormat GetFormat(struct AVCodecContext * avctx, const PixelFormat * fmt);
++  static enum AVPixelFormat GetFormat(struct AVCodecContext * avctx, const AVPixelFormat * fmt);
+ 
+   int  FilterOpen(const std::string& filters, bool scale);
+   void FilterClose();
+@@ -119,7 +119,7 @@ protected:
+   int m_iLastKeyframe;
+   double m_dts;
+   bool   m_started;
+-  std::vector<PixelFormat> m_formats;
++  std::vector<AVPixelFormat> m_formats;
+   double m_decoderPts;
+   int    m_skippedDeint;
+   bool   m_requestSkipDeint;
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp
+@@ -554,11 +554,11 @@ void CDVDVideoCodecVDA::DisplayQueuePop(
+ 
+ void CDVDVideoCodecVDA::UYVY422_to_YUV420P(uint8_t *yuv422_ptr, int yuv422_stride, DVDVideoPicture *picture)
+ {
+-  // convert PIX_FMT_UYVY422 to PIX_FMT_YUV420P.
++  // convert AV_PIX_FMT_UYVY422 to AV_PIX_FMT_YUV420P.
+   struct SwsContext *swcontext = sws_getContext(
+-    m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_UYVY422, 
+-    m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_YUV420P, 
+-    SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
++    m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_UYVY422,
++    m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_YUV420P,
++    SWS_FAST_BILINEAR, NULL, NULL, NULL);
+   if (swcontext)
+   {
+     uint8_t  *src[] = { yuv422_ptr, 0, 0, 0 };
+@@ -574,11 +574,11 @@ void CDVDVideoCodecVDA::UYVY422_to_YUV42
+ 
+ void CDVDVideoCodecVDA::BGRA_to_YUV420P(uint8_t *bgra_ptr, int bgra_stride, DVDVideoPicture *picture)
+ {
+-  // convert PIX_FMT_BGRA to PIX_FMT_YUV420P.
++  // convert AV_PIX_FMT_BGRA to AV_PIX_FMT_YUV420P.
+   struct SwsContext *swcontext = sws_getContext(
+-    m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_BGRA, 
+-    m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_YUV420P, 
+-    SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
++    m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_BGRA,
++    m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_YUV420P,
++    SWS_FAST_BILINEAR, NULL, NULL, NULL);
+   if (swcontext)
+   {
+     uint8_t  *src[] = { bgra_ptr, 0, 0, 0 };
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp
+@@ -886,7 +886,7 @@ static bool CheckCompatibility(AVCodecCo
+   return true;
+ }
+ 
+-bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum PixelFormat fmt, unsigned int surfaces)
++bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum AVPixelFormat fmt, unsigned int surfaces)
+ {
+   if (!CheckCompatibility(avctx))
+     return false;
+@@ -1135,9 +1135,9 @@ bool CDecoder::OpenDecoder()
+   return true;
+ }
+ 
+-bool CDecoder::Supports(enum PixelFormat fmt)
++bool CDecoder::Supports(enum AVPixelFormat fmt)
+ {
+-  if(fmt == PIX_FMT_DXVA2_VLD)
++  if(fmt == AV_PIX_FMT_DXVA2_VLD)
+     return true;
+   return false;
+ }
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.h
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.h
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.h
+@@ -141,7 +141,7 @@ class CDecoder
+ public:
+   CDecoder();
+  ~CDecoder();
+-  virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces);
++  virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces);
+   virtual int  Decode    (AVCodecContext* avctx, AVFrame* frame);
+   virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture);
+   virtual int  Check     (AVCodecContext* avctx);
+@@ -154,7 +154,7 @@ public:
+   int   GetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags);
+   void  RelBuffer(uint8_t *data);
+ 
+-  static bool      Supports(enum PixelFormat fmt);
++  static bool      Supports(enum AVPixelFormat fmt);
+ 
+   void CloseDXVADecoder();
+ 
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
+@@ -479,7 +479,7 @@ CDecoder::~CDecoder()
+   Close();
+ }
+ 
+-bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat fmt, unsigned int surfaces)
++bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat fmt, unsigned int surfaces)
+ {
+   // don't support broken wrappers by default
+   // nvidia cards with a vaapi to vdpau wrapper
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h
+@@ -406,7 +406,7 @@ public:
+   CDecoder();
+   virtual ~CDecoder();
+ 
+-  virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces = 0);
++  virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces = 0);
+   virtual int  Decode    (AVCodecContext* avctx, AVFrame* frame);
+   virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture);
+   virtual void Reset();
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.cpp
+@@ -186,7 +186,7 @@ void CDecoder::Close()
+   m_bitstream = NULL;
+ }
+ 
+-bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum PixelFormat fmt, unsigned int surfaces)
++bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum AVPixelFormat fmt, unsigned int surfaces)
+ {
+   Close();
+ 
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.h
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.h
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.h
+@@ -35,7 +35,7 @@ class CDecoder
+ public:
+   CDecoder();
+  ~CDecoder();
+-  virtual bool Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces = 0);
++  virtual bool Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces = 0);
+   virtual int Decode(AVCodecContext* avctx, AVFrame* frame);
+   virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture);
+   virtual int Check(AVCodecContext* avctx);
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
+@@ -486,7 +486,7 @@ CDecoder::CDecoder() : m_vdpauOutput(&m_
+   m_vdpauConfig.context = 0;
+ }
+ 
+-bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat fmt, unsigned int surfaces)
++bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat fmt, unsigned int surfaces)
+ {
+   // check if user wants to decode this format with VDPAU
+   std::string gpuvendor = g_Windowing.GetRenderVendor();
+@@ -760,7 +760,7 @@ int CDecoder::Check(AVCodecContext* avct
+   return 0;
+ }
+ 
+-bool CDecoder::IsVDPAUFormat(PixelFormat format)
++bool CDecoder::IsVDPAUFormat(AVPixelFormat format)
+ {
+   if (format == AV_PIX_FMT_VDPAU)
+     return true;
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
+@@ -556,7 +556,7 @@ public:
+   CDecoder();
+   virtual ~CDecoder();
+ 
+-  virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces = 0);
++  virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces = 0);
+   virtual int  Decode    (AVCodecContext* avctx, AVFrame* frame);
+   virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture);
+   virtual void Reset();
+@@ -571,7 +571,7 @@ public:
+   bool Supports(VdpVideoMixerFeature feature);
+   bool Supports(EINTERLACEMETHOD method);
+   EINTERLACEMETHOD AutoInterlaceMethod();
+-  static bool IsVDPAUFormat(PixelFormat fmt);
++  static bool IsVDPAUFormat(AVPixelFormat fmt);
+ 
+   static void FFReleaseBuffer(void *opaque, uint8_t *data);
+   static int FFGetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags);
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
+@@ -1638,7 +1638,7 @@ void CDVDDemuxFFmpeg::ParsePacket(AVPack
+ 
+   // for video we need a decoder to get desired information into codec context
+   if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO && st->codec->extradata &&
+-      (!st->codec->width || st->codec->pix_fmt == PIX_FMT_NONE))
++      (!st->codec->width || st->codec->pix_fmt == AV_PIX_FMT_NONE))
+   {
+     // open a decoder, it will be cleared down by ffmpeg on closing the stream
+     if (!st->codec->codec)
+@@ -1695,7 +1695,7 @@ bool CDVDDemuxFFmpeg::IsVideoReady()
+       st = m_pFormatContext->streams[idx];
+       if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO)
+       {
+-        if (st->codec->width && st->codec->pix_fmt != PIX_FMT_NONE)
++        if (st->codec->width && st->codec->pix_fmt != AV_PIX_FMT_NONE)
+           return true;
+         hasVideo = true;
+       }
+@@ -1708,7 +1708,7 @@ bool CDVDDemuxFFmpeg::IsVideoReady()
+       st = m_pFormatContext->streams[i];
+       if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO)
+       {
+-        if (st->codec->width && st->codec->pix_fmt != PIX_FMT_NONE)
++        if (st->codec->width && st->codec->pix_fmt != AV_PIX_FMT_NONE)
+           return true;
+         hasVideo = true;
+       }
+Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDFileInfo.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDFileInfo.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDFileInfo.cpp
+@@ -275,7 +275,7 @@ bool CDVDFileInfo::ExtractThumb(const st
+ 
+             uint8_t *pOutBuf = new uint8_t[nWidth * nHeight * 4];
+             struct SwsContext *context = sws_getContext(picture.iWidth, picture.iHeight,
+-                  PIX_FMT_YUV420P, nWidth, nHeight, PIX_FMT_BGRA, SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
++                  AV_PIX_FMT_YUV420P, nWidth, nHeight, AV_PIX_FMT_BGRA, SWS_FAST_BILINEAR, NULL, NULL, NULL);
+ 
+             if (context)
+             {
+Index: xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
+@@ -2932,7 +2932,7 @@ void CLinuxRendererGL::ToRGBFrame(YV12Im
+   }
+   else if (m_format == RENDER_FMT_NV12)
+   {
+-    srcFormat = PIX_FMT_NV12;
++    srcFormat = AV_PIX_FMT_NV12;
+     for (int i = 0; i < 2; i++)
+     {
+       src[i]       = im->plane[i];
+@@ -2941,13 +2941,13 @@ void CLinuxRendererGL::ToRGBFrame(YV12Im
+   }
+   else if (m_format == RENDER_FMT_YUYV422)
+   {
+-    srcFormat    = PIX_FMT_YUYV422;
++    srcFormat    = AV_PIX_FMT_YUYV422;
+     src[0]       = im->plane[0];
+     srcStride[0] = im->stride[0];
+   }
+   else if (m_format == RENDER_FMT_UYVY422)
+   {
+-    srcFormat    = PIX_FMT_UYVY422;
++    srcFormat    = AV_PIX_FMT_UYVY422;
+     src[0]       = im->plane[0];
+     srcStride[0] = im->stride[0];
+   }
+@@ -2965,8 +2965,8 @@ void CLinuxRendererGL::ToRGBFrame(YV12Im
+ 
+   m_context = sws_getCachedContext(m_context,
+                                                  im->width, im->height, (AVPixelFormat)srcFormat,
+-                                                 im->width, im->height, (AVPixelFormat)PIX_FMT_BGRA,
+-                                                 SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
++                                                 im->width, im->height, (AVPixelFormat)AV_PIX_FMT_BGRA,
++                                                 SWS_FAST_BILINEAR, NULL, NULL, NULL);
+ 
+   uint8_t *dst[]       = { m_rgbBuffer, 0, 0, 0 };
+   int      dstStride[] = { (int)m_sourceWidth * 4, 0, 0, 0 };
+@@ -2995,7 +2995,7 @@ void CLinuxRendererGL::ToRGBFields(YV12I
+ 
+   if (m_format == RENDER_FMT_YUV420P)
+   {
+-    srcFormat = PIX_FMT_YUV420P;
++    srcFormat = AV_PIX_FMT_YUV420P;
+     for (int i = 0; i < 3; i++)
+     {
+       srcTop[i]       = im->plane[i];
+@@ -3006,7 +3006,7 @@ void CLinuxRendererGL::ToRGBFields(YV12I
+   }
+   else if (m_format == RENDER_FMT_NV12)
+   {
+-    srcFormat = PIX_FMT_NV12;
++    srcFormat = AV_PIX_FMT_NV12;
+     for (int i = 0; i < 2; i++)
+     {
+       srcTop[i]       = im->plane[i];
+@@ -3017,7 +3017,7 @@ void CLinuxRendererGL::ToRGBFields(YV12I
+   }
+   else if (m_format == RENDER_FMT_YUYV422)
+   {
+-    srcFormat       = PIX_FMT_YUYV422;
++    srcFormat       = AV_PIX_FMT_YUYV422;
+     srcTop[0]       = im->plane[0];
+     srcStrideTop[0] = im->stride[0] * 2;
+     srcBot[0]       = im->plane[0] + im->stride[0];
+@@ -3025,7 +3025,7 @@ void CLinuxRendererGL::ToRGBFields(YV12I
+   }
+   else if (m_format == RENDER_FMT_UYVY422)
+   {
+-    srcFormat       = PIX_FMT_UYVY422;
++    srcFormat       = AV_PIX_FMT_UYVY422;
+     srcTop[0]       = im->plane[0];
+     srcStrideTop[0] = im->stride[0] * 2;
+     srcBot[0]       = im->plane[0] + im->stride[0];
+@@ -3045,8 +3045,8 @@ void CLinuxRendererGL::ToRGBFields(YV12I
+ 
+   m_context = sws_getCachedContext(m_context,
+                                                  im->width, im->height >> 1, (AVPixelFormat)srcFormat,
+-                                                 im->width, im->height >> 1, (AVPixelFormat)PIX_FMT_BGRA,
+-                                                 SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
++                                                 im->width, im->height >> 1, (AVPixelFormat)AV_PIX_FMT_BGRA,
++                                                 SWS_FAST_BILINEAR, NULL, NULL, NULL);
+   uint8_t *dstTop[]    = { m_rgbBuffer, 0, 0, 0 };
+   uint8_t *dstBot[]    = { m_rgbBuffer + m_sourceWidth * m_sourceHeight * 2, 0, 0, 0 };
+   int      dstStride[] = { (int)m_sourceWidth * 4, 0, 0, 0 };
+Index: xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp
+@@ -2006,8 +2006,8 @@ void CLinuxRendererGLES::UploadYV12Textu
+ #endif
+     {
+       m_sw_context = sws_getCachedContext(m_sw_context,
+-        im->width, im->height, PIX_FMT_YUV420P,
+-        im->width, im->height, PIX_FMT_RGBA,
++        im->width, im->height, AV_PIX_FMT_YUV420P,
++        im->width, im->height, AV_PIX_FMT_RGBA,
+         SWS_FAST_BILINEAR, NULL, NULL, NULL);
+ 
+       uint8_t *src[]  = { im->plane[0], im->plane[1], im->plane[2], 0 };
+Index: xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/WinRenderer.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/cores/VideoRenderers/WinRenderer.cpp
++++ xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/WinRenderer.cpp
+@@ -94,16 +94,16 @@ CWinRenderer::~CWinRenderer()
+   UnInit();
+ }
+ 
+-static enum PixelFormat PixelFormatFromFormat(ERenderFormat format)
++static enum AVPixelFormat PixelFormatFromFormat(ERenderFormat format)
+ {
+-  if (format == RENDER_FMT_DXVA)      return PIX_FMT_NV12;
+-  if (format == RENDER_FMT_YUV420P)   return PIX_FMT_YUV420P;
+-  if (format == RENDER_FMT_YUV420P10) return PIX_FMT_YUV420P10;
+-  if (format == RENDER_FMT_YUV420P16) return PIX_FMT_YUV420P16;
+-  if (format == RENDER_FMT_NV12)      return PIX_FMT_NV12;
+-  if (format == RENDER_FMT_UYVY422)   return PIX_FMT_UYVY422;
+-  if (format == RENDER_FMT_YUYV422)   return PIX_FMT_YUYV422;
+-  return PIX_FMT_NONE;
++  if (format == RENDER_FMT_DXVA)      return AV_PIX_FMT_NV12;
++  if (format == RENDER_FMT_YUV420P)   return AV_PIX_FMT_YUV420P;
++  if (format == RENDER_FMT_YUV420P10) return AV_PIX_FMT_YUV420P10;
++  if (format == RENDER_FMT_YUV420P16) return AV_PIX_FMT_YUV420P16;
++  if (format == RENDER_FMT_NV12)      return AV_PIX_FMT_NV12;
++  if (format == RENDER_FMT_UYVY422)   return AV_PIX_FMT_UYVY422;
++  if (format == RENDER_FMT_YUYV422)   return AV_PIX_FMT_YUYV422;
++  return AV_PIX_FMT_NONE;
+ }
+ 
+ void CWinRenderer::ManageTextures()
+@@ -719,13 +719,13 @@ void CWinRenderer::Render(DWORD flags)
+ 
+ void CWinRenderer::RenderSW()
+ {
+-  enum PixelFormat format = PixelFormatFromFormat(m_format);
++  enum AVPixelFormat format = PixelFormatFromFormat(m_format);
+ 
+   // 1. convert yuv to rgb
+   m_sw_scale_ctx = sws_getCachedContext(m_sw_scale_ctx,
+                                         m_sourceWidth, m_sourceHeight, format,
+-                                        m_sourceWidth, m_sourceHeight, PIX_FMT_BGRA,
+-                                        SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
++                                        m_sourceWidth, m_sourceHeight, AV_PIX_FMT_BGRA,
++                                        SWS_FAST_BILINEAR, NULL, NULL, NULL);
+ 
+   YUVBuffer* buf = (YUVBuffer*)m_VideoBuffers[m_iYV12RenderBuffer];
+ 
+Index: xbmc-16.0-Jarvis/xbmc/pictures/Picture.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/pictures/Picture.cpp
++++ xbmc-16.0-Jarvis/xbmc/pictures/Picture.cpp
+@@ -342,9 +342,9 @@ bool CPicture::ScaleImage(uint8_t *in_pi
+                           uint8_t *out_pixels, unsigned int out_width, unsigned int out_height, unsigned int out_pitch,
+                           CPictureScalingAlgorithm::Algorithm scalingAlgorithm /* = CPictureScalingAlgorithm::NoAlgorithm */)
+ {
+-  struct SwsContext *context = sws_getContext(in_width, in_height, PIX_FMT_BGRA,
+-                                                         out_width, out_height, PIX_FMT_BGRA,
+-                                                         CPictureScalingAlgorithm::ToSwscale(scalingAlgorithm) | SwScaleCPUFlags(), NULL, NULL, NULL);
++  struct SwsContext *context = sws_getContext(in_width, in_height, AV_PIX_FMT_BGRA,
++                                                         out_width, out_height, AV_PIX_FMT_BGRA,
++                                                         CPictureScalingAlgorithm::ToSwscale(scalingAlgorithm), NULL, NULL, NULL);
+ 
+   uint8_t *src[] = { in_pixels, 0, 0, 0 };
+   int     srcStride[] = { (int)in_pitch, 0, 0, 0 };
+Index: xbmc-16.0-Jarvis/xbmc/video/FFmpegVideoDecoder.cpp
+===================================================================
+--- xbmc-16.0-Jarvis.orig/xbmc/video/FFmpegVideoDecoder.cpp
++++ xbmc-16.0-Jarvis/xbmc/video/FFmpegVideoDecoder.cpp
+@@ -252,7 +252,7 @@ bool FFmpegVideoDecoder::nextFrame( CBas
+       return false;
+ 
+     // Due to a bug in swsscale we need to allocate one extra line of data
+-    if ( avpicture_alloc( m_pFrameRGB, PIX_FMT_RGB32, m_frameRGBwidth, m_frameRGBheight + 1 ) < 0 )
++    if ( avpicture_alloc( m_pFrameRGB, AV_PIX_FMT_RGB32, m_frameRGBwidth, m_frameRGBheight + 1 ) < 0 )
+       return false;
+   }
+ 
+@@ -287,7 +287,7 @@ bool FFmpegVideoDecoder::nextFrame( CBas
+ 
+   // We got the video frame, render it into the picture buffer
+   struct SwsContext * context = sws_getContext( m_pCodecCtx->width, m_pCodecCtx->height, m_pCodecCtx->pix_fmt,
+-                           m_frameRGBwidth, m_frameRGBheight, PIX_FMT_RGB32, SWS_FAST_BILINEAR, NULL, NULL, NULL );
++                           m_frameRGBwidth, m_frameRGBheight, AV_PIX_FMT_RGB32, SWS_FAST_BILINEAR, NULL, NULL, NULL );
+ 
+   sws_scale( context, m_pFrame->data, m_pFrame->linesize, 0, m_pCodecCtx->height,
+                                                                      m_pFrameRGB->data, m_pFrameRGB->linesize );

diff --git a/media-tv/kodi/kodi-16.0.ebuild b/media-tv/kodi/kodi-16.0.ebuild
index 09f3eca..c133d98 100644
--- a/media-tv/kodi/kodi-16.0.ebuild
+++ b/media-tv/kodi/kodi-16.0.ebuild
@@ -157,6 +157,7 @@ src_unpack() {
 src_prepare() {
 	epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617
 	epatch "${FILESDIR}"/${PN}-9999-texturepacker.patch
+	epatch "${FILESDIR}"/${PN}-16-ffmpeg3.patch
 	epatch_user #293109
 
 	# some dirs ship generated autotools, some dont


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2017-01-17 18:57 David Seifert
  0 siblings, 0 replies; 24+ messages in thread
From: David Seifert @ 2017-01-17 18:57 UTC (permalink / raw
  To: gentoo-commits

commit:     a9c612e7b9704d3ef04ea7768bc28eaee5d1fc97
Author:     Craig Andrews <candrews <AT> integralblue <DOT> com>
AuthorDate: Mon Jan 16 21:55:18 2017 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Tue Jan 17 18:57:35 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a9c612e7

media-tv/kodi: Various fixes

* -16.1-r1, -17_rc3-r1, and -9999: Add systemd use flag to pull in correct upower dependency
* -16.1-r1: fix building with GCC 6
* -17_rc3-r1 and -9999: Depend on 'dbus' use flag in net-dns/avahi to include zeroconf support, see https://github.com/gentoo/gentoo/pull/3340
* -17_rc3-r1 and -9999: Always depend on dev-libs/libcdio
* -17_rc3-r1 and -9999: fontconfig settings path has changed
* -17_rc3-r1 and -9999: Set minimum version of media-fonts/noto appropriately
* -17_rc3-r1 and -9999: Use eautoreconf instead of autoreconf for parts of the build which still use autotools instead of cmake
Gentoo-bug: 583230, 605578, 605712, 605716, 605676, 592446
Closes: https://github.com/gentoo/gentoo/pull/3513

 media-tv/kodi/files/kodi-16.1-gcc-6.patch          | 1405 ++++++++++++++++++++
 media-tv/kodi/kodi-16.1-r1.ebuild                  |  301 +++++
 .../{kodi-9999.ebuild => kodi-17.0_rc3-r1.ebuild}  |   40 +-
 media-tv/kodi/kodi-9999.ebuild                     |   38 +-
 4 files changed, 1772 insertions(+), 12 deletions(-)

diff --git a/media-tv/kodi/files/kodi-16.1-gcc-6.patch b/media-tv/kodi/files/kodi-16.1-gcc-6.patch
new file mode 100644
index 00000000..6b190f9
--- /dev/null
+++ b/media-tv/kodi/files/kodi-16.1-gcc-6.patch
@@ -0,0 +1,1405 @@
+diff --git a/lib/cximage-6.0/CxImage/ximabmp.cpp b/lib/cximage-6.0/CxImage/ximabmp.cpp
+index 726ff91..6c7c31b 100644
+--- a/lib/cximage-6.0/CxImage/ximabmp.cpp
++++ b/lib/cximage-6.0/CxImage/ximabmp.cpp
+@@ -46,7 +46,7 @@ bool CxImageBMP::Encode(CxFile * hFile)
+ 		bihtoh(&infohdr);
+ 
+ 		// Write the file header
+-		hFile->Write(&hdr,min(14,sizeof(BITMAPFILEHEADER)),1);
++		hFile->Write(&hdr,minimum(14,sizeof(BITMAPFILEHEADER)),1);
+ 		hFile->Write(&infohdr,sizeof(BITMAPINFOHEADER),1);
+ 		 //and DIB+ALPHA interlaced
+ 		BYTE *srcalpha = AlphaGetPointer();
+@@ -64,7 +64,7 @@ bool CxImageBMP::Encode(CxFile * hFile)
+ #endif //CXIMAGE_SUPPORT_ALPHA
+ 	{
+ 		// Write the file header
+-		hFile->Write(&hdr,min(14,sizeof(BITMAPFILEHEADER)),1);
++		hFile->Write(&hdr,minimum(14,sizeof(BITMAPFILEHEADER)),1);
+ 		//copy attributes
+ 		memcpy(pDib,&head,sizeof(BITMAPINFOHEADER));
+ 		bihtoh((BITMAPINFOHEADER*)pDib);
+@@ -86,7 +86,7 @@ bool CxImageBMP::Decode(CxFile * hFile)
+ 	BITMAPFILEHEADER   bf;
+ 	DWORD off = hFile->Tell(); //<CSC>
+   cx_try {
+-	if (hFile->Read(&bf,min(14,sizeof(bf)),1)==0) cx_throw("Not a BMP");
++	if (hFile->Read(&bf,minimum(14,sizeof(bf)),1)==0) cx_throw("Not a BMP");
+ 
+ 	bf.bfSize = my_ntohl(bf.bfSize); 
+ 	bf.bfOffBits = my_ntohl(bf.bfOffBits); 
+diff --git a/lib/cximage-6.0/CxImage/ximadef.h b/lib/cximage-6.0/CxImage/ximadef.h
+index fe383bf..5783749 100644
+--- a/lib/cximage-6.0/CxImage/ximadef.h
++++ b/lib/cximage-6.0/CxImage/ximadef.h
+@@ -53,11 +53,11 @@
+  #define CXIMAGE_SUPPORT_WINDOWS 0
+ #endif
+ 
+-#ifndef min
+-#define min(a,b) (((a)<(b))?(a):(b))
++#ifndef minimum
++#define minimum(a,b) (((a)<(b))?(a):(b))
+ #endif
+-#ifndef max
+-#define max(a,b) (((a)>(b))?(a):(b))
++#ifndef maximum
++#define maximum(a,b) (((a)>(b))?(a):(b))
+ #endif
+ 
+ #ifndef PI
+diff --git a/lib/cximage-6.0/CxImage/ximadsp.cpp b/lib/cximage-6.0/CxImage/ximadsp.cpp
+index 8425bb2..dbac785 100644
+--- a/lib/cximage-6.0/CxImage/ximadsp.cpp
++++ b/lib/cximage-6.0/CxImage/ximadsp.cpp
+@@ -389,8 +389,8 @@ RGBQUAD CxImage::RGBtoHSL(RGBQUAD lRGBColor)
+ 	G = lRGBColor.rgbGreen;
+ 	B = lRGBColor.rgbBlue;
+ 
+-	cMax = max( max(R,G), B);	/* calculate lightness */
+-	cMin = min( min(R,G), B);
++	cMax = maximum( maximum(R,G), B);	/* calculate lightness */
++	cMin = minimum( minimum(R,G), B);
+ 	L = (BYTE)((((cMax+cMin)*HSLMAX)+RGBMAX)/(2*RGBMAX));
+ 
+ 	if (cMax==cMin){			/* r=g=b --> achromatic case */
+@@ -489,9 +489,9 @@ RGBQUAD CxImage::YUVtoRGB(RGBQUAD lYUVColor)
+ 	G = (int)( Y - 0.344f * U - 0.714f * V);
+ 	B = (int)( Y + 1.770f * U);
+ 
+-	R= min(255,max(0,R));
+-	G= min(255,max(0,G));
+-	B= min(255,max(0,B));
++	R= minimum(255,maximum(0,R));
++	G= minimum(255,maximum(0,G));
++	B= minimum(255,maximum(0,B));
+ 	RGBQUAD rgb={(BYTE)B,(BYTE)G,(BYTE)R,0};
+ 	return rgb;
+ }
+@@ -510,9 +510,9 @@ RGBQUAD CxImage::RGBtoYUV(RGBQUAD lRGBColor)
+ 	U = (int)((B-Y) * 0.565f + 128);
+ 	V = (int)((R-Y) * 0.713f + 128);
+ 
+-	Y= min(255,max(0,Y));
+-	U= min(255,max(0,U));
+-	V= min(255,max(0,V));
++	Y= minimum(255,maximum(0,Y));
++	U= minimum(255,maximum(0,U));
++	V= minimum(255,maximum(0,V));
+ 	RGBQUAD yuv={(BYTE)V,(BYTE)U,(BYTE)Y,0};
+ 	return yuv;
+ }
+@@ -528,9 +528,9 @@ RGBQUAD CxImage::YIQtoRGB(RGBQUAD lYIQColor)
+ 	G = (int)( Y - 0.273f * I - 0.647f * Q);
+ 	B = (int)( Y - 1.104f * I + 1.701f * Q);
+ 
+-	R= min(255,max(0,R));
+-	G= min(255,max(0,G));
+-	B= min(255,max(0,B));
++	R= minimum(255,maximum(0,R));
++	G= minimum(255,maximum(0,G));
++	B= minimum(255,maximum(0,B));
+ 	RGBQUAD rgb={(BYTE)B,(BYTE)G,(BYTE)R,0};
+ 	return rgb;
+ }
+@@ -546,9 +546,9 @@ RGBQUAD CxImage::RGBtoYIQ(RGBQUAD lRGBColor)
+ 	I = (int)( 0.5960f * R - 0.2742f * G - 0.3219f * B + 128);
+ 	Q = (int)( 0.2109f * R - 0.5229f * G + 0.3120f * B + 128);
+ 
+-	Y= min(255,max(0,Y));
+-	I= min(255,max(0,I));
+-	Q= min(255,max(0,Q));
++	Y= minimum(255,maximum(0,Y));
++	I= minimum(255,maximum(0,I));
++	Q= minimum(255,maximum(0,Q));
+ 	RGBQUAD yiq={(BYTE)Q,(BYTE)I,(BYTE)Y,0};
+ 	return yiq;
+ }
+@@ -565,9 +565,9 @@ RGBQUAD CxImage::XYZtoRGB(RGBQUAD lXYZColor)
+ 	G = (int)( -0.969256f * X + 1.875992f * Y + 0.041556f * Z * k);
+ 	B = (int)(  0.055648f * X - 0.204043f * Y + 1.057311f * Z * k);
+ 
+-	R= min(255,max(0,R));
+-	G= min(255,max(0,G));
+-	B= min(255,max(0,B));
++	R= minimum(255,maximum(0,R));
++	G= minimum(255,maximum(0,G));
++	B= minimum(255,maximum(0,B));
+ 	RGBQUAD rgb={(BYTE)B,(BYTE)G,(BYTE)R,0};
+ 	return rgb;
+ }
+@@ -583,9 +583,9 @@ RGBQUAD CxImage::RGBtoXYZ(RGBQUAD lRGBColor)
+ 	Y = (int)( 0.212671f * R + 0.715160f * G + 0.072169f * B);
+ 	Z = (int)((0.019334f * R + 0.119193f * G + 0.950227f * B)*0.918483657f);
+ 
+-	//X= min(255,max(0,X));
+-	//Y= min(255,max(0,Y));
+-	//Z= min(255,max(0,Z));
++	//X= minimum(255,maximum(0,X));
++	//Y= minimum(255,maximum(0,Y));
++	//Z= minimum(255,maximum(0,Z));
+ 	RGBQUAD xyz={(BYTE)Z,(BYTE)Y,(BYTE)X,0};
+ 	return xyz;
+ }
+@@ -707,7 +707,7 @@ bool CxImage::Light(long brightness, long contrast)
+ 
+ 	BYTE cTable[256]; //<nipper>
+ 	for (int i=0;i<256;i++)	{
+-		cTable[i] = (BYTE)max(0,min(255,(int)((i-128)*c + brightness + 0.5f)));
++		cTable[i] = (BYTE)maximum(0,minimum(255,(int)((i-128)*c + brightness + 0.5f)));
+ 	}
+ 
+ 	return Lut(cTable);
+@@ -830,11 +830,11 @@ bool CxImage::Filter(long* kernel, long Ksize, long Kfactor, long Koffset)
+ 						}
+ 					}
+ 					if (Kfactor==0 || ksumcur==0){
+-						cPtr2[iY1] = (BYTE)min(255, max(0,(int)(b + Koffset)));
++						cPtr2[iY1] = (BYTE)minimum(255, maximum(0,(int)(b + Koffset)));
+ 					} else if (ksumtot == ksumcur) {
+-						cPtr2[iY1] = (BYTE)min(255, max(0,(int)(b/Kfactor + Koffset)));
++						cPtr2[iY1] = (BYTE)minimum(255, maximum(0,(int)(b/Kfactor + Koffset)));
+ 					} else {
+-						cPtr2[iY1] = (BYTE)min(255, max(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset)));
++						cPtr2[iY1] = (BYTE)minimum(255, maximum(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset)));
+ 					}
+ 				}
+ 			}
+@@ -863,17 +863,17 @@ bool CxImage::Filter(long* kernel, long Ksize, long Kfactor, long Koffset)
+ 						}
+ 					}
+ 					if (Kfactor==0 || ksumcur==0){
+-						c.rgbRed   = (BYTE)min(255, max(0,(int)(r + Koffset)));
+-						c.rgbGreen = (BYTE)min(255, max(0,(int)(g + Koffset)));
+-						c.rgbBlue  = (BYTE)min(255, max(0,(int)(b + Koffset)));
++						c.rgbRed   = (BYTE)minimum(255, maximum(0,(int)(r + Koffset)));
++						c.rgbGreen = (BYTE)minimum(255, maximum(0,(int)(g + Koffset)));
++						c.rgbBlue  = (BYTE)minimum(255, maximum(0,(int)(b + Koffset)));
+ 					} else if (ksumtot == ksumcur) {
+-						c.rgbRed   = (BYTE)min(255, max(0,(int)(r/Kfactor + Koffset)));
+-						c.rgbGreen = (BYTE)min(255, max(0,(int)(g/Kfactor + Koffset)));
+-						c.rgbBlue  = (BYTE)min(255, max(0,(int)(b/Kfactor + Koffset)));
++						c.rgbRed   = (BYTE)minimum(255, maximum(0,(int)(r/Kfactor + Koffset)));
++						c.rgbGreen = (BYTE)minimum(255, maximum(0,(int)(g/Kfactor + Koffset)));
++						c.rgbBlue  = (BYTE)minimum(255, maximum(0,(int)(b/Kfactor + Koffset)));
+ 					} else {
+-						c.rgbRed   = (BYTE)min(255, max(0,(int)((r*ksumtot)/(ksumcur*Kfactor) + Koffset)));
+-						c.rgbGreen = (BYTE)min(255, max(0,(int)((g*ksumtot)/(ksumcur*Kfactor) + Koffset)));
+-						c.rgbBlue  = (BYTE)min(255, max(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset)));
++						c.rgbRed   = (BYTE)minimum(255, maximum(0,(int)((r*ksumtot)/(ksumcur*Kfactor) + Koffset)));
++						c.rgbGreen = (BYTE)minimum(255, maximum(0,(int)((g*ksumtot)/(ksumcur*Kfactor) + Koffset)));
++						c.rgbBlue  = (BYTE)minimum(255, maximum(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset)));
+ 					}
+ 					tmp.BlindSetPixelColor(x,y,c);
+ 				}
+@@ -1078,8 +1078,8 @@ bool CxImage::Edge(long Ksize)
+ // 
+ void CxImage::Mix(CxImage & imgsrc2, ImageOpType op, long lXOffset, long lYOffset, bool bMixAlpha)
+ {
+-    long lWide = min(GetWidth(),imgsrc2.GetWidth()-lXOffset);
+-    long lHeight = min(GetHeight(),imgsrc2.GetHeight()-lYOffset);
++    long lWide = minimum(GetWidth(),imgsrc2.GetWidth()-lXOffset);
++    long lHeight = minimum(GetHeight(),imgsrc2.GetHeight()-lYOffset);
+ 
+ 	bool bEditAlpha = imgsrc2.AlphaIsValid() & bMixAlpha;
+ 
+@@ -1112,16 +1112,16 @@ void CxImage::Mix(CxImage & imgsrc2, ImageOpType op, long lXOffset, long lYOffse
+ 						if (bEditAlpha) rgbDest.rgbReserved = (BYTE)((rgb1.rgbReserved+rgb2.rgbReserved)/2);
+ 					break;
+ 					case OpAdd:
+-						rgbDest.rgbBlue = (BYTE)max(0,min(255,rgb1.rgbBlue+rgb2.rgbBlue));
+-						rgbDest.rgbGreen = (BYTE)max(0,min(255,rgb1.rgbGreen+rgb2.rgbGreen));
+-						rgbDest.rgbRed = (BYTE)max(0,min(255,rgb1.rgbRed+rgb2.rgbRed));
+-						if (bEditAlpha) rgbDest.rgbReserved = (BYTE)max(0,min(255,rgb1.rgbReserved+rgb2.rgbReserved));
++						rgbDest.rgbBlue = (BYTE)maximum(0,minimum(255,rgb1.rgbBlue+rgb2.rgbBlue));
++						rgbDest.rgbGreen = (BYTE)maximum(0,minimum(255,rgb1.rgbGreen+rgb2.rgbGreen));
++						rgbDest.rgbRed = (BYTE)maximum(0,minimum(255,rgb1.rgbRed+rgb2.rgbRed));
++						if (bEditAlpha) rgbDest.rgbReserved = (BYTE)maximum(0,minimum(255,rgb1.rgbReserved+rgb2.rgbReserved));
+ 					break;
+ 					case OpSub:
+-						rgbDest.rgbBlue = (BYTE)max(0,min(255,rgb1.rgbBlue-rgb2.rgbBlue));
+-						rgbDest.rgbGreen = (BYTE)max(0,min(255,rgb1.rgbGreen-rgb2.rgbGreen));
+-						rgbDest.rgbRed = (BYTE)max(0,min(255,rgb1.rgbRed-rgb2.rgbRed));
+-						if (bEditAlpha) rgbDest.rgbReserved = (BYTE)max(0,min(255,rgb1.rgbReserved-rgb2.rgbReserved));
++						rgbDest.rgbBlue = (BYTE)maximum(0,minimum(255,rgb1.rgbBlue-rgb2.rgbBlue));
++						rgbDest.rgbGreen = (BYTE)maximum(0,minimum(255,rgb1.rgbGreen-rgb2.rgbGreen));
++						rgbDest.rgbRed = (BYTE)maximum(0,minimum(255,rgb1.rgbRed-rgb2.rgbRed));
++						if (bEditAlpha) rgbDest.rgbReserved = (BYTE)maximum(0,minimum(255,rgb1.rgbReserved-rgb2.rgbReserved));
+ 					break;
+ 					case OpAnd:
+ 						rgbDest.rgbBlue = (BYTE)(rgb1.rgbBlue&rgb2.rgbBlue);
+@@ -1202,11 +1202,11 @@ void CxImage::Mix(CxImage & imgsrc2, ImageOpType op, long lXOffset, long lYOffse
+ 							double dSmallAmt = dSmall*((double)rgb2.rgbBlue);
+ 
+ 							if( lAverage < lThresh+1){
+-								rgbDest.rgbBlue = (BYTE)max(0,min(255,(int)(dLarge*((double)rgb1.rgbBlue) +
++								rgbDest.rgbBlue = (BYTE)maximum(0,minimum(255,(int)(dLarge*((double)rgb1.rgbBlue) +
+ 												dSmallAmt)));
+-								rgbDest.rgbGreen = (BYTE)max(0,min(255,(int)(dLarge*((double)rgb1.rgbGreen) +
++								rgbDest.rgbGreen = (BYTE)maximum(0,minimum(255,(int)(dLarge*((double)rgb1.rgbGreen) +
+ 												dSmallAmt)));
+-								rgbDest.rgbRed = (BYTE)max(0,min(255,(int)(dLarge*((double)rgb1.rgbRed) +
++								rgbDest.rgbRed = (BYTE)maximum(0,minimum(255,(int)(dLarge*((double)rgb1.rgbRed) +
+ 												dSmallAmt)));
+ 							}
+ 							else
+@@ -1274,9 +1274,9 @@ bool CxImage::ShiftRGB(long r, long g, long b)
+ #endif //CXIMAGE_SUPPORT_SELECTION
+ 				{
+ 					color = BlindGetPixelColor(x,y);
+-					color.rgbRed = (BYTE)max(0,min(255,(int)(color.rgbRed + r)));
+-					color.rgbGreen = (BYTE)max(0,min(255,(int)(color.rgbGreen + g)));
+-					color.rgbBlue = (BYTE)max(0,min(255,(int)(color.rgbBlue + b)));
++					color.rgbRed = (BYTE)maximum(0,minimum(255,(int)(color.rgbRed + r)));
++					color.rgbGreen = (BYTE)maximum(0,minimum(255,(int)(color.rgbGreen + g)));
++					color.rgbBlue = (BYTE)maximum(0,minimum(255,(int)(color.rgbBlue + b)));
+ 					BlindSetPixelColor(x,y,color);
+ 				}
+ 			}
+@@ -1284,9 +1284,9 @@ bool CxImage::ShiftRGB(long r, long g, long b)
+ 	} else {
+ 		for(DWORD j=0; j<head.biClrUsed; j++){
+ 			color = GetPaletteColor((BYTE)j);
+-			color.rgbRed = (BYTE)max(0,min(255,(int)(color.rgbRed + r)));
+-			color.rgbGreen = (BYTE)max(0,min(255,(int)(color.rgbGreen + g)));
+-			color.rgbBlue = (BYTE)max(0,min(255,(int)(color.rgbBlue + b)));
++			color.rgbRed = (BYTE)maximum(0,minimum(255,(int)(color.rgbRed + r)));
++			color.rgbGreen = (BYTE)maximum(0,minimum(255,(int)(color.rgbGreen + g)));
++			color.rgbBlue = (BYTE)maximum(0,minimum(255,(int)(color.rgbBlue + b)));
+ 			SetPaletteColor((BYTE)j,color);
+ 		}
+ 	}
+@@ -1310,7 +1310,7 @@ bool CxImage::Gamma(float gamma)
+ 
+ 	BYTE cTable[256]; //<nipper>
+ 	for (int i=0;i<256;i++)	{
+-		cTable[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax)));
++		cTable[i] = (BYTE)maximum(0,minimum(255,(int)( pow((double)i, dinvgamma) / dMax)));
+ 	}
+ 
+ 	return Lut(cTable);
+@@ -1337,21 +1337,21 @@ bool CxImage::GammaRGB(float gammaR, float gammaG, float gammaB)
+ 	dMax = pow(255.0, dinvgamma) / 255.0;
+ 	BYTE cTableR[256];
+ 	for (i=0;i<256;i++)	{
+-		cTableR[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax)));
++		cTableR[i] = (BYTE)maximum(0,minimum(255,(int)( pow((double)i, dinvgamma) / dMax)));
+ 	}
+ 
+ 	dinvgamma = 1/gammaG;
+ 	dMax = pow(255.0, dinvgamma) / 255.0;
+ 	BYTE cTableG[256];
+ 	for (i=0;i<256;i++)	{
+-		cTableG[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax)));
++		cTableG[i] = (BYTE)maximum(0,minimum(255,(int)( pow((double)i, dinvgamma) / dMax)));
+ 	}
+ 
+ 	dinvgamma = 1/gammaB;
+ 	dMax = pow(255.0, dinvgamma) / 255.0;
+ 	BYTE cTableB[256];
+ 	for (i=0;i<256;i++)	{
+-		cTableB[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax)));
++		cTableB[i] = (BYTE)maximum(0,minimum(255,(int)( pow((double)i, dinvgamma) / dMax)));
+ 	}
+ 
+ 	return Lut(cTableR, cTableG, cTableB);
+@@ -1442,11 +1442,11 @@ bool CxImage::Noise(long level)
+ 			{
+ 				color = BlindGetPixelColor(x,y);
+ 				n=(long)((rand()/(float)RAND_MAX - 0.5)*level);
+-				color.rgbRed = (BYTE)max(0,min(255,(int)(color.rgbRed + n)));
++				color.rgbRed = (BYTE)maximum(0,minimum(255,(int)(color.rgbRed + n)));
+ 				n=(long)((rand()/(float)RAND_MAX - 0.5)*level);
+-				color.rgbGreen = (BYTE)max(0,min(255,(int)(color.rgbGreen + n)));
++				color.rgbGreen = (BYTE)maximum(0,minimum(255,(int)(color.rgbGreen + n)));
+ 				n=(long)((rand()/(float)RAND_MAX - 0.5)*level);
+-				color.rgbBlue = (BYTE)max(0,min(255,(int)(color.rgbBlue + n)));
++				color.rgbBlue = (BYTE)maximum(0,minimum(255,(int)(color.rgbBlue + n)));
+ 				BlindSetPixelColor(x,y,color);
+ 			}
+ 		}
+@@ -1561,8 +1561,8 @@ bool CxImage::FFT2(CxImage* srcReal, CxImage* srcImag, CxImage* dstReal, CxImage
+ 
+ 	//DFT buffers
+ 	double *real2,*imag2;
+-	real2 = (double*)malloc(max(w,h) * sizeof(double));
+-	imag2 = (double*)malloc(max(w,h) * sizeof(double));
++	real2 = (double*)malloc(maximum(w,h) * sizeof(double));
++	imag2 = (double*)malloc(maximum(w,h) * sizeof(double));
+ 
+ 	/* Transform the rows */
+ 	real = (double *)malloc(w * sizeof(double));
+@@ -1617,7 +1617,7 @@ bool CxImage::FFT2(CxImage* srcReal, CxImage* srcImag, CxImage* dstReal, CxImage
+ 
+ 	/* converting from double to byte, there is a HUGE loss in the dynamics
+ 	  "nn" tries to keep an acceptable SNR, but 8bit=48dB: don't ask more */
+-	double nn=pow((double)2,(double)log((double)max(w,h))/(double)log((double)2)-4);
++	double nn=pow((double)2,(double)log((double)maximum(w,h))/(double)log((double)2)-4);
+ 	//reversed gain for reversed transform
+ 	if (direction==-1) nn=1/nn;
+ 	//bMagnitude : just to see it on the screen
+@@ -1626,15 +1626,15 @@ bool CxImage::FFT2(CxImage* srcReal, CxImage* srcImag, CxImage* dstReal, CxImage
+ 	for (j=0;j<h;j++) {
+ 		for (k=0;k<w;k++) {
+ 			if (bMagnitude){
+-				tmpReal->SetPixelIndex(k,j,(BYTE)max(0,min(255,(nn*(3+log(_cabs(grid[k][j])))))));
++				tmpReal->SetPixelIndex(k,j,(BYTE)maximum(0,minimum(255,(nn*(3+log(_cabs(grid[k][j])))))));
+ 				if (grid[k][j].x==0){
+-					tmpImag->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128+(atan(grid[k][j].y/0.0000000001)*nn)))));
++					tmpImag->SetPixelIndex(k,j,(BYTE)maximum(0,minimum(255,(128+(atan(grid[k][j].y/0.0000000001)*nn)))));
+ 				} else {
+-					tmpImag->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128+(atan(grid[k][j].y/grid[k][j].x)*nn)))));
++					tmpImag->SetPixelIndex(k,j,(BYTE)maximum(0,minimum(255,(128+(atan(grid[k][j].y/grid[k][j].x)*nn)))));
+ 				}
+ 			} else {
+-				tmpReal->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128 + grid[k][j].x*nn))));
+-				tmpImag->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128 + grid[k][j].y*nn))));
++				tmpReal->SetPixelIndex(k,j,(BYTE)maximum(0,minimum(255,(128 + grid[k][j].x*nn))));
++				tmpImag->SetPixelIndex(k,j,(BYTE)maximum(0,minimum(255,(128 + grid[k][j].y*nn))));
+ 			}
+ 		}
+ 	}
+@@ -1922,7 +1922,7 @@ bool CxImage::RepairChannel(CxImage *ch, float radius)
+ 
+ 			correction = ((1.0+iy*iy)*ixx - ix*iy*ixy + (1.0+ix*ix)*iyy)/(1.0+ix*ix+iy*iy);
+ 
+-			tmp.BlindSetPixelIndex(x,y,(BYTE)min(255,max(0,(xy0 + radius * correction + 0.5))));
++			tmp.BlindSetPixelIndex(x,y,(BYTE)minimum(255,maximum(0,(xy0 + radius * correction + 0.5))));
+ 		}
+ 	}
+ 
+@@ -1943,7 +1943,7 @@ bool CxImage::RepairChannel(CxImage *ch, float radius)
+ 
+ 			correction = ((1.0+iy*iy)*ixx - ix*iy*ixy + (1.0+ix*ix)*iyy)/(1.0+ix*ix+iy*iy);
+ 
+-			tmp.BlindSetPixelIndex(x,y,(BYTE)min(255,max(0,(xy0 + radius * correction + 0.5))));
++			tmp.BlindSetPixelIndex(x,y,(BYTE)minimum(255,maximum(0,(xy0 + radius * correction + 0.5))));
+ 		}
+ 	}
+ 	for (x=0;x<=w;x+=w){
+@@ -1963,7 +1963,7 @@ bool CxImage::RepairChannel(CxImage *ch, float radius)
+ 
+ 			correction = ((1.0+iy*iy)*ixx - ix*iy*ixy + (1.0+ix*ix)*iyy)/(1.0+ix*ix+iy*iy);
+ 
+-			tmp.BlindSetPixelIndex(x,y,(BYTE)min(255,max(0,(xy0 + radius * correction + 0.5))));
++			tmp.BlindSetPixelIndex(x,y,(BYTE)minimum(255,maximum(0,(xy0 + radius * correction + 0.5))));
+ 		}
+ 	}
+ 
+@@ -2621,8 +2621,8 @@ bool CxImage::SelectiveBlur(float radius, BYTE threshold, CxImage* iDst)
+ 	}
+ 
+ 	//build the difference mask
+-	BYTE thresh_dw = (BYTE)max( 0 ,(int)(128 - threshold));
+-	BYTE thresh_up = (BYTE)min(255,(int)(128 + threshold));
++	BYTE thresh_dw = (BYTE)maximum( 0 ,(int)(128 - threshold));
++	BYTE thresh_up = (BYTE)minimum(255,(int)(128 + threshold));
+ 	long kernel[]={-100,-100,-100,-100,801,-100,-100,-100,-100};
+ 	if (!Tmp.Filter(kernel,3,800,128)){
+ 		delete [] pPalette;
+@@ -2755,7 +2755,7 @@ bool CxImage::UnsharpMask(float radius /*= 5.0*/, float amount /*= 0.5*/, int th
+ 					if (abs(diff) < threshold){
+ 						dest_row[z] = cur_row[z];
+ 					} else {
+-						dest_row[z] = (BYTE)min(255, max(0,(int)(cur_row[z] + amount * diff)));
++						dest_row[z] = (BYTE)minimum(255, maximum(0,(int)(cur_row[z] + amount * diff)));
+ 					}
+ 				}
+ 			}
+@@ -2952,7 +2952,7 @@ bool CxImage::RedEyeRemove(float strength)
+ 				float a = 1.0f-5.0f*((float)((x-0.5f*(xmax+xmin))*(x-0.5f*(xmax+xmin))+(y-0.5f*(ymax+ymin))*(y-0.5f*(ymax+ymin))))/((float)((xmax-xmin)*(ymax-ymin)));
+ 				if (a<0) a=0;
+ 				color = BlindGetPixelColor(x,y);
+-				color.rgbRed = (BYTE)(a*min(color.rgbGreen,color.rgbBlue)+(1.0f-a)*color.rgbRed);
++				color.rgbRed = (BYTE)(a*minimum(color.rgbGreen,color.rgbBlue)+(1.0f-a)*color.rgbRed);
+ 				BlindSetPixelColor(x,y,color);
+ 			}
+ 		}
+@@ -2990,7 +2990,7 @@ bool CxImage::Saturate(const long saturation, const long colorspace)
+ 	case 1:
+ 		{
+ 			for (int i=0;i<256;i++)	{
+-				cTable[i] = (BYTE)max(0,min(255,(int)(i + saturation)));
++				cTable[i] = (BYTE)maximum(0,minimum(255,(int)(i + saturation)));
+ 			}
+ 			for(long y=ymin; y<ymax; y++){
+ 				info.nProgress = (long)(100*(y-ymin)/(ymax-ymin));
+@@ -3012,7 +3012,7 @@ bool CxImage::Saturate(const long saturation, const long colorspace)
+ 	case 2:
+ 		{
+ 			for (int i=0;i<256;i++)	{
+-				cTable[i] = (BYTE)max(0,min(255,(int)((i-128)*(100 + saturation)/100.0f + 128.5f)));
++				cTable[i] = (BYTE)maximum(0,minimum(255,(int)((i-128)*(100 + saturation)/100.0f + 128.5f)));
+ 			}
+ 			for(long y=ymin; y<ymax; y++){
+ 				info.nProgress = (long)(100*(y-ymin)/(ymax-ymin));
+@@ -3242,10 +3242,10 @@ int  CxImage::OptimalThreshold(long method, RECT * pBox, CxImage* pContrastMask)
+ 
+ 	long xmin,xmax,ymin,ymax;
+ 	if (pBox){
+-		xmin = max(pBox->left,0);
+-		xmax = min(pBox->right,head.biWidth);
+-		ymin = max(pBox->bottom,0);
+-		ymax = min(pBox->top,head.biHeight);
++		xmin = maximum(pBox->left,0);
++		xmax = minimum(pBox->right,head.biWidth);
++		ymin = maximum(pBox->bottom,0);
++		ymax = minimum(pBox->top,head.biHeight);
+ 	} else {
+ 		xmin = ymin = 0;
+ 		xmax = head.biWidth; ymax=head.biHeight;
+@@ -3463,7 +3463,7 @@ bool CxImage::AdaptiveThreshold(long method, long nBoxSize, CxImage* pContrastMa
+ 			r.top = r.bottom + nBoxSize;
+ 			int threshold = OptimalThreshold(method, &r, pContrastMask);
+ 			if (threshold <0) return false;
+-			mask.SetPixelIndex(x,y,(BYTE)max(0,min(255,nBias+((1.0f-fGlobalLocalBalance)*threshold + fGlobalLocalBalance*globalthreshold))));
++			mask.SetPixelIndex(x,y,(BYTE)maximum(0,minimum(255,nBias+((1.0f-fGlobalLocalBalance)*threshold + fGlobalLocalBalance*globalthreshold))));
+ 		}
+ 	}
+ 
+@@ -3538,8 +3538,8 @@ bool CxImage::FloodFill(const long xStart, const long yStart, const RGBQUAD cFil
+ 	if (IsIndexed()){ //--- Generic indexed image, no tolerance OR Grayscale image with tolerance
+ 		BYTE idxRef = GetPixelIndex(xStart,yStart);
+ 		BYTE idxFill = GetNearestIndex(cFillColor);
+-		BYTE idxMin = (BYTE)min(255, max(0,(int)(idxRef - nTolerance)));
+-		BYTE idxMax = (BYTE)min(255, max(0,(int)(idxRef + nTolerance)));
++		BYTE idxMin = (BYTE)minimum(255, maximum(0,(int)(idxRef - nTolerance)));
++		BYTE idxMax = (BYTE)minimum(255, maximum(0,(int)(idxRef + nTolerance)));
+ 
+ 		while(!q.empty())
+ 		{
+@@ -3575,12 +3575,12 @@ bool CxImage::FloodFill(const long xStart, const long yStart, const RGBQUAD cFil
+ 	} else { //--- RGB image
+ 		RGBQUAD cRef = GetPixelColor(xStart,yStart);
+ 		RGBQUAD cRefMin, cRefMax;
+-		cRefMin.rgbRed   = (BYTE)min(255, max(0,(int)(cRef.rgbRed   - nTolerance)));
+-		cRefMin.rgbGreen = (BYTE)min(255, max(0,(int)(cRef.rgbGreen - nTolerance)));
+-		cRefMin.rgbBlue  = (BYTE)min(255, max(0,(int)(cRef.rgbBlue  - nTolerance)));
+-		cRefMax.rgbRed   = (BYTE)min(255, max(0,(int)(cRef.rgbRed   + nTolerance)));
+-		cRefMax.rgbGreen = (BYTE)min(255, max(0,(int)(cRef.rgbGreen + nTolerance)));
+-		cRefMax.rgbBlue  = (BYTE)min(255, max(0,(int)(cRef.rgbBlue  + nTolerance)));
++		cRefMin.rgbRed   = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbRed   - nTolerance)));
++		cRefMin.rgbGreen = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbGreen - nTolerance)));
++		cRefMin.rgbBlue  = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbBlue  - nTolerance)));
++		cRefMax.rgbRed   = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbRed   + nTolerance)));
++		cRefMax.rgbGreen = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbGreen + nTolerance)));
++		cRefMax.rgbBlue  = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbBlue  + nTolerance)));
+ 
+ 		while(!q.empty())
+ 		{
+diff --git a/lib/cximage-6.0/CxImage/ximage.cpp b/lib/cximage-6.0/CxImage/ximage.cpp
+index e81d3c6..b715c45 100644
+--- a/lib/cximage-6.0/CxImage/ximage.cpp
++++ b/lib/cximage-6.0/CxImage/ximage.cpp
+@@ -460,7 +460,7 @@ bool CxImage::CreateFromArray(BYTE* pArray,DWORD dwWidth,DWORD dwHeight,DWORD dw
+ 				src+=4;
+ 			}
+ 		} else {
+-			memcpy(dst,src,min(info.dwEffWidth,dwBytesperline));
++			memcpy(dst,src,minimum(info.dwEffWidth,dwBytesperline));
+ 		}
+ 	}
+ 	return true;
+@@ -500,7 +500,7 @@ bool CxImage::CreateFromMatrix(BYTE** ppMatrix,DWORD dwWidth,DWORD dwHeight,DWOR
+ 					src+=4;
+ 				}
+ 			} else {
+-				memcpy(dst,src,min(info.dwEffWidth,dwBytesperline));
++				memcpy(dst,src,minimum(info.dwEffWidth,dwBytesperline));
+ 			}
+ 		}
+ 	}
+diff --git a/lib/cximage-6.0/CxImage/ximagif.cpp b/lib/cximage-6.0/CxImage/ximagif.cpp
+index b89e061..1a26170 100644
+--- a/lib/cximage-6.0/CxImage/ximagif.cpp
++++ b/lib/cximage-6.0/CxImage/ximagif.cpp
+@@ -478,7 +478,7 @@ bool CxImageGIF::Encode(CxFile * fp, CxImage ** pImages, int pagecount, bool bLo
+ 	ghost.EncodeHeader(fp);
+ 
+ 	if (m_loops!=1){
+-		ghost.SetLoops(max(0,m_loops-1));
++		ghost.SetLoops(maximum(0,m_loops-1));
+ 		ghost.EncodeLoopExtension(fp);
+ 	}
+ 
+@@ -1340,10 +1340,10 @@ void CxImageGIF::GetComment(char* sz_comment_out)
+ ////////////////////////////////////////////////////////////////////////////////
+ void CxImageGIF::GifMix(CxImage & imgsrc2, struct_image & imgdesc)
+ {
+-	long ymin = max(0,(long)(GetHeight()-imgdesc.t - imgdesc.h));
++	long ymin = maximum(0,(long)(GetHeight()-imgdesc.t - imgdesc.h));
+ 	long ymax = GetHeight()-imgdesc.t;
+ 	long xmin = imgdesc.l;
+-	long xmax = min(GetWidth(), (DWORD)(imgdesc.l + imgdesc.w));
++	long xmax = minimum(GetWidth(), (DWORD)(imgdesc.l + imgdesc.w));
+ 
+ 	long ibg2= imgsrc2.GetTransIndex();
+     BYTE i2;
+diff --git a/lib/cximage-6.0/CxImage/ximahist.cpp b/lib/cximage-6.0/CxImage/ximahist.cpp
+index a2aed03..814ab94 100644
+--- a/lib/cximage-6.0/CxImage/ximahist.cpp
++++ b/lib/cximage-6.0/CxImage/ximahist.cpp
+@@ -110,7 +110,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
+ 	// calculate LUT
+ 	BYTE lut[256];
+ 	for (x = 0; x <256; x++){
+-		lut[x] = (BYTE)max(0,min(255,(255 * (x - minc) / (maxc - minc))));
++		lut[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minc) / (maxc - minc))));
+ 	}
+ 
+ 	for (y=0; y<head.biHeight; y++)	{
+@@ -152,7 +152,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
+ 		// calculate LUT
+ 		BYTE lut[256];
+ 		for (x = 0; x <256; x++){
+-			lut[x] = (BYTE)max(0,min(255,(255 * (x - minc) / (maxc - minc))));
++			lut[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minc) / (maxc - minc))));
+ 		}
+ 
+ 		// normalize image
+@@ -225,7 +225,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
+ 		BYTE range = maxR - minR;
+ 		if (range != 0)	{
+ 			for (x = 0; x <256; x++){
+-				lutR[x] = (BYTE)max(0,min(255,(255 * (x - minR) / range)));
++				lutR[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minR) / range)));
+ 			}
+ 		} else lutR[minR] = minR;
+ 
+@@ -233,7 +233,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
+ 		range = maxG - minG;
+ 		if (range != 0)	{
+ 			for (x = 0; x <256; x++){
+-				lutG[x] = (BYTE)max(0,min(255,(255 * (x - minG) / range)));
++				lutG[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minG) / range)));
+ 			}
+ 		} else lutG[minG] = minG;
+ 			
+@@ -241,7 +241,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
+ 		range = maxB - minB;
+ 		if (range != 0)	{
+ 			for (x = 0; x <256; x++){
+-				lutB[x] = (BYTE)max(0,min(255,(255 * (x - minB) / range)));
++				lutB[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minB) / range)));
+ 			}
+ 		} else lutB[minB] = minB;
+ 
+@@ -292,7 +292,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
+ 		// calculate LUT
+ 		BYTE lut[256];
+ 		for (x = 0; x <256; x++){
+-			lut[x] = (BYTE)max(0,min(255,(255 * (x - minc) / (maxc - minc))));
++			lut[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minc) / (maxc - minc))));
+ 		}
+ 
+ 		for(y=0; y<head.biHeight; y++){
+diff --git a/lib/cximage-6.0/CxImage/ximaint.cpp b/lib/cximage-6.0/CxImage/ximaint.cpp
+index 989d76c..6bde6b0 100644
+--- a/lib/cximage-6.0/CxImage/ximaint.cpp
++++ b/lib/cximage-6.0/CxImage/ximaint.cpp
+@@ -26,8 +26,8 @@ void CxImage::OverflowCoordinates(long &x, long &y, OverflowMethod const ofMetho
+   switch (ofMethod) {
+     case OM_REPEAT:
+       //clip coordinates
+-      x=max(x,0); x=min(x, head.biWidth-1);
+-      y=max(y,0); y=min(y, head.biHeight-1);
++      x=maximum(x,0); x=minimum(x, head.biWidth-1);
++      y=maximum(y,0); y=minimum(y, head.biHeight-1);
+       break;
+     case OM_WRAP:
+       //wrap coordinates
+@@ -59,8 +59,8 @@ void CxImage::OverflowCoordinates(float &x, float &y, OverflowMethod const ofMet
+   switch (ofMethod) {
+     case OM_REPEAT:
+       //clip coordinates
+-      x=max(x,0); x=min(x, head.biWidth-1);
+-      y=max(y,0); y=min(y, head.biHeight-1);
++      x=maximum(x,0); x=minimum(x, head.biWidth-1);
++      y=maximum(y,0); y=minimum(y, head.biHeight-1);
+       break;
+     case OM_WRAP:
+       //wrap coordinates
+diff --git a/lib/cximage-6.0/CxImage/ximaiter.h b/lib/cximage-6.0/CxImage/ximaiter.h
+index 9788919..0437c33 100644
+--- a/lib/cximage-6.0/CxImage/ximaiter.h
++++ b/lib/cximage-6.0/CxImage/ximaiter.h
+@@ -140,7 +140,7 @@ inline void CImageIterator::SetY(int y)
+ inline void CImageIterator::SetRow(BYTE *buf, int n)
+ {
+ 	if (n<0) n = (int)ima->GetEffWidth();
+-	else n = min(n,(int)ima->GetEffWidth());
++	else n = minimum(n,(int)ima->GetEffWidth());
+ 
+ 	if ((IterImage!=NULL)&&(buf!=NULL)&&(n>0)) memcpy(IterImage,buf,n);
+ }
+@@ -148,7 +148,7 @@ inline void CImageIterator::SetRow(BYTE *buf, int n)
+ inline void CImageIterator::GetRow(BYTE *buf, int n)
+ {
+ 	if ((IterImage!=NULL)&&(buf!=NULL)&&(n>0))
+-		memcpy(buf,IterImage,min(n,(int)ima->GetEffWidth()));
++		memcpy(buf,IterImage,minimum(n,(int)ima->GetEffWidth()));
+ }
+ /////////////////////////////////////////////////////////////////////
+ inline BYTE* CImageIterator::GetRow()
+diff --git a/lib/cximage-6.0/CxImage/ximajbg.cpp b/lib/cximage-6.0/CxImage/ximajbg.cpp
+index 06fb9bf..6751a46 100644
+--- a/lib/cximage-6.0/CxImage/ximajbg.cpp
++++ b/lib/cximage-6.0/CxImage/ximajbg.cpp
+@@ -145,7 +145,7 @@ bool CxImageJBG::Encode(CxFile * hFile)
+ 	jbg_enc_init(&jbig_state, w, h, planes, &buffer, jbig_data_out, hFile);
+ 
+     //jbg_enc_layers(&jbig_state, 2);
+-    //jbg_enc_lrlmax(&jbig_state, 800, 600);
++    //jbg_enc_lrlmaximum(&jbig_state, 800, 600);
+ 
+ 	// Specify a few other options (each is ignored if negative)
+ 	int dl = -1, dh = -1, d = -1, l0 = -1, mx = -1;
+diff --git a/lib/cximage-6.0/CxImage/ximajpg.cpp b/lib/cximage-6.0/CxImage/ximajpg.cpp
+index 79ab75b..acb5708 100644
+--- a/lib/cximage-6.0/CxImage/ximajpg.cpp
++++ b/lib/cximage-6.0/CxImage/ximajpg.cpp
+@@ -89,7 +89,7 @@ bool CxImageJPG::GetExifThumbnail(const char *filename, const char *outname, int
+     {
+       if (image.GetWidth() > 256 || image.GetHeight() > 256)
+       { // resize the image
+-//        float amount = 256.0f / max(image.GetWidth(), image.GetHeight());
++//        float amount = 256.0f / maximum(image.GetWidth(), image.GetHeight());
+ //        image.Resample((long)(image.GetWidth() * amount), (long)(image.GetHeight() * amount), 0);
+       }
+       if (m_exifinfo.Orientation != 1)
+diff --git a/lib/cximage-6.0/CxImage/ximapal.cpp b/lib/cximage-6.0/CxImage/ximapal.cpp
+index b3bd3da..882491b 100644
+--- a/lib/cximage-6.0/CxImage/ximapal.cpp
++++ b/lib/cximage-6.0/CxImage/ximapal.cpp
+@@ -398,8 +398,8 @@ void CxImage::RGBtoBGR(BYTE *buffer, int length)
+ {
+ 	if (buffer && (head.biClrUsed==0)){
+ 		BYTE temp;
+-		length = min(length,(int)info.dwEffWidth);
+-		length = min(length,(int)(3*head.biWidth));
++		length = minimum(length,(int)info.dwEffWidth);
++		length = minimum(length,(int)(3*head.biWidth));
+ 		for (int i=0;i<length;i+=3){
+ 			temp = buffer[i]; buffer[i] = buffer[i+2]; buffer[i+2] = temp;
+ 		}
+@@ -444,7 +444,7 @@ void CxImage::SetPalette(DWORD n, BYTE *r, BYTE *g, BYTE *b)
+ 	if (!g) g = r;
+ 	if (!b) b = g;
+ 	RGBQUAD* ppal=GetPalette();
+-	DWORD m=min(n,head.biClrUsed);
++	DWORD m=minimum(n,head.biClrUsed);
+ 	for (DWORD i=0; i<m;i++){
+ 		ppal[i].rgbRed=r[i];
+ 		ppal[i].rgbGreen=g[i];
+@@ -457,7 +457,7 @@ void CxImage::SetPalette(rgb_color *rgb,DWORD nColors)
+ {
+ 	if ((!rgb)||(pDib==NULL)||(head.biClrUsed==0)) return;
+ 	RGBQUAD* ppal=GetPalette();
+-	DWORD m=min(nColors,head.biClrUsed);
++	DWORD m=minimum(nColors,head.biClrUsed);
+ 	for (DWORD i=0; i<m;i++){
+ 		ppal[i].rgbRed=rgb[i].r;
+ 		ppal[i].rgbGreen=rgb[i].g;
+@@ -469,7 +469,7 @@ void CxImage::SetPalette(rgb_color *rgb,DWORD nColors)
+ void CxImage::SetPalette(RGBQUAD* pPal,DWORD nColors)
+ {
+ 	if ((pPal==NULL)||(pDib==NULL)||(head.biClrUsed==0)) return;
+-	memcpy(GetPalette(),pPal,min(GetPaletteSize(),nColors*sizeof(RGBQUAD)));
++	memcpy(GetPalette(),pPal,minimum(GetPaletteSize(),nColors*sizeof(RGBQUAD)));
+ 	info.last_c_isvalid = false;
+ }
+ ////////////////////////////////////////////////////////////////////////////////
+@@ -654,10 +654,10 @@ void CxImage::SetClrImportant(DWORD ncolors)
+ 
+ 	switch(head.biBitCount){
+ 	case 1:
+-		head.biClrImportant = min(ncolors,2);
++		head.biClrImportant = minimum(ncolors,2);
+ 		break;
+ 	case 4:
+-		head.biClrImportant = min(ncolors,16);
++		head.biClrImportant = minimum(ncolors,16);
+ 		break;
+ 	case 8:
+ 		head.biClrImportant = ncolors;
+diff --git a/lib/cximage-6.0/CxImage/ximapng.cpp b/lib/cximage-6.0/CxImage/ximapng.cpp
+index a58441c..76fad8a 100644
+--- a/lib/cximage-6.0/CxImage/ximapng.cpp
++++ b/lib/cximage-6.0/CxImage/ximapng.cpp
+@@ -206,9 +206,9 @@ bool CxImagePNG::Decode(CxFile *hFile)
+ 	} else SetGrayPalette(); //<DP> needed for grayscale PNGs
+ 	
+ #ifdef USE_NEW_LIBPNG_API
+-	int nshift = max(0,(_bit_depth>>3)-1)<<3;
++	int nshift = maximum(0,(_bit_depth>>3)-1)<<3;
+ #else
+-	int nshift = max(0,(info_ptr->bit_depth>>3)-1)<<3;
++	int nshift = maximum(0,(info_ptr->bit_depth>>3)-1)<<3;
+ #endif
+ 
+ #ifdef USE_NEW_LIBPNG_API
+@@ -255,10 +255,10 @@ bool CxImagePNG::Decode(CxFile *hFile)
+ 			if (pal){
+ 				DWORD ip;
+ #ifdef USE_NEW_LIBPNG_API
+-				for (ip=0;ip<min(head.biClrUsed,(unsigned long)_num_trans);ip++)
++				for (ip=0;ip<minimum(head.biClrUsed,(unsigned long)_num_trans);ip++)
+ 					pal[ip].rgbReserved=_trans_alpha[ip];
+ #else
+-				for (ip=0;ip<min(head.biClrUsed,(unsigned long)info_ptr->num_trans);ip++)
++				for (ip=0;ip<minimum(head.biClrUsed,(unsigned long)info_ptr->num_trans);ip++)
+ #if PNG_LIBPNG_VER > 10399
+ 					pal[ip].rgbReserved=info_ptr->trans_alpha[ip];
+ #else
+@@ -737,9 +737,9 @@ bool CxImagePNG::Encode(CxFile *hFile)
+ #endif // CXIMAGE_SUPPORT_ALPHA	// <vho>
+ 
+ #ifdef USE_NEW_LIBPNG_API
+-	int row_size = max(info.dwEffWidth, (_width * _channels * _bit_depth / 8));
++	int row_size = maximum(info.dwEffWidth, (_width * _channels * _bit_depth / 8));
+ #else
+-	int row_size = max(info.dwEffWidth, info_ptr->width*info_ptr->channels*(info_ptr->bit_depth/8));
++	int row_size = maximum(info.dwEffWidth, info_ptr->width*info_ptr->channels*(info_ptr->bit_depth/8));
+ 	info_ptr->rowbytes = row_size;
+ #endif
+ 	BYTE *row_pointers = new BYTE[row_size];
+diff --git a/lib/cximage-6.0/CxImage/ximaraw.cpp b/lib/cximage-6.0/CxImage/ximaraw.cpp
+index fd86f96..1c4a8f6 100644
+--- a/lib/cximage-6.0/CxImage/ximaraw.cpp
++++ b/lib/cximage-6.0/CxImage/ximaraw.cpp
+@@ -216,7 +216,7 @@ bool CxImageRAW::Decode(CxFile *hFile)
+ 
+ 		DWORD size = dcr.width * (dcr.colors*dcr.opt.output_bps/8);
+ 		RGBtoBGR(ppm,size);
+-		memcpy(GetBits(dcr.height - 1 - row), ppm, min(size,GetEffWidth()));
++		memcpy(GetBits(dcr.height - 1 - row), ppm, minimum(size,GetEffWidth()));
+ 	}
+ 	free (ppm);
+ 
+@@ -298,7 +298,7 @@ bool CxImageRAW::GetExifThumbnail(const char *filename, const char *outname, int
+ 			// Resizing.
+       		if (image.GetWidth() > 256 || image.GetHeight() > 256)
+ 		    {
+-				float amount = 256.0f / max(image.GetWidth(), image.GetHeight());
++				float amount = 256.0f / maximum(image.GetWidth(), image.GetHeight());
+ 				image.Resample((long)(image.GetWidth() * amount), (long)(image.GetHeight() * amount), 0);
+ 		    }
+ 	      	
+diff --git a/lib/cximage-6.0/CxImage/ximasel.cpp b/lib/cximage-6.0/CxImage/ximasel.cpp
+index 3a7c9a1..50ed029 100644
+--- a/lib/cximage-6.0/CxImage/ximasel.cpp
++++ b/lib/cximage-6.0/CxImage/ximasel.cpp
+@@ -113,15 +113,15 @@ bool CxImage::SelectionAddRect(RECT r, BYTE level)
+ 	if (r.left<r.right) {r2.left=r.left; r2.right=r.right; } else {r2.left=r.right ; r2.right=r.left; }
+ 	if (r.bottom<r.top) {r2.bottom=r.bottom; r2.top=r.top; } else {r2.bottom=r.top ; r2.top=r.bottom; }
+ 
+-	if (info.rSelectionBox.top <= r2.top) info.rSelectionBox.top = max(0L,min(head.biHeight,r2.top+1));
+-	if (info.rSelectionBox.left > r2.left) info.rSelectionBox.left = max(0L,min(head.biWidth,r2.left));
+-	if (info.rSelectionBox.right <= r2.right) info.rSelectionBox.right = max(0L,min(head.biWidth,r2.right+1));
+-	if (info.rSelectionBox.bottom > r2.bottom) info.rSelectionBox.bottom = max(0L,min(head.biHeight,r2.bottom));
++	if (info.rSelectionBox.top <= r2.top) info.rSelectionBox.top = maximum(0L,minimum(head.biHeight,r2.top+1));
++	if (info.rSelectionBox.left > r2.left) info.rSelectionBox.left = maximum(0L,minimum(head.biWidth,r2.left));
++	if (info.rSelectionBox.right <= r2.right) info.rSelectionBox.right = maximum(0L,minimum(head.biWidth,r2.right+1));
++	if (info.rSelectionBox.bottom > r2.bottom) info.rSelectionBox.bottom = maximum(0L,minimum(head.biHeight,r2.bottom));
+ 
+-	long ymin = max(0L,min(head.biHeight,r2.bottom));
+-	long ymax = max(0L,min(head.biHeight,r2.top+1));
+-	long xmin = max(0L,min(head.biWidth,r2.left));
+-	long xmax = max(0L,min(head.biWidth,r2.right+1));
++	long ymin = maximum(0L,minimum(head.biHeight,r2.bottom));
++	long ymax = maximum(0L,minimum(head.biHeight,r2.top+1));
++	long xmin = maximum(0L,minimum(head.biWidth,r2.left));
++	long xmax = maximum(0L,minimum(head.biWidth,r2.right+1));
+ 
+ 	for (long y=ymin; y<ymax; y++)
+ 		memset(pSelection + xmin + y * head.biWidth, level, xmax-xmin);
+@@ -144,18 +144,18 @@ bool CxImage::SelectionAddEllipse(RECT r, BYTE level)
+ 	long xcenter = (r.right + r.left)/2;
+ 	long ycenter = (r.top + r.bottom)/2;
+ 
+-	if (info.rSelectionBox.left > (xcenter - xradius)) info.rSelectionBox.left = max(0L,min(head.biWidth,(xcenter - xradius)));
+-	if (info.rSelectionBox.right <= (xcenter + xradius)) info.rSelectionBox.right = max(0L,min(head.biWidth,(xcenter + xradius + 1)));
+-	if (info.rSelectionBox.bottom > (ycenter - yradius)) info.rSelectionBox.bottom = max(0L,min(head.biHeight,(ycenter - yradius)));
+-	if (info.rSelectionBox.top <= (ycenter + yradius)) info.rSelectionBox.top = max(0L,min(head.biHeight,(ycenter + yradius + 1)));
++	if (info.rSelectionBox.left > (xcenter - xradius)) info.rSelectionBox.left = maximum(0L,minimum(head.biWidth,(xcenter - xradius)));
++	if (info.rSelectionBox.right <= (xcenter + xradius)) info.rSelectionBox.right = maximum(0L,minimum(head.biWidth,(xcenter + xradius + 1)));
++	if (info.rSelectionBox.bottom > (ycenter - yradius)) info.rSelectionBox.bottom = maximum(0L,minimum(head.biHeight,(ycenter - yradius)));
++	if (info.rSelectionBox.top <= (ycenter + yradius)) info.rSelectionBox.top = maximum(0L,minimum(head.biHeight,(ycenter + yradius + 1)));
+ 
+-	long xmin = max(0L,min(head.biWidth,xcenter - xradius));
+-	long xmax = max(0L,min(head.biWidth,xcenter + xradius + 1));
+-	long ymin = max(0L,min(head.biHeight,ycenter - yradius));
+-	long ymax = max(0L,min(head.biHeight,ycenter + yradius + 1));
++	long xmin = maximum(0L,minimum(head.biWidth,xcenter - xradius));
++	long xmax = maximum(0L,minimum(head.biWidth,xcenter + xradius + 1));
++	long ymin = maximum(0L,minimum(head.biHeight,ycenter - yradius));
++	long ymax = maximum(0L,minimum(head.biHeight,ycenter + yradius + 1));
+ 
+ 	long y,yo;
+-	for (y=ymin; y<min(ycenter,ymax); y++){
++	for (y=ymin; y<minimum(ycenter,ymax); y++){
+ 		for (long x=xmin; x<xmax; x++){
+ 			yo = (long)(ycenter - yradius * sqrt(1-pow((float)(x - xcenter)/(float)xradius,2)));
+ 			if (yo<y) pSelection[x + y * head.biWidth] = level;
+@@ -268,10 +268,10 @@ bool CxImage::SelectionAddPolygon(POINT *points, long npoints, BYTE level)
+ 		RECT r2;
+ 		if (current->x < next->x) {r2.left=current->x; r2.right=next->x; } else {r2.left=next->x ; r2.right=current->x; }
+ 		if (current->y < next->y) {r2.bottom=current->y; r2.top=next->y; } else {r2.bottom=next->y ; r2.top=current->y; }
+-		if (localbox.top < r2.top) localbox.top = max(0L,min(head.biHeight-1,r2.top+1));
+-		if (localbox.left > r2.left) localbox.left = max(0L,min(head.biWidth-1,r2.left-1));
+-		if (localbox.right < r2.right) localbox.right = max(0L,min(head.biWidth-1,r2.right+1));
+-		if (localbox.bottom > r2.bottom) localbox.bottom = max(0L,min(head.biHeight-1,r2.bottom-1));
++		if (localbox.top < r2.top) localbox.top = maximum(0L,minimum(head.biHeight-1,r2.top+1));
++		if (localbox.left > r2.left) localbox.left = maximum(0L,minimum(head.biWidth-1,r2.left-1));
++		if (localbox.right < r2.right) localbox.right = maximum(0L,minimum(head.biWidth-1,r2.right+1));
++		if (localbox.bottom > r2.bottom) localbox.bottom = maximum(0L,minimum(head.biHeight-1,r2.bottom-1));
+ 
+ 		i++;
+ 	}
+@@ -385,10 +385,10 @@ bool CxImage::SelectionAddPolygon(POINT *points, long npoints, BYTE level)
+ 		for (x=localbox.left; x<=localbox.right; x++)
+ 			if (plocal[x + yoffset]!=1) pSelection[x + yoffset]=level;
+ 	}
+-	if (info.rSelectionBox.top <= localbox.top) info.rSelectionBox.top = min(head.biHeight,localbox.top + 1);
+-	if (info.rSelectionBox.left > localbox.left) info.rSelectionBox.left = min(head.biWidth,localbox.left);
+-	if (info.rSelectionBox.right <= localbox.right) info.rSelectionBox.right = min(head.biWidth,localbox.right + 1);
+-	if (info.rSelectionBox.bottom > localbox.bottom) info.rSelectionBox.bottom = min(head.biHeight,localbox.bottom);
++	if (info.rSelectionBox.top <= localbox.top) info.rSelectionBox.top = minimum(head.biHeight,localbox.top + 1);
++	if (info.rSelectionBox.left > localbox.left) info.rSelectionBox.left = minimum(head.biWidth,localbox.left);
++	if (info.rSelectionBox.right <= localbox.right) info.rSelectionBox.right = minimum(head.biWidth,localbox.right + 1);
++	if (info.rSelectionBox.bottom > localbox.bottom) info.rSelectionBox.bottom = minimum(head.biHeight,localbox.bottom);
+ 
+ 	free(plocal);
+ 	free(pix);
+diff --git a/lib/cximage-6.0/CxImage/ximath.cpp b/lib/cximage-6.0/CxImage/ximath.cpp
+index 37533e2..c2f0835 100644
+--- a/lib/cximage-6.0/CxImage/ximath.cpp
++++ b/lib/cximage-6.0/CxImage/ximath.cpp
+@@ -64,10 +64,10 @@ CxRect2 CxRect2::CrossSection(CxRect2 const &r2) const
+  */
+ {
+   CxRect2 cs;
+-  cs.botLeft.x=max(botLeft.x, r2.botLeft.x);
+-  cs.botLeft.y=max(botLeft.y, r2.botLeft.y);
+-  cs.topRight.x=min(topRight.x, r2.topRight.x);
+-  cs.topRight.y=min(topRight.y, r2.topRight.y);
++  cs.botLeft.x=maximum(botLeft.x, r2.botLeft.x);
++  cs.botLeft.y=maximum(botLeft.y, r2.botLeft.y);
++  cs.topRight.x=minimum(topRight.x, r2.topRight.x);
++  cs.topRight.y=minimum(topRight.y, r2.topRight.y);
+   if (cs.botLeft.x<=cs.topRight.x && cs.botLeft.y<=cs.topRight.y) {
+     return cs;
+   } else {
+diff --git a/lib/cximage-6.0/CxImage/ximatif.cpp b/lib/cximage-6.0/CxImage/ximatif.cpp
+index 658392a..22c4e67 100644
+--- a/lib/cximage-6.0/CxImage/ximatif.cpp
++++ b/lib/cximage-6.0/CxImage/ximatif.cpp
+@@ -470,9 +470,9 @@ bool CxImageTIF::Decode(CxFile * hFile)
+ 						if ( cb > 0.00304 ) cb = 1.055 * pow(cb,0.41667) - 0.055;
+ 							else            cb = 12.92 * cb;
+ 
+-						c.rgbRed  =(BYTE)max(0,min(255,(int)(cr*255)));
+-						c.rgbGreen=(BYTE)max(0,min(255,(int)(cg*255)));
+-						c.rgbBlue =(BYTE)max(0,min(255,(int)(cb*255)));
++						c.rgbRed  =(BYTE)maximum(0,minimum(255,(int)(cr*255)));
++						c.rgbGreen=(BYTE)maximum(0,minimum(255,(int)(cg*255)));
++						c.rgbBlue =(BYTE)maximum(0,minimum(255,(int)(cb*255)));
+ 
+ 						SetPixelColor(xi,yi,c);
+ #if CXIMAGE_SUPPORT_ALPHA
+diff --git a/lib/cximage-6.0/CxImage/ximatran.cpp b/lib/cximage-6.0/CxImage/ximatran.cpp
+index 64a71e7..dfbcddf 100644
+--- a/lib/cximage-6.0/CxImage/ximatran.cpp
++++ b/lib/cximage-6.0/CxImage/ximatran.cpp
+@@ -302,12 +302,12 @@ bool CxImage::RotateLeft(CxImage* iDst)
+ 			for (ys = 0; ys < newHeight; ys+=RBLOCK) {
+ 				if (head.biBitCount==24) {
+ 					//RGB24 optimized pixel access:
+-					for (x = xs; x < min(newWidth, xs+RBLOCK); x++){    //do rotation
++					for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){    //do rotation
+ 						info.nProgress = (long)(100*x/newWidth);
+ 						x2=newWidth-x-1;
+ 						dstPtr = (BYTE*) imgDest.BlindGetPixelPointer(x,ys);
+ 						srcPtr = (BYTE*) BlindGetPixelPointer(ys, x2);
+-						for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
++						for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
+ 							//imgDest.SetPixelColor(x, y, GetPixelColor(y, x2));
+ 							*(dstPtr) = *(srcPtr);
+ 							*(dstPtr+1) = *(srcPtr+1);
+@@ -318,19 +318,19 @@ bool CxImage::RotateLeft(CxImage* iDst)
+ 					}//for x
+ 				} else {
+ 					//anything else than 24bpp (and 1bpp): palette
+-					for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
++					for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
+ 						info.nProgress = (long)(100*x/newWidth); //<Anatoly Ivasyuk>
+ 						x2=newWidth-x-1;
+-						for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
++						for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
+ 							imgDest.SetPixelIndex(x, y, BlindGetPixelIndex(y, x2));
+ 						}//for y
+ 					}//for x
+ 				}//if (version selection)
+ #if CXIMAGE_SUPPORT_ALPHA
+ 				if (AlphaIsValid()) {
+-					for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
++					for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
+ 						x2=newWidth-x-1;
+-						for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
++						for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
+ 							imgDest.AlphaSet(x,y,BlindAlphaGet(y, x2));
+ 						}//for y
+ 					}//for x
+@@ -343,9 +343,9 @@ bool CxImage::RotateLeft(CxImage* iDst)
+ 					imgDest.info.rSelectionBox.right = newWidth-info.rSelectionBox.bottom;
+ 					imgDest.info.rSelectionBox.bottom = info.rSelectionBox.left;
+ 					imgDest.info.rSelectionBox.top = info.rSelectionBox.right;
+-					for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
++					for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
+ 						x2=newWidth-x-1;
+-						for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
++						for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
+ 							imgDest.SelectionSet(x,y,BlindSelectionGet(y, x2));
+ 						}//for y
+ 					}//for x
+@@ -447,12 +447,12 @@ bool CxImage::RotateRight(CxImage* iDst)
+ 			for (ys = 0; ys < newHeight; ys+=RBLOCK) {
+ 				if (head.biBitCount==24) {
+ 					//RGB24 optimized pixel access:
+-					for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
++					for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
+ 						info.nProgress = (long)(100*y/newHeight); //<Anatoly Ivasyuk>
+ 						y2=newHeight-y-1;
+ 						dstPtr = (BYTE*) imgDest.BlindGetPixelPointer(xs,y);
+ 						srcPtr = (BYTE*) BlindGetPixelPointer(y2, xs);
+-						for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
++						for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
+ 							//imgDest.SetPixelColor(x, y, GetPixelColor(y2, x));
+ 							*(dstPtr) = *(srcPtr);
+ 							*(dstPtr+1) = *(srcPtr+1);
+@@ -463,19 +463,19 @@ bool CxImage::RotateRight(CxImage* iDst)
+ 					}//for y
+ 				} else {
+ 					//anything else than BW & RGB24: palette
+-					for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
++					for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
+ 						info.nProgress = (long)(100*y/newHeight); //<Anatoly Ivasyuk>
+ 						y2=newHeight-y-1;
+-						for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
++						for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
+ 							imgDest.SetPixelIndex(x, y, BlindGetPixelIndex(y2, x));
+ 						}//for x
+ 					}//for y
+ 				}//if
+ #if CXIMAGE_SUPPORT_ALPHA
+ 				if (AlphaIsValid()){
+-					for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
++					for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
+ 						y2=newHeight-y-1;
+-						for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
++						for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
+ 							imgDest.AlphaSet(x,y,BlindAlphaGet(y2, x));
+ 						}//for x
+ 					}//for y
+@@ -488,9 +488,9 @@ bool CxImage::RotateRight(CxImage* iDst)
+ 					imgDest.info.rSelectionBox.right = info.rSelectionBox.top;
+ 					imgDest.info.rSelectionBox.bottom = newHeight-info.rSelectionBox.right;
+ 					imgDest.info.rSelectionBox.top = newHeight-info.rSelectionBox.left;
+-					for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
++					for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
+ 						y2=newHeight-y-1;
+-						for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
++						for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
+ 							imgDest.SelectionSet(x,y,BlindSelectionGet(y2, x));
+ 						}//for x
+ 					}//for y
+@@ -608,10 +608,10 @@ bool CxImage::Rotate(float angle, CxImage* iDst)
+ 	newP4.x = (float)(p4.x*cos_angle - p4.y*sin_angle);
+ 	newP4.y = (float)(p4.x*sin_angle + p4.y*cos_angle);
+ 
+-	leftTop.x = min(min(newP1.x,newP2.x),min(newP3.x,newP4.x));
+-	leftTop.y = min(min(newP1.y,newP2.y),min(newP3.y,newP4.y));
+-	rightBottom.x = max(max(newP1.x,newP2.x),max(newP3.x,newP4.x));
+-	rightBottom.y = max(max(newP1.y,newP2.y),max(newP3.y,newP4.y));
++	leftTop.x = minimum(minimum(newP1.x,newP2.x),minimum(newP3.x,newP4.x));
++	leftTop.y = minimum(minimum(newP1.y,newP2.y),minimum(newP3.y,newP4.y));
++	rightBottom.x = maximum(maximum(newP1.x,newP2.x),maximum(newP3.x,newP4.x));
++	rightBottom.y = maximum(maximum(newP1.y,newP2.y),maximum(newP3.y,newP4.y));
+ 	leftBottom.x = leftTop.x;
+ 	leftBottom.y = rightBottom.y;
+ 	rightTop.x = rightBottom.x;
+@@ -740,10 +740,10 @@ bool CxImage::Rotate2(float angle,
+ 	}//if
+ 
+ 	//(read new dimensions from location of corners)
+-	float minx = (float) min(min(newp[0].x,newp[1].x),min(newp[2].x,newp[3].x));
+-	float miny = (float) min(min(newp[0].y,newp[1].y),min(newp[2].y,newp[3].y));
+-	float maxx = (float) max(max(newp[0].x,newp[1].x),max(newp[2].x,newp[3].x));
+-	float maxy = (float) max(max(newp[0].y,newp[1].y),max(newp[2].y,newp[3].y));
++	float minx = (float) minimum(minimum(newp[0].x,newp[1].x),minimum(newp[2].x,newp[3].x));
++	float miny = (float) minimum(minimum(newp[0].y,newp[1].y),minimum(newp[2].y,newp[3].y));
++	float maxx = (float) maximum(maximum(newp[0].x,newp[1].x),maximum(newp[2].x,newp[3].x));
++	float maxy = (float) maximum(maximum(newp[0].y,newp[1].y),maximum(newp[2].y,newp[3].y));
+ 	int newWidth = (int) floor(maxx-minx+0.5f);
+ 	int newHeight= (int) floor(maxy-miny+0.5f);
+ 	float ssx=((maxx+minx)- ((float) newWidth-1))/2.0f;   //start for x
+@@ -1003,12 +1003,12 @@ bool CxImage::Resample(long newx, long newy, int mode, CxImage* iDst)
+ 				if (info.nEscape) break;
+ 				fY = y * yScale;
+ 				ifY = (int)fY;
+-				ifY1 = min(ymax, ifY+1);
++				ifY1 = minimum(ymax, ifY+1);
+ 				dy = fY - ifY;
+ 				for(long x=0; x<newx; x++){
+ 					fX = x * xScale;
+ 					ifX = (int)fX;
+-					ifX1 = min(xmax, ifX+1);
++					ifX1 = minimum(xmax, ifX+1);
+ 					dx = fX - ifX;
+ 					// Interpolate using the four nearest pixels in the source
+ 					if (head.biClrUsed){
+@@ -1328,9 +1328,9 @@ bool CxImage::DecreaseBpp(DWORD nbit, bool errordiffusion, RGBQUAD* ppal, DWORD
+ 				eb=(long)c.rgbBlue - (long)ce.rgbBlue;
+ 
+ 				c = GetPixelColor(x+1,y);
+-				c.rgbRed = (BYTE)min(255L,max(0L,(long)c.rgbRed + ((er*7)/16)));
+-				c.rgbGreen = (BYTE)min(255L,max(0L,(long)c.rgbGreen + ((eg*7)/16)));
+-				c.rgbBlue = (BYTE)min(255L,max(0L,(long)c.rgbBlue + ((eb*7)/16)));
++				c.rgbRed = (BYTE)minimum(255L,maximum(0L,(long)c.rgbRed + ((er*7)/16)));
++				c.rgbGreen = (BYTE)minimum(255L,maximum(0L,(long)c.rgbGreen + ((eg*7)/16)));
++				c.rgbBlue = (BYTE)minimum(255L,maximum(0L,(long)c.rgbBlue + ((eb*7)/16)));
+ 				SetPixelColor(x+1,y,c);
+ 				int coeff=1;
+ 				for(int i=-1; i<2; i++){
+@@ -1343,9 +1343,9 @@ bool CxImage::DecreaseBpp(DWORD nbit, bool errordiffusion, RGBQUAD* ppal, DWORD
+ 						coeff=1; break;
+ 					}
+ 					c = GetPixelColor(x+i,y+1);
+-					c.rgbRed = (BYTE)min(255L,max(0L,(long)c.rgbRed + ((er * coeff)/16)));
+-					c.rgbGreen = (BYTE)min(255L,max(0L,(long)c.rgbGreen + ((eg * coeff)/16)));
+-					c.rgbBlue = (BYTE)min(255L,max(0L,(long)c.rgbBlue + ((eb * coeff)/16)));
++					c.rgbRed = (BYTE)minimum(255L,maximum(0L,(long)c.rgbRed + ((er * coeff)/16)));
++					c.rgbGreen = (BYTE)minimum(255L,maximum(0L,(long)c.rgbGreen + ((eg * coeff)/16)));
++					c.rgbBlue = (BYTE)minimum(255L,maximum(0L,(long)c.rgbBlue + ((eb * coeff)/16)));
+ 					SetPixelColor(x+i,y+1,c);
+ 				}
+ 			}
+@@ -1566,10 +1566,10 @@ bool CxImage::Dither(long method)
+ 				}
+ 
+ 				nlevel = GetPixelIndex(x + 1, y) + (error * 8) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(x + 1, y, level);
+ 				nlevel = GetPixelIndex(x + 2, y) + (error * 4) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(x + 2, y, level);
+ 				int i;
+ 				for (i = -2; i < 3; i++) {
+@@ -1591,7 +1591,7 @@ bool CxImage::Dither(long method)
+ 						break;
+ 					}
+ 					nlevel = GetPixelIndex(x + i, y + 1) + (error * coeff) / TotalCoeffSum;
+-					level = (BYTE)min(255, max(0, (int)nlevel));
++					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 					SetPixelIndex(x + i, y + 1, level);
+ 				}
+ 			}
+@@ -1620,10 +1620,10 @@ bool CxImage::Dither(long method)
+ 				}
+ 
+ 				nlevel = GetPixelIndex(x + 1, y) + (error * 8) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(x + 1, y, level);
+ 				nlevel = GetPixelIndex(x + 2, y) + (error * 4) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(x + 2, y, level);
+ 				int i;
+ 				for (i = -2; i < 3; i++) {
+@@ -1645,7 +1645,7 @@ bool CxImage::Dither(long method)
+ 						break;
+ 					}
+ 					nlevel = GetPixelIndex(x + i, y + 1) + (error * coeff) / TotalCoeffSum;
+-					level = (BYTE)min(255, max(0, (int)nlevel));
++					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 					SetPixelIndex(x + i, y + 1, level);
+ 				}
+ 				for (i = -2; i < 3; i++) {
+@@ -1667,7 +1667,7 @@ bool CxImage::Dither(long method)
+ 						break;
+ 					}
+ 					nlevel = GetPixelIndex(x + i, y + 2) + (error * coeff) / TotalCoeffSum;
+-					level = (BYTE)min(255, max(0, (int)nlevel));
++					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 					SetPixelIndex(x + i, y + 2, level);
+ 				}
+ 			}
+@@ -1696,10 +1696,10 @@ bool CxImage::Dither(long method)
+ 				}
+ 
+ 				nlevel = GetPixelIndex(x + 1, y) + (error * 7) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(x + 1, y, level);
+ 				nlevel = GetPixelIndex(x + 2, y) + (error * 5) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(x + 2, y, level);
+ 				int i;
+ 				for (i = -2; i < 3; i++) {
+@@ -1721,7 +1721,7 @@ bool CxImage::Dither(long method)
+ 						break;
+ 					}
+ 					nlevel = GetPixelIndex(x + i, y + 1) + (error * coeff) / TotalCoeffSum;
+-					level = (BYTE)min(255, max(0, (int)nlevel));
++					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 					SetPixelIndex(x + i, y + 1, level);
+ 				}
+ 				for (i = -2; i < 3; i++) {
+@@ -1743,7 +1743,7 @@ bool CxImage::Dither(long method)
+ 						break;
+ 					}
+ 					nlevel = GetPixelIndex(x + i, y + 2) + (error * coeff) / TotalCoeffSum;
+-					level = (BYTE)min(255, max(0, (int)nlevel));
++					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 					SetPixelIndex(x + i, y + 2, level);
+ 				}
+ 			}
+@@ -1772,10 +1772,10 @@ bool CxImage::Dither(long method)
+ 				}
+ 
+ 				nlevel = GetPixelIndex(x + 1, y) + (error * 5) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(x + 1, y, level);
+ 				nlevel = GetPixelIndex(x + 2, y) + (error * 3) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(x + 2, y, level);
+ 				int i;
+ 				for (i = -2; i < 3; i++) {
+@@ -1797,7 +1797,7 @@ bool CxImage::Dither(long method)
+ 						break;
+ 					}
+ 					nlevel = GetPixelIndex(x + i, y + 1) + (error * coeff) / TotalCoeffSum;
+-					level = (BYTE)min(255, max(0, (int)nlevel));
++					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 					SetPixelIndex(x + i, y + 1, level);
+ 				}
+ 				for (i = -1; i < 2; i++) {
+@@ -1813,7 +1813,7 @@ bool CxImage::Dither(long method)
+ 						break;
+ 					}
+ 					nlevel = GetPixelIndex(x + i, y + 2) + (error * coeff) / TotalCoeffSum;
+-					level = (BYTE)min(255, max(0, (int)nlevel));
++					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 					SetPixelIndex(x + i, y + 2, level);
+ 				}
+ 			}
+@@ -1845,76 +1845,76 @@ bool CxImage::Dither(long method)
+ 				int tmp_index_y = y;
+ 				int tmp_coeff = 32;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 
+ 				tmp_index_x = x - 3;
+ 				tmp_index_y = y + 1;
+ 				tmp_coeff = 12;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 
+ 				tmp_index_x = x - 1;
+ 				tmp_coeff = 26;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 
+ 				tmp_index_x = x + 1;
+ 				tmp_coeff = 30;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 
+ 				tmp_index_x = x + 3;
+ 				tmp_coeff = 16;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 
+ 				tmp_index_x = x - 2;
+ 				tmp_index_y = y + 2;
+ 				tmp_coeff = 12;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 
+ 				tmp_index_x = x;
+ 				tmp_coeff = 26;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 
+ 				tmp_index_x = x + 2;
+ 				tmp_coeff = 12;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 
+ 				tmp_index_x = x - 3;
+ 				tmp_index_y = y + 3;
+ 				tmp_coeff = 5;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 
+ 				tmp_index_x = x - 1;
+ 				tmp_coeff = 12;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 
+ 				tmp_index_x = x + 1;
+ 				tmp_coeff = 12;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 
+ 				tmp_index_x = x + 3;
+ 				tmp_coeff = 5;
+ 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
+-				level = (BYTE)min(255, max(0, (int)nlevel));
++				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
+ 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
+ 			}
+ 		}
+@@ -1941,7 +1941,7 @@ bool CxImage::Dither(long method)
+ 			Bmatrix[i] = (BYTE)(dither);
+ 		}
+ 
+-		int scale = max(0,(8-2*order));
++		int scale = maximum(0,(8-2*order));
+ 		int level;
+ 		for (long y=0;y<head.biHeight;y++){
+ 			info.nProgress = (long)(100*y/head.biHeight);
+@@ -1981,7 +1981,7 @@ bool CxImage::Dither(long method)
+ 				}
+ 
+ 				nlevel = GetPixelIndex(x+1,y) + (error * 7)/16;
+-				level = (BYTE)min(255,max(0,(int)nlevel));
++				level = (BYTE)minimum(255,maximum(0,(int)nlevel));
+ 				SetPixelIndex(x+1,y,level);
+ 				for(int i=-1; i<2; i++){
+ 					switch(i){
+@@ -1993,7 +1993,7 @@ bool CxImage::Dither(long method)
+ 						coeff=1; break;
+ 					}
+ 					nlevel = GetPixelIndex(x+i,y+1) + (error * coeff)/16;
+-					level = (BYTE)min(255,max(0,(int)nlevel));
++					level = (BYTE)minimum(255,maximum(0,(int)nlevel));
+ 					SetPixelIndex(x+i,y+1,level);
+ 				}
+ 			}
+@@ -2031,7 +2031,7 @@ bool CxImage::CropRotatedRectangle( long topx, long topy, long width, long heigh
+ 	if ( fabs(angle)<0.0002 )
+ 		return Crop( topx, topy, topx+width, topy+height, iDst);
+ 
+-	startx = min(topx, topx - (long)(sin_angle*(double)height));
++	startx = minimum(topx, topx - (long)(sin_angle*(double)height));
+ 	endx   = topx + (long)(cos_angle*(double)width);
+ 	endy   = topy + (long)(cos_angle*(double)height + sin_angle*(double)width);
+ 	// check: corners of the rectangle must be inside
+@@ -2079,10 +2079,10 @@ bool CxImage::Crop(long left, long top, long right, long bottom, CxImage* iDst)
+ {
+ 	if (!pDib) return false;
+ 
+-	long startx = max(0L,min(left,head.biWidth));
+-	long endx = max(0L,min(right,head.biWidth));
+-	long starty = head.biHeight - max(0L,min(top,head.biHeight));
+-	long endy = head.biHeight - max(0L,min(bottom,head.biHeight));
++	long startx = maximum(0L,minimum(left,head.biWidth));
++	long endx = maximum(0L,minimum(right,head.biWidth));
++	long starty = head.biHeight - maximum(0L,minimum(top,head.biHeight));
++	long endy = head.biHeight - maximum(0L,minimum(bottom,head.biHeight));
+ 
+ 	if (startx==endx || starty==endy) return false;
+ 
+@@ -2443,8 +2443,8 @@ bool CxImage::CircleTransform(int type,long rmax,float Koeff)
+ 						nx=x+(x%32)-16;
+ 						ny=y;
+ 					}
+-//					nx=max(xmin,min(nx,xmax));
+-//					ny=max(ymin,min(ny,ymax));
++//					nx=maximum(xmin,minimum(nx,xmax));
++//					ny=maximum(ymin,minimum(ny,ymax));
+ 				}
+ 				else { nx=-1;ny=-1;}
+ 				if (head.biClrUsed==0){
+diff --git a/lib/cximage-6.0/CxImage/ximawnd.cpp b/lib/cximage-6.0/CxImage/ximawnd.cpp
+index 2ae2f93..9ddc05a 100644
+--- a/lib/cximage-6.0/CxImage/ximawnd.cpp
++++ b/lib/cximage-6.0/CxImage/ximawnd.cpp
+@@ -682,10 +682,10 @@ long CxImage::Draw(HDC hdc, long x, long y, long cx, long cy, RECT* pClipRect, b
+ 	RECT clipbox,paintbox;
+ 	GetClipBox(hdc,&clipbox);
+ 
+-	paintbox.top = min(clipbox.bottom,max(clipbox.top,y));
+-	paintbox.left = min(clipbox.right,max(clipbox.left,x));
+-	paintbox.right = max(clipbox.left,min(clipbox.right,x+cx));
+-	paintbox.bottom = max(clipbox.top,min(clipbox.bottom,y+cy));
++	paintbox.top = minimum(clipbox.bottom,maximum(clipbox.top,y));
++	paintbox.left = minimum(clipbox.right,maximum(clipbox.left,x));
++	paintbox.right = maximum(clipbox.left,minimum(clipbox.right,x+cx));
++	paintbox.bottom = maximum(clipbox.top,minimum(clipbox.bottom,y+cy));
+ 
+ 	long destw = paintbox.right - paintbox.left;
+ 	long desth = paintbox.bottom - paintbox.top;
+@@ -730,12 +730,12 @@ long CxImage::Draw(HDC hdc, long x, long y, long cx, long cy, RECT* pClipRect, b
+ 
+ 				for(yy=0;yy<desth;yy++){
+ 					dy = head.biHeight-(ymax-yy-y)*fy;
+-					sy = max(0L,(long)floor(dy));
++					sy = maximum(0L,(long)floor(dy));
+ 					psrc = info.pImage+sy*info.dwEffWidth;
+ 					pdst = pbase+yy*ew;
+ 					for(xx=0;xx<destw;xx++){
+ 						dx = (xx+xmin-x)*fx;
+-						sx = max(0L,(long)floor(dx));
++						sx = maximum(0L,(long)floor(dx));
+ #if CXIMAGE_SUPPORT_INTERPOLATION
+ 						if (bSmooth){
+ 							if (fx > 1 && fy > 1) { 
+@@ -813,7 +813,7 @@ long CxImage::Draw(HDC hdc, long x, long y, long cx, long cy, RECT* pClipRect, b
+ 				
+ 				for(yy=0;yy<desth;yy++){
+ 					dy = head.biHeight-(ymax-yy-y)*fy;
+-					sy = max(0L,(long)floor(dy));
++					sy = maximum(0L,(long)floor(dy));
+ 
+ 					alphaoffset = sy*head.biWidth;
+ 					pdst = pbase + yy*ew;
+@@ -821,7 +821,7 @@ long CxImage::Draw(HDC hdc, long x, long y, long cx, long cy, RECT* pClipRect, b
+ 
+ 					for(xx=0;xx<destw;xx++){
+ 						dx = (xx+xmin-x)*fx;
+-						sx = max(0L,(long)floor(dx));
++						sx = maximum(0L,(long)floor(dx));
+ 
+ 						if (bAlpha) a=pAlpha[alphaoffset+sx]; else a=255;
+ 						a =(BYTE)((a*(1+info.nAlphaMax))>>8);

diff --git a/media-tv/kodi/kodi-16.1-r1.ebuild b/media-tv/kodi/kodi-16.1-r1.ebuild
new file mode 100644
index 00000000..a1074d1
--- /dev/null
+++ b/media-tv/kodi/kodi-16.1-r1.ebuild
@@ -0,0 +1,301 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+# Does not work with py3 here
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit eutils linux-info python-single-r1 multiprocessing autotools toolchain-funcs
+
+CODENAME="Jarvis"
+case ${PV} in
+9999)
+	EGIT_REPO_URI="git://github.com/xbmc/xbmc.git"
+	inherit git-r3
+	;;
+*)
+	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-r1.tar.xz )"
+	KEYWORDS="~amd64 ~x86"
+
+	S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME}
+	;;
+esac
+
+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"
+IUSE="airplay alsa bluetooth bluray caps cec css dbus debug gles java joystick midi mysql nfs +opengl profile pulseaudio rtmp +samba sftp systemd test +texturepacker udisks upnp upower +usb vaapi vdpau webserver +X zeroconf"
+# gles/vaapi: http://trac.kodi.tv/ticket/10552 #464306
+REQUIRED_USE="
+	|| ( gles opengl )
+	?? ( gles vaapi )
+	udisks? ( dbus )
+	upower? ( dbus )
+"
+
+COMMON_DEPEND="${PYTHON_DEPS}
+	app-arch/bzip2
+	app-arch/unzip
+	app-arch/zip
+	app-i18n/enca
+	airplay? ( app-pda/libplist )
+	dev-libs/boost:=
+	dev-libs/expat
+	dev-libs/fribidi
+	dev-libs/libcdio[-minimal]
+	cec? ( >=dev-libs/libcec-3.0 )
+	dev-libs/libpcre[cxx]
+	dev-libs/libxml2
+	dev-libs/libxslt
+	>=dev-libs/lzo-2.04
+	dev-libs/tinyxml[stl]
+	>=dev-libs/yajl-2
+	dev-python/simplejson[${PYTHON_USEDEP}]
+	media-fonts/corefonts
+	media-fonts/roboto
+	alsa? ( media-libs/alsa-lib )
+	media-libs/flac
+	media-libs/fontconfig
+	media-libs/freetype
+	media-libs/jasper:=
+	media-libs/jbigkit
+	>=media-libs/libass-0.9.7
+	bluray? ( >=media-libs/libbluray-0.7.0 )
+	css? ( media-libs/libdvdcss )
+	media-libs/libmad
+	media-libs/libmodplug
+	media-libs/libmpeg2
+	media-libs/libogg
+	media-libs/libpng:0=
+	media-libs/libsamplerate
+	joystick? ( media-libs/libsdl2 )
+	>=media-libs/taglib-1.8
+	media-libs/libvorbis
+	media-libs/tiff:0=
+	media-sound/dcadec
+	pulseaudio? ( media-sound/pulseaudio )
+	media-sound/wavpack
+	>=media-video/ffmpeg-2.6:=[encode]
+	rtmp? ( media-video/rtmpdump )
+	nfs? ( net-fs/libnfs:= )
+	webserver? ( net-libs/libmicrohttpd[messages] )
+	sftp? ( net-libs/libssh[sftp] )
+	net-misc/curl
+	samba? ( >=net-fs/samba-3.4.6[smbclient(+)] )
+	bluetooth? ( net-wireless/bluez )
+	dbus? ( sys-apps/dbus )
+	caps? ( sys-libs/libcap )
+	sys-libs/zlib
+	virtual/jpeg:0=
+	usb? ( virtual/libusb:1 )
+	mysql? ( virtual/mysql )
+	opengl? (
+		virtual/glu
+		virtual/opengl
+		>=media-libs/glew-1.5.6:=
+	)
+	gles? (
+		media-libs/mesa[gles2]
+	)
+	vaapi? ( x11-libs/libva[opengl] )
+	vdpau? (
+		|| ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 )
+		media-video/ffmpeg[vdpau]
+	)
+	X? (
+		x11-apps/xdpyinfo
+		x11-apps/mesa-progs
+		x11-libs/libXinerama
+		x11-libs/libXrandr
+		x11-libs/libXrender
+	)
+	zeroconf? ( net-dns/avahi[dbus] )
+"
+RDEPEND="${COMMON_DEPEND}
+	!media-tv/xbmc
+	udisks? ( sys-fs/udisks:0 )
+	upower? (
+		systemd? ( sys-power/upower )
+		!systemd? ( sys-power/upower-pm-utils )
+	)"
+DEPEND="${COMMON_DEPEND}
+	app-arch/xz-utils
+	dev-lang/swig
+	dev-libs/crossguid
+	dev-util/gperf
+	texturepacker? ( media-libs/giflib )
+	X? ( x11-proto/xineramaproto )
+	dev-util/cmake
+	x86? ( dev-lang/nasm )
+	java? ( virtual/jre )
+	test? ( dev-cpp/gtest )
+	virtual/pkgconfig"
+# Force java for latest git version to avoid having to hand maintain the
+# generated addons package.  #488118
+[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400618887
+	"${FILESDIR}"/${PN}-9999-texturepacker.patch
+	"${FILESDIR}"/${PN}-16-ffmpeg3.patch
+	"${FILESDIR}"/${PN}-16.1-gcc-6.patch #592446
+)
+
+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() {
+	[[ ${PV} == "9999" ]] && git-r3_src_unpack || default
+}
+
+src_prepare() {
+	default
+
+	# some dirs ship generated autotools, some dont
+	multijob_init
+	local d dirs=(
+		tools/depends/native/TexturePacker/src/configure
+		$(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f)
+	)
+	for d in "${dirs[@]}" ; do
+		[[ -e ${d} ]] && continue
+		pushd ${d/%configure/.} >/dev/null || die
+		AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \
+		multijob_child_init eautoreconf
+		popd >/dev/null || die
+	done
+	multijob_finish
+	elibtoolize
+
+	# Cross-compiler support
+	# We need JsonSchemaBuilder and TexturePacker binaries for the host system
+	# Later we need libsquish for the target system
+	if tc-is-cross-compiler ; then
+		mkdir "${WORKDIR}"/${CBUILD} || die
+		pushd "${WORKDIR}"/${CBUILD} >/dev/null || die
+		einfo "Building host tools"
+		cp -a "$S"/{tools,xbmc} ./ || die
+		local tools=( JsonSchemaBuilder )
+		use texturepacker && tools+=( TexturePacker )
+		for tool in "${tools[@]}" ; do
+			tc-env_build emake -C tools/depends/native/$tool
+			mkdir "$S"/tools/depends/native/$tool/bin || die
+			ln -s "${WORKDIR}"/${CBUILD}/tools/depends/native/$tool/bin/$tool "$S"/tools/depends/native/$tool/bin/$tool || die
+		done
+		popd >/dev/null || die
+
+		emake -f codegenerator.mk
+
+		# Binary kodi.bin links against libsquish,
+		# so we need libsquish compiled for the target system
+		emake -C tools/depends/native/libsquish-native/ CXX=$(tc-getCXX)
+	elif [[ ${PV} == "9999" ]] || use java ; then #558798
+		tc-env_build emake -f codegenerator.mk
+	fi
+
+	# Disable internal func checks as our USE/DEPEND
+	# stuff handles this just fine already #408395
+	export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes
+
+	# Fix the final version string showing as "exported"
+	# instead of the SVN revision number.
+	export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported}
+
+	# avoid long delays when powerkit isn't running #348580
+	sed -i \
+		-e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
+		xbmc/linux/*.cpp || die
+
+	# Tweak autotool timestamps to avoid regeneration
+	find . -type f -exec touch -r configure {} + || die
+}
+
+src_configure() {
+	# Disable documentation generation
+	export ac_cv_path_LATEX=no
+	# Avoid help2man
+	export HELP2MAN=$(type -P help2man || echo true)
+	# No configure flage for this #403561
+	export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth)
+	# Requiring java is asine #434662
+	[[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true))
+
+	econf \
+		--disable-ccache \
+		--disable-optimizations \
+		--with-ffmpeg=shared \
+		$(use_enable alsa) \
+		$(use_enable airplay) \
+		$(use_enable bluray libbluray) \
+		$(use_enable caps libcap) \
+		$(use_enable cec libcec) \
+		$(use_enable css dvdcss) \
+		$(use_enable dbus) \
+		$(use_enable debug) \
+		$(use_enable gles) \
+		$(use_enable joystick) \
+		$(use_enable midi mid) \
+		$(use_enable mysql) \
+		$(use_enable nfs) \
+		$(use_enable opengl gl) \
+		$(use_enable profile profiling) \
+		$(use_enable pulseaudio pulse) \
+		$(use_enable rtmp) \
+		$(use_enable samba) \
+		$(use_enable sftp ssh) \
+		$(use_enable usb libusb) \
+		$(use_enable test gtest) \
+		$(use_enable texturepacker) \
+		$(use_enable upnp) \
+		$(use_enable vaapi) \
+		$(use_enable vdpau) \
+		$(use_enable webserver) \
+		$(use_enable X x11) \
+		$(use_enable zeroconf avahi)
+}
+
+src_compile() {
+	emake V=1
+}
+
+src_install() {
+	default
+	rm "${ED%/}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die
+
+	domenu tools/Linux/kodi.desktop
+	newicon media/icon48x48.png kodi.png
+
+	# Remove fontconfig settings that are used only on MacOSX.
+	# Can't be patched upstream because they just find all files and install
+	# them into same structure like they have in git.
+	rm -rf "${ED%/}"/usr/share/kodi/system/players/dvdplayer/etc || die
+
+	# Replace bundled fonts with system ones.
+	rm "${ED%/}"/usr/share/kodi/addons/skin.confluence/fonts/Roboto-* || die
+	dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \
+		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Regular.ttf
+	dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \
+		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Bold.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-17.0_rc3-r1.ebuild
similarity index 84%
copy from media-tv/kodi/kodi-9999.ebuild
copy to media-tv/kodi/kodi-17.0_rc3-r1.ebuild
index 769a097..4fa9342 100644
--- a/media-tv/kodi/kodi-9999.ebuild
+++ b/media-tv/kodi/kodi-17.0_rc3-r1.ebuild
@@ -8,7 +8,7 @@ EAPI=6
 PYTHON_COMPAT=( python2_7 )
 PYTHON_REQ_USE="sqlite"
 
-inherit eutils linux-info python-single-r1 cmake-utils
+inherit eutils linux-info python-single-r1 cmake-utils autotools
 
 LIBDVDCSS_COMMIT="2f12236bc1c92f73c21e973363f79eb300de603f"
 LIBDVDREAD_COMMIT="17d99db97e7b8f23077b342369d3c22a6250affd"
@@ -26,7 +26,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 gles libressl libusb lirc mysql nfs nonfree +opengl +ssl pulseaudio samba sftp test +udev udisks upnp upower vaapi vdpau webserver +X +xslt zeroconf"
+IUSE="airplay alsa bluetooth bluray caps cec +css dbus debug dvd gles libressl libusb lirc mysql nfs nonfree +opengl +ssl pulseaudio samba sftp systemd test +udev udisks upnp upower vaapi vdpau webserver +X +xslt zeroconf"
 REQUIRED_USE="
 	${PYTHON_REQUIRED_USE}
 	|| ( gles opengl )
@@ -52,11 +52,12 @@ COMMON_DEPEND="${PYTHON_DEPS}
 	dev-libs/tinyxml[stl]
 	>=dev-libs/yajl-2
 	dev-python/pillow[${PYTHON_USEDEP}]
+	dev-libs/libcdio
 	dvd? ( dev-libs/libcdio[-minimal] )
 	gles? ( media-libs/mesa[gles2] )
 	libusb? ( virtual/libusb:1 )
 	media-fonts/corefonts
-	media-fonts/noto
+	>=media-fonts/noto-20160531
 	media-fonts/roboto
 	media-libs/fontconfig
 	media-libs/freetype
@@ -90,7 +91,7 @@ COMMON_DEPEND="${PYTHON_DEPS}
 		x11-libs/libXrender
 	)
 	xslt? ( dev-libs/libxslt )
-	zeroconf? ( net-dns/avahi )
+	zeroconf? ( net-dns/avahi[dbus] )
 "
 RDEPEND="${COMMON_DEPEND}
 	lirc? (
@@ -98,7 +99,10 @@ RDEPEND="${COMMON_DEPEND}
 	)
 	!media-tv/xbmc
 	udisks? ( sys-fs/udisks:0 )
-	upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )
+	upower? (
+		systemd? ( sys-power/upower )
+		!systemd? ( sys-power/upower-pm-utils )
+	)
 "
 DEPEND="${COMMON_DEPEND}
 	app-arch/bzip2
@@ -150,6 +154,8 @@ 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
@@ -165,6 +171,27 @@ src_prepare() {
 	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
 }
 
 src_configure() {
@@ -226,7 +253,8 @@ src_install() {
 	# Remove fontconfig settings that are used only on MacOSX.
 	# Can't be patched upstream because they just find all files and install
 	# them into same structure like they have in git.
-	rm -rf "${ED%/}"/usr/share/kodi/system/players/dvdplayer/etc || die
+	# Will be fixed upstream so this deletion will be unnecesssary, see https://github.com/xbmc/xbmc/pull/11451
+	rm -rf "${ED%/}"/usr/share/kodi/system/players/VideoPlayer/etc || die
 
 	# Replace bundled fonts with system ones.
 	rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die

diff --git a/media-tv/kodi/kodi-9999.ebuild b/media-tv/kodi/kodi-9999.ebuild
index 769a097..de348a0 100644
--- a/media-tv/kodi/kodi-9999.ebuild
+++ b/media-tv/kodi/kodi-9999.ebuild
@@ -8,7 +8,7 @@ EAPI=6
 PYTHON_COMPAT=( python2_7 )
 PYTHON_REQ_USE="sqlite"
 
-inherit eutils linux-info python-single-r1 cmake-utils
+inherit eutils linux-info python-single-r1 cmake-utils autotools
 
 LIBDVDCSS_COMMIT="2f12236bc1c92f73c21e973363f79eb300de603f"
 LIBDVDREAD_COMMIT="17d99db97e7b8f23077b342369d3c22a6250affd"
@@ -26,7 +26,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 gles libressl libusb lirc mysql nfs nonfree +opengl +ssl pulseaudio samba sftp test +udev udisks upnp upower vaapi vdpau webserver +X +xslt zeroconf"
+IUSE="airplay alsa bluetooth bluray caps cec +css dbus debug dvd gles libressl libusb lirc mysql nfs nonfree +opengl +ssl pulseaudio samba sftp systemd test +udev udisks upnp upower vaapi vdpau webserver +X +xslt zeroconf"
 REQUIRED_USE="
 	${PYTHON_REQUIRED_USE}
 	|| ( gles opengl )
@@ -52,11 +52,12 @@ COMMON_DEPEND="${PYTHON_DEPS}
 	dev-libs/tinyxml[stl]
 	>=dev-libs/yajl-2
 	dev-python/pillow[${PYTHON_USEDEP}]
+	dev-libs/libcdio
 	dvd? ( dev-libs/libcdio[-minimal] )
 	gles? ( media-libs/mesa[gles2] )
 	libusb? ( virtual/libusb:1 )
 	media-fonts/corefonts
-	media-fonts/noto
+	>=media-fonts/noto-20160531
 	media-fonts/roboto
 	media-libs/fontconfig
 	media-libs/freetype
@@ -90,7 +91,7 @@ COMMON_DEPEND="${PYTHON_DEPS}
 		x11-libs/libXrender
 	)
 	xslt? ( dev-libs/libxslt )
-	zeroconf? ( net-dns/avahi )
+	zeroconf? ( net-dns/avahi[dbus] )
 "
 RDEPEND="${COMMON_DEPEND}
 	lirc? (
@@ -98,7 +99,10 @@ RDEPEND="${COMMON_DEPEND}
 	)
 	!media-tv/xbmc
 	udisks? ( sys-fs/udisks:0 )
-	upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )
+	upower? (
+		systemd? ( sys-power/upower )
+		!systemd? ( sys-power/upower-pm-utils )
+	)
 "
 DEPEND="${COMMON_DEPEND}
 	app-arch/bzip2
@@ -165,6 +169,27 @@ src_prepare() {
 	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
 }
 
 src_configure() {
@@ -226,7 +251,8 @@ src_install() {
 	# Remove fontconfig settings that are used only on MacOSX.
 	# Can't be patched upstream because they just find all files and install
 	# them into same structure like they have in git.
-	rm -rf "${ED%/}"/usr/share/kodi/system/players/dvdplayer/etc || die
+	# Will be fixed upstream so this deletion will be unnecesssary, see https://github.com/xbmc/xbmc/pull/11451
+	rm -rf "${ED%/}"/usr/share/kodi/system/players/VideoPlayer/etc || die
 
 	# Replace bundled fonts with system ones.
 	rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2017-01-17 19:38 David Seifert
  0 siblings, 0 replies; 24+ messages in thread
From: David Seifert @ 2017-01-17 19:38 UTC (permalink / raw
  To: gentoo-commits

commit:     72a85e3bb293c1573e9b4372396a14e3bf636817
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 17 19:37:54 2017 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Tue Jan 17 19:38:17 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=72a85e3b

media-tv/kodi: Remove overlarge patch causing tree breakage

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 media-tv/kodi/Manifest                    |    1 +
 media-tv/kodi/files/kodi-16.1-gcc-6.patch | 1405 -----------------------------
 media-tv/kodi/kodi-16.1-r1.ebuild         |    3 +-
 3 files changed, 3 insertions(+), 1406 deletions(-)

diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
index 5268b89..0ff87d7 100644
--- a/media-tv/kodi/Manifest
+++ b/media-tv/kodi/Manifest
@@ -4,6 +4,7 @@ DIST kodi-15.2-generated-addons.tar.xz 73912 SHA256 8c604be6188e03569209632dca96
 DIST kodi-15.2.tar.gz 61484128 SHA256 dd8aeb942e6de5d1488e243e1346cff3f6597e21b5131a3ba72ff5cc82037110 SHA512 870f67b83aaa96b1a4111f34824eb47c24616d067adf930f4456ca8f1ac57052c41aa73915304ea85b1d10390865b88d88c85e6cd425b42ec5a504908adf4b67 WHIRLPOOL 5d484ff8eb8b48de643bf6dbff0ca824d528143d2f6f78f124bae19a0f67db72271c865786520672ef716cedba4ad4ad11c59fe857c8b34ec9331724f09046c2
 DIST kodi-16.0-generated-addons.tar.xz 76876 SHA256 fb164bf2aaf54d0c4a6da60b768b40f47c61456ac9bfd5c859593e37c56080c4 SHA512 7b06e3dc7c7cad4b4bb43dafadb756e3b6064452d289b81097a5a340f33a0fd6b7da82954578039f980dd6338de4b6e0105ed69678c01548b4e79f072a120800 WHIRLPOOL bcff75cdc21cebff305052d985de9f88a3043d4a0aa81509c8daff3ace28fd18ca625f3394bd1b109ec242c3310a4934b4f4837355f39de47be6ff6031a1d13f
 DIST kodi-16.0.tar.gz 52093964 SHA256 0421ea1337cdee674f8a36d995f54152b5ddc4100e53410b3aeeb3b3f7d53946 SHA512 b187f57601dfadc2119622f19558dbaca6ba7c708f5c24d65b876ee32888251940ffa8caadf978ee1afbd7c8da5007771e013d639819b998c345e968149995ac WHIRLPOOL ca19325b52c4c7de72a8d18cc9d68a83203274d3a432bcd83188904a9a2ba4e69372144c40ada3b3cd89ed12d740a1dceec75c5511b706b922374784bf817b3f
+DIST kodi-16.1-gcc-6.patch 63436 SHA256 cc4d730f163fcc3a99cb67480953cb043c17097d815bf41da441c7e66caaa0dc SHA512 9236608e26685feccd4492c58e7b5c4262e0ac100aabda46a565685eaa19af5b9bbe11f59cecc91de33474ac024ff74d670fe137fa2490f4ec1207817fb7fd23 WHIRLPOOL 336ba43387c154e67a5a3592675f802a50771e3bac14af79f9413773185f6b35e85a1af10988b96238a00e6a9c300caf856435f356572b7fb441e652164c8917
 DIST kodi-16.1-generated-addons-r1.tar.xz 54528 SHA256 ffa06845ed95597b46a178575e361f0641f78778be553d7a9f51b4cc190d2629 SHA512 32c9a5bb6ed5f5d8e73a37c35268c1a7176c6a4c52c5b5e8f6c5c76a3c51445ff0a5b8802be94ada5d63ecbea4d7e69b61d579c931900f6ba6abb583bbe542d9 WHIRLPOOL 3cd62abee6854efbee0070d811d0ef03f7b2d1d629c91d43fb2a2883c83733267affef60339459ce1ca7e30b1b856e20b929883cd12958348803c428d69e142e
 DIST kodi-16.1.tar.gz 52091107 SHA256 7d82c8aff2715c83deecdf10c566e26105bec0473af530a1356d4c747ebdfd10 SHA512 fe7012ea899906d418faa19af5066e5976d092745e91030106ea4f75399ad67a4bb4e4f384605ab7b2d9e24174aab2e243531f31d79ff5ae33564361b25eb073 WHIRLPOOL eabe28e2d0bf35dc1272551e9179b2450607c97295daffcfa5ce90a56c5db42467fe0f9ba43cc542a0843cb867554682e9cd223a326c37bee7dfd086cb40ec4d
 DIST kodi-17.0rc3-generated-addons.tar.xz 57548 SHA256 adeb6903ade6cda7360ec21a1ed9c5a5f9ec641ba5902c1ee7bf77dbfcda53b6 SHA512 e5026ce980f2d29ef962872a1fa2d5c8659a18ef3d87248fb2e1af826124f425cd5a8db213eb4498cf4e92d569185f9a4c0b3703b935ecf663f8bf8c55efd69e WHIRLPOOL bdf88f06adac8f334e9b191d0e9e6f937291de820aa69a84315f2c6778b00bed59f9f3435e24afc70dbae704e0a55fda8915c1e6587a5f5ac656fdf27aeb8dd7

diff --git a/media-tv/kodi/files/kodi-16.1-gcc-6.patch b/media-tv/kodi/files/kodi-16.1-gcc-6.patch
deleted file mode 100644
index 6b190f9..00000000
--- a/media-tv/kodi/files/kodi-16.1-gcc-6.patch
+++ /dev/null
@@ -1,1405 +0,0 @@
-diff --git a/lib/cximage-6.0/CxImage/ximabmp.cpp b/lib/cximage-6.0/CxImage/ximabmp.cpp
-index 726ff91..6c7c31b 100644
---- a/lib/cximage-6.0/CxImage/ximabmp.cpp
-+++ b/lib/cximage-6.0/CxImage/ximabmp.cpp
-@@ -46,7 +46,7 @@ bool CxImageBMP::Encode(CxFile * hFile)
- 		bihtoh(&infohdr);
- 
- 		// Write the file header
--		hFile->Write(&hdr,min(14,sizeof(BITMAPFILEHEADER)),1);
-+		hFile->Write(&hdr,minimum(14,sizeof(BITMAPFILEHEADER)),1);
- 		hFile->Write(&infohdr,sizeof(BITMAPINFOHEADER),1);
- 		 //and DIB+ALPHA interlaced
- 		BYTE *srcalpha = AlphaGetPointer();
-@@ -64,7 +64,7 @@ bool CxImageBMP::Encode(CxFile * hFile)
- #endif //CXIMAGE_SUPPORT_ALPHA
- 	{
- 		// Write the file header
--		hFile->Write(&hdr,min(14,sizeof(BITMAPFILEHEADER)),1);
-+		hFile->Write(&hdr,minimum(14,sizeof(BITMAPFILEHEADER)),1);
- 		//copy attributes
- 		memcpy(pDib,&head,sizeof(BITMAPINFOHEADER));
- 		bihtoh((BITMAPINFOHEADER*)pDib);
-@@ -86,7 +86,7 @@ bool CxImageBMP::Decode(CxFile * hFile)
- 	BITMAPFILEHEADER   bf;
- 	DWORD off = hFile->Tell(); //<CSC>
-   cx_try {
--	if (hFile->Read(&bf,min(14,sizeof(bf)),1)==0) cx_throw("Not a BMP");
-+	if (hFile->Read(&bf,minimum(14,sizeof(bf)),1)==0) cx_throw("Not a BMP");
- 
- 	bf.bfSize = my_ntohl(bf.bfSize); 
- 	bf.bfOffBits = my_ntohl(bf.bfOffBits); 
-diff --git a/lib/cximage-6.0/CxImage/ximadef.h b/lib/cximage-6.0/CxImage/ximadef.h
-index fe383bf..5783749 100644
---- a/lib/cximage-6.0/CxImage/ximadef.h
-+++ b/lib/cximage-6.0/CxImage/ximadef.h
-@@ -53,11 +53,11 @@
-  #define CXIMAGE_SUPPORT_WINDOWS 0
- #endif
- 
--#ifndef min
--#define min(a,b) (((a)<(b))?(a):(b))
-+#ifndef minimum
-+#define minimum(a,b) (((a)<(b))?(a):(b))
- #endif
--#ifndef max
--#define max(a,b) (((a)>(b))?(a):(b))
-+#ifndef maximum
-+#define maximum(a,b) (((a)>(b))?(a):(b))
- #endif
- 
- #ifndef PI
-diff --git a/lib/cximage-6.0/CxImage/ximadsp.cpp b/lib/cximage-6.0/CxImage/ximadsp.cpp
-index 8425bb2..dbac785 100644
---- a/lib/cximage-6.0/CxImage/ximadsp.cpp
-+++ b/lib/cximage-6.0/CxImage/ximadsp.cpp
-@@ -389,8 +389,8 @@ RGBQUAD CxImage::RGBtoHSL(RGBQUAD lRGBColor)
- 	G = lRGBColor.rgbGreen;
- 	B = lRGBColor.rgbBlue;
- 
--	cMax = max( max(R,G), B);	/* calculate lightness */
--	cMin = min( min(R,G), B);
-+	cMax = maximum( maximum(R,G), B);	/* calculate lightness */
-+	cMin = minimum( minimum(R,G), B);
- 	L = (BYTE)((((cMax+cMin)*HSLMAX)+RGBMAX)/(2*RGBMAX));
- 
- 	if (cMax==cMin){			/* r=g=b --> achromatic case */
-@@ -489,9 +489,9 @@ RGBQUAD CxImage::YUVtoRGB(RGBQUAD lYUVColor)
- 	G = (int)( Y - 0.344f * U - 0.714f * V);
- 	B = (int)( Y + 1.770f * U);
- 
--	R= min(255,max(0,R));
--	G= min(255,max(0,G));
--	B= min(255,max(0,B));
-+	R= minimum(255,maximum(0,R));
-+	G= minimum(255,maximum(0,G));
-+	B= minimum(255,maximum(0,B));
- 	RGBQUAD rgb={(BYTE)B,(BYTE)G,(BYTE)R,0};
- 	return rgb;
- }
-@@ -510,9 +510,9 @@ RGBQUAD CxImage::RGBtoYUV(RGBQUAD lRGBColor)
- 	U = (int)((B-Y) * 0.565f + 128);
- 	V = (int)((R-Y) * 0.713f + 128);
- 
--	Y= min(255,max(0,Y));
--	U= min(255,max(0,U));
--	V= min(255,max(0,V));
-+	Y= minimum(255,maximum(0,Y));
-+	U= minimum(255,maximum(0,U));
-+	V= minimum(255,maximum(0,V));
- 	RGBQUAD yuv={(BYTE)V,(BYTE)U,(BYTE)Y,0};
- 	return yuv;
- }
-@@ -528,9 +528,9 @@ RGBQUAD CxImage::YIQtoRGB(RGBQUAD lYIQColor)
- 	G = (int)( Y - 0.273f * I - 0.647f * Q);
- 	B = (int)( Y - 1.104f * I + 1.701f * Q);
- 
--	R= min(255,max(0,R));
--	G= min(255,max(0,G));
--	B= min(255,max(0,B));
-+	R= minimum(255,maximum(0,R));
-+	G= minimum(255,maximum(0,G));
-+	B= minimum(255,maximum(0,B));
- 	RGBQUAD rgb={(BYTE)B,(BYTE)G,(BYTE)R,0};
- 	return rgb;
- }
-@@ -546,9 +546,9 @@ RGBQUAD CxImage::RGBtoYIQ(RGBQUAD lRGBColor)
- 	I = (int)( 0.5960f * R - 0.2742f * G - 0.3219f * B + 128);
- 	Q = (int)( 0.2109f * R - 0.5229f * G + 0.3120f * B + 128);
- 
--	Y= min(255,max(0,Y));
--	I= min(255,max(0,I));
--	Q= min(255,max(0,Q));
-+	Y= minimum(255,maximum(0,Y));
-+	I= minimum(255,maximum(0,I));
-+	Q= minimum(255,maximum(0,Q));
- 	RGBQUAD yiq={(BYTE)Q,(BYTE)I,(BYTE)Y,0};
- 	return yiq;
- }
-@@ -565,9 +565,9 @@ RGBQUAD CxImage::XYZtoRGB(RGBQUAD lXYZColor)
- 	G = (int)( -0.969256f * X + 1.875992f * Y + 0.041556f * Z * k);
- 	B = (int)(  0.055648f * X - 0.204043f * Y + 1.057311f * Z * k);
- 
--	R= min(255,max(0,R));
--	G= min(255,max(0,G));
--	B= min(255,max(0,B));
-+	R= minimum(255,maximum(0,R));
-+	G= minimum(255,maximum(0,G));
-+	B= minimum(255,maximum(0,B));
- 	RGBQUAD rgb={(BYTE)B,(BYTE)G,(BYTE)R,0};
- 	return rgb;
- }
-@@ -583,9 +583,9 @@ RGBQUAD CxImage::RGBtoXYZ(RGBQUAD lRGBColor)
- 	Y = (int)( 0.212671f * R + 0.715160f * G + 0.072169f * B);
- 	Z = (int)((0.019334f * R + 0.119193f * G + 0.950227f * B)*0.918483657f);
- 
--	//X= min(255,max(0,X));
--	//Y= min(255,max(0,Y));
--	//Z= min(255,max(0,Z));
-+	//X= minimum(255,maximum(0,X));
-+	//Y= minimum(255,maximum(0,Y));
-+	//Z= minimum(255,maximum(0,Z));
- 	RGBQUAD xyz={(BYTE)Z,(BYTE)Y,(BYTE)X,0};
- 	return xyz;
- }
-@@ -707,7 +707,7 @@ bool CxImage::Light(long brightness, long contrast)
- 
- 	BYTE cTable[256]; //<nipper>
- 	for (int i=0;i<256;i++)	{
--		cTable[i] = (BYTE)max(0,min(255,(int)((i-128)*c + brightness + 0.5f)));
-+		cTable[i] = (BYTE)maximum(0,minimum(255,(int)((i-128)*c + brightness + 0.5f)));
- 	}
- 
- 	return Lut(cTable);
-@@ -830,11 +830,11 @@ bool CxImage::Filter(long* kernel, long Ksize, long Kfactor, long Koffset)
- 						}
- 					}
- 					if (Kfactor==0 || ksumcur==0){
--						cPtr2[iY1] = (BYTE)min(255, max(0,(int)(b + Koffset)));
-+						cPtr2[iY1] = (BYTE)minimum(255, maximum(0,(int)(b + Koffset)));
- 					} else if (ksumtot == ksumcur) {
--						cPtr2[iY1] = (BYTE)min(255, max(0,(int)(b/Kfactor + Koffset)));
-+						cPtr2[iY1] = (BYTE)minimum(255, maximum(0,(int)(b/Kfactor + Koffset)));
- 					} else {
--						cPtr2[iY1] = (BYTE)min(255, max(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset)));
-+						cPtr2[iY1] = (BYTE)minimum(255, maximum(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset)));
- 					}
- 				}
- 			}
-@@ -863,17 +863,17 @@ bool CxImage::Filter(long* kernel, long Ksize, long Kfactor, long Koffset)
- 						}
- 					}
- 					if (Kfactor==0 || ksumcur==0){
--						c.rgbRed   = (BYTE)min(255, max(0,(int)(r + Koffset)));
--						c.rgbGreen = (BYTE)min(255, max(0,(int)(g + Koffset)));
--						c.rgbBlue  = (BYTE)min(255, max(0,(int)(b + Koffset)));
-+						c.rgbRed   = (BYTE)minimum(255, maximum(0,(int)(r + Koffset)));
-+						c.rgbGreen = (BYTE)minimum(255, maximum(0,(int)(g + Koffset)));
-+						c.rgbBlue  = (BYTE)minimum(255, maximum(0,(int)(b + Koffset)));
- 					} else if (ksumtot == ksumcur) {
--						c.rgbRed   = (BYTE)min(255, max(0,(int)(r/Kfactor + Koffset)));
--						c.rgbGreen = (BYTE)min(255, max(0,(int)(g/Kfactor + Koffset)));
--						c.rgbBlue  = (BYTE)min(255, max(0,(int)(b/Kfactor + Koffset)));
-+						c.rgbRed   = (BYTE)minimum(255, maximum(0,(int)(r/Kfactor + Koffset)));
-+						c.rgbGreen = (BYTE)minimum(255, maximum(0,(int)(g/Kfactor + Koffset)));
-+						c.rgbBlue  = (BYTE)minimum(255, maximum(0,(int)(b/Kfactor + Koffset)));
- 					} else {
--						c.rgbRed   = (BYTE)min(255, max(0,(int)((r*ksumtot)/(ksumcur*Kfactor) + Koffset)));
--						c.rgbGreen = (BYTE)min(255, max(0,(int)((g*ksumtot)/(ksumcur*Kfactor) + Koffset)));
--						c.rgbBlue  = (BYTE)min(255, max(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset)));
-+						c.rgbRed   = (BYTE)minimum(255, maximum(0,(int)((r*ksumtot)/(ksumcur*Kfactor) + Koffset)));
-+						c.rgbGreen = (BYTE)minimum(255, maximum(0,(int)((g*ksumtot)/(ksumcur*Kfactor) + Koffset)));
-+						c.rgbBlue  = (BYTE)minimum(255, maximum(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset)));
- 					}
- 					tmp.BlindSetPixelColor(x,y,c);
- 				}
-@@ -1078,8 +1078,8 @@ bool CxImage::Edge(long Ksize)
- // 
- void CxImage::Mix(CxImage & imgsrc2, ImageOpType op, long lXOffset, long lYOffset, bool bMixAlpha)
- {
--    long lWide = min(GetWidth(),imgsrc2.GetWidth()-lXOffset);
--    long lHeight = min(GetHeight(),imgsrc2.GetHeight()-lYOffset);
-+    long lWide = minimum(GetWidth(),imgsrc2.GetWidth()-lXOffset);
-+    long lHeight = minimum(GetHeight(),imgsrc2.GetHeight()-lYOffset);
- 
- 	bool bEditAlpha = imgsrc2.AlphaIsValid() & bMixAlpha;
- 
-@@ -1112,16 +1112,16 @@ void CxImage::Mix(CxImage & imgsrc2, ImageOpType op, long lXOffset, long lYOffse
- 						if (bEditAlpha) rgbDest.rgbReserved = (BYTE)((rgb1.rgbReserved+rgb2.rgbReserved)/2);
- 					break;
- 					case OpAdd:
--						rgbDest.rgbBlue = (BYTE)max(0,min(255,rgb1.rgbBlue+rgb2.rgbBlue));
--						rgbDest.rgbGreen = (BYTE)max(0,min(255,rgb1.rgbGreen+rgb2.rgbGreen));
--						rgbDest.rgbRed = (BYTE)max(0,min(255,rgb1.rgbRed+rgb2.rgbRed));
--						if (bEditAlpha) rgbDest.rgbReserved = (BYTE)max(0,min(255,rgb1.rgbReserved+rgb2.rgbReserved));
-+						rgbDest.rgbBlue = (BYTE)maximum(0,minimum(255,rgb1.rgbBlue+rgb2.rgbBlue));
-+						rgbDest.rgbGreen = (BYTE)maximum(0,minimum(255,rgb1.rgbGreen+rgb2.rgbGreen));
-+						rgbDest.rgbRed = (BYTE)maximum(0,minimum(255,rgb1.rgbRed+rgb2.rgbRed));
-+						if (bEditAlpha) rgbDest.rgbReserved = (BYTE)maximum(0,minimum(255,rgb1.rgbReserved+rgb2.rgbReserved));
- 					break;
- 					case OpSub:
--						rgbDest.rgbBlue = (BYTE)max(0,min(255,rgb1.rgbBlue-rgb2.rgbBlue));
--						rgbDest.rgbGreen = (BYTE)max(0,min(255,rgb1.rgbGreen-rgb2.rgbGreen));
--						rgbDest.rgbRed = (BYTE)max(0,min(255,rgb1.rgbRed-rgb2.rgbRed));
--						if (bEditAlpha) rgbDest.rgbReserved = (BYTE)max(0,min(255,rgb1.rgbReserved-rgb2.rgbReserved));
-+						rgbDest.rgbBlue = (BYTE)maximum(0,minimum(255,rgb1.rgbBlue-rgb2.rgbBlue));
-+						rgbDest.rgbGreen = (BYTE)maximum(0,minimum(255,rgb1.rgbGreen-rgb2.rgbGreen));
-+						rgbDest.rgbRed = (BYTE)maximum(0,minimum(255,rgb1.rgbRed-rgb2.rgbRed));
-+						if (bEditAlpha) rgbDest.rgbReserved = (BYTE)maximum(0,minimum(255,rgb1.rgbReserved-rgb2.rgbReserved));
- 					break;
- 					case OpAnd:
- 						rgbDest.rgbBlue = (BYTE)(rgb1.rgbBlue&rgb2.rgbBlue);
-@@ -1202,11 +1202,11 @@ void CxImage::Mix(CxImage & imgsrc2, ImageOpType op, long lXOffset, long lYOffse
- 							double dSmallAmt = dSmall*((double)rgb2.rgbBlue);
- 
- 							if( lAverage < lThresh+1){
--								rgbDest.rgbBlue = (BYTE)max(0,min(255,(int)(dLarge*((double)rgb1.rgbBlue) +
-+								rgbDest.rgbBlue = (BYTE)maximum(0,minimum(255,(int)(dLarge*((double)rgb1.rgbBlue) +
- 												dSmallAmt)));
--								rgbDest.rgbGreen = (BYTE)max(0,min(255,(int)(dLarge*((double)rgb1.rgbGreen) +
-+								rgbDest.rgbGreen = (BYTE)maximum(0,minimum(255,(int)(dLarge*((double)rgb1.rgbGreen) +
- 												dSmallAmt)));
--								rgbDest.rgbRed = (BYTE)max(0,min(255,(int)(dLarge*((double)rgb1.rgbRed) +
-+								rgbDest.rgbRed = (BYTE)maximum(0,minimum(255,(int)(dLarge*((double)rgb1.rgbRed) +
- 												dSmallAmt)));
- 							}
- 							else
-@@ -1274,9 +1274,9 @@ bool CxImage::ShiftRGB(long r, long g, long b)
- #endif //CXIMAGE_SUPPORT_SELECTION
- 				{
- 					color = BlindGetPixelColor(x,y);
--					color.rgbRed = (BYTE)max(0,min(255,(int)(color.rgbRed + r)));
--					color.rgbGreen = (BYTE)max(0,min(255,(int)(color.rgbGreen + g)));
--					color.rgbBlue = (BYTE)max(0,min(255,(int)(color.rgbBlue + b)));
-+					color.rgbRed = (BYTE)maximum(0,minimum(255,(int)(color.rgbRed + r)));
-+					color.rgbGreen = (BYTE)maximum(0,minimum(255,(int)(color.rgbGreen + g)));
-+					color.rgbBlue = (BYTE)maximum(0,minimum(255,(int)(color.rgbBlue + b)));
- 					BlindSetPixelColor(x,y,color);
- 				}
- 			}
-@@ -1284,9 +1284,9 @@ bool CxImage::ShiftRGB(long r, long g, long b)
- 	} else {
- 		for(DWORD j=0; j<head.biClrUsed; j++){
- 			color = GetPaletteColor((BYTE)j);
--			color.rgbRed = (BYTE)max(0,min(255,(int)(color.rgbRed + r)));
--			color.rgbGreen = (BYTE)max(0,min(255,(int)(color.rgbGreen + g)));
--			color.rgbBlue = (BYTE)max(0,min(255,(int)(color.rgbBlue + b)));
-+			color.rgbRed = (BYTE)maximum(0,minimum(255,(int)(color.rgbRed + r)));
-+			color.rgbGreen = (BYTE)maximum(0,minimum(255,(int)(color.rgbGreen + g)));
-+			color.rgbBlue = (BYTE)maximum(0,minimum(255,(int)(color.rgbBlue + b)));
- 			SetPaletteColor((BYTE)j,color);
- 		}
- 	}
-@@ -1310,7 +1310,7 @@ bool CxImage::Gamma(float gamma)
- 
- 	BYTE cTable[256]; //<nipper>
- 	for (int i=0;i<256;i++)	{
--		cTable[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax)));
-+		cTable[i] = (BYTE)maximum(0,minimum(255,(int)( pow((double)i, dinvgamma) / dMax)));
- 	}
- 
- 	return Lut(cTable);
-@@ -1337,21 +1337,21 @@ bool CxImage::GammaRGB(float gammaR, float gammaG, float gammaB)
- 	dMax = pow(255.0, dinvgamma) / 255.0;
- 	BYTE cTableR[256];
- 	for (i=0;i<256;i++)	{
--		cTableR[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax)));
-+		cTableR[i] = (BYTE)maximum(0,minimum(255,(int)( pow((double)i, dinvgamma) / dMax)));
- 	}
- 
- 	dinvgamma = 1/gammaG;
- 	dMax = pow(255.0, dinvgamma) / 255.0;
- 	BYTE cTableG[256];
- 	for (i=0;i<256;i++)	{
--		cTableG[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax)));
-+		cTableG[i] = (BYTE)maximum(0,minimum(255,(int)( pow((double)i, dinvgamma) / dMax)));
- 	}
- 
- 	dinvgamma = 1/gammaB;
- 	dMax = pow(255.0, dinvgamma) / 255.0;
- 	BYTE cTableB[256];
- 	for (i=0;i<256;i++)	{
--		cTableB[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax)));
-+		cTableB[i] = (BYTE)maximum(0,minimum(255,(int)( pow((double)i, dinvgamma) / dMax)));
- 	}
- 
- 	return Lut(cTableR, cTableG, cTableB);
-@@ -1442,11 +1442,11 @@ bool CxImage::Noise(long level)
- 			{
- 				color = BlindGetPixelColor(x,y);
- 				n=(long)((rand()/(float)RAND_MAX - 0.5)*level);
--				color.rgbRed = (BYTE)max(0,min(255,(int)(color.rgbRed + n)));
-+				color.rgbRed = (BYTE)maximum(0,minimum(255,(int)(color.rgbRed + n)));
- 				n=(long)((rand()/(float)RAND_MAX - 0.5)*level);
--				color.rgbGreen = (BYTE)max(0,min(255,(int)(color.rgbGreen + n)));
-+				color.rgbGreen = (BYTE)maximum(0,minimum(255,(int)(color.rgbGreen + n)));
- 				n=(long)((rand()/(float)RAND_MAX - 0.5)*level);
--				color.rgbBlue = (BYTE)max(0,min(255,(int)(color.rgbBlue + n)));
-+				color.rgbBlue = (BYTE)maximum(0,minimum(255,(int)(color.rgbBlue + n)));
- 				BlindSetPixelColor(x,y,color);
- 			}
- 		}
-@@ -1561,8 +1561,8 @@ bool CxImage::FFT2(CxImage* srcReal, CxImage* srcImag, CxImage* dstReal, CxImage
- 
- 	//DFT buffers
- 	double *real2,*imag2;
--	real2 = (double*)malloc(max(w,h) * sizeof(double));
--	imag2 = (double*)malloc(max(w,h) * sizeof(double));
-+	real2 = (double*)malloc(maximum(w,h) * sizeof(double));
-+	imag2 = (double*)malloc(maximum(w,h) * sizeof(double));
- 
- 	/* Transform the rows */
- 	real = (double *)malloc(w * sizeof(double));
-@@ -1617,7 +1617,7 @@ bool CxImage::FFT2(CxImage* srcReal, CxImage* srcImag, CxImage* dstReal, CxImage
- 
- 	/* converting from double to byte, there is a HUGE loss in the dynamics
- 	  "nn" tries to keep an acceptable SNR, but 8bit=48dB: don't ask more */
--	double nn=pow((double)2,(double)log((double)max(w,h))/(double)log((double)2)-4);
-+	double nn=pow((double)2,(double)log((double)maximum(w,h))/(double)log((double)2)-4);
- 	//reversed gain for reversed transform
- 	if (direction==-1) nn=1/nn;
- 	//bMagnitude : just to see it on the screen
-@@ -1626,15 +1626,15 @@ bool CxImage::FFT2(CxImage* srcReal, CxImage* srcImag, CxImage* dstReal, CxImage
- 	for (j=0;j<h;j++) {
- 		for (k=0;k<w;k++) {
- 			if (bMagnitude){
--				tmpReal->SetPixelIndex(k,j,(BYTE)max(0,min(255,(nn*(3+log(_cabs(grid[k][j])))))));
-+				tmpReal->SetPixelIndex(k,j,(BYTE)maximum(0,minimum(255,(nn*(3+log(_cabs(grid[k][j])))))));
- 				if (grid[k][j].x==0){
--					tmpImag->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128+(atan(grid[k][j].y/0.0000000001)*nn)))));
-+					tmpImag->SetPixelIndex(k,j,(BYTE)maximum(0,minimum(255,(128+(atan(grid[k][j].y/0.0000000001)*nn)))));
- 				} else {
--					tmpImag->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128+(atan(grid[k][j].y/grid[k][j].x)*nn)))));
-+					tmpImag->SetPixelIndex(k,j,(BYTE)maximum(0,minimum(255,(128+(atan(grid[k][j].y/grid[k][j].x)*nn)))));
- 				}
- 			} else {
--				tmpReal->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128 + grid[k][j].x*nn))));
--				tmpImag->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128 + grid[k][j].y*nn))));
-+				tmpReal->SetPixelIndex(k,j,(BYTE)maximum(0,minimum(255,(128 + grid[k][j].x*nn))));
-+				tmpImag->SetPixelIndex(k,j,(BYTE)maximum(0,minimum(255,(128 + grid[k][j].y*nn))));
- 			}
- 		}
- 	}
-@@ -1922,7 +1922,7 @@ bool CxImage::RepairChannel(CxImage *ch, float radius)
- 
- 			correction = ((1.0+iy*iy)*ixx - ix*iy*ixy + (1.0+ix*ix)*iyy)/(1.0+ix*ix+iy*iy);
- 
--			tmp.BlindSetPixelIndex(x,y,(BYTE)min(255,max(0,(xy0 + radius * correction + 0.5))));
-+			tmp.BlindSetPixelIndex(x,y,(BYTE)minimum(255,maximum(0,(xy0 + radius * correction + 0.5))));
- 		}
- 	}
- 
-@@ -1943,7 +1943,7 @@ bool CxImage::RepairChannel(CxImage *ch, float radius)
- 
- 			correction = ((1.0+iy*iy)*ixx - ix*iy*ixy + (1.0+ix*ix)*iyy)/(1.0+ix*ix+iy*iy);
- 
--			tmp.BlindSetPixelIndex(x,y,(BYTE)min(255,max(0,(xy0 + radius * correction + 0.5))));
-+			tmp.BlindSetPixelIndex(x,y,(BYTE)minimum(255,maximum(0,(xy0 + radius * correction + 0.5))));
- 		}
- 	}
- 	for (x=0;x<=w;x+=w){
-@@ -1963,7 +1963,7 @@ bool CxImage::RepairChannel(CxImage *ch, float radius)
- 
- 			correction = ((1.0+iy*iy)*ixx - ix*iy*ixy + (1.0+ix*ix)*iyy)/(1.0+ix*ix+iy*iy);
- 
--			tmp.BlindSetPixelIndex(x,y,(BYTE)min(255,max(0,(xy0 + radius * correction + 0.5))));
-+			tmp.BlindSetPixelIndex(x,y,(BYTE)minimum(255,maximum(0,(xy0 + radius * correction + 0.5))));
- 		}
- 	}
- 
-@@ -2621,8 +2621,8 @@ bool CxImage::SelectiveBlur(float radius, BYTE threshold, CxImage* iDst)
- 	}
- 
- 	//build the difference mask
--	BYTE thresh_dw = (BYTE)max( 0 ,(int)(128 - threshold));
--	BYTE thresh_up = (BYTE)min(255,(int)(128 + threshold));
-+	BYTE thresh_dw = (BYTE)maximum( 0 ,(int)(128 - threshold));
-+	BYTE thresh_up = (BYTE)minimum(255,(int)(128 + threshold));
- 	long kernel[]={-100,-100,-100,-100,801,-100,-100,-100,-100};
- 	if (!Tmp.Filter(kernel,3,800,128)){
- 		delete [] pPalette;
-@@ -2755,7 +2755,7 @@ bool CxImage::UnsharpMask(float radius /*= 5.0*/, float amount /*= 0.5*/, int th
- 					if (abs(diff) < threshold){
- 						dest_row[z] = cur_row[z];
- 					} else {
--						dest_row[z] = (BYTE)min(255, max(0,(int)(cur_row[z] + amount * diff)));
-+						dest_row[z] = (BYTE)minimum(255, maximum(0,(int)(cur_row[z] + amount * diff)));
- 					}
- 				}
- 			}
-@@ -2952,7 +2952,7 @@ bool CxImage::RedEyeRemove(float strength)
- 				float a = 1.0f-5.0f*((float)((x-0.5f*(xmax+xmin))*(x-0.5f*(xmax+xmin))+(y-0.5f*(ymax+ymin))*(y-0.5f*(ymax+ymin))))/((float)((xmax-xmin)*(ymax-ymin)));
- 				if (a<0) a=0;
- 				color = BlindGetPixelColor(x,y);
--				color.rgbRed = (BYTE)(a*min(color.rgbGreen,color.rgbBlue)+(1.0f-a)*color.rgbRed);
-+				color.rgbRed = (BYTE)(a*minimum(color.rgbGreen,color.rgbBlue)+(1.0f-a)*color.rgbRed);
- 				BlindSetPixelColor(x,y,color);
- 			}
- 		}
-@@ -2990,7 +2990,7 @@ bool CxImage::Saturate(const long saturation, const long colorspace)
- 	case 1:
- 		{
- 			for (int i=0;i<256;i++)	{
--				cTable[i] = (BYTE)max(0,min(255,(int)(i + saturation)));
-+				cTable[i] = (BYTE)maximum(0,minimum(255,(int)(i + saturation)));
- 			}
- 			for(long y=ymin; y<ymax; y++){
- 				info.nProgress = (long)(100*(y-ymin)/(ymax-ymin));
-@@ -3012,7 +3012,7 @@ bool CxImage::Saturate(const long saturation, const long colorspace)
- 	case 2:
- 		{
- 			for (int i=0;i<256;i++)	{
--				cTable[i] = (BYTE)max(0,min(255,(int)((i-128)*(100 + saturation)/100.0f + 128.5f)));
-+				cTable[i] = (BYTE)maximum(0,minimum(255,(int)((i-128)*(100 + saturation)/100.0f + 128.5f)));
- 			}
- 			for(long y=ymin; y<ymax; y++){
- 				info.nProgress = (long)(100*(y-ymin)/(ymax-ymin));
-@@ -3242,10 +3242,10 @@ int  CxImage::OptimalThreshold(long method, RECT * pBox, CxImage* pContrastMask)
- 
- 	long xmin,xmax,ymin,ymax;
- 	if (pBox){
--		xmin = max(pBox->left,0);
--		xmax = min(pBox->right,head.biWidth);
--		ymin = max(pBox->bottom,0);
--		ymax = min(pBox->top,head.biHeight);
-+		xmin = maximum(pBox->left,0);
-+		xmax = minimum(pBox->right,head.biWidth);
-+		ymin = maximum(pBox->bottom,0);
-+		ymax = minimum(pBox->top,head.biHeight);
- 	} else {
- 		xmin = ymin = 0;
- 		xmax = head.biWidth; ymax=head.biHeight;
-@@ -3463,7 +3463,7 @@ bool CxImage::AdaptiveThreshold(long method, long nBoxSize, CxImage* pContrastMa
- 			r.top = r.bottom + nBoxSize;
- 			int threshold = OptimalThreshold(method, &r, pContrastMask);
- 			if (threshold <0) return false;
--			mask.SetPixelIndex(x,y,(BYTE)max(0,min(255,nBias+((1.0f-fGlobalLocalBalance)*threshold + fGlobalLocalBalance*globalthreshold))));
-+			mask.SetPixelIndex(x,y,(BYTE)maximum(0,minimum(255,nBias+((1.0f-fGlobalLocalBalance)*threshold + fGlobalLocalBalance*globalthreshold))));
- 		}
- 	}
- 
-@@ -3538,8 +3538,8 @@ bool CxImage::FloodFill(const long xStart, const long yStart, const RGBQUAD cFil
- 	if (IsIndexed()){ //--- Generic indexed image, no tolerance OR Grayscale image with tolerance
- 		BYTE idxRef = GetPixelIndex(xStart,yStart);
- 		BYTE idxFill = GetNearestIndex(cFillColor);
--		BYTE idxMin = (BYTE)min(255, max(0,(int)(idxRef - nTolerance)));
--		BYTE idxMax = (BYTE)min(255, max(0,(int)(idxRef + nTolerance)));
-+		BYTE idxMin = (BYTE)minimum(255, maximum(0,(int)(idxRef - nTolerance)));
-+		BYTE idxMax = (BYTE)minimum(255, maximum(0,(int)(idxRef + nTolerance)));
- 
- 		while(!q.empty())
- 		{
-@@ -3575,12 +3575,12 @@ bool CxImage::FloodFill(const long xStart, const long yStart, const RGBQUAD cFil
- 	} else { //--- RGB image
- 		RGBQUAD cRef = GetPixelColor(xStart,yStart);
- 		RGBQUAD cRefMin, cRefMax;
--		cRefMin.rgbRed   = (BYTE)min(255, max(0,(int)(cRef.rgbRed   - nTolerance)));
--		cRefMin.rgbGreen = (BYTE)min(255, max(0,(int)(cRef.rgbGreen - nTolerance)));
--		cRefMin.rgbBlue  = (BYTE)min(255, max(0,(int)(cRef.rgbBlue  - nTolerance)));
--		cRefMax.rgbRed   = (BYTE)min(255, max(0,(int)(cRef.rgbRed   + nTolerance)));
--		cRefMax.rgbGreen = (BYTE)min(255, max(0,(int)(cRef.rgbGreen + nTolerance)));
--		cRefMax.rgbBlue  = (BYTE)min(255, max(0,(int)(cRef.rgbBlue  + nTolerance)));
-+		cRefMin.rgbRed   = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbRed   - nTolerance)));
-+		cRefMin.rgbGreen = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbGreen - nTolerance)));
-+		cRefMin.rgbBlue  = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbBlue  - nTolerance)));
-+		cRefMax.rgbRed   = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbRed   + nTolerance)));
-+		cRefMax.rgbGreen = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbGreen + nTolerance)));
-+		cRefMax.rgbBlue  = (BYTE)minimum(255, maximum(0,(int)(cRef.rgbBlue  + nTolerance)));
- 
- 		while(!q.empty())
- 		{
-diff --git a/lib/cximage-6.0/CxImage/ximage.cpp b/lib/cximage-6.0/CxImage/ximage.cpp
-index e81d3c6..b715c45 100644
---- a/lib/cximage-6.0/CxImage/ximage.cpp
-+++ b/lib/cximage-6.0/CxImage/ximage.cpp
-@@ -460,7 +460,7 @@ bool CxImage::CreateFromArray(BYTE* pArray,DWORD dwWidth,DWORD dwHeight,DWORD dw
- 				src+=4;
- 			}
- 		} else {
--			memcpy(dst,src,min(info.dwEffWidth,dwBytesperline));
-+			memcpy(dst,src,minimum(info.dwEffWidth,dwBytesperline));
- 		}
- 	}
- 	return true;
-@@ -500,7 +500,7 @@ bool CxImage::CreateFromMatrix(BYTE** ppMatrix,DWORD dwWidth,DWORD dwHeight,DWOR
- 					src+=4;
- 				}
- 			} else {
--				memcpy(dst,src,min(info.dwEffWidth,dwBytesperline));
-+				memcpy(dst,src,minimum(info.dwEffWidth,dwBytesperline));
- 			}
- 		}
- 	}
-diff --git a/lib/cximage-6.0/CxImage/ximagif.cpp b/lib/cximage-6.0/CxImage/ximagif.cpp
-index b89e061..1a26170 100644
---- a/lib/cximage-6.0/CxImage/ximagif.cpp
-+++ b/lib/cximage-6.0/CxImage/ximagif.cpp
-@@ -478,7 +478,7 @@ bool CxImageGIF::Encode(CxFile * fp, CxImage ** pImages, int pagecount, bool bLo
- 	ghost.EncodeHeader(fp);
- 
- 	if (m_loops!=1){
--		ghost.SetLoops(max(0,m_loops-1));
-+		ghost.SetLoops(maximum(0,m_loops-1));
- 		ghost.EncodeLoopExtension(fp);
- 	}
- 
-@@ -1340,10 +1340,10 @@ void CxImageGIF::GetComment(char* sz_comment_out)
- ////////////////////////////////////////////////////////////////////////////////
- void CxImageGIF::GifMix(CxImage & imgsrc2, struct_image & imgdesc)
- {
--	long ymin = max(0,(long)(GetHeight()-imgdesc.t - imgdesc.h));
-+	long ymin = maximum(0,(long)(GetHeight()-imgdesc.t - imgdesc.h));
- 	long ymax = GetHeight()-imgdesc.t;
- 	long xmin = imgdesc.l;
--	long xmax = min(GetWidth(), (DWORD)(imgdesc.l + imgdesc.w));
-+	long xmax = minimum(GetWidth(), (DWORD)(imgdesc.l + imgdesc.w));
- 
- 	long ibg2= imgsrc2.GetTransIndex();
-     BYTE i2;
-diff --git a/lib/cximage-6.0/CxImage/ximahist.cpp b/lib/cximage-6.0/CxImage/ximahist.cpp
-index a2aed03..814ab94 100644
---- a/lib/cximage-6.0/CxImage/ximahist.cpp
-+++ b/lib/cximage-6.0/CxImage/ximahist.cpp
-@@ -110,7 +110,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
- 	// calculate LUT
- 	BYTE lut[256];
- 	for (x = 0; x <256; x++){
--		lut[x] = (BYTE)max(0,min(255,(255 * (x - minc) / (maxc - minc))));
-+		lut[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minc) / (maxc - minc))));
- 	}
- 
- 	for (y=0; y<head.biHeight; y++)	{
-@@ -152,7 +152,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
- 		// calculate LUT
- 		BYTE lut[256];
- 		for (x = 0; x <256; x++){
--			lut[x] = (BYTE)max(0,min(255,(255 * (x - minc) / (maxc - minc))));
-+			lut[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minc) / (maxc - minc))));
- 		}
- 
- 		// normalize image
-@@ -225,7 +225,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
- 		BYTE range = maxR - minR;
- 		if (range != 0)	{
- 			for (x = 0; x <256; x++){
--				lutR[x] = (BYTE)max(0,min(255,(255 * (x - minR) / range)));
-+				lutR[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minR) / range)));
- 			}
- 		} else lutR[minR] = minR;
- 
-@@ -233,7 +233,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
- 		range = maxG - minG;
- 		if (range != 0)	{
- 			for (x = 0; x <256; x++){
--				lutG[x] = (BYTE)max(0,min(255,(255 * (x - minG) / range)));
-+				lutG[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minG) / range)));
- 			}
- 		} else lutG[minG] = minG;
- 			
-@@ -241,7 +241,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
- 		range = maxB - minB;
- 		if (range != 0)	{
- 			for (x = 0; x <256; x++){
--				lutB[x] = (BYTE)max(0,min(255,(255 * (x - minB) / range)));
-+				lutB[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minB) / range)));
- 			}
- 		} else lutB[minB] = minB;
- 
-@@ -292,7 +292,7 @@ bool CxImage::HistogramStretch(long method, double threshold)
- 		// calculate LUT
- 		BYTE lut[256];
- 		for (x = 0; x <256; x++){
--			lut[x] = (BYTE)max(0,min(255,(255 * (x - minc) / (maxc - minc))));
-+			lut[x] = (BYTE)maximum(0,minimum(255,(255 * (x - minc) / (maxc - minc))));
- 		}
- 
- 		for(y=0; y<head.biHeight; y++){
-diff --git a/lib/cximage-6.0/CxImage/ximaint.cpp b/lib/cximage-6.0/CxImage/ximaint.cpp
-index 989d76c..6bde6b0 100644
---- a/lib/cximage-6.0/CxImage/ximaint.cpp
-+++ b/lib/cximage-6.0/CxImage/ximaint.cpp
-@@ -26,8 +26,8 @@ void CxImage::OverflowCoordinates(long &x, long &y, OverflowMethod const ofMetho
-   switch (ofMethod) {
-     case OM_REPEAT:
-       //clip coordinates
--      x=max(x,0); x=min(x, head.biWidth-1);
--      y=max(y,0); y=min(y, head.biHeight-1);
-+      x=maximum(x,0); x=minimum(x, head.biWidth-1);
-+      y=maximum(y,0); y=minimum(y, head.biHeight-1);
-       break;
-     case OM_WRAP:
-       //wrap coordinates
-@@ -59,8 +59,8 @@ void CxImage::OverflowCoordinates(float &x, float &y, OverflowMethod const ofMet
-   switch (ofMethod) {
-     case OM_REPEAT:
-       //clip coordinates
--      x=max(x,0); x=min(x, head.biWidth-1);
--      y=max(y,0); y=min(y, head.biHeight-1);
-+      x=maximum(x,0); x=minimum(x, head.biWidth-1);
-+      y=maximum(y,0); y=minimum(y, head.biHeight-1);
-       break;
-     case OM_WRAP:
-       //wrap coordinates
-diff --git a/lib/cximage-6.0/CxImage/ximaiter.h b/lib/cximage-6.0/CxImage/ximaiter.h
-index 9788919..0437c33 100644
---- a/lib/cximage-6.0/CxImage/ximaiter.h
-+++ b/lib/cximage-6.0/CxImage/ximaiter.h
-@@ -140,7 +140,7 @@ inline void CImageIterator::SetY(int y)
- inline void CImageIterator::SetRow(BYTE *buf, int n)
- {
- 	if (n<0) n = (int)ima->GetEffWidth();
--	else n = min(n,(int)ima->GetEffWidth());
-+	else n = minimum(n,(int)ima->GetEffWidth());
- 
- 	if ((IterImage!=NULL)&&(buf!=NULL)&&(n>0)) memcpy(IterImage,buf,n);
- }
-@@ -148,7 +148,7 @@ inline void CImageIterator::SetRow(BYTE *buf, int n)
- inline void CImageIterator::GetRow(BYTE *buf, int n)
- {
- 	if ((IterImage!=NULL)&&(buf!=NULL)&&(n>0))
--		memcpy(buf,IterImage,min(n,(int)ima->GetEffWidth()));
-+		memcpy(buf,IterImage,minimum(n,(int)ima->GetEffWidth()));
- }
- /////////////////////////////////////////////////////////////////////
- inline BYTE* CImageIterator::GetRow()
-diff --git a/lib/cximage-6.0/CxImage/ximajbg.cpp b/lib/cximage-6.0/CxImage/ximajbg.cpp
-index 06fb9bf..6751a46 100644
---- a/lib/cximage-6.0/CxImage/ximajbg.cpp
-+++ b/lib/cximage-6.0/CxImage/ximajbg.cpp
-@@ -145,7 +145,7 @@ bool CxImageJBG::Encode(CxFile * hFile)
- 	jbg_enc_init(&jbig_state, w, h, planes, &buffer, jbig_data_out, hFile);
- 
-     //jbg_enc_layers(&jbig_state, 2);
--    //jbg_enc_lrlmax(&jbig_state, 800, 600);
-+    //jbg_enc_lrlmaximum(&jbig_state, 800, 600);
- 
- 	// Specify a few other options (each is ignored if negative)
- 	int dl = -1, dh = -1, d = -1, l0 = -1, mx = -1;
-diff --git a/lib/cximage-6.0/CxImage/ximajpg.cpp b/lib/cximage-6.0/CxImage/ximajpg.cpp
-index 79ab75b..acb5708 100644
---- a/lib/cximage-6.0/CxImage/ximajpg.cpp
-+++ b/lib/cximage-6.0/CxImage/ximajpg.cpp
-@@ -89,7 +89,7 @@ bool CxImageJPG::GetExifThumbnail(const char *filename, const char *outname, int
-     {
-       if (image.GetWidth() > 256 || image.GetHeight() > 256)
-       { // resize the image
--//        float amount = 256.0f / max(image.GetWidth(), image.GetHeight());
-+//        float amount = 256.0f / maximum(image.GetWidth(), image.GetHeight());
- //        image.Resample((long)(image.GetWidth() * amount), (long)(image.GetHeight() * amount), 0);
-       }
-       if (m_exifinfo.Orientation != 1)
-diff --git a/lib/cximage-6.0/CxImage/ximapal.cpp b/lib/cximage-6.0/CxImage/ximapal.cpp
-index b3bd3da..882491b 100644
---- a/lib/cximage-6.0/CxImage/ximapal.cpp
-+++ b/lib/cximage-6.0/CxImage/ximapal.cpp
-@@ -398,8 +398,8 @@ void CxImage::RGBtoBGR(BYTE *buffer, int length)
- {
- 	if (buffer && (head.biClrUsed==0)){
- 		BYTE temp;
--		length = min(length,(int)info.dwEffWidth);
--		length = min(length,(int)(3*head.biWidth));
-+		length = minimum(length,(int)info.dwEffWidth);
-+		length = minimum(length,(int)(3*head.biWidth));
- 		for (int i=0;i<length;i+=3){
- 			temp = buffer[i]; buffer[i] = buffer[i+2]; buffer[i+2] = temp;
- 		}
-@@ -444,7 +444,7 @@ void CxImage::SetPalette(DWORD n, BYTE *r, BYTE *g, BYTE *b)
- 	if (!g) g = r;
- 	if (!b) b = g;
- 	RGBQUAD* ppal=GetPalette();
--	DWORD m=min(n,head.biClrUsed);
-+	DWORD m=minimum(n,head.biClrUsed);
- 	for (DWORD i=0; i<m;i++){
- 		ppal[i].rgbRed=r[i];
- 		ppal[i].rgbGreen=g[i];
-@@ -457,7 +457,7 @@ void CxImage::SetPalette(rgb_color *rgb,DWORD nColors)
- {
- 	if ((!rgb)||(pDib==NULL)||(head.biClrUsed==0)) return;
- 	RGBQUAD* ppal=GetPalette();
--	DWORD m=min(nColors,head.biClrUsed);
-+	DWORD m=minimum(nColors,head.biClrUsed);
- 	for (DWORD i=0; i<m;i++){
- 		ppal[i].rgbRed=rgb[i].r;
- 		ppal[i].rgbGreen=rgb[i].g;
-@@ -469,7 +469,7 @@ void CxImage::SetPalette(rgb_color *rgb,DWORD nColors)
- void CxImage::SetPalette(RGBQUAD* pPal,DWORD nColors)
- {
- 	if ((pPal==NULL)||(pDib==NULL)||(head.biClrUsed==0)) return;
--	memcpy(GetPalette(),pPal,min(GetPaletteSize(),nColors*sizeof(RGBQUAD)));
-+	memcpy(GetPalette(),pPal,minimum(GetPaletteSize(),nColors*sizeof(RGBQUAD)));
- 	info.last_c_isvalid = false;
- }
- ////////////////////////////////////////////////////////////////////////////////
-@@ -654,10 +654,10 @@ void CxImage::SetClrImportant(DWORD ncolors)
- 
- 	switch(head.biBitCount){
- 	case 1:
--		head.biClrImportant = min(ncolors,2);
-+		head.biClrImportant = minimum(ncolors,2);
- 		break;
- 	case 4:
--		head.biClrImportant = min(ncolors,16);
-+		head.biClrImportant = minimum(ncolors,16);
- 		break;
- 	case 8:
- 		head.biClrImportant = ncolors;
-diff --git a/lib/cximage-6.0/CxImage/ximapng.cpp b/lib/cximage-6.0/CxImage/ximapng.cpp
-index a58441c..76fad8a 100644
---- a/lib/cximage-6.0/CxImage/ximapng.cpp
-+++ b/lib/cximage-6.0/CxImage/ximapng.cpp
-@@ -206,9 +206,9 @@ bool CxImagePNG::Decode(CxFile *hFile)
- 	} else SetGrayPalette(); //<DP> needed for grayscale PNGs
- 	
- #ifdef USE_NEW_LIBPNG_API
--	int nshift = max(0,(_bit_depth>>3)-1)<<3;
-+	int nshift = maximum(0,(_bit_depth>>3)-1)<<3;
- #else
--	int nshift = max(0,(info_ptr->bit_depth>>3)-1)<<3;
-+	int nshift = maximum(0,(info_ptr->bit_depth>>3)-1)<<3;
- #endif
- 
- #ifdef USE_NEW_LIBPNG_API
-@@ -255,10 +255,10 @@ bool CxImagePNG::Decode(CxFile *hFile)
- 			if (pal){
- 				DWORD ip;
- #ifdef USE_NEW_LIBPNG_API
--				for (ip=0;ip<min(head.biClrUsed,(unsigned long)_num_trans);ip++)
-+				for (ip=0;ip<minimum(head.biClrUsed,(unsigned long)_num_trans);ip++)
- 					pal[ip].rgbReserved=_trans_alpha[ip];
- #else
--				for (ip=0;ip<min(head.biClrUsed,(unsigned long)info_ptr->num_trans);ip++)
-+				for (ip=0;ip<minimum(head.biClrUsed,(unsigned long)info_ptr->num_trans);ip++)
- #if PNG_LIBPNG_VER > 10399
- 					pal[ip].rgbReserved=info_ptr->trans_alpha[ip];
- #else
-@@ -737,9 +737,9 @@ bool CxImagePNG::Encode(CxFile *hFile)
- #endif // CXIMAGE_SUPPORT_ALPHA	// <vho>
- 
- #ifdef USE_NEW_LIBPNG_API
--	int row_size = max(info.dwEffWidth, (_width * _channels * _bit_depth / 8));
-+	int row_size = maximum(info.dwEffWidth, (_width * _channels * _bit_depth / 8));
- #else
--	int row_size = max(info.dwEffWidth, info_ptr->width*info_ptr->channels*(info_ptr->bit_depth/8));
-+	int row_size = maximum(info.dwEffWidth, info_ptr->width*info_ptr->channels*(info_ptr->bit_depth/8));
- 	info_ptr->rowbytes = row_size;
- #endif
- 	BYTE *row_pointers = new BYTE[row_size];
-diff --git a/lib/cximage-6.0/CxImage/ximaraw.cpp b/lib/cximage-6.0/CxImage/ximaraw.cpp
-index fd86f96..1c4a8f6 100644
---- a/lib/cximage-6.0/CxImage/ximaraw.cpp
-+++ b/lib/cximage-6.0/CxImage/ximaraw.cpp
-@@ -216,7 +216,7 @@ bool CxImageRAW::Decode(CxFile *hFile)
- 
- 		DWORD size = dcr.width * (dcr.colors*dcr.opt.output_bps/8);
- 		RGBtoBGR(ppm,size);
--		memcpy(GetBits(dcr.height - 1 - row), ppm, min(size,GetEffWidth()));
-+		memcpy(GetBits(dcr.height - 1 - row), ppm, minimum(size,GetEffWidth()));
- 	}
- 	free (ppm);
- 
-@@ -298,7 +298,7 @@ bool CxImageRAW::GetExifThumbnail(const char *filename, const char *outname, int
- 			// Resizing.
-       		if (image.GetWidth() > 256 || image.GetHeight() > 256)
- 		    {
--				float amount = 256.0f / max(image.GetWidth(), image.GetHeight());
-+				float amount = 256.0f / maximum(image.GetWidth(), image.GetHeight());
- 				image.Resample((long)(image.GetWidth() * amount), (long)(image.GetHeight() * amount), 0);
- 		    }
- 	      	
-diff --git a/lib/cximage-6.0/CxImage/ximasel.cpp b/lib/cximage-6.0/CxImage/ximasel.cpp
-index 3a7c9a1..50ed029 100644
---- a/lib/cximage-6.0/CxImage/ximasel.cpp
-+++ b/lib/cximage-6.0/CxImage/ximasel.cpp
-@@ -113,15 +113,15 @@ bool CxImage::SelectionAddRect(RECT r, BYTE level)
- 	if (r.left<r.right) {r2.left=r.left; r2.right=r.right; } else {r2.left=r.right ; r2.right=r.left; }
- 	if (r.bottom<r.top) {r2.bottom=r.bottom; r2.top=r.top; } else {r2.bottom=r.top ; r2.top=r.bottom; }
- 
--	if (info.rSelectionBox.top <= r2.top) info.rSelectionBox.top = max(0L,min(head.biHeight,r2.top+1));
--	if (info.rSelectionBox.left > r2.left) info.rSelectionBox.left = max(0L,min(head.biWidth,r2.left));
--	if (info.rSelectionBox.right <= r2.right) info.rSelectionBox.right = max(0L,min(head.biWidth,r2.right+1));
--	if (info.rSelectionBox.bottom > r2.bottom) info.rSelectionBox.bottom = max(0L,min(head.biHeight,r2.bottom));
-+	if (info.rSelectionBox.top <= r2.top) info.rSelectionBox.top = maximum(0L,minimum(head.biHeight,r2.top+1));
-+	if (info.rSelectionBox.left > r2.left) info.rSelectionBox.left = maximum(0L,minimum(head.biWidth,r2.left));
-+	if (info.rSelectionBox.right <= r2.right) info.rSelectionBox.right = maximum(0L,minimum(head.biWidth,r2.right+1));
-+	if (info.rSelectionBox.bottom > r2.bottom) info.rSelectionBox.bottom = maximum(0L,minimum(head.biHeight,r2.bottom));
- 
--	long ymin = max(0L,min(head.biHeight,r2.bottom));
--	long ymax = max(0L,min(head.biHeight,r2.top+1));
--	long xmin = max(0L,min(head.biWidth,r2.left));
--	long xmax = max(0L,min(head.biWidth,r2.right+1));
-+	long ymin = maximum(0L,minimum(head.biHeight,r2.bottom));
-+	long ymax = maximum(0L,minimum(head.biHeight,r2.top+1));
-+	long xmin = maximum(0L,minimum(head.biWidth,r2.left));
-+	long xmax = maximum(0L,minimum(head.biWidth,r2.right+1));
- 
- 	for (long y=ymin; y<ymax; y++)
- 		memset(pSelection + xmin + y * head.biWidth, level, xmax-xmin);
-@@ -144,18 +144,18 @@ bool CxImage::SelectionAddEllipse(RECT r, BYTE level)
- 	long xcenter = (r.right + r.left)/2;
- 	long ycenter = (r.top + r.bottom)/2;
- 
--	if (info.rSelectionBox.left > (xcenter - xradius)) info.rSelectionBox.left = max(0L,min(head.biWidth,(xcenter - xradius)));
--	if (info.rSelectionBox.right <= (xcenter + xradius)) info.rSelectionBox.right = max(0L,min(head.biWidth,(xcenter + xradius + 1)));
--	if (info.rSelectionBox.bottom > (ycenter - yradius)) info.rSelectionBox.bottom = max(0L,min(head.biHeight,(ycenter - yradius)));
--	if (info.rSelectionBox.top <= (ycenter + yradius)) info.rSelectionBox.top = max(0L,min(head.biHeight,(ycenter + yradius + 1)));
-+	if (info.rSelectionBox.left > (xcenter - xradius)) info.rSelectionBox.left = maximum(0L,minimum(head.biWidth,(xcenter - xradius)));
-+	if (info.rSelectionBox.right <= (xcenter + xradius)) info.rSelectionBox.right = maximum(0L,minimum(head.biWidth,(xcenter + xradius + 1)));
-+	if (info.rSelectionBox.bottom > (ycenter - yradius)) info.rSelectionBox.bottom = maximum(0L,minimum(head.biHeight,(ycenter - yradius)));
-+	if (info.rSelectionBox.top <= (ycenter + yradius)) info.rSelectionBox.top = maximum(0L,minimum(head.biHeight,(ycenter + yradius + 1)));
- 
--	long xmin = max(0L,min(head.biWidth,xcenter - xradius));
--	long xmax = max(0L,min(head.biWidth,xcenter + xradius + 1));
--	long ymin = max(0L,min(head.biHeight,ycenter - yradius));
--	long ymax = max(0L,min(head.biHeight,ycenter + yradius + 1));
-+	long xmin = maximum(0L,minimum(head.biWidth,xcenter - xradius));
-+	long xmax = maximum(0L,minimum(head.biWidth,xcenter + xradius + 1));
-+	long ymin = maximum(0L,minimum(head.biHeight,ycenter - yradius));
-+	long ymax = maximum(0L,minimum(head.biHeight,ycenter + yradius + 1));
- 
- 	long y,yo;
--	for (y=ymin; y<min(ycenter,ymax); y++){
-+	for (y=ymin; y<minimum(ycenter,ymax); y++){
- 		for (long x=xmin; x<xmax; x++){
- 			yo = (long)(ycenter - yradius * sqrt(1-pow((float)(x - xcenter)/(float)xradius,2)));
- 			if (yo<y) pSelection[x + y * head.biWidth] = level;
-@@ -268,10 +268,10 @@ bool CxImage::SelectionAddPolygon(POINT *points, long npoints, BYTE level)
- 		RECT r2;
- 		if (current->x < next->x) {r2.left=current->x; r2.right=next->x; } else {r2.left=next->x ; r2.right=current->x; }
- 		if (current->y < next->y) {r2.bottom=current->y; r2.top=next->y; } else {r2.bottom=next->y ; r2.top=current->y; }
--		if (localbox.top < r2.top) localbox.top = max(0L,min(head.biHeight-1,r2.top+1));
--		if (localbox.left > r2.left) localbox.left = max(0L,min(head.biWidth-1,r2.left-1));
--		if (localbox.right < r2.right) localbox.right = max(0L,min(head.biWidth-1,r2.right+1));
--		if (localbox.bottom > r2.bottom) localbox.bottom = max(0L,min(head.biHeight-1,r2.bottom-1));
-+		if (localbox.top < r2.top) localbox.top = maximum(0L,minimum(head.biHeight-1,r2.top+1));
-+		if (localbox.left > r2.left) localbox.left = maximum(0L,minimum(head.biWidth-1,r2.left-1));
-+		if (localbox.right < r2.right) localbox.right = maximum(0L,minimum(head.biWidth-1,r2.right+1));
-+		if (localbox.bottom > r2.bottom) localbox.bottom = maximum(0L,minimum(head.biHeight-1,r2.bottom-1));
- 
- 		i++;
- 	}
-@@ -385,10 +385,10 @@ bool CxImage::SelectionAddPolygon(POINT *points, long npoints, BYTE level)
- 		for (x=localbox.left; x<=localbox.right; x++)
- 			if (plocal[x + yoffset]!=1) pSelection[x + yoffset]=level;
- 	}
--	if (info.rSelectionBox.top <= localbox.top) info.rSelectionBox.top = min(head.biHeight,localbox.top + 1);
--	if (info.rSelectionBox.left > localbox.left) info.rSelectionBox.left = min(head.biWidth,localbox.left);
--	if (info.rSelectionBox.right <= localbox.right) info.rSelectionBox.right = min(head.biWidth,localbox.right + 1);
--	if (info.rSelectionBox.bottom > localbox.bottom) info.rSelectionBox.bottom = min(head.biHeight,localbox.bottom);
-+	if (info.rSelectionBox.top <= localbox.top) info.rSelectionBox.top = minimum(head.biHeight,localbox.top + 1);
-+	if (info.rSelectionBox.left > localbox.left) info.rSelectionBox.left = minimum(head.biWidth,localbox.left);
-+	if (info.rSelectionBox.right <= localbox.right) info.rSelectionBox.right = minimum(head.biWidth,localbox.right + 1);
-+	if (info.rSelectionBox.bottom > localbox.bottom) info.rSelectionBox.bottom = minimum(head.biHeight,localbox.bottom);
- 
- 	free(plocal);
- 	free(pix);
-diff --git a/lib/cximage-6.0/CxImage/ximath.cpp b/lib/cximage-6.0/CxImage/ximath.cpp
-index 37533e2..c2f0835 100644
---- a/lib/cximage-6.0/CxImage/ximath.cpp
-+++ b/lib/cximage-6.0/CxImage/ximath.cpp
-@@ -64,10 +64,10 @@ CxRect2 CxRect2::CrossSection(CxRect2 const &r2) const
-  */
- {
-   CxRect2 cs;
--  cs.botLeft.x=max(botLeft.x, r2.botLeft.x);
--  cs.botLeft.y=max(botLeft.y, r2.botLeft.y);
--  cs.topRight.x=min(topRight.x, r2.topRight.x);
--  cs.topRight.y=min(topRight.y, r2.topRight.y);
-+  cs.botLeft.x=maximum(botLeft.x, r2.botLeft.x);
-+  cs.botLeft.y=maximum(botLeft.y, r2.botLeft.y);
-+  cs.topRight.x=minimum(topRight.x, r2.topRight.x);
-+  cs.topRight.y=minimum(topRight.y, r2.topRight.y);
-   if (cs.botLeft.x<=cs.topRight.x && cs.botLeft.y<=cs.topRight.y) {
-     return cs;
-   } else {
-diff --git a/lib/cximage-6.0/CxImage/ximatif.cpp b/lib/cximage-6.0/CxImage/ximatif.cpp
-index 658392a..22c4e67 100644
---- a/lib/cximage-6.0/CxImage/ximatif.cpp
-+++ b/lib/cximage-6.0/CxImage/ximatif.cpp
-@@ -470,9 +470,9 @@ bool CxImageTIF::Decode(CxFile * hFile)
- 						if ( cb > 0.00304 ) cb = 1.055 * pow(cb,0.41667) - 0.055;
- 							else            cb = 12.92 * cb;
- 
--						c.rgbRed  =(BYTE)max(0,min(255,(int)(cr*255)));
--						c.rgbGreen=(BYTE)max(0,min(255,(int)(cg*255)));
--						c.rgbBlue =(BYTE)max(0,min(255,(int)(cb*255)));
-+						c.rgbRed  =(BYTE)maximum(0,minimum(255,(int)(cr*255)));
-+						c.rgbGreen=(BYTE)maximum(0,minimum(255,(int)(cg*255)));
-+						c.rgbBlue =(BYTE)maximum(0,minimum(255,(int)(cb*255)));
- 
- 						SetPixelColor(xi,yi,c);
- #if CXIMAGE_SUPPORT_ALPHA
-diff --git a/lib/cximage-6.0/CxImage/ximatran.cpp b/lib/cximage-6.0/CxImage/ximatran.cpp
-index 64a71e7..dfbcddf 100644
---- a/lib/cximage-6.0/CxImage/ximatran.cpp
-+++ b/lib/cximage-6.0/CxImage/ximatran.cpp
-@@ -302,12 +302,12 @@ bool CxImage::RotateLeft(CxImage* iDst)
- 			for (ys = 0; ys < newHeight; ys+=RBLOCK) {
- 				if (head.biBitCount==24) {
- 					//RGB24 optimized pixel access:
--					for (x = xs; x < min(newWidth, xs+RBLOCK); x++){    //do rotation
-+					for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){    //do rotation
- 						info.nProgress = (long)(100*x/newWidth);
- 						x2=newWidth-x-1;
- 						dstPtr = (BYTE*) imgDest.BlindGetPixelPointer(x,ys);
- 						srcPtr = (BYTE*) BlindGetPixelPointer(ys, x2);
--						for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
-+						for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
- 							//imgDest.SetPixelColor(x, y, GetPixelColor(y, x2));
- 							*(dstPtr) = *(srcPtr);
- 							*(dstPtr+1) = *(srcPtr+1);
-@@ -318,19 +318,19 @@ bool CxImage::RotateLeft(CxImage* iDst)
- 					}//for x
- 				} else {
- 					//anything else than 24bpp (and 1bpp): palette
--					for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
-+					for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
- 						info.nProgress = (long)(100*x/newWidth); //<Anatoly Ivasyuk>
- 						x2=newWidth-x-1;
--						for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
-+						for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
- 							imgDest.SetPixelIndex(x, y, BlindGetPixelIndex(y, x2));
- 						}//for y
- 					}//for x
- 				}//if (version selection)
- #if CXIMAGE_SUPPORT_ALPHA
- 				if (AlphaIsValid()) {
--					for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
-+					for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
- 						x2=newWidth-x-1;
--						for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
-+						for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
- 							imgDest.AlphaSet(x,y,BlindAlphaGet(y, x2));
- 						}//for y
- 					}//for x
-@@ -343,9 +343,9 @@ bool CxImage::RotateLeft(CxImage* iDst)
- 					imgDest.info.rSelectionBox.right = newWidth-info.rSelectionBox.bottom;
- 					imgDest.info.rSelectionBox.bottom = info.rSelectionBox.left;
- 					imgDest.info.rSelectionBox.top = info.rSelectionBox.right;
--					for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
-+					for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
- 						x2=newWidth-x-1;
--						for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
-+						for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
- 							imgDest.SelectionSet(x,y,BlindSelectionGet(y, x2));
- 						}//for y
- 					}//for x
-@@ -447,12 +447,12 @@ bool CxImage::RotateRight(CxImage* iDst)
- 			for (ys = 0; ys < newHeight; ys+=RBLOCK) {
- 				if (head.biBitCount==24) {
- 					//RGB24 optimized pixel access:
--					for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
-+					for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
- 						info.nProgress = (long)(100*y/newHeight); //<Anatoly Ivasyuk>
- 						y2=newHeight-y-1;
- 						dstPtr = (BYTE*) imgDest.BlindGetPixelPointer(xs,y);
- 						srcPtr = (BYTE*) BlindGetPixelPointer(y2, xs);
--						for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
-+						for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
- 							//imgDest.SetPixelColor(x, y, GetPixelColor(y2, x));
- 							*(dstPtr) = *(srcPtr);
- 							*(dstPtr+1) = *(srcPtr+1);
-@@ -463,19 +463,19 @@ bool CxImage::RotateRight(CxImage* iDst)
- 					}//for y
- 				} else {
- 					//anything else than BW & RGB24: palette
--					for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
-+					for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
- 						info.nProgress = (long)(100*y/newHeight); //<Anatoly Ivasyuk>
- 						y2=newHeight-y-1;
--						for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
-+						for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
- 							imgDest.SetPixelIndex(x, y, BlindGetPixelIndex(y2, x));
- 						}//for x
- 					}//for y
- 				}//if
- #if CXIMAGE_SUPPORT_ALPHA
- 				if (AlphaIsValid()){
--					for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
-+					for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
- 						y2=newHeight-y-1;
--						for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
-+						for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
- 							imgDest.AlphaSet(x,y,BlindAlphaGet(y2, x));
- 						}//for x
- 					}//for y
-@@ -488,9 +488,9 @@ bool CxImage::RotateRight(CxImage* iDst)
- 					imgDest.info.rSelectionBox.right = info.rSelectionBox.top;
- 					imgDest.info.rSelectionBox.bottom = newHeight-info.rSelectionBox.right;
- 					imgDest.info.rSelectionBox.top = newHeight-info.rSelectionBox.left;
--					for (y = ys; y < min(newHeight, ys+RBLOCK); y++){
-+					for (y = ys; y < minimum(newHeight, ys+RBLOCK); y++){
- 						y2=newHeight-y-1;
--						for (x = xs; x < min(newWidth, xs+RBLOCK); x++){
-+						for (x = xs; x < minimum(newWidth, xs+RBLOCK); x++){
- 							imgDest.SelectionSet(x,y,BlindSelectionGet(y2, x));
- 						}//for x
- 					}//for y
-@@ -608,10 +608,10 @@ bool CxImage::Rotate(float angle, CxImage* iDst)
- 	newP4.x = (float)(p4.x*cos_angle - p4.y*sin_angle);
- 	newP4.y = (float)(p4.x*sin_angle + p4.y*cos_angle);
- 
--	leftTop.x = min(min(newP1.x,newP2.x),min(newP3.x,newP4.x));
--	leftTop.y = min(min(newP1.y,newP2.y),min(newP3.y,newP4.y));
--	rightBottom.x = max(max(newP1.x,newP2.x),max(newP3.x,newP4.x));
--	rightBottom.y = max(max(newP1.y,newP2.y),max(newP3.y,newP4.y));
-+	leftTop.x = minimum(minimum(newP1.x,newP2.x),minimum(newP3.x,newP4.x));
-+	leftTop.y = minimum(minimum(newP1.y,newP2.y),minimum(newP3.y,newP4.y));
-+	rightBottom.x = maximum(maximum(newP1.x,newP2.x),maximum(newP3.x,newP4.x));
-+	rightBottom.y = maximum(maximum(newP1.y,newP2.y),maximum(newP3.y,newP4.y));
- 	leftBottom.x = leftTop.x;
- 	leftBottom.y = rightBottom.y;
- 	rightTop.x = rightBottom.x;
-@@ -740,10 +740,10 @@ bool CxImage::Rotate2(float angle,
- 	}//if
- 
- 	//(read new dimensions from location of corners)
--	float minx = (float) min(min(newp[0].x,newp[1].x),min(newp[2].x,newp[3].x));
--	float miny = (float) min(min(newp[0].y,newp[1].y),min(newp[2].y,newp[3].y));
--	float maxx = (float) max(max(newp[0].x,newp[1].x),max(newp[2].x,newp[3].x));
--	float maxy = (float) max(max(newp[0].y,newp[1].y),max(newp[2].y,newp[3].y));
-+	float minx = (float) minimum(minimum(newp[0].x,newp[1].x),minimum(newp[2].x,newp[3].x));
-+	float miny = (float) minimum(minimum(newp[0].y,newp[1].y),minimum(newp[2].y,newp[3].y));
-+	float maxx = (float) maximum(maximum(newp[0].x,newp[1].x),maximum(newp[2].x,newp[3].x));
-+	float maxy = (float) maximum(maximum(newp[0].y,newp[1].y),maximum(newp[2].y,newp[3].y));
- 	int newWidth = (int) floor(maxx-minx+0.5f);
- 	int newHeight= (int) floor(maxy-miny+0.5f);
- 	float ssx=((maxx+minx)- ((float) newWidth-1))/2.0f;   //start for x
-@@ -1003,12 +1003,12 @@ bool CxImage::Resample(long newx, long newy, int mode, CxImage* iDst)
- 				if (info.nEscape) break;
- 				fY = y * yScale;
- 				ifY = (int)fY;
--				ifY1 = min(ymax, ifY+1);
-+				ifY1 = minimum(ymax, ifY+1);
- 				dy = fY - ifY;
- 				for(long x=0; x<newx; x++){
- 					fX = x * xScale;
- 					ifX = (int)fX;
--					ifX1 = min(xmax, ifX+1);
-+					ifX1 = minimum(xmax, ifX+1);
- 					dx = fX - ifX;
- 					// Interpolate using the four nearest pixels in the source
- 					if (head.biClrUsed){
-@@ -1328,9 +1328,9 @@ bool CxImage::DecreaseBpp(DWORD nbit, bool errordiffusion, RGBQUAD* ppal, DWORD
- 				eb=(long)c.rgbBlue - (long)ce.rgbBlue;
- 
- 				c = GetPixelColor(x+1,y);
--				c.rgbRed = (BYTE)min(255L,max(0L,(long)c.rgbRed + ((er*7)/16)));
--				c.rgbGreen = (BYTE)min(255L,max(0L,(long)c.rgbGreen + ((eg*7)/16)));
--				c.rgbBlue = (BYTE)min(255L,max(0L,(long)c.rgbBlue + ((eb*7)/16)));
-+				c.rgbRed = (BYTE)minimum(255L,maximum(0L,(long)c.rgbRed + ((er*7)/16)));
-+				c.rgbGreen = (BYTE)minimum(255L,maximum(0L,(long)c.rgbGreen + ((eg*7)/16)));
-+				c.rgbBlue = (BYTE)minimum(255L,maximum(0L,(long)c.rgbBlue + ((eb*7)/16)));
- 				SetPixelColor(x+1,y,c);
- 				int coeff=1;
- 				for(int i=-1; i<2; i++){
-@@ -1343,9 +1343,9 @@ bool CxImage::DecreaseBpp(DWORD nbit, bool errordiffusion, RGBQUAD* ppal, DWORD
- 						coeff=1; break;
- 					}
- 					c = GetPixelColor(x+i,y+1);
--					c.rgbRed = (BYTE)min(255L,max(0L,(long)c.rgbRed + ((er * coeff)/16)));
--					c.rgbGreen = (BYTE)min(255L,max(0L,(long)c.rgbGreen + ((eg * coeff)/16)));
--					c.rgbBlue = (BYTE)min(255L,max(0L,(long)c.rgbBlue + ((eb * coeff)/16)));
-+					c.rgbRed = (BYTE)minimum(255L,maximum(0L,(long)c.rgbRed + ((er * coeff)/16)));
-+					c.rgbGreen = (BYTE)minimum(255L,maximum(0L,(long)c.rgbGreen + ((eg * coeff)/16)));
-+					c.rgbBlue = (BYTE)minimum(255L,maximum(0L,(long)c.rgbBlue + ((eb * coeff)/16)));
- 					SetPixelColor(x+i,y+1,c);
- 				}
- 			}
-@@ -1566,10 +1566,10 @@ bool CxImage::Dither(long method)
- 				}
- 
- 				nlevel = GetPixelIndex(x + 1, y) + (error * 8) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(x + 1, y, level);
- 				nlevel = GetPixelIndex(x + 2, y) + (error * 4) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(x + 2, y, level);
- 				int i;
- 				for (i = -2; i < 3; i++) {
-@@ -1591,7 +1591,7 @@ bool CxImage::Dither(long method)
- 						break;
- 					}
- 					nlevel = GetPixelIndex(x + i, y + 1) + (error * coeff) / TotalCoeffSum;
--					level = (BYTE)min(255, max(0, (int)nlevel));
-+					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 					SetPixelIndex(x + i, y + 1, level);
- 				}
- 			}
-@@ -1620,10 +1620,10 @@ bool CxImage::Dither(long method)
- 				}
- 
- 				nlevel = GetPixelIndex(x + 1, y) + (error * 8) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(x + 1, y, level);
- 				nlevel = GetPixelIndex(x + 2, y) + (error * 4) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(x + 2, y, level);
- 				int i;
- 				for (i = -2; i < 3; i++) {
-@@ -1645,7 +1645,7 @@ bool CxImage::Dither(long method)
- 						break;
- 					}
- 					nlevel = GetPixelIndex(x + i, y + 1) + (error * coeff) / TotalCoeffSum;
--					level = (BYTE)min(255, max(0, (int)nlevel));
-+					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 					SetPixelIndex(x + i, y + 1, level);
- 				}
- 				for (i = -2; i < 3; i++) {
-@@ -1667,7 +1667,7 @@ bool CxImage::Dither(long method)
- 						break;
- 					}
- 					nlevel = GetPixelIndex(x + i, y + 2) + (error * coeff) / TotalCoeffSum;
--					level = (BYTE)min(255, max(0, (int)nlevel));
-+					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 					SetPixelIndex(x + i, y + 2, level);
- 				}
- 			}
-@@ -1696,10 +1696,10 @@ bool CxImage::Dither(long method)
- 				}
- 
- 				nlevel = GetPixelIndex(x + 1, y) + (error * 7) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(x + 1, y, level);
- 				nlevel = GetPixelIndex(x + 2, y) + (error * 5) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(x + 2, y, level);
- 				int i;
- 				for (i = -2; i < 3; i++) {
-@@ -1721,7 +1721,7 @@ bool CxImage::Dither(long method)
- 						break;
- 					}
- 					nlevel = GetPixelIndex(x + i, y + 1) + (error * coeff) / TotalCoeffSum;
--					level = (BYTE)min(255, max(0, (int)nlevel));
-+					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 					SetPixelIndex(x + i, y + 1, level);
- 				}
- 				for (i = -2; i < 3; i++) {
-@@ -1743,7 +1743,7 @@ bool CxImage::Dither(long method)
- 						break;
- 					}
- 					nlevel = GetPixelIndex(x + i, y + 2) + (error * coeff) / TotalCoeffSum;
--					level = (BYTE)min(255, max(0, (int)nlevel));
-+					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 					SetPixelIndex(x + i, y + 2, level);
- 				}
- 			}
-@@ -1772,10 +1772,10 @@ bool CxImage::Dither(long method)
- 				}
- 
- 				nlevel = GetPixelIndex(x + 1, y) + (error * 5) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(x + 1, y, level);
- 				nlevel = GetPixelIndex(x + 2, y) + (error * 3) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(x + 2, y, level);
- 				int i;
- 				for (i = -2; i < 3; i++) {
-@@ -1797,7 +1797,7 @@ bool CxImage::Dither(long method)
- 						break;
- 					}
- 					nlevel = GetPixelIndex(x + i, y + 1) + (error * coeff) / TotalCoeffSum;
--					level = (BYTE)min(255, max(0, (int)nlevel));
-+					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 					SetPixelIndex(x + i, y + 1, level);
- 				}
- 				for (i = -1; i < 2; i++) {
-@@ -1813,7 +1813,7 @@ bool CxImage::Dither(long method)
- 						break;
- 					}
- 					nlevel = GetPixelIndex(x + i, y + 2) + (error * coeff) / TotalCoeffSum;
--					level = (BYTE)min(255, max(0, (int)nlevel));
-+					level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 					SetPixelIndex(x + i, y + 2, level);
- 				}
- 			}
-@@ -1845,76 +1845,76 @@ bool CxImage::Dither(long method)
- 				int tmp_index_y = y;
- 				int tmp_coeff = 32;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 
- 				tmp_index_x = x - 3;
- 				tmp_index_y = y + 1;
- 				tmp_coeff = 12;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 
- 				tmp_index_x = x - 1;
- 				tmp_coeff = 26;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 
- 				tmp_index_x = x + 1;
- 				tmp_coeff = 30;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 
- 				tmp_index_x = x + 3;
- 				tmp_coeff = 16;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 
- 				tmp_index_x = x - 2;
- 				tmp_index_y = y + 2;
- 				tmp_coeff = 12;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 
- 				tmp_index_x = x;
- 				tmp_coeff = 26;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 
- 				tmp_index_x = x + 2;
- 				tmp_coeff = 12;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 
- 				tmp_index_x = x - 3;
- 				tmp_index_y = y + 3;
- 				tmp_coeff = 5;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 
- 				tmp_index_x = x - 1;
- 				tmp_coeff = 12;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 
- 				tmp_index_x = x + 1;
- 				tmp_coeff = 12;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 
- 				tmp_index_x = x + 3;
- 				tmp_coeff = 5;
- 				nlevel = GetPixelIndex(tmp_index_x, tmp_index_y) + (error * tmp_coeff) / TotalCoeffSum;
--				level = (BYTE)min(255, max(0, (int)nlevel));
-+				level = (BYTE)minimum(255, maximum(0, (int)nlevel));
- 				SetPixelIndex(tmp_index_x, tmp_index_y, level);
- 			}
- 		}
-@@ -1941,7 +1941,7 @@ bool CxImage::Dither(long method)
- 			Bmatrix[i] = (BYTE)(dither);
- 		}
- 
--		int scale = max(0,(8-2*order));
-+		int scale = maximum(0,(8-2*order));
- 		int level;
- 		for (long y=0;y<head.biHeight;y++){
- 			info.nProgress = (long)(100*y/head.biHeight);
-@@ -1981,7 +1981,7 @@ bool CxImage::Dither(long method)
- 				}
- 
- 				nlevel = GetPixelIndex(x+1,y) + (error * 7)/16;
--				level = (BYTE)min(255,max(0,(int)nlevel));
-+				level = (BYTE)minimum(255,maximum(0,(int)nlevel));
- 				SetPixelIndex(x+1,y,level);
- 				for(int i=-1; i<2; i++){
- 					switch(i){
-@@ -1993,7 +1993,7 @@ bool CxImage::Dither(long method)
- 						coeff=1; break;
- 					}
- 					nlevel = GetPixelIndex(x+i,y+1) + (error * coeff)/16;
--					level = (BYTE)min(255,max(0,(int)nlevel));
-+					level = (BYTE)minimum(255,maximum(0,(int)nlevel));
- 					SetPixelIndex(x+i,y+1,level);
- 				}
- 			}
-@@ -2031,7 +2031,7 @@ bool CxImage::CropRotatedRectangle( long topx, long topy, long width, long heigh
- 	if ( fabs(angle)<0.0002 )
- 		return Crop( topx, topy, topx+width, topy+height, iDst);
- 
--	startx = min(topx, topx - (long)(sin_angle*(double)height));
-+	startx = minimum(topx, topx - (long)(sin_angle*(double)height));
- 	endx   = topx + (long)(cos_angle*(double)width);
- 	endy   = topy + (long)(cos_angle*(double)height + sin_angle*(double)width);
- 	// check: corners of the rectangle must be inside
-@@ -2079,10 +2079,10 @@ bool CxImage::Crop(long left, long top, long right, long bottom, CxImage* iDst)
- {
- 	if (!pDib) return false;
- 
--	long startx = max(0L,min(left,head.biWidth));
--	long endx = max(0L,min(right,head.biWidth));
--	long starty = head.biHeight - max(0L,min(top,head.biHeight));
--	long endy = head.biHeight - max(0L,min(bottom,head.biHeight));
-+	long startx = maximum(0L,minimum(left,head.biWidth));
-+	long endx = maximum(0L,minimum(right,head.biWidth));
-+	long starty = head.biHeight - maximum(0L,minimum(top,head.biHeight));
-+	long endy = head.biHeight - maximum(0L,minimum(bottom,head.biHeight));
- 
- 	if (startx==endx || starty==endy) return false;
- 
-@@ -2443,8 +2443,8 @@ bool CxImage::CircleTransform(int type,long rmax,float Koeff)
- 						nx=x+(x%32)-16;
- 						ny=y;
- 					}
--//					nx=max(xmin,min(nx,xmax));
--//					ny=max(ymin,min(ny,ymax));
-+//					nx=maximum(xmin,minimum(nx,xmax));
-+//					ny=maximum(ymin,minimum(ny,ymax));
- 				}
- 				else { nx=-1;ny=-1;}
- 				if (head.biClrUsed==0){
-diff --git a/lib/cximage-6.0/CxImage/ximawnd.cpp b/lib/cximage-6.0/CxImage/ximawnd.cpp
-index 2ae2f93..9ddc05a 100644
---- a/lib/cximage-6.0/CxImage/ximawnd.cpp
-+++ b/lib/cximage-6.0/CxImage/ximawnd.cpp
-@@ -682,10 +682,10 @@ long CxImage::Draw(HDC hdc, long x, long y, long cx, long cy, RECT* pClipRect, b
- 	RECT clipbox,paintbox;
- 	GetClipBox(hdc,&clipbox);
- 
--	paintbox.top = min(clipbox.bottom,max(clipbox.top,y));
--	paintbox.left = min(clipbox.right,max(clipbox.left,x));
--	paintbox.right = max(clipbox.left,min(clipbox.right,x+cx));
--	paintbox.bottom = max(clipbox.top,min(clipbox.bottom,y+cy));
-+	paintbox.top = minimum(clipbox.bottom,maximum(clipbox.top,y));
-+	paintbox.left = minimum(clipbox.right,maximum(clipbox.left,x));
-+	paintbox.right = maximum(clipbox.left,minimum(clipbox.right,x+cx));
-+	paintbox.bottom = maximum(clipbox.top,minimum(clipbox.bottom,y+cy));
- 
- 	long destw = paintbox.right - paintbox.left;
- 	long desth = paintbox.bottom - paintbox.top;
-@@ -730,12 +730,12 @@ long CxImage::Draw(HDC hdc, long x, long y, long cx, long cy, RECT* pClipRect, b
- 
- 				for(yy=0;yy<desth;yy++){
- 					dy = head.biHeight-(ymax-yy-y)*fy;
--					sy = max(0L,(long)floor(dy));
-+					sy = maximum(0L,(long)floor(dy));
- 					psrc = info.pImage+sy*info.dwEffWidth;
- 					pdst = pbase+yy*ew;
- 					for(xx=0;xx<destw;xx++){
- 						dx = (xx+xmin-x)*fx;
--						sx = max(0L,(long)floor(dx));
-+						sx = maximum(0L,(long)floor(dx));
- #if CXIMAGE_SUPPORT_INTERPOLATION
- 						if (bSmooth){
- 							if (fx > 1 && fy > 1) { 
-@@ -813,7 +813,7 @@ long CxImage::Draw(HDC hdc, long x, long y, long cx, long cy, RECT* pClipRect, b
- 				
- 				for(yy=0;yy<desth;yy++){
- 					dy = head.biHeight-(ymax-yy-y)*fy;
--					sy = max(0L,(long)floor(dy));
-+					sy = maximum(0L,(long)floor(dy));
- 
- 					alphaoffset = sy*head.biWidth;
- 					pdst = pbase + yy*ew;
-@@ -821,7 +821,7 @@ long CxImage::Draw(HDC hdc, long x, long y, long cx, long cy, RECT* pClipRect, b
- 
- 					for(xx=0;xx<destw;xx++){
- 						dx = (xx+xmin-x)*fx;
--						sx = max(0L,(long)floor(dx));
-+						sx = maximum(0L,(long)floor(dx));
- 
- 						if (bAlpha) a=pAlpha[alphaoffset+sx]; else a=255;
- 						a =(BYTE)((a*(1+info.nAlphaMax))>>8);

diff --git a/media-tv/kodi/kodi-16.1-r1.ebuild b/media-tv/kodi/kodi-16.1-r1.ebuild
index a1074d1..cd4c0e7 100644
--- a/media-tv/kodi/kodi-16.1-r1.ebuild
+++ b/media-tv/kodi/kodi-16.1-r1.ebuild
@@ -23,6 +23,7 @@ case ${PV} in
 	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
+		https://dev.gentoo.org/~soap/distfiles/${PN}-${PV}-gcc-6.patch
 		!java? ( https://github.com/candrews/gentoo-kodi/raw/master/${MY_P}-generated-addons-r1.tar.xz )"
 	KEYWORDS="~amd64 ~x86"
 
@@ -149,7 +150,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400618887
 	"${FILESDIR}"/${PN}-9999-texturepacker.patch
 	"${FILESDIR}"/${PN}-16-ffmpeg3.patch
-	"${FILESDIR}"/${PN}-16.1-gcc-6.patch #592446
+	"${DISTDIR}"/${PN}-${PV}-gcc-6.patch #592446
 )
 
 CONFIG_CHECK="~IP_MULTICAST"


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2017-01-20 16:52 Jory Pratt
  0 siblings, 0 replies; 24+ messages in thread
From: Jory Pratt @ 2017-01-20 16:52 UTC (permalink / raw
  To: gentoo-commits

commit:     e51d1977652b578378593e5c85111ae36c227d6b
Author:     Craig Andrews <candrews <AT> integralblue <DOT> com>
AuthorDate: Thu Jan 19 19:19:03 2017 +0000
Commit:     Jory Pratt <anarchy <AT> gentoo <DOT> org>
CommitDate: Fri Jan 20 16:51:57 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e51d1977

media-tv/kodi: cleanup, fix build problem

-17.0_rc3-r2, -9999: fix typo
-14.1, -14.1, -15.2, -16.0, -16.1-r1, -17.0_rc3-r1, -17.0_rc3-r2, -17.0_rc3: remove obsoleted ebuilds
-16.1-r2: fix loss of precision defined behavior build failure
-9999: don't delete fontconfig files because upstream now handles that

Gentoo-bugs: 606124, 600930
Closes: https://github.com/gentoo/gentoo/pull/3545

 media-tv/kodi/Manifest                             |   6 -
 .../kodi/files/kodi-14.0-dvddemux-ffmpeg.patch     |  16 --
 media-tv/kodi/files/kodi-14.1-gcc-5.patch          |  47 ----
 media-tv/kodi/files/kodi-15.1-texturepacker.patch  |  25 --
 .../kodi-16.1-GUIFontTTFGL-loses-precision.patch   |  63 +++++
 media-tv/kodi/files/kodi-9999-nomythtv.patch       |  67 -----
 media-tv/kodi/kodi-14.1.ebuild                     | 283 -------------------
 media-tv/kodi/kodi-15.2.ebuild                     | 288 --------------------
 media-tv/kodi/kodi-16.0.ebuild                     | 294 --------------------
 media-tv/kodi/kodi-16.1-r1.ebuild                  | 302 ---------------------
 media-tv/kodi/kodi-16.1-r2.ebuild                  |   1 +
 media-tv/kodi/kodi-17.0_rc3-r1.ebuild              | 277 -------------------
 media-tv/kodi/kodi-17.0_rc3-r2.ebuild              |   2 +-
 media-tv/kodi/kodi-17.0_rc3.ebuild                 | 251 -----------------
 media-tv/kodi/kodi-9999.ebuild                     |   8 +-
 media-tv/kodi/metadata.xml                         |   8 -
 16 files changed, 66 insertions(+), 1872 deletions(-)

diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
index 0ff87d7..2cb91ec 100644
--- a/media-tv/kodi/Manifest
+++ b/media-tv/kodi/Manifest
@@ -1,9 +1,3 @@
-DIST kodi-14.1-generated-addons.tar.xz 71072 SHA256 0666eae88a3214f7577544975524b95a9f55b107cde5124d5d299351427c5d39 SHA512 a26889ba8af33316ac61bbf5a55ec6cd72cb867eac9b6d7c626ff890f3287de8704cf8372a5e2b72d6075ab8c31ba3d8465d1da0c9437065fe6e0171a560142f WHIRLPOOL 34a7067964febd71d5e07333a1ef90c14ad3d7d09e82aa4a3245b8174b068a1b2b31d0d6e5d20a449d11d34701b59611b725c8f37ce61702489c84bda16f227a
-DIST kodi-14.1.tar.gz 70832109 SHA256 a38059e292cf8523918834e49fcc2d688525ceb7951ddf7f5ee535f4147255d6 SHA512 05dccad279073fc804faf2f179ba370f612d53c823dd333fdd151e05de37eb8202cc981ba48afff695d475bafde9c8f05f562fe09883593a70299a2f098a9849 WHIRLPOOL 464ff2673c9e65466dff73d3c91b8754ee68d64b4a18ebb0b0c6e8efa2da1cc32ab22686530a8469a105bf7a089d8928db64c5c61d272462c13485006875b506
-DIST kodi-15.2-generated-addons.tar.xz 73912 SHA256 8c604be6188e03569209632dca96a9e333fa898e41651ac81f7fad2a45163610 SHA512 094ac1373a80d08371daad8fb1ee4422b8c16f77430fcd4a2b78ed0dc1883027086081e5788e07333c345121a20fda89b0bd5bcb2c8922b79573aca6e4726b9a WHIRLPOOL 560b8de1fa506ea1a73b5a0c539563649159dbb83b9996dc550e706037c5ff15dc657f382e55b2812797c1eee596b2b3b84a0061b6c74b2a5179a126a1841583
-DIST kodi-15.2.tar.gz 61484128 SHA256 dd8aeb942e6de5d1488e243e1346cff3f6597e21b5131a3ba72ff5cc82037110 SHA512 870f67b83aaa96b1a4111f34824eb47c24616d067adf930f4456ca8f1ac57052c41aa73915304ea85b1d10390865b88d88c85e6cd425b42ec5a504908adf4b67 WHIRLPOOL 5d484ff8eb8b48de643bf6dbff0ca824d528143d2f6f78f124bae19a0f67db72271c865786520672ef716cedba4ad4ad11c59fe857c8b34ec9331724f09046c2
-DIST kodi-16.0-generated-addons.tar.xz 76876 SHA256 fb164bf2aaf54d0c4a6da60b768b40f47c61456ac9bfd5c859593e37c56080c4 SHA512 7b06e3dc7c7cad4b4bb43dafadb756e3b6064452d289b81097a5a340f33a0fd6b7da82954578039f980dd6338de4b6e0105ed69678c01548b4e79f072a120800 WHIRLPOOL bcff75cdc21cebff305052d985de9f88a3043d4a0aa81509c8daff3ace28fd18ca625f3394bd1b109ec242c3310a4934b4f4837355f39de47be6ff6031a1d13f
-DIST kodi-16.0.tar.gz 52093964 SHA256 0421ea1337cdee674f8a36d995f54152b5ddc4100e53410b3aeeb3b3f7d53946 SHA512 b187f57601dfadc2119622f19558dbaca6ba7c708f5c24d65b876ee32888251940ffa8caadf978ee1afbd7c8da5007771e013d639819b998c345e968149995ac WHIRLPOOL ca19325b52c4c7de72a8d18cc9d68a83203274d3a432bcd83188904a9a2ba4e69372144c40ada3b3cd89ed12d740a1dceec75c5511b706b922374784bf817b3f
 DIST kodi-16.1-gcc-6.patch 63436 SHA256 cc4d730f163fcc3a99cb67480953cb043c17097d815bf41da441c7e66caaa0dc SHA512 9236608e26685feccd4492c58e7b5c4262e0ac100aabda46a565685eaa19af5b9bbe11f59cecc91de33474ac024ff74d670fe137fa2490f4ec1207817fb7fd23 WHIRLPOOL 336ba43387c154e67a5a3592675f802a50771e3bac14af79f9413773185f6b35e85a1af10988b96238a00e6a9c300caf856435f356572b7fb441e652164c8917
 DIST kodi-16.1-generated-addons-r1.tar.xz 54528 SHA256 ffa06845ed95597b46a178575e361f0641f78778be553d7a9f51b4cc190d2629 SHA512 32c9a5bb6ed5f5d8e73a37c35268c1a7176c6a4c52c5b5e8f6c5c76a3c51445ff0a5b8802be94ada5d63ecbea4d7e69b61d579c931900f6ba6abb583bbe542d9 WHIRLPOOL 3cd62abee6854efbee0070d811d0ef03f7b2d1d629c91d43fb2a2883c83733267affef60339459ce1ca7e30b1b856e20b929883cd12958348803c428d69e142e
 DIST kodi-16.1.tar.gz 52091107 SHA256 7d82c8aff2715c83deecdf10c566e26105bec0473af530a1356d4c747ebdfd10 SHA512 fe7012ea899906d418faa19af5066e5976d092745e91030106ea4f75399ad67a4bb4e4f384605ab7b2d9e24174aab2e243531f31d79ff5ae33564361b25eb073 WHIRLPOOL eabe28e2d0bf35dc1272551e9179b2450607c97295daffcfa5ce90a56c5db42467fe0f9ba43cc542a0843cb867554682e9cd223a326c37bee7dfd086cb40ec4d

diff --git a/media-tv/kodi/files/kodi-14.0-dvddemux-ffmpeg.patch b/media-tv/kodi/files/kodi-14.0-dvddemux-ffmpeg.patch
deleted file mode 100644
index 94b8666..00000000
--- a/media-tv/kodi/files/kodi-14.0-dvddemux-ffmpeg.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-sniped from:
-http://cvs.rpmfusion.org/viewvc/rpms/kodi/devel/kodi-14.0-dvddemux-ffmpeg.patch?root=free&view=markup
-
---- xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
-+++ xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
-@@ -519,10 +519,6 @@
- 
- void CDVDDemuxFFmpeg::Flush()
- {
--  // naughty usage of an internal ffmpeg function
--  if (m_pFormatContext)
--    av_read_frame_flush(m_pFormatContext);
--
-   m_currentPts = DVD_NOPTS_VALUE;
- 
-   m_pkt.result = -1;

diff --git a/media-tv/kodi/files/kodi-14.1-gcc-5.patch b/media-tv/kodi/files/kodi-14.1-gcc-5.patch
deleted file mode 100644
index 5134ea1..00000000
--- a/media-tv/kodi/files/kodi-14.1-gcc-5.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-https://bugs.gentoo.org/557300
-
-fix from upstream
-
-From 2d792707c7ad60c598616183bd1e7c41382961c3 Mon Sep 17 00:00:00 2001
-From: Michael Cronenworth <mike@cchtml.com>
-Date: Tue, 19 May 2015 16:43:36 -0500
-Subject: [PATCH] Always declare gnu89 inline standard
-
-GCC5 switches the minimum inline standard requirements from gnu89 to gnu11.
----
- xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h | 4 ----
- xbmc/screensavers/rsxs-0.9/lib/argp.h           | 2 +-
- 2 files changed, 1 insertion(+), 5 deletions(-)
-
-diff --git a/xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h b/xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h
-index ff4f575..92eda3b 100644
---- a/xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h
-+++ b/xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h
-@@ -198,11 +198,7 @@ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
- #endif
- 
- #ifndef ARGP_FS_EI
--#ifdef __clang__
- #define ARGP_FS_EI extern inline __attribute__ ((__gnu_inline__))
--#else
--#define ARGP_FS_EI extern inline
--#endif
- #endif
- 
- ARGP_FS_EI size_t
-diff --git a/xbmc/screensavers/rsxs-0.9/lib/argp.h b/xbmc/screensavers/rsxs-0.9/lib/argp.h
-index ae7fa04..c83c75e 100644
---- a/xbmc/screensavers/rsxs-0.9/lib/argp.h
-+++ b/xbmc/screensavers/rsxs-0.9/lib/argp.h
-@@ -559,7 +559,7 @@ extern void *__argp_input (const struct argp *__restrict __argp,
- # endif
- 
- # ifndef ARGP_EI
--#  define ARGP_EI extern __inline__
-+#  define ARGP_EI extern __inline__ __attribute__ ((gnu_inline)) 
- # endif
- 
- ARGP_EI void
--- 
-2.4.4
-

diff --git a/media-tv/kodi/files/kodi-15.1-texturepacker.patch b/media-tv/kodi/files/kodi-15.1-texturepacker.patch
deleted file mode 100644
index 19309c5..00000000
--- a/media-tv/kodi/files/kodi-15.1-texturepacker.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- tools/depends/native/TexturePacker/Makefile
-+++ tools/depends/native/TexturePacker/Makefile
-@@ -9,14 +9,10 @@
- 
- ifeq ($(NATIVEPLATFORM),)
-   PLATFORM = native
--  EXTRA_CONFIGURE = --enable-static
- else
-   PLATFORM = $(NATIVEPLATFORM)
- endif
- 
--ifeq ($(NATIVE_OS), linux)
--  EXTRA_CONFIGURE = --enable-static
--endif
- ifeq ($(NATIVE_OS), android)
-   EXTRA_CONFIGURE = --enable-static
- endif
-@@ -35,7 +35,6 @@ all: .installed-$(PLATFORM)
- $(PLATFORM): ../libsquish-native/.installed-$(PLATFORM)
- 	-rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
- 	cd $(PLATFORM); cp -a $(SOURCE)/* .
--	cd $(PLATFORM); ./autogen.sh
- 	cd $(PLATFORM); ./configure --prefix=$(PREFIX) $(EXTRA_CONFIGURE) EXTRA_DEFINES="$(NATIVE_ARCH_DEFINES)"
- 
- 

diff --git a/media-tv/kodi/files/kodi-16.1-GUIFontTTFGL-loses-precision.patch b/media-tv/kodi/files/kodi-16.1-GUIFontTTFGL-loses-precision.patch
new file mode 100644
index 00000000..30ed1e0
--- /dev/null
+++ b/media-tv/kodi/files/kodi-16.1-GUIFontTTFGL-loses-precision.patch
@@ -0,0 +1,63 @@
+From fa6f5d761b600b0a8b52db18168e540b03f79ceb Mon Sep 17 00:00:00 2001
+From: Memphiz <memphis@machzwo.de>
+Date: Mon, 21 Dec 2015 11:29:23 +0100
+Subject: [PATCH] [GUIFont] - the BufferHandle is a GLUInt for gl and gles and
+ a void * for dx
+
+---
+ xbmc/guilib/GUIFontCache.h   | 10 ++++++++--
+ xbmc/guilib/GUIFontTTFGL.cpp |  4 ++--
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/xbmc/guilib/GUIFontCache.h b/xbmc/guilib/GUIFontCache.h
+index 7cbe91d..ab35919 100644
+--- a/xbmc/guilib/GUIFontCache.h
++++ b/xbmc/guilib/GUIFontCache.h
+@@ -37,6 +37,7 @@
+ #include <cassert>
+ 
+ #include "TransformMatrix.h"
++#include "system.h"
+ 
+ #define FONT_CACHE_TIME_LIMIT (1000)
+ #define FONT_CACHE_DIST_LIMIT (0.01f)
+@@ -231,10 +232,15 @@ struct CGUIFontCacheDynamicPosition
+ 
+ struct CVertexBuffer
+ {
+-  void *bufferHandle;
++#if defined(HAS_GL) || defined(HAS_GLES)
++  typedef unsigned int BufferHandleType;
++#elif defined(HAS_DX)
++  typedef void* BufferHandleType;
++#endif
++  BufferHandleType bufferHandle; // this is really a GLuint
+   size_t size;
+   CVertexBuffer() : bufferHandle(NULL), size(0), m_font(NULL) {}
+-  CVertexBuffer(void *bufferHandle, size_t size, const CGUIFontTTFBase *font) : bufferHandle(bufferHandle), size(size), m_font(font) {}
++  CVertexBuffer(BufferHandleType bufferHandle, size_t size, const CGUIFontTTFBase *font) : bufferHandle(bufferHandle), size(size), m_font(font) {}
+   CVertexBuffer(const CVertexBuffer &other) : bufferHandle(other.bufferHandle), size(other.size), m_font(other.m_font)
+   {
+     /* In practice, the copy constructor is only called before a vertex buffer
+diff --git a/xbmc/guilib/GUIFontTTFGL.cpp b/xbmc/guilib/GUIFontTTFGL.cpp
+index f2f3a41..c4aaa3b 100644
+--- a/xbmc/guilib/GUIFontTTFGL.cpp
++++ b/xbmc/guilib/GUIFontTTFGL.cpp
+@@ -232,7 +232,7 @@ void CGUIFontTTFGL::LastEnd()
+       glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glMatrixModview.Get());
+ 
+       // Bind the buffer to the OpenGL context's GL_ARRAY_BUFFER binding point
+-      glBindBuffer(GL_ARRAY_BUFFER, (GLuint) m_vertexTrans[i].vertexBuffer->bufferHandle);
++      glBindBuffer(GL_ARRAY_BUFFER, m_vertexTrans[i].vertexBuffer->bufferHandle);
+ 
+       // Do the actual drawing operation, split into groups of characters no
+       // larger than the pre-determined size of the element array
+@@ -285,7 +285,7 @@ CVertexBuffer CGUIFontTTFGL::CreateVertexBuffer(const std::vector<SVertex> &vert
+   // Unbind GL_ARRAY_BUFFER
+   glBindBuffer(GL_ARRAY_BUFFER, 0);
+ 
+-  return CVertexBuffer((void *) bufferHandle, vertices.size() / 4, this);
++  return CVertexBuffer(bufferHandle, vertices.size() / 4, this);
+ }
+ 
+ void CGUIFontTTFGL::DestroyVertexBuffer(CVertexBuffer &buffer) const

diff --git a/media-tv/kodi/files/kodi-9999-nomythtv.patch b/media-tv/kodi/files/kodi-9999-nomythtv.patch
deleted file mode 100644
index 40ab23b..00000000
--- a/media-tv/kodi/files/kodi-9999-nomythtv.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-http://trac.xbmc.org/ticket/11775
-
-make mythtv support optional
-
-diff --git a/Makefile.in b/Makefile.in
-index 9ffae7e..17cc525 100755
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -209,7 +209,7 @@ LIB_DIRS=\
- 	lib/cpluff \
- 	lib/xbmc-dll-symbols
- 
--ifeq (@USE_MYSQL@,1)
-+ifeq (@USE_MYTHTV@,1)
- LIB_DIRS += lib/cmyth
- CMYTH=cmyth
- endif
-diff --git a/configure.in b/configure.in
-index d44825f..629d7b4 100755
---- a/configure.in
-+++ b/configure.in
-@@ -479,6 +479,12 @@ AC_ARG_ENABLE([mysql],
-   [AS_HELP_STRING([--disable-mysql],
-   [disable mysql])],
- 
-+AC_ARG_ENABLE([mythtv],
-+  [AS_HELP_STRING([--disable-mythtv],
-+  [disable mythtv])],
-+  [use_mythtv=$enableval],
-+  [use_mythtv=yes])
-+
- AC_ARG_ENABLE([webserver],
-   [AS_HELP_STRING([--disable-webserver],
-   [disable webserver])],
-@@ -1080,6 +1086,9 @@ if test "$use_mysql" = "yes"; then
-   else
-     AC_MSG_ERROR($missing_program)
-   fi
-+  if test "$use_mythtv" = "yes"; then
-+    AC_DEFINE([HAVE_MYTHTV],[1],["Define to 1 if you want mythtv support"])
-+  fi
- fi
- AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
- AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
-@@ -2372,6 +2381,15 @@ else
-   final_message="$final_message\n  MySQL:\tNo"
-   USE_MYSQL=0
- fi
-+
-+if test "$use_mythtv" = "yes"; then
-+  final_message="$final_message\n  MythTV:\tYes"
-+  USE_MYTHTV=1
-+else
-+  final_message="$final_message\n  MythTV:\tNo"
-+  USE_MYTHTV=0
-+fi
-+
- if test "$use_webserver" = "yes"; then
-   final_message="$final_message\n  Webserver:\tYes"
-   USE_WEB_SERVER=1
-@@ -2675,6 +2693,7 @@ AC_SUBST(USE_LIBUDEV)
- AC_SUBST(USE_LIBUSB)
- AC_SUBST(USE_LIBCEC)
- AC_SUBST(USE_MYSQL)
-+AC_SUBST(USE_MYTHTV)
- AC_SUBST(USE_WAYLAND)
-

diff --git a/media-tv/kodi/kodi-14.1.ebuild b/media-tv/kodi/kodi-14.1.ebuild
deleted file mode 100644
index dcbc0a2..00000000
--- a/media-tv/kodi/kodi-14.1.ebuild
+++ /dev/null
@@ -1,283 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-
-# Does not work with py3 here
-# It might work with py:2.5 but I didn't test that
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="sqlite"
-
-inherit eutils python-single-r1 multiprocessing autotools
-
-CODENAME="Helix"
-case ${PV} in
-9999)
-	EGIT_REPO_URI="git://github.com/xbmc/xbmc.git"
-	inherit git-2
-	;;
-*|*_p*)
-	MY_PV=${PV/_p/_r}
-	MY_P="${PN}-${MY_PV}"
-	SRC_URI="http://mirrors.kodi.tv/releases/source/old/${MY_PV}-${CODENAME}.tar.gz -> ${P}.tar.gz
-		https://github.com/candrews/gentoo-kodi/raw/master/${MY_P}-generated-addons.tar.xz"
-	KEYWORDS="amd64 x86"
-
-	S=${WORKDIR}/xbmc-${PV}-${CODENAME}
-	;;
-esac
-
-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"
-IUSE="airplay avahi bluetooth bluray caps cec css debug +fishbmc gles goom java joystick midi mysql nfs +opengl profile +projectm pulseaudio pvr +rsxs rtmp +samba sdl sftp test +texturepacker udisks upnp upower +usb vaapi vdpau webserver +X +xrandr"
-# gles/vaapi: http://trac.kodi.tv/ticket/10552 #464306
-REQUIRED_USE="
-	|| ( gles opengl )
-	gles? ( !vaapi )
-	vaapi? ( !gles )
-	pvr? ( mysql )
-	rsxs? ( X )
-	xrandr? ( X )
-	joystick? ( sdl )
-"
-
-COMMON_DEPEND="${PYTHON_DEPS}
-	app-arch/bzip2
-	app-arch/unzip
-	app-arch/zip
-	app-i18n/enca
-	airplay? ( app-pda/libplist )
-	dev-libs/boost
-	dev-libs/expat
-	dev-libs/fribidi
-	dev-libs/libcdio[-minimal]
-	cec? ( >=dev-libs/libcec-2.2 )
-	dev-libs/libpcre[cxx]
-	dev-libs/libxml2
-	dev-libs/libxslt
-	>=dev-libs/lzo-2.04
-	dev-libs/tinyxml[stl]
-	dev-libs/yajl
-	dev-python/simplejson[${PYTHON_USEDEP}]
-	media-fonts/corefonts
-	media-fonts/roboto
-	media-libs/alsa-lib
-	media-libs/flac
-	media-libs/fontconfig
-	media-libs/freetype
-	>=media-libs/glew-1.5.6:0=
-	media-libs/jasper:=
-	media-libs/jbigkit
-	>=media-libs/libass-0.9.7
-	bluray? ( media-libs/libbluray )
-	css? ( media-libs/libdvdcss )
-	media-libs/libmad
-	media-libs/libmodplug
-	media-libs/libmpeg2
-	media-libs/libogg
-	media-libs/libpng:0=
-	projectm? ( media-libs/libprojectm )
-	media-libs/libsamplerate
-	sdl? ( media-libs/libsdl2 )
-	>=media-libs/taglib-1.8
-	media-libs/libvorbis
-	media-libs/tiff:0
-	pulseaudio? ( media-sound/pulseaudio )
-	media-sound/wavpack
-	>=media-video/ffmpeg-2.4:=[encode]
-	rtmp? ( media-video/rtmpdump )
-	avahi? ( net-dns/avahi )
-	nfs? ( net-fs/libnfs )
-	net-libs/libmicrohttpd[messages]
-	sftp? ( net-libs/libssh[sftp] )
-	net-misc/curl
-	samba? ( >=net-fs/samba-3.4.6[smbclient(+)] )
-	bluetooth? ( net-wireless/bluez )
-	sys-apps/dbus
-	caps? ( sys-libs/libcap )
-	sys-libs/zlib
-	virtual/jpeg:0
-	usb? ( virtual/libusb:1 )
-	mysql? ( virtual/mysql )
-	opengl? (
-		virtual/glu
-		virtual/opengl
-	)
-	gles? (
-		virtual/opengl
-		media-libs/mesa[gles2]
-	)
-	vaapi? ( x11-libs/libva[opengl] )
-	vdpau? (
-		|| ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 )
-		media-video/ffmpeg[vdpau]
-	)
-	X? (
-		x11-apps/xdpyinfo
-		x11-apps/mesa-progs
-		x11-libs/libXinerama
-		xrandr? ( x11-libs/libXrandr )
-		x11-libs/libXrender
-	)"
-RDEPEND="${COMMON_DEPEND}
-	!media-tv/xbmc
-	udisks? ( sys-fs/udisks:0 )
-	upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )"
-DEPEND="${COMMON_DEPEND}
-	app-arch/xz-utils
-	dev-lang/swig
-	dev-util/gperf
-	texturepacker? (
-		media-libs/libsdl
-		media-libs/sdl-image
-	)
-	sdl? ( media-libs/sdl-image )
-	X? ( x11-proto/xineramaproto )
-	dev-util/cmake
-	x86? ( dev-lang/nasm )
-	java? ( virtual/jre )
-	test? ( dev-cpp/gtest )"
-# Force java for latest git version to avoid having to hand maintain the
-# generated addons package.  #488118
-[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre"
-
-pkg_setup() {
-	python-single-r1_pkg_setup
-}
-
-src_unpack() {
-	[[ ${PV} == "9999" ]] && git-2_src_unpack || default
-}
-
-src_prepare() {
-	epatch "${FILESDIR}"/${PN}-9999-nomythtv.patch
-	epatch "${FILESDIR}"/${P}-no-arm-flags.patch #400617
-	epatch "${FILESDIR}"/${PN}-14.0-dvddemux-ffmpeg.patch #526992#36
-	epatch "${FILESDIR}"/${P}-gcc-5.patch #557300
-	epatch_user #293109
-
-	# The mythtv patch touches configure.ac, so force a regen
-	rm -f configure
-
-	# some dirs ship generated autotools, some dont
-	multijob_init
-	local d
-	for d in $(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f) ; do
-		[[ -e ${d} ]] && continue
-		pushd ${d/%configure/.} >/dev/null || die
-		AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \
-		multijob_child_init eautoreconf
-		popd >/dev/null
-	done
-	multijob_finish
-	elibtoolize
-
-	[[ ${PV} == "9999" ]] && emake -f codegenerator.mk
-
-	# Disable internal func checks as our USE/DEPEND
-	# stuff handles this just fine already #408395
-	export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes
-
-	# Fix the final version string showing as "exported"
-	# instead of the SVN revision number.
-	export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported}
-
-	# avoid long delays when powerkit isn't running #348580
-	sed -i \
-		-e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
-		xbmc/linux/*.cpp || die
-
-	# Tweak autotool timestamps to avoid regeneration
-	find . -type f -exec touch -r configure {} +
-}
-
-src_configure() {
-	# Disable documentation generation
-	export ac_cv_path_LATEX=no
-	# Avoid help2man
-	export HELP2MAN=$(type -P help2man || echo true)
-	# No configure flage for this #403561
-	export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth)
-	# Requiring java is asine #434662
-	[[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true))
-
-	econf \
-		--docdir=/usr/share/doc/${PF} \
-		--disable-ccache \
-		--disable-optimizations \
-		--with-ffmpeg=shared \
-		$(use_enable airplay) \
-		$(use_enable avahi) \
-		$(use_enable bluray libbluray) \
-		$(use_enable caps libcap) \
-		$(use_enable cec libcec) \
-		$(use_enable css dvdcss) \
-		$(use_enable debug) \
-		$(use_enable fishbmc) \
-		$(use_enable gles) \
-		$(use_enable goom) \
-		$(use_enable joystick) \
-		$(use_enable midi mid) \
-		$(use_enable mysql) \
-		$(use_enable nfs) \
-		$(use_enable opengl gl) \
-		$(use_enable profile profiling) \
-		$(use_enable projectm) \
-		$(use_enable pulseaudio pulse) \
-		$(use_enable pvr mythtv) \
-		$(use_enable rsxs) \
-		$(use_enable rtmp) \
-		$(use_enable samba) \
-		$(use_enable sdl) \
-		$(use_enable sftp ssh) \
-		$(use_enable usb libusb) \
-		$(use_enable test gtest) \
-		$(use_enable texturepacker) \
-		$(use_enable upnp) \
-		$(use_enable vaapi) \
-		$(use_enable vdpau) \
-		$(use_enable webserver) \
-		$(use_enable X x11) \
-		$(use_enable xrandr)
-}
-
-src_install() {
-	default
-	rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}*
-
-	domenu tools/Linux/kodi.desktop
-	newicon media/icon48x48.png kodi.png
-
-	# Remove optional addons (platform specific and disabled by USE flag).
-	local disabled_addons=(
-		repository.pvr-{android,ios,osx{32,64},win32}.xbmc.org
-		visualization.dxspectrum
-	)
-	use fishbmc  || disabled_addons+=( visualization.fishbmc )
-	use projectm || disabled_addons+=( visualization.{milkdrop,projectm} )
-	use rsxs     || disabled_addons+=( screensaver.rsxs.{euphoria,plasma,solarwinds} )
-	rm -rf "${disabled_addons[@]/#/${ED}/usr/share/kodi/addons/}"
-
-	# Remove fonconfig settings that are used only on MacOSX.
-	# Can't be patched upstream because they just find all files and install
-	# them into same structure like they have in git.
-	rm -rf "${ED}"/usr/share/kodi/system/players/dvdplayer/etc
-
-	# Replace bundled fonts with system ones
-	# teletext.ttf: unknown
-	# bold-caps.ttf: unknown
-	# roboto: roboto-bold, roboto-regular
-	# arial.ttf: font mashed from droid/roboto, not removed wrt bug#460514
-	rm -rf "${ED}"/usr/share/kodi/addons/skin.confluence/fonts/Roboto-*
-	dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \
-		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Regular.ttf
-	dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \
-		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Bold.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-15.2.ebuild b/media-tv/kodi/kodi-15.2.ebuild
deleted file mode 100644
index b91644f..00000000
--- a/media-tv/kodi/kodi-15.2.ebuild
+++ /dev/null
@@ -1,288 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-
-# Does not work with py3 here
-# It might work with py:2.5 but I didn't test that
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="sqlite"
-
-inherit eutils linux-info python-single-r1 multiprocessing autotools toolchain-funcs
-
-CODENAME="Isengard"
-case ${PV} in
-9999)
-	EGIT_REPO_URI="git://github.com/xbmc/xbmc.git"
-	inherit git-r3
-	;;
-*|*_p*)
-	MY_PV=${PV/_p/_r}
-	MY_P="${PN}-${MY_PV}"
-	SRC_URI="http://mirrors.kodi.tv/releases/source/old/${MY_PV}-${CODENAME}.tar.gz -> ${P}.tar.gz
-		https://github.com/xbmc/xbmc/archive/${PV}-${CODENAME}.tar.gz -> ${P}.tar.gz
-		!java? ( https://github.com/candrews/gentoo-kodi/raw/master/${MY_P}-generated-addons.tar.xz )"
-	KEYWORDS="~amd64 ~x86"
-
-	S=${WORKDIR}/xbmc-${PV}-${CODENAME}
-	;;
-esac
-
-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"
-IUSE="airplay alsa avahi bluetooth bluray caps cec css dbus debug +fishbmc gles goom java joystick midi mysql nfs +opengl profile +projectm pulseaudio +rsxs rtmp +samba sftp +spectrum test +texturepacker udisks upnp upower +usb vaapi vdpau +waveform webserver +X"
-# gles/vaapi: http://trac.kodi.tv/ticket/10552 #464306
-REQUIRED_USE="
-	|| ( gles opengl )
-	gles? ( !vaapi )
-	vaapi? ( !gles )
-	rsxs? ( X )
-	udisks? ( dbus )
-	upower? ( dbus )
-"
-
-COMMON_DEPEND="${PYTHON_DEPS}
-	app-arch/bzip2
-	app-arch/unzip
-	app-arch/zip
-	app-i18n/enca
-	airplay? ( app-pda/libplist )
-	dev-libs/boost
-	dev-libs/expat
-	dev-libs/fribidi
-	dev-libs/libcdio[-minimal]
-	cec? ( >=dev-libs/libcec-3.0 )
-	dev-libs/libpcre[cxx]
-	dev-libs/libxml2
-	dev-libs/libxslt
-	>=dev-libs/lzo-2.04
-	dev-libs/tinyxml[stl]
-	>=dev-libs/yajl-2
-	dev-python/simplejson[${PYTHON_USEDEP}]
-	media-fonts/corefonts
-	media-fonts/roboto
-	alsa? ( media-libs/alsa-lib )
-	media-libs/flac
-	media-libs/fontconfig
-	media-libs/freetype
-	media-libs/jasper:=
-	media-libs/jbigkit
-	>=media-libs/libass-0.9.7
-	bluray? ( media-libs/libbluray )
-	css? ( media-libs/libdvdcss )
-	media-libs/libmad
-	media-libs/libmodplug
-	media-libs/libmpeg2
-	media-libs/libogg
-	media-libs/libpng:0=
-	projectm? ( media-libs/libprojectm )
-	media-libs/libsamplerate
-	joystick? ( media-libs/libsdl2 )
-	>=media-libs/taglib-1.8
-	media-libs/libvorbis
-	media-libs/tiff:0=
-	pulseaudio? ( media-sound/pulseaudio )
-	media-sound/wavpack
-	>=media-video/ffmpeg-2.6:=[encode]
-	rtmp? ( media-video/rtmpdump )
-	avahi? ( net-dns/avahi )
-	nfs? ( net-fs/libnfs:= )
-	webserver? ( net-libs/libmicrohttpd[messages] )
-	sftp? ( net-libs/libssh[sftp] )
-	net-misc/curl
-	samba? ( >=net-fs/samba-3.4.6[smbclient(+)] )
-	bluetooth? ( net-wireless/bluez )
-	dbus? ( sys-apps/dbus )
-	caps? ( sys-libs/libcap )
-	sys-libs/zlib
-	virtual/jpeg:0=
-	usb? ( virtual/libusb:1 )
-	mysql? ( virtual/mysql )
-	opengl? (
-		virtual/glu
-		virtual/opengl
-		>=media-libs/glew-1.5.6:0=
-	)
-	gles? (
-		media-libs/mesa[gles2]
-	)
-	vaapi? ( x11-libs/libva[opengl] )
-	vdpau? (
-		|| ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 )
-		media-video/ffmpeg[vdpau]
-	)
-	X? (
-		x11-apps/xdpyinfo
-		x11-apps/mesa-progs
-		x11-libs/libXinerama
-		x11-libs/libXrandr
-		x11-libs/libXrender
-	)"
-RDEPEND="${COMMON_DEPEND}
-	!media-tv/xbmc
-	udisks? ( sys-fs/udisks:0 )
-	upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )"
-DEPEND="${COMMON_DEPEND}
-	app-arch/xz-utils
-	dev-lang/swig
-	dev-util/gperf
-	texturepacker? ( media-libs/giflib )
-	X? ( x11-proto/xineramaproto )
-	dev-util/cmake
-	x86? ( dev-lang/nasm )
-	java? ( virtual/jre )
-	test? ( dev-cpp/gtest )"
-# Force java for latest git version to avoid having to hand maintain the
-# generated addons package.  #488118
-[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre"
-
-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() {
-	[[ ${PV} == "9999" ]] && git-r3_src_unpack || default
-}
-
-src_prepare() {
-	epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617
-	epatch "${FILESDIR}"/${PN}-15.1-texturepacker.patch
-	epatch_user #293109
-
-	# some dirs ship generated autotools, some dont
-	multijob_init
-	local d dirs=(
-		tools/depends/native/TexturePacker/src/configure
-		$(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f)
-	)
-	for d in "${dirs[@]}" ; do
-		[[ -e ${d} ]] && continue
-		pushd ${d/%configure/.} >/dev/null || die
-		AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \
-		multijob_child_init eautoreconf
-		popd >/dev/null
-	done
-	multijob_finish
-	elibtoolize
-
-	if [[ ${PV} == "9999" ]] || use java ; then #558798
-		tc-env_build emake -f codegenerator.mk
-	fi
-
-	# Disable internal func checks as our USE/DEPEND
-	# stuff handles this just fine already #408395
-	export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes
-
-	# Fix the final version string showing as "exported"
-	# instead of the SVN revision number.
-	export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported}
-
-	# avoid long delays when powerkit isn't running #348580
-	sed -i \
-		-e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
-		xbmc/linux/*.cpp || die
-
-	# Tweak autotool timestamps to avoid regeneration
-	find . -type f -exec touch -r configure {} +
-}
-
-src_configure() {
-	# Disable documentation generation
-	export ac_cv_path_LATEX=no
-	# Avoid help2man
-	export HELP2MAN=$(type -P help2man || echo true)
-	# No configure flage for this #403561
-	export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth)
-	# Requiring java is asine #434662
-	[[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true))
-
-	econf \
-		--docdir=/usr/share/doc/${PF} \
-		--disable-ccache \
-		--disable-optimizations \
-		--with-ffmpeg=shared \
-		$(use_enable alsa) \
-		$(use_enable airplay) \
-		$(use_enable avahi) \
-		$(use_enable bluray libbluray) \
-		$(use_enable caps libcap) \
-		$(use_enable cec libcec) \
-		$(use_enable css dvdcss) \
-		$(use_enable dbus) \
-		$(use_enable debug) \
-		$(use_enable fishbmc) \
-		$(use_enable gles) \
-		$(use_enable goom) \
-		$(use_enable joystick) \
-		$(use_enable midi mid) \
-		$(use_enable mysql) \
-		$(use_enable nfs) \
-		$(use_enable opengl gl) \
-		$(use_enable profile profiling) \
-		$(use_enable projectm) \
-		$(use_enable pulseaudio pulse) \
-		$(use_enable rsxs) \
-		$(use_enable rtmp) \
-		$(use_enable samba) \
-		$(use_enable sftp ssh) \
-		$(use_enable spectrum) \
-		$(use_enable usb libusb) \
-		$(use_enable test gtest) \
-		$(use_enable texturepacker) \
-		$(use_enable upnp) \
-		$(use_enable vaapi) \
-		$(use_enable vdpau) \
-		$(use_enable waveform) \
-		$(use_enable webserver) \
-		$(use_enable X x11)
-}
-
-src_compile() {
-	emake V=1
-}
-
-src_install() {
-	default
-	rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}*
-
-	domenu tools/Linux/kodi.desktop
-	newicon media/icon48x48.png kodi.png
-
-	# Remove optional addons (platform specific).
-	local disabled_addons=(
-		repository.pvr-{android,ios,osx{32,64},win32}.xbmc.org
-		visualization.dxspectrum
-		visualization.vortex
-	)
-	rm -rf "${disabled_addons[@]/#/${ED}/usr/share/kodi/addons/}"
-
-	# Remove fonconfig settings that are used only on MacOSX.
-	# Can't be patched upstream because they just find all files and install
-	# them into same structure like they have in git.
-	rm -rf "${ED}"/usr/share/kodi/system/players/dvdplayer/etc
-
-	# Replace bundled fonts with system ones
-	# teletext.ttf: unknown
-	# bold-caps.ttf: unknown
-	# roboto: roboto-bold, roboto-regular
-	# arial.ttf: font mashed from droid/roboto, not removed wrt bug#460514
-	rm -rf "${ED}"/usr/share/kodi/addons/skin.confluence/fonts/Roboto-*
-	dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \
-		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Regular.ttf
-	dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \
-		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Bold.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-16.0.ebuild b/media-tv/kodi/kodi-16.0.ebuild
deleted file mode 100644
index faa7ec2..00000000
--- a/media-tv/kodi/kodi-16.0.ebuild
+++ /dev/null
@@ -1,294 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-
-# Does not work with py3 here
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="sqlite"
-
-inherit eutils linux-info python-single-r1 multiprocessing autotools toolchain-funcs
-
-CODENAME="Jarvis"
-case ${PV} in
-9999)
-	EGIT_REPO_URI="git://github.com/xbmc/xbmc.git"
-	inherit git-r3
-	;;
-*|*_p*)
-	MY_PV=${PV/_p/_r}
-	MY_P="${PN}-${MY_PV}"
-	SRC_URI="http://mirrors.kodi.tv/releases/source/${MY_PV}-${CODENAME}.tar.gz -> ${P}.tar.gz
-		https://github.com/xbmc/xbmc/archive/${PV}-${CODENAME}.tar.gz -> ${P}.tar.gz
-		!java? ( http://mirrors.kodi.tv/releases/source/${MY_P}-generated-addons.tar.xz )"
-	KEYWORDS="~amd64 ~x86"
-
-	S=${WORKDIR}/xbmc-${PV}-${CODENAME}
-	;;
-esac
-
-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"
-IUSE="airplay alsa bluetooth bluray caps cec css dbus debug gles java joystick midi mysql nfs +opengl profile pulseaudio rtmp +samba sftp test +texturepacker udisks upnp upower +usb vaapi vdpau webserver +X zeroconf"
-# gles/vaapi: http://trac.kodi.tv/ticket/10552 #464306
-REQUIRED_USE="
-	|| ( gles opengl )
-	gles? ( !vaapi )
-	vaapi? ( !gles )
-	udisks? ( dbus )
-	upower? ( dbus )
-"
-
-COMMON_DEPEND="${PYTHON_DEPS}
-	app-arch/bzip2
-	app-arch/unzip
-	app-arch/zip
-	app-i18n/enca
-	airplay? ( app-pda/libplist )
-	dev-libs/boost
-	dev-libs/expat
-	dev-libs/fribidi
-	dev-libs/libcdio[-minimal]
-	cec? ( >=dev-libs/libcec-3.0 )
-	dev-libs/libpcre[cxx]
-	dev-libs/libxml2
-	dev-libs/libxslt
-	>=dev-libs/lzo-2.04
-	dev-libs/tinyxml[stl]
-	>=dev-libs/yajl-2
-	dev-python/simplejson[${PYTHON_USEDEP}]
-	media-fonts/corefonts
-	media-fonts/roboto
-	alsa? ( media-libs/alsa-lib )
-	media-libs/flac
-	media-libs/fontconfig
-	media-libs/freetype
-	media-libs/jasper:=
-	media-libs/jbigkit
-	>=media-libs/libass-0.9.7
-	bluray? ( >=media-libs/libbluray-0.7.0 )
-	css? ( media-libs/libdvdcss )
-	media-libs/libmad
-	media-libs/libmodplug
-	media-libs/libmpeg2
-	media-libs/libogg
-	media-libs/libpng:0=
-	media-libs/libsamplerate
-	joystick? ( media-libs/libsdl2 )
-	>=media-libs/taglib-1.8
-	media-libs/libvorbis
-	media-libs/tiff:0=
-	media-sound/dcadec
-	pulseaudio? ( media-sound/pulseaudio )
-	media-sound/wavpack
-	>=media-video/ffmpeg-2.6:=[encode]
-	rtmp? ( media-video/rtmpdump )
-	nfs? ( net-fs/libnfs:= )
-	webserver? ( net-libs/libmicrohttpd[messages] )
-	sftp? ( net-libs/libssh[sftp] )
-	net-misc/curl
-	samba? ( >=net-fs/samba-3.4.6[smbclient(+)] )
-	bluetooth? ( net-wireless/bluez )
-	dbus? ( sys-apps/dbus )
-	caps? ( sys-libs/libcap )
-	sys-libs/zlib
-	virtual/jpeg:0=
-	usb? ( virtual/libusb:1 )
-	mysql? ( virtual/mysql )
-	opengl? (
-		virtual/glu
-		virtual/opengl
-		>=media-libs/glew-1.5.6:0=
-	)
-	gles? (
-		media-libs/mesa[gles2]
-	)
-	vaapi? ( x11-libs/libva[opengl] )
-	vdpau? (
-		|| ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 )
-		media-video/ffmpeg[vdpau]
-	)
-	X? (
-		x11-apps/xdpyinfo
-		x11-apps/mesa-progs
-		x11-libs/libXinerama
-		x11-libs/libXrandr
-		x11-libs/libXrender
-	)
-	zeroconf? ( net-dns/avahi )
-"
-RDEPEND="${COMMON_DEPEND}
-	!media-tv/xbmc
-	udisks? ( sys-fs/udisks:0 )
-	upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )"
-DEPEND="${COMMON_DEPEND}
-	app-arch/xz-utils
-	dev-lang/swig
-	dev-libs/crossguid
-	dev-util/gperf
-	texturepacker? ( media-libs/giflib )
-	X? ( x11-proto/xineramaproto )
-	dev-util/cmake
-	x86? ( dev-lang/nasm )
-	java? ( virtual/jre )
-	test? ( dev-cpp/gtest )
-	virtual/pkgconfig"
-# Force java for latest git version to avoid having to hand maintain the
-# generated addons package.  #488118
-[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre"
-
-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() {
-	[[ ${PV} == "9999" ]] && git-r3_src_unpack || default
-}
-
-src_prepare() {
-	epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617
-	epatch "${FILESDIR}"/${PN}-9999-texturepacker.patch
-	epatch "${FILESDIR}"/${PN}-16-ffmpeg3.patch
-	epatch_user #293109
-
-	# some dirs ship generated autotools, some dont
-	multijob_init
-	local d dirs=(
-		tools/depends/native/TexturePacker/src/configure
-		$(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f)
-	)
-	for d in "${dirs[@]}" ; do
-		[[ -e ${d} ]] && continue
-		pushd ${d/%configure/.} >/dev/null || die
-		AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \
-		multijob_child_init eautoreconf
-		popd >/dev/null
-	done
-	multijob_finish
-	elibtoolize
-
-	# Cross-compiler support
-	# We need JsonSchemaBuilder and TexturePacker binaries for the host system
-	# Later we need libsquish for the target system
-	if tc-is-cross-compiler ; then
-		mkdir "${WORKDIR}"/${CBUILD} || die
-		pushd "${WORKDIR}"/${CBUILD} >/dev/null || die
-		einfo "Building host tools"
-		cp -a "$S"/{tools,xbmc} ./ || die
-		local tools=( JsonSchemaBuilder )
-		use texturepacker && tools+=( TexturePacker )
-		for tool in "${tools[@]}" ; do
-			tc-env_build emake -C tools/depends/native/$tool
-			mkdir "$S"/tools/depends/native/$tool/bin || die
-			ln -s "${WORKDIR}"/${CBUILD}/tools/depends/native/$tool/bin/$tool "$S"/tools/depends/native/$tool/bin/$tool || die
-		done
-		popd >/dev/null || die
-
-		emake -f codegenerator.mk
-
-		# Binary kodi.bin links against libsquish,
-		# so we need libsquish compiled for the target system
-		emake -C tools/depends/native/libsquish-native/ CXX=$(tc-getCXX)
-	elif [[ ${PV} == "9999" ]] || use java ; then #558798
-		tc-env_build emake -f codegenerator.mk
-	fi
-
-	# Disable internal func checks as our USE/DEPEND
-	# stuff handles this just fine already #408395
-	export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes
-
-	# Fix the final version string showing as "exported"
-	# instead of the SVN revision number.
-	export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported}
-
-	# avoid long delays when powerkit isn't running #348580
-	sed -i \
-		-e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
-		xbmc/linux/*.cpp || die
-
-	# Tweak autotool timestamps to avoid regeneration
-	find . -type f -exec touch -r configure {} +
-}
-
-src_configure() {
-	# Disable documentation generation
-	export ac_cv_path_LATEX=no
-	# Avoid help2man
-	export HELP2MAN=$(type -P help2man || echo true)
-	# No configure flage for this #403561
-	export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth)
-	# Requiring java is asine #434662
-	[[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true))
-
-	econf \
-		--docdir=/usr/share/doc/${PF} \
-		--disable-ccache \
-		--disable-optimizations \
-		--with-ffmpeg=shared \
-		$(use_enable alsa) \
-		$(use_enable airplay) \
-		$(use_enable bluray libbluray) \
-		$(use_enable caps libcap) \
-		$(use_enable cec libcec) \
-		$(use_enable css dvdcss) \
-		$(use_enable dbus) \
-		$(use_enable debug) \
-		$(use_enable gles) \
-		$(use_enable joystick) \
-		$(use_enable midi mid) \
-		$(use_enable mysql) \
-		$(use_enable nfs) \
-		$(use_enable opengl gl) \
-		$(use_enable profile profiling) \
-		$(use_enable pulseaudio pulse) \
-		$(use_enable rtmp) \
-		$(use_enable samba) \
-		$(use_enable sftp ssh) \
-		$(use_enable usb libusb) \
-		$(use_enable test gtest) \
-		$(use_enable texturepacker) \
-		$(use_enable upnp) \
-		$(use_enable vaapi) \
-		$(use_enable vdpau) \
-		$(use_enable webserver) \
-		$(use_enable X x11) \
-		$(use_enable zeroconf avahi)
-}
-
-src_compile() {
-	emake V=1
-}
-
-src_install() {
-	default
-	rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die
-
-	domenu tools/Linux/kodi.desktop
-	newicon media/icon48x48.png kodi.png
-
-	# Remove fonconfig settings that are used only on MacOSX.
-	# Can't be patched upstream because they just find all files and install
-	# them into same structure like they have in git.
-	rm -rf "${ED}"/usr/share/kodi/system/players/dvdplayer/etc
-
-	# Replace bundled fonts with system ones.
-	rm "${ED}"/usr/share/kodi/addons/skin.confluence/fonts/Roboto-* || die
-	dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \
-		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Regular.ttf
-	dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \
-		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Bold.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-16.1-r1.ebuild b/media-tv/kodi/kodi-16.1-r1.ebuild
deleted file mode 100644
index cd4c0e7..00000000
--- a/media-tv/kodi/kodi-16.1-r1.ebuild
+++ /dev/null
@@ -1,302 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-# Does not work with py3 here
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="sqlite"
-
-inherit eutils linux-info python-single-r1 multiprocessing autotools toolchain-funcs
-
-CODENAME="Jarvis"
-case ${PV} in
-9999)
-	EGIT_REPO_URI="git://github.com/xbmc/xbmc.git"
-	inherit git-r3
-	;;
-*)
-	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
-		https://dev.gentoo.org/~soap/distfiles/${PN}-${PV}-gcc-6.patch
-		!java? ( https://github.com/candrews/gentoo-kodi/raw/master/${MY_P}-generated-addons-r1.tar.xz )"
-	KEYWORDS="~amd64 ~x86"
-
-	S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME}
-	;;
-esac
-
-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"
-IUSE="airplay alsa bluetooth bluray caps cec css dbus debug gles java joystick midi mysql nfs +opengl profile pulseaudio rtmp +samba sftp systemd test +texturepacker udisks upnp upower +usb vaapi vdpau webserver +X zeroconf"
-# gles/vaapi: http://trac.kodi.tv/ticket/10552 #464306
-REQUIRED_USE="
-	|| ( gles opengl )
-	?? ( gles vaapi )
-	udisks? ( dbus )
-	upower? ( dbus )
-"
-
-COMMON_DEPEND="${PYTHON_DEPS}
-	app-arch/bzip2
-	app-arch/unzip
-	app-arch/zip
-	app-i18n/enca
-	airplay? ( app-pda/libplist )
-	dev-libs/boost:=
-	dev-libs/expat
-	dev-libs/fribidi
-	dev-libs/libcdio[-minimal]
-	cec? ( >=dev-libs/libcec-3.0 )
-	dev-libs/libpcre[cxx]
-	dev-libs/libxml2
-	dev-libs/libxslt
-	>=dev-libs/lzo-2.04
-	dev-libs/tinyxml[stl]
-	>=dev-libs/yajl-2
-	dev-python/simplejson[${PYTHON_USEDEP}]
-	media-fonts/corefonts
-	media-fonts/roboto
-	alsa? ( media-libs/alsa-lib )
-	media-libs/flac
-	media-libs/fontconfig
-	media-libs/freetype
-	media-libs/jasper:=
-	media-libs/jbigkit
-	>=media-libs/libass-0.9.7
-	bluray? ( >=media-libs/libbluray-0.7.0 )
-	css? ( media-libs/libdvdcss )
-	media-libs/libmad
-	media-libs/libmodplug
-	media-libs/libmpeg2
-	media-libs/libogg
-	media-libs/libpng:0=
-	media-libs/libsamplerate
-	joystick? ( media-libs/libsdl2 )
-	>=media-libs/taglib-1.8
-	media-libs/libvorbis
-	media-libs/tiff:0=
-	media-sound/dcadec
-	pulseaudio? ( media-sound/pulseaudio )
-	media-sound/wavpack
-	>=media-video/ffmpeg-2.6:=[encode]
-	rtmp? ( media-video/rtmpdump )
-	nfs? ( net-fs/libnfs:= )
-	webserver? ( net-libs/libmicrohttpd[messages] )
-	sftp? ( net-libs/libssh[sftp] )
-	net-misc/curl
-	samba? ( >=net-fs/samba-3.4.6[smbclient(+)] )
-	bluetooth? ( net-wireless/bluez )
-	dbus? ( sys-apps/dbus )
-	caps? ( sys-libs/libcap )
-	sys-libs/zlib
-	virtual/jpeg:0=
-	usb? ( virtual/libusb:1 )
-	mysql? ( virtual/mysql )
-	opengl? (
-		virtual/glu
-		virtual/opengl
-		>=media-libs/glew-1.5.6:=
-	)
-	gles? (
-		media-libs/mesa[gles2]
-	)
-	vaapi? ( x11-libs/libva[opengl] )
-	vdpau? (
-		|| ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 )
-		media-video/ffmpeg[vdpau]
-	)
-	X? (
-		x11-apps/xdpyinfo
-		x11-apps/mesa-progs
-		x11-libs/libXinerama
-		x11-libs/libXrandr
-		x11-libs/libXrender
-	)
-	zeroconf? ( net-dns/avahi[dbus] )
-"
-RDEPEND="${COMMON_DEPEND}
-	!media-tv/xbmc
-	udisks? ( sys-fs/udisks:0 )
-	upower? (
-		systemd? ( sys-power/upower )
-		!systemd? ( sys-power/upower-pm-utils )
-	)"
-DEPEND="${COMMON_DEPEND}
-	app-arch/xz-utils
-	dev-lang/swig
-	dev-libs/crossguid
-	dev-util/gperf
-	texturepacker? ( media-libs/giflib )
-	X? ( x11-proto/xineramaproto )
-	dev-util/cmake
-	x86? ( dev-lang/nasm )
-	java? ( virtual/jre )
-	test? ( dev-cpp/gtest )
-	virtual/pkgconfig"
-# Force java for latest git version to avoid having to hand maintain the
-# generated addons package.  #488118
-[[ ${PV} == "9999" ]] && DEPEND+=" virtual/jre"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400618887
-	"${FILESDIR}"/${PN}-9999-texturepacker.patch
-	"${FILESDIR}"/${PN}-16-ffmpeg3.patch
-	"${DISTDIR}"/${PN}-${PV}-gcc-6.patch #592446
-)
-
-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() {
-	[[ ${PV} == "9999" ]] && git-r3_src_unpack || default
-}
-
-src_prepare() {
-	default
-
-	# some dirs ship generated autotools, some dont
-	multijob_init
-	local d dirs=(
-		tools/depends/native/TexturePacker/src/configure
-		$(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f)
-	)
-	for d in "${dirs[@]}" ; do
-		[[ -e ${d} ]] && continue
-		pushd ${d/%configure/.} >/dev/null || die
-		AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \
-		multijob_child_init eautoreconf
-		popd >/dev/null || die
-	done
-	multijob_finish
-	elibtoolize
-
-	# Cross-compiler support
-	# We need JsonSchemaBuilder and TexturePacker binaries for the host system
-	# Later we need libsquish for the target system
-	if tc-is-cross-compiler ; then
-		mkdir "${WORKDIR}"/${CBUILD} || die
-		pushd "${WORKDIR}"/${CBUILD} >/dev/null || die
-		einfo "Building host tools"
-		cp -a "$S"/{tools,xbmc} ./ || die
-		local tools=( JsonSchemaBuilder )
-		use texturepacker && tools+=( TexturePacker )
-		for tool in "${tools[@]}" ; do
-			tc-env_build emake -C tools/depends/native/$tool
-			mkdir "$S"/tools/depends/native/$tool/bin || die
-			ln -s "${WORKDIR}"/${CBUILD}/tools/depends/native/$tool/bin/$tool "$S"/tools/depends/native/$tool/bin/$tool || die
-		done
-		popd >/dev/null || die
-
-		emake -f codegenerator.mk
-
-		# Binary kodi.bin links against libsquish,
-		# so we need libsquish compiled for the target system
-		emake -C tools/depends/native/libsquish-native/ CXX=$(tc-getCXX)
-	elif [[ ${PV} == "9999" ]] || use java ; then #558798
-		tc-env_build emake -f codegenerator.mk
-	fi
-
-	# Disable internal func checks as our USE/DEPEND
-	# stuff handles this just fine already #408395
-	export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes
-
-	# Fix the final version string showing as "exported"
-	# instead of the SVN revision number.
-	export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported}
-
-	# avoid long delays when powerkit isn't running #348580
-	sed -i \
-		-e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
-		xbmc/linux/*.cpp || die
-
-	# Tweak autotool timestamps to avoid regeneration
-	find . -type f -exec touch -r configure {} + || die
-}
-
-src_configure() {
-	# Disable documentation generation
-	export ac_cv_path_LATEX=no
-	# Avoid help2man
-	export HELP2MAN=$(type -P help2man || echo true)
-	# No configure flage for this #403561
-	export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth)
-	# Requiring java is asine #434662
-	[[ ${PV} != "9999" ]] && export ac_cv_path_JAVA_EXE=$(which $(usex java java true))
-
-	econf \
-		--disable-ccache \
-		--disable-optimizations \
-		--with-ffmpeg=shared \
-		$(use_enable alsa) \
-		$(use_enable airplay) \
-		$(use_enable bluray libbluray) \
-		$(use_enable caps libcap) \
-		$(use_enable cec libcec) \
-		$(use_enable css dvdcss) \
-		$(use_enable dbus) \
-		$(use_enable debug) \
-		$(use_enable gles) \
-		$(use_enable joystick) \
-		$(use_enable midi mid) \
-		$(use_enable mysql) \
-		$(use_enable nfs) \
-		$(use_enable opengl gl) \
-		$(use_enable profile profiling) \
-		$(use_enable pulseaudio pulse) \
-		$(use_enable rtmp) \
-		$(use_enable samba) \
-		$(use_enable sftp ssh) \
-		$(use_enable usb libusb) \
-		$(use_enable test gtest) \
-		$(use_enable texturepacker) \
-		$(use_enable upnp) \
-		$(use_enable vaapi) \
-		$(use_enable vdpau) \
-		$(use_enable webserver) \
-		$(use_enable X x11) \
-		$(use_enable zeroconf avahi)
-}
-
-src_compile() {
-	emake V=1
-}
-
-src_install() {
-	default
-	rm "${ED%/}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die
-
-	domenu tools/Linux/kodi.desktop
-	newicon media/icon48x48.png kodi.png
-
-	# Remove fontconfig settings that are used only on MacOSX.
-	# Can't be patched upstream because they just find all files and install
-	# them into same structure like they have in git.
-	rm -rf "${ED%/}"/usr/share/kodi/system/players/dvdplayer/etc || die
-
-	# Replace bundled fonts with system ones.
-	rm "${ED%/}"/usr/share/kodi/addons/skin.confluence/fonts/Roboto-* || die
-	dosym /usr/share/fonts/roboto/Roboto-Regular.ttf \
-		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Regular.ttf
-	dosym /usr/share/fonts/roboto/Roboto-Bold.ttf \
-		/usr/share/kodi/addons/skin.confluence/fonts/Roboto-Bold.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-16.1-r2.ebuild b/media-tv/kodi/kodi-16.1-r2.ebuild
index e95080f..890e388 100644
--- a/media-tv/kodi/kodi-16.1-r2.ebuild
+++ b/media-tv/kodi/kodi-16.1-r2.ebuild
@@ -153,6 +153,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-9999-texturepacker.patch
 	"${FILESDIR}"/${PN}-16-ffmpeg3.patch
 	"${DISTDIR}"/${PN}-${PV}-gcc-6.patch #592446
+	"${FILESDIR}"/${PN}-${PV}-GUIFontTTFGL-loses-precision.patch
 )
 
 CONFIG_CHECK="~IP_MULTICAST"

diff --git a/media-tv/kodi/kodi-17.0_rc3-r1.ebuild b/media-tv/kodi/kodi-17.0_rc3-r1.ebuild
deleted file mode 100644
index 4fa9342..00000000
--- a/media-tv/kodi/kodi-17.0_rc3-r1.ebuild
+++ /dev/null
@@ -1,277 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-# Does not work with py3 here
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="sqlite"
-
-inherit eutils linux-info python-single-r1 cmake-utils autotools
-
-LIBDVDCSS_COMMIT="2f12236bc1c92f73c21e973363f79eb300de603f"
-LIBDVDREAD_COMMIT="17d99db97e7b8f23077b342369d3c22a6250affd"
-LIBDVDNAV_COMMIT="43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac"
-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"
-
-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 +ssl pulseaudio samba sftp systemd test +udev udisks upnp upower vaapi vdpau webserver +X +xslt zeroconf"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	|| ( gles opengl )
-	udev? ( !libusb )
-	udisks? ( dbus )
-	upower? ( dbus )
-"
-
-COMMON_DEPEND="${PYTHON_DEPS}
-	airplay? ( app-pda/libplist )
-	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
-	dvd? ( dev-libs/libcdio[-minimal] )
-	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
-	>=media-video/ffmpeg-3.1.6:=[encode]
-	mysql? ( virtual/mysql )
-	>=net-misc/curl-7.51.0
-	nfs? ( net-fs/libnfs:= )
-	opengl? ( media-libs/glu )
-	ssl? (
-		!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 )
-		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 )
-	)
-"
-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="git://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
-}
-
-src_configure() {
-	local CMAKE_BUILD_TYPE=$(usex debug Debug RelWithDebInfo)
-
-	local mycmakeargs=(
-		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
-		-DENABLE_ALSA=$(usex alsa)
-		-DENABLE_AIRTUNES=OFF
-		-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=OFF
-		-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=$(usex ssl)
-		-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) )
-
-	cmake-utils_src_configure
-}
-
-src_compile() {
-	cmake-utils_src_compile all $(usev test)
-}
-
-src_install() {
-	cmake-utils_src_install
-	rm "${ED%/}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die
-
-	newicon media/icon48x48.png kodi.png
-
-	# Remove fontconfig settings that are used only on MacOSX.
-	# Can't be patched upstream because they just find all files and install
-	# them into same structure like they have in git.
-	# Will be fixed upstream so this deletion will be unnecesssary, see https://github.com/xbmc/xbmc/pull/11451
-	rm -rf "${ED%/}"/usr/share/kodi/system/players/VideoPlayer/etc || die
-
-	# Replace bundled fonts with system ones.
-	rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die
-	dosym /usr/share/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 /usr/share/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 /usr/share/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.0_rc3-r2.ebuild b/media-tv/kodi/kodi-17.0_rc3-r2.ebuild
index de9404c..6eb7278 100644
--- a/media-tv/kodi/kodi-17.0_rc3-r2.ebuild
+++ b/media-tv/kodi/kodi-17.0_rc3-r2.ebuild
@@ -201,7 +201,7 @@ src_configure() {
 
 	local mycmakeargs=(
 		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
-		-DNABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124
+		-DENABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124
 		-DENABLE_ALSA=$(usex alsa)
 		-DENABLE_AIRTUNES=OFF
 		-DENABLE_AVAHI=$(usex zeroconf)

diff --git a/media-tv/kodi/kodi-17.0_rc3.ebuild b/media-tv/kodi/kodi-17.0_rc3.ebuild
deleted file mode 100644
index cf1ad1b..00000000
--- a/media-tv/kodi/kodi-17.0_rc3.ebuild
+++ /dev/null
@@ -1,251 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-# Does not work with py3 here
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="sqlite"
-
-inherit eutils linux-info python-single-r1 cmake-utils
-
-LIBDVDCSS_COMMIT="2f12236bc1c92f73c21e973363f79eb300de603f"
-LIBDVDREAD_COMMIT="17d99db97e7b8f23077b342369d3c22a6250affd"
-LIBDVDNAV_COMMIT="43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac"
-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"
-
-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 +ssl pulseaudio samba sftp test +udev udisks upnp upower vaapi vdpau webserver +X +xslt zeroconf"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	|| ( gles opengl )
-	udev? ( !libusb )
-	udisks? ( dbus )
-	upower? ( dbus )
-"
-
-COMMON_DEPEND="${PYTHON_DEPS}
-	airplay? ( app-pda/libplist )
-	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}]
-	dvd? ( dev-libs/libcdio[-minimal] )
-	gles? ( media-libs/mesa[gles2] )
-	libusb? ( virtual/libusb:1 )
-	media-fonts/corefonts
-	media-fonts/noto
-	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
-	>=media-video/ffmpeg-3.1.6:=[encode]
-	mysql? ( virtual/mysql )
-	>=net-misc/curl-7.51.0
-	nfs? ( net-fs/libnfs:= )
-	opengl? ( media-libs/glu )
-	ssl? (
-		!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 )
-		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 )
-"
-RDEPEND="${COMMON_DEPEND}
-	lirc? (
-		|| ( app-misc/lirc app-misc/inputlircd )
-	)
-	!media-tv/xbmc
-	udisks? ( sys-fs/udisks:0 )
-	upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )
-"
-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="git://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
-}
-
-src_configure() {
-	local CMAKE_BUILD_TYPE=$(usex debug Debug RelWithDebInfo)
-
-	local mycmakeargs=(
-		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
-		-DENABLE_ALSA=$(usex alsa)
-		-DENABLE_AIRTUNES=OFF
-		-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=OFF
-		-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=$(usex ssl)
-		-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) )
-
-	cmake-utils_src_configure
-}
-
-src_compile() {
-	cmake-utils_src_compile all $(usev test)
-}
-
-src_install() {
-	cmake-utils_src_install
-	rm "${ED%/}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}* || die
-
-	newicon media/icon48x48.png kodi.png
-
-	# Remove fontconfig settings that are used only on MacOSX.
-	# Can't be patched upstream because they just find all files and install
-	# them into same structure like they have in git.
-	rm -rf "${ED%/}"/usr/share/kodi/system/players/dvdplayer/etc || die
-
-	# Replace bundled fonts with system ones.
-	rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die
-	dosym /usr/share/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 /usr/share/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 /usr/share/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
index 4714398..543b9d3 100644
--- a/media-tv/kodi/kodi-9999.ebuild
+++ b/media-tv/kodi/kodi-9999.ebuild
@@ -199,7 +199,7 @@ src_configure() {
 
 	local mycmakeargs=(
 		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
-		-DNABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124
+		-DENABLE_LDGOLD=OFF # https://bugs.gentoo.org/show_bug.cgi?id=606124
 		-DENABLE_ALSA=$(usex alsa)
 		-DENABLE_AIRTUNES=OFF
 		-DENABLE_AVAHI=$(usex zeroconf)
@@ -251,12 +251,6 @@ src_install() {
 
 	newicon media/icon48x48.png kodi.png
 
-	# Remove fontconfig settings that are used only on MacOSX.
-	# Can't be patched upstream because they just find all files and install
-	# them into same structure like they have in git.
-	# Will be fixed upstream so this deletion will be unnecesssary, see https://github.com/xbmc/xbmc/pull/11451
-	rm -rf "${ED%/}"/usr/share/kodi/system/players/VideoPlayer/etc || die
-
 	# Replace bundled fonts with system ones.
 	rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die
 	dosym /usr/share/fonts/noto/NotoSans-Regular.ttf \

diff --git a/media-tv/kodi/metadata.xml b/media-tv/kodi/metadata.xml
index b66ff11..b6237a3 100644
--- a/media-tv/kodi/metadata.xml
+++ b/media-tv/kodi/metadata.xml
@@ -13,26 +13,18 @@
 		<flag name="airplay">enable AirPlay support</flag>
 		<flag name="bluray">Enable playback of Blu-ray filesystems</flag>
 		<flag name="cec">Enable support for HDMI-CEC devices via libcec</flag>
-		<flag name="fishbmc">Enable fishBMC visualization plugin</flag>
 		<flag name="gles">Enable support for GLES</flag>
-		<flag name="goom">Enable GOOM visualization plugin</flag>
 		<flag name="lirc">Enable support for controlling Totem with a remote control using <pkg>app-misc/lirc</pkg></flag>
 		<flag name="midi">Support MIDI files</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="projectm">Enable projectM visualization plugin</flag>
-		<flag name="pvr">Enable MythTV support</flag>
 		<flag name="rtmp">Enable Real Time Messaging Protocol using librtmp</flag>
-		<flag name="rsxs">Enable really slick X screensavers</flag>
 		<flag name="sftp">Support browsing files over SFTP</flag>
-		<flag name="spectrum">Enable spectrum visualization plugin</flag>
 		<flag name="texturepacker">Support packing skin textures</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="waveform">Enable waveform visualization plugin</flag>
 		<flag name="webserver">Enable internal webserver</flag>
-		<flag name="xrandr">Support X randr extension</flag>
 		<flag name="xslt">Enable XSLT support using <pkg>dev-libs/libxslt</pkg></flag>
 	</use>
 	<upstream>


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2017-10-23 13:36 Craig Andrews
  0 siblings, 0 replies; 24+ messages in thread
From: Craig Andrews @ 2017-10-23 13:36 UTC (permalink / raw
  To: gentoo-commits

commit:     035f283407952f982a5f67f4b774c0365c988c2f
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 23 13:35:39 2017 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Mon Oct 23 13:35:39 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=035f2834

media-tv/kodi: 17.5 version bump

Closes: https://bugs.gentoo.org/629320
Package-Manager: Portage-2.3.12, Repoman-2.3.3

 media-tv/kodi/Manifest                             |   3 +
 .../kodi/files/kodi-17.5-network-test-fix.patch    |  46 ++++
 media-tv/kodi/kodi-17.5.ebuild                     | 296 +++++++++++++++++++++
 3 files changed, 345 insertions(+)

diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
index c8a80b98ba4..a2b4caddc22 100644
--- a/media-tv/kodi/Manifest
+++ b/media-tv/kodi/Manifest
@@ -1,3 +1,4 @@
+DIST ffmpeg-kodi-3.1.11-Krypton-17.5.tar.gz 11188798 SHA256 7df8bce40765b39de5766ca9d08b5b9ac1f498c65c805c989461b907cee6b7c0 SHA512 b28bb6970c6767213f34e5f4f3e48ad5219a6c668a5264ff7de0a42712cb7393f389ddd88f56785a2dc8089f8231ae5fd05adfa10dbf15ea3e0ad7bc2ccd4d73 WHIRLPOOL 34055af438910a82ee7f2571c2bc5515d6988af51b4f5a2e0eb8f183f6a7e9ea3cdc4b16a6d8d166ad52f46d29a9625fbb72e8f47ed95c732482b33393445f7a
 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.4-Leia-Alpha-1.tar.gz 12147515 SHA256 0b5b7446dd5b9eeef427617e140058fbe7be94f5893055bc38cce3ca96375e03 SHA512 84fa07f88a3ee89b5dec8bf0f06a9d5f8b9e4a8f52656c6509aa081b87e59ae7ea643bc4bd668b555128b75e2a4d89fe82d7fc4586d37d9ea737eedb25508910 WHIRLPOOL e4a54744dcac947f0a9b1ca28eb1176bafc491f74e5f1142bb6b1a0b9aa57abc38c6c8af6fd41239da72b9cbdd595bfb815998f6f1a6d2baa568bf5ea08fe24d
@@ -5,6 +6,8 @@ DIST kodi-17.3-generated-addons.tar.xz 57548 SHA256 6175ac64dbcbe2c747cd77f876b8
 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 kodi-17.5-generated-addons.tar.xz 57556 SHA256 41a2a02ee3eaaab6de9da3e2e7eef4ab8ae94e8654487cc4f4f13d2ea749fbcc SHA512 c0458c9086ae3df7eb6a17ac9bfe33f1d2b4d9897bdb5831af8bbb01d927263e99ab1dd0f7eb7795dac04d757d04a8ad2346c8b29bfe1faf95b84218792bcb8e WHIRLPOOL cc4e68be47bc4318d995ecafe977af95d17443f7f81743bb2a321e72ee56e2de037402810f97a606aa6a55c9e4e18fa8a9733a44e5ac3c4ae59916097910562a
+DIST kodi-17.5.tar.gz 58292301 SHA256 84c64acc270b9e845a67fbbe481ae5ddeb9b4568d76e42f2d5f9160fe0ce2de2 SHA512 e47f8a53ccee675031dfb816ffbe338dd2e94c22c944b814f332c1abdab16182304474c6b0d5cd7ad7eb9bc0500de6f5fc97b965dc5828635b58a6c596f82736 WHIRLPOOL ca743b927a19d81c71072c8a7bc5f87eec73367275633de79f5bcc950eee9ed60380ee49a599f49023e48ff29495d361fa2a071617f7fa6bd18606015cd8d15d
 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

diff --git a/media-tv/kodi/files/kodi-17.5-network-test-fix.patch b/media-tv/kodi/files/kodi-17.5-network-test-fix.patch
new file mode 100644
index 00000000000..2f61cda953f
--- /dev/null
+++ b/media-tv/kodi/files/kodi-17.5-network-test-fix.patch
@@ -0,0 +1,46 @@
+From f585edfffa79ebbbcb0557be2e889809b76b5def Mon Sep 17 00:00:00 2001
+From: Rechi <Rechi@users.noreply.github.com>
+Date: Wed, 21 Dec 2016 17:10:54 +0100
+Subject: [PATCH 1/2] [cmake] build TestWebServer only if HTTPRequestHandlers
+ are build
+
+---
+ xbmc/network/test/CMakeLists.txt | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/xbmc/network/test/CMakeLists.txt b/xbmc/network/test/CMakeLists.txt
+index 5d1dab328160..a323d1835b07 100644
+--- a/xbmc/network/test/CMakeLists.txt
++++ b/xbmc/network/test/CMakeLists.txt
+@@ -1,3 +1,5 @@
+-set(SOURCES TestWebServer.cpp)
++if(MICROHTTPD_FOUND)
++  set(SOURCES TestWebServer.cpp)
+ 
+-core_add_test_library(network_test)
++  core_add_test_library(network_test)
++endif()
+
+From f7a514064923d0d693c122cc8fbe3b72cc205820 Mon Sep 17 00:00:00 2001
+From: Rechi <Rechi@users.noreply.github.com>
+Date: Wed, 21 Dec 2016 17:10:57 +0100
+Subject: [PATCH 2/2] [win] remove HAS_WEB_SERVER & HAS_WEB_INTERFACE defines,
+ they are handled trough HAVE_LIBMICROHTTPD (cmake)
+
+---
+ xbmc/system.h | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/xbmc/system.h b/xbmc/system.h
+index 07dfe87e4a01..26757ca90642 100644
+--- a/xbmc/system.h
++++ b/xbmc/system.h
+@@ -97,8 +97,6 @@
+ #define HAS_WIN32_NETWORK
+ #define HAS_IRSERVERSUITE
+ #define HAS_AUDIO
+-#define HAS_WEB_SERVER
+-#define HAS_WEB_INTERFACE
+ #define HAS_FILESYSTEM_SMB
+ #define HAS_ZEROCONF
+ #define HAS_MDNS

diff --git a/media-tv/kodi/kodi-17.5.ebuild b/media-tv/kodi/kodi-17.5.ebuild
new file mode 100644
index 00000000000..63fb63ef095
--- /dev/null
+++ b/media-tv/kodi/kodi-17.5.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.11"
+FFMPEG_KODI_VERSION="$(get_version_component_range 1-2)"
+CODENAME="Krypton"
+PATCHES=(
+	"${FILESDIR}/${P}-network-test-fix.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
+}


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2018-06-25 17:37 Craig Andrews
  0 siblings, 0 replies; 24+ messages in thread
From: Craig Andrews @ 2018-06-25 17:37 UTC (permalink / raw
  To: gentoo-commits

commit:     e55bc698725844baca2ef6b936411980746372f9
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 25 17:36:33 2018 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Mon Jun 25 17:37:01 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e55bc698

media-tv/kodi: Fix "nmblookup: command not found" when USE=-samba

Closes: https://bugs.gentoo.org/655202
Package-Manager: Portage-2.3.40, Repoman-2.3.9

 media-tv/kodi/files/kodi-17.6-nmblookup.patch |  25 +++
 media-tv/kodi/kodi-17.6-r4.ebuild             | 291 ++++++++++++++++++++++++++
 2 files changed, 316 insertions(+)

diff --git a/media-tv/kodi/files/kodi-17.6-nmblookup.patch b/media-tv/kodi/files/kodi-17.6-nmblookup.patch
new file mode 100644
index 00000000000..29737f980ec
--- /dev/null
+++ b/media-tv/kodi/files/kodi-17.6-nmblookup.patch
@@ -0,0 +1,25 @@
+From ba2cb820f32994482a1918bd16bd0a548bb394ac Mon Sep 17 00:00:00 2001
+From: Craig Andrews <candrews@integralblue.com>
+Date: Tue, 12 Jun 2018 12:28:41 -0400
+Subject: [PATCH] [dns-cache] Only use nmblookup if HAS_FILESYSTEM_SMB
+
+nmblookup is part of SmbClient so only use it if SmbClient is present.
+
+Fixes https://trac.kodi.tv/ticket/17916
+---
+ xbmc/network/DNSNameCache.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/xbmc/network/DNSNameCache.cpp b/xbmc/network/DNSNameCache.cpp
+index e993c536bf41..b30c60baf738 100644
+--- a/xbmc/network/DNSNameCache.cpp
++++ b/xbmc/network/DNSNameCache.cpp
+@@ -54,7 +54,7 @@ bool CDNSNameCache::Lookup(const std::string& strHostName, std::string& strIpAdd
+   if(g_DNSCache.GetCached(strHostName, strIpAddress))
+     return true;
+ 
+-#ifndef TARGET_WINDOWS
++#if !defined(TARGET_WINDOWS) && defined(HAS_FILESYSTEM_SMB)
+   // perform netbios lookup (win32 is handling this via gethostbyname)
+   char nmb_ip[100];
+   char line[200];

diff --git a/media-tv/kodi/kodi-17.6-r4.ebuild b/media-tv/kodi/kodi-17.6-r4.ebuild
new file mode 100644
index 00000000000..d084b1df80b
--- /dev/null
+++ b/media-tv/kodi/kodi-17.6-r4.ebuild
@@ -0,0 +1,291 @@
+# Copyright 1999-2018 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.11"
+FFMPEG_KODI_VERSION="17.5"
+CODENAME="Krypton"
+PATCHES=(
+	"${FILESDIR}/${P}-nmblookup.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/ 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 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 )
+	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-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]
+		<media-video/ffmpeg-3.4
+	)
+	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] )
+	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=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"
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2018-11-28 16:33 Craig Andrews
  0 siblings, 0 replies; 24+ messages in thread
From: Craig Andrews @ 2018-11-28 16:33 UTC (permalink / raw
  To: gentoo-commits

commit:     66a13dddf37fcbd9d7fb66b6f2fb4972251bec38
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 28 16:33:06 2018 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Wed Nov 28 16:33:20 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=66a13ddd

media-tv/kodi: Fix compilation error due to use of ancient _G_ types

Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>

 media-tv/kodi/files/kodi-17.6-wrapper.patch | 39 +++++++++++++++++++++++++++++
 media-tv/kodi/kodi-17.6-r9.ebuild           |  1 +
 2 files changed, 40 insertions(+)

diff --git a/media-tv/kodi/files/kodi-17.6-wrapper.patch b/media-tv/kodi/files/kodi-17.6-wrapper.patch
new file mode 100644
index 00000000000..dc3e9887da9
--- /dev/null
+++ b/media-tv/kodi/files/kodi-17.6-wrapper.patch
@@ -0,0 +1,39 @@
+From bbc7a53911f1ef8a4a24b76d88c5b0e5899e082f Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike@cchtml.com>
+Date: Fri, 16 Mar 2018 13:48:34 -0500
+Subject: [PATCH] DllLoader: Update variable to use standard va_list type
+
+The _G_ types were ancient, internal-only types defined in _G_config.h
+and are now deprecated.
+
+https://sourceware.org/ml/libc-announce/2018/msg00000.html
+https://sourceware.org/git/?p=glibc.git;a=commit;h=48a8f8328122ab8d06b7333cb87be46feeaf7cca
+
+Signed-off-by: Michael Cronenworth <mike@cchtml.com>
+---
+ xbmc/cores/DllLoader/exports/wrapper.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/xbmc/cores/DllLoader/exports/wrapper.c b/xbmc/cores/DllLoader/exports/wrapper.c
+index 1980bfe65cac..7c7d4ac6131d 100644
+--- a/xbmc/cores/DllLoader/exports/wrapper.c
++++ b/xbmc/cores/DllLoader/exports/wrapper.c
+@@ -45,9 +45,6 @@ typedef int64_t   off64_t;
+ typedef off64_t   __off64_t;
+ typedef fpos_t    fpos64_t;
+ #define stat64    stat
+-#if defined(TARGET_DARWIN) || defined(TARGET_ANDROID)
+-#define _G_va_list va_list
+-#endif
+ #endif
+ 
+ #ifdef TARGET_POSIX
+@@ -485,7 +482,7 @@ int __wrap___printf_chk(int flag, const char *format, ...)
+   return res;
+ }
+ 
+-int __wrap___vfprintf_chk(FILE* stream, int flag, const char *format, _G_va_list ap)
++int __wrap___vfprintf_chk(FILE* stream, int flag, const char *format, va_list ap)
+ {
+   return dll_vfprintf(stream, format, ap);
+ }

diff --git a/media-tv/kodi/kodi-17.6-r9.ebuild b/media-tv/kodi/kodi-17.6-r9.ebuild
index 0df46272fb8..08e9b06a101 100644
--- a/media-tv/kodi/kodi-17.6-r9.ebuild
+++ b/media-tv/kodi/kodi-17.6-r9.ebuild
@@ -17,6 +17,7 @@ FFMPEG_KODI_VERSION="17.5"
 CODENAME="Krypton"
 PATCHES=(
 	"${FILESDIR}/${P}-nmblookup.patch"
+	"${FILESDIR}/${P}-wrapper.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


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2019-02-18  3:01 Craig Andrews
  0 siblings, 0 replies; 24+ messages in thread
From: Craig Andrews @ 2019-02-18  3:01 UTC (permalink / raw
  To: gentoo-commits

commit:     b9b28fe5e5935dccc94539383cba437071a4254c
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 18 02:59:41 2019 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Mon Feb 18 02:59:41 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b9b28fe5

media-tv/kodi: ffmpeg 3.4.5 fixes, don't unbundle fonts

Bug: https://bugs.gentoo.org/678222
Closes: https://bugs.gentoo.org/669204
Package-Manager: Portage-2.3.60, Repoman-2.3.12
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>

 ...adapt-to-deprecated-symbols-and-functions.patch | 401 +++++++++++++++++++++
 .../kodi-17-fix-audio-with-latest-ffmpeg.patch     |  15 +
 media-tv/kodi/kodi-17.6-r10.ebuild                 | 278 ++++++++++++++
 3 files changed, 694 insertions(+)

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 00000000000..0ec08810db5
--- /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 00000000000..5f5e613bed2
--- /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 00000000000..240a7f8fc80
--- /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
+}


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2019-09-02 20:42 Craig Andrews
  0 siblings, 0 replies; 24+ messages in thread
From: Craig Andrews @ 2019-09-02 20:42 UTC (permalink / raw
  To: gentoo-commits

commit:     6384a44e21b6accb262057debc505a60973a3586
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Mon Sep  2 20:29:55 2019 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Mon Sep  2 20:42:48 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6384a44e

media-tv/kodi: Cleanup old versions

Package-Manager: Portage-2.3.74, Repoman-2.3.17
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>

 media-tv/kodi/Manifest                             |  14 -
 .../kodi/files/kodi-17.3-ftpparse_string.patch     |  82 ------
 .../kodi/files/kodi-17.3-unrar-vulnerability.patch |  45 ---
 media-tv/kodi/kodi-17.3-r1.ebuild                  | 285 ------------------
 media-tv/kodi/kodi-17.6-r10.ebuild                 | 278 ------------------
 media-tv/kodi/kodi-17.6-r6.ebuild                  | 290 -------------------
 media-tv/kodi/kodi-17.6-r7.ebuild                  | 293 -------------------
 media-tv/kodi/kodi-17.6-r8.ebuild                  | 293 -------------------
 media-tv/kodi/kodi-17.6-r9.ebuild                  | 297 -------------------
 media-tv/kodi/kodi-17.6.ebuild                     | 291 -------------------
 media-tv/kodi/kodi-18.0.ebuild                     | 320 ---------------------
 media-tv/kodi/kodi-18.0_rc2.ebuild                 | 319 --------------------
 media-tv/kodi/kodi-18.0_rc3.ebuild                 | 320 ---------------------
 media-tv/kodi/kodi-18.0_rc4.ebuild                 | 320 ---------------------
 media-tv/kodi/kodi-18.0_rc5.ebuild                 | 320 ---------------------
 media-tv/kodi/kodi-18.1.ebuild                     | 320 ---------------------
 media-tv/kodi/kodi-18.1_rc1.ebuild                 | 320 ---------------------
 media-tv/kodi/kodi-18.2.ebuild                     | 320 ---------------------
 media-tv/kodi/kodi-18.2_rc1.ebuild                 | 320 ---------------------
 media-tv/kodi/kodi-18.3.ebuild                     | 319 --------------------
 20 files changed, 5366 deletions(-)

diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
index 9efe696d459..a5eba65e4bb 100644
--- a/media-tv/kodi/Manifest
+++ b/media-tv/kodi/Manifest
@@ -1,22 +1,8 @@
 DIST ffmpeg-kodi-3.1.11-Krypton-17.5.tar.gz 11188798 BLAKE2B bb91a89a47f3ea6894f28834b477cc2c2db64590e0202b784182f724e89fb385385218463404076565bedcd41a81797c2f340ce579aee75e09f2c99ae494031d SHA512 b28bb6970c6767213f34e5f4f3e48ad5219a6c668a5264ff7de0a42712cb7393f389ddd88f56785a2dc8089f8231ae5fd05adfa10dbf15ea3e0ad7bc2ccd4d73
-DIST ffmpeg-kodi-3.1.6-Krypton.tar.gz 11170735 BLAKE2B b78a1825ea9a85a91bd9244f93eee1ccd603d5150ee26f08e2de3d04d8a2bb945b1fc16a12d6da98deaaf1bdf5b5a78d75f8814a0cb3d7177980cf1f19440069 SHA512 060d06946ee71106196587b36eccf7fb7d0710d6ee72dae2e08f23e5bf7e223a3bac77f1730121f494ecf5f860a40635978023317a06f27a3b28752fa537f1a1
-DIST ffmpeg-kodi-4.0.1-Leia-Alpha3-1.tar.gz 12417851 BLAKE2B 5275ca29c926c42f0597d9cc4847d597aca0c1ca3efbf3f64d97bde8040386187fbeab5a482179af85977aa72bfd495aa4ea40a34264e2cf29ace3f281da85ca SHA512 f22dd1bb177c218ed049697f3483bfa19a88d36e99d9bdb6ae423c7ea3b9e8fc6e21827c17109bf4b6e7edee1016c3a24168ac2282da19c91a0f07c6c0af9d55
 DIST ffmpeg-kodi-4.0.3-Leia-18.2.tar.gz 12426917 BLAKE2B 83da9511d7b4ef6a8c813561a061c4fe86712e4424c30c9005500751c6c79f4232910caaf13cd34d2db1867f592b042dd291d6c32a77f80107ce87a3a7db1760 SHA512 b4d4bf16f05b953ba81769446c8fd90246e1919b9ef671fb212008151c83d8445e4123ad37c352aa6243074962832e817749d2de318eb721d5bb5d655fd77ab2
-DIST ffmpeg-kodi-4.0.3-Leia-RC5.tar.gz 12426965 BLAKE2B 6f255b7d0cbd12eb066a63e443ba4017b05410c7ea79fa6eb5577a12c373e06dcd6a6999c98eb6a797a4b015ec627bf7cb52647e285b017539c587a2b72d5ad4 SHA512 a95eaeca26baa9dca4343f1ed6dc068e0800199997a5ad1a28664061e533aa8b0e6d0ad53c18009e21bdd09177b7eda8e59a5a98a10f0f6a081cf03803ee9277
 DIST ffmpeg-kodi-4.0.4-Leia-18.4.tar.gz 12430413 BLAKE2B 6de6fde2c16264f851466b46f87c23c34e7d503203f69d47342d46034f153860190d196da51221f866315405c8a33325b2160283333256ee5d5e293336afae99 SHA512 c6dd75dbff7119adeeda246cfb640b5e8d3b4c242ef83e5ba070207b60f0c715c3fe3cb328d87687b70a133f122a03aba990f0e95f3aac7d5dbcee25bec59078
-DIST kodi-17.3-generated-addons.tar.xz 57548 BLAKE2B 794c20a2e494d02ee21260080ea4363953a44f424113ef92aaa2aa6e55a1ce51ce9fb84dee4acd10a3bf18af53c22e198a785ddcaf900f31f79b3a272bec08e9 SHA512 56d1912f5e24d3fcda3010783a5b32728ece9c81c718ac6f8db2cbbd096059fe97b8d1971b34bbde1216558a8e5db874f7b2179e1f18942774ae5486167bca9a
-DIST kodi-17.3.tar.gz 58466114 BLAKE2B 5f72f264c139a618802a735f93ecf78ad56bc2b021a8b2e060c32f777fee7ef405544a46cde61951fbfbf886b7f6c93b8b0df53731ec044f23b871f1777cb561 SHA512 832071c3e9f332281a767f29168f6d6d003a86b42df849e81d907c2280f81f959ae42a850eddc889ae2280bba6106de3355e701ff2d71c88ee14cb20c84e7987
 DIST kodi-17.6-generated-addons.tar.xz 57564 BLAKE2B 9b3000ac23a6aab24b703a2b66016dbf0637ff3d615b89435cba3717acb913a4543bb57aaa9ae59a9493891ba62af06414ef2c0cea3a81e9ec32ea60e209330d SHA512 ee1344e859b2871f9dd3e2f2f75f9c0f9f787ac111a6b9ab8f80af6524a786d51baeb4f247a8c5b35001073be49bf4289d1c63e3114625143f3747aa9b1f4be2
 DIST kodi-17.6.tar.gz 58275293 BLAKE2B 538675b7a3400d9182f957da9bbf609ce5ece502c3a7f4a32e26c802bae9795979554204148e06d1923d8e68ba1f06f9d92bf11416f73cf9431381642ca00639 SHA512 1f1ba91e6129ab423f9ad47b63d7bb75775dbf18638a96413a572aaa790f4f0d738ca35486513e158a7f55d501f78f08dd9d68aabe2fbb80a729c6091b264111
-DIST kodi-18.0.tar.gz 50987386 BLAKE2B e3f3d975ccbfba68d2bce534bc41b92c59cb2d5591a81e56993dc9a27cf845adf44ea9158600c0564f1dd2b4828bcf8e24a0f93816e5de85394fb7105d97be5d SHA512 d5a91ef10d4e5671a559b48e866ee534cf4d6ec270ed25b5d54ad66cbdaf29bd04acf533d90bd86e80c232be5f3d52bd8d1b697d60100371cff9329e514b9d92
-DIST kodi-18.0rc2.tar.gz 50969888 BLAKE2B 982d660c6f87706fa5d50c5ece84ea3d27adcd3ad561a77082cb2c1abfdd378b233aeaa8102682f0c89bb6f3c28481fa03b6070d4e9c3ba9b37b66096211071e SHA512 2f5bba021221cdc45242abc90a993dd033c2d7839f1031159869ac7a777a0675324ec2858868ff5060b16a8d5f367a6135a20ac570a099e907032678c91eac0c
-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 kodi-18.2.tar.gz 51012621 BLAKE2B 363e7a36c236bec3a962a786ac1f2ba27cf45aa32046f5f66196e8ed4786631e00c525b4ddd975abd419b9fd1f5831aac52a18187cead8e54527cf67159859fb SHA512 7b63dc9c082f538690d28dd6da10999888af2b9de2e532bca54420753f64238f42e1c2aa0f7481c823e544260a1e4d68e1ba50f84db53307d08f0749992dff2f
-DIST kodi-18.2rc1.tar.gz 51014723 BLAKE2B 36d3c54a8af64e3f3db0fd03b900cc210361da10a5db60321334b6eec5f9c8c1b8aba47884a3f0dd3744af4ebfe6d0a05d7b0dfd3eb023a9679d4b5f9c118552 SHA512 d668b315e9fe5cd694fd061a422e9a01071882f757a6fd0fa15280dcc70c0ef440de16c9208242e1df1f3225faf2f15fae02de978baf638fe44138c1f9f52607
 DIST kodi-18.3.tar.gz 51013397 BLAKE2B cce29d481397dddd3c942f83a034bc6d73eafc1be2a50436e1e5611ccf04c27e6110c4b4f99f7f7d1cf8da3e2550209c8bee3db6e98136b8fa9738c4b1fc7e43 SHA512 4e898e28238dcbc67e106c5a0ef88bd6a82f8c0ad00e77e3ddbe2da6181b37d9ca1ba6bda57206223cfa119c5291edb4410d3e773d97b5ab67660e49929437ec
 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

diff --git a/media-tv/kodi/files/kodi-17.3-ftpparse_string.patch b/media-tv/kodi/files/kodi-17.3-ftpparse_string.patch
deleted file mode 100644
index da8d57a3d6b..00000000000
--- a/media-tv/kodi/files/kodi-17.3-ftpparse_string.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-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
deleted file mode 100644
index 95644d6921e..00000000000
--- a/media-tv/kodi/files/kodi-17.3-unrar-vulnerability.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-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/kodi-17.3-r1.ebuild b/media-tv/kodi/kodi-17.3-r1.ebuild
deleted file mode 100644
index fd33fd85b95..00000000000
--- a/media-tv/kodi/kodi-17.3-r1.ebuild
+++ /dev/null
@@ -1,285 +0,0 @@
-# Copyright 1999-2018 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
-
-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="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 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,X(+)]
-	>=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? ( 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.6-r10.ebuild b/media-tv/kodi/kodi-17.6-r10.ebuild
deleted file mode 100644
index f7b60b768a6..00000000000
--- a/media-tv/kodi/kodi-17.6-r10.ebuild
+++ /dev/null
@@ -1,278 +0,0 @@
-# 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,X(+)]
-	>=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-r6.ebuild b/media-tv/kodi/kodi-17.6-r6.ebuild
deleted file mode 100644
index c0c368f27a5..00000000000
--- a/media-tv/kodi/kodi-17.6-r6.ebuild
+++ /dev/null
@@ -1,290 +0,0 @@
-# Copyright 1999-2018 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"
-)
-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-fonts/noto-20160531
-	media-fonts/roboto
-	media-libs/fontconfig
-	media-libs/freetype
-	>=media-libs/libass-0.13.4
-	media-libs/mesa[egl,X(+)]
-	>=media-libs/taglib-1.11.1
-	system-ffmpeg? (
-		>=media-video/ffmpeg-${FFMPEG_VERSION}:=[encode,openssl,postproc]
-		<media-video/ffmpeg-3.4
-	)
-	mysql? (
-		!mariadb? ( 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_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=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"
-	)
-
-	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.6-r7.ebuild b/media-tv/kodi/kodi-17.6-r7.ebuild
deleted file mode 100644
index 92c27377195..00000000000
--- a/media-tv/kodi/kodi-17.6-r7.ebuild
+++ /dev/null
@@ -1,293 +0,0 @@
-# Copyright 1999-2018 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"
-)
-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-fonts/noto-20160531
-	media-fonts/roboto
-	media-libs/fontconfig
-	media-libs/freetype
-	>=media-libs/libass-0.13.4
-	media-libs/mesa[egl,X(+)]
-	>=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
-
-	# 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.6-r8.ebuild b/media-tv/kodi/kodi-17.6-r8.ebuild
deleted file mode 100644
index 04b5dde24bb..00000000000
--- a/media-tv/kodi/kodi-17.6-r8.ebuild
+++ /dev/null
@@ -1,293 +0,0 @@
-# Copyright 1999-2018 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"
-)
-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-fonts/noto-20180905
-	media-fonts/roboto
-	media-libs/fontconfig
-	media-libs/freetype
-	>=media-libs/libass-0.13.4
-	media-libs/mesa[egl,X(+)]
-	>=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
-
-	# Replace bundled fonts with system ones.
-	rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die
-	dosym ../../../../fonts/noto/NotoSansMono-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.6-r9.ebuild b/media-tv/kodi/kodi-17.6-r9.ebuild
deleted file mode 100644
index 7e72f8b7ab8..00000000000
--- a/media-tv/kodi/kodi-17.6-r9.ebuild
+++ /dev/null
@@ -1,297 +0,0 @@
-# Copyright 1999-2018 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"
-)
-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-fonts/noto-20180905
-	media-fonts/roboto
-	media-libs/fontconfig
-	media-libs/freetype
-	>=media-libs/libass-0.13.4
-	media-libs/mesa[egl,X(+)]
-	>=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
-
-	# Replace bundled fonts with system ones.
-	rm "${ED%/}"/usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf || die
-	dosym ../../../../fonts/noto/NotoSansMono-Regular.ttf \
-		usr/share/kodi/addons/skin.estouchy/fonts/NotoSans-Regular.ttf
-
-	local f
-	for f in NotoMono-Regular.ttf NotoSans-Bold.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/NotoSans-Regular.ttf || die
-	dosym ../../../../fonts/noto/NotoSansMono-Regular.ttf \
-		usr/share/kodi/addons/skin.estuary/fonts/NotoSans-Regular.ttf
-
-	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.6.ebuild b/media-tv/kodi/kodi-17.6.ebuild
deleted file mode 100644
index 989f73609c3..00000000000
--- a/media-tv/kodi/kodi-17.6.ebuild
+++ /dev/null
@@ -1,291 +0,0 @@
-# Copyright 1999-2018 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"
-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 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,X(+)]
-	>=media-libs/taglib-1.11.1
-	system-ffmpeg? (
-		>=media-video/ffmpeg-${FFMPEG_VERSION}:=[encode,openssl,postproc]
-		<media-video/ffmpeg-3.4
-	)
-	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? ( 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 "yes" $(usex mariadb))
-		-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-18.0.ebuild b/media-tv/kodi/kodi-18.0.ebuild
deleted file mode 100644
index f9473d30cd9..00000000000
--- a/media-tv/kodi/kodi-18.0.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# 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 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"
-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,X(+)]
-	>=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-18.0_rc2.ebuild b/media-tv/kodi/kodi-18.0_rc2.ebuild
deleted file mode 100644
index 8de21cc0785..00000000000
--- a/media-tv/kodi/kodi-18.0_rc2.ebuild
+++ /dev/null
@@ -1,319 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-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.1"
-CODENAME="Leia"
-FFMPEG_KODI_VERSION="Alpha3-1"
-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 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"
-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,X(+)]
-	>=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-18.0_rc3.ebuild b/media-tv/kodi/kodi-18.0_rc3.ebuild
deleted file mode 100644
index 317663803c6..00000000000
--- a/media-tv/kodi/kodi-18.0_rc3.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# Copyright 1999-2018 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.1"
-CODENAME="Leia"
-FFMPEG_KODI_VERSION="Alpha3-1"
-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 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"
-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,X(+)]
-	>=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-18.0_rc4.ebuild b/media-tv/kodi/kodi-18.0_rc4.ebuild
deleted file mode 100644
index 317663803c6..00000000000
--- a/media-tv/kodi/kodi-18.0_rc4.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# Copyright 1999-2018 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.1"
-CODENAME="Leia"
-FFMPEG_KODI_VERSION="Alpha3-1"
-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 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"
-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,X(+)]
-	>=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-18.0_rc5.ebuild b/media-tv/kodi/kodi-18.0_rc5.ebuild
deleted file mode 100644
index 2867bb4a2b2..00000000000
--- a/media-tv/kodi/kodi-18.0_rc5.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# 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.1"
-CODENAME="Leia"
-FFMPEG_KODI_VERSION="Alpha3-1"
-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 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"
-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,X(+)]
-	>=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-18.1.ebuild b/media-tv/kodi/kodi-18.1.ebuild
deleted file mode 100644
index 899c513845a..00000000000
--- a/media-tv/kodi/kodi-18.1.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# 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,X(+)]
-	>=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-18.1_rc1.ebuild b/media-tv/kodi/kodi-18.1_rc1.ebuild
deleted file mode 100644
index f9473d30cd9..00000000000
--- a/media-tv/kodi/kodi-18.1_rc1.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# 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 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"
-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,X(+)]
-	>=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-18.2.ebuild b/media-tv/kodi/kodi-18.2.ebuild
deleted file mode 100644
index 6956d36d8dd..00000000000
--- a/media-tv/kodi/kodi-18.2.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# 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="18.2"
-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,X(+)]
-	>=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[http2]
-	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-18.2_rc1.ebuild b/media-tv/kodi/kodi-18.2_rc1.ebuild
deleted file mode 100644
index 6956d36d8dd..00000000000
--- a/media-tv/kodi/kodi-18.2_rc1.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# 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="18.2"
-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,X(+)]
-	>=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[http2]
-	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-18.3.ebuild b/media-tv/kodi/kodi-18.3.ebuild
deleted file mode 100644
index 6ee3c6e0063..00000000000
--- a/media-tv/kodi/kodi-18.3.ebuild
+++ /dev/null
@@ -1,319 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-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="18.2"
-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,X(+)]
-	>=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[http2]
-	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
-	)
-	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
-	>=x11-libs/libxkbcommon-0.4.1
-	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
-}


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2019-09-05 17:30 Craig Andrews
  0 siblings, 0 replies; 24+ messages in thread
From: Craig Andrews @ 2019-09-05 17:30 UTC (permalink / raw
  To: gentoo-commits

commit:     fe1fbf319bcb246812c3c3ac9480394c1d5edb5d
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Thu Sep  5 16:20:21 2019 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Thu Sep  5 17:30:19 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fe1fbf31

media-tv/kodi: Cleanup old version (Kodi 17)

Package-Manager: Portage-2.3.75, Repoman-2.3.17
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>

 media-tv/kodi/Manifest                             |   6 -
 media-tv/kodi/files/generate.sh                    |  34 --
 ...adapt-to-deprecated-symbols-and-functions.patch | 401 ---------------------
 .../kodi-17-fix-audio-with-latest-ffmpeg.patch     |  15 -
 media-tv/kodi/files/kodi-17.6-nmblookup.patch      |  25 --
 media-tv/kodi/files/kodi-17.6-wrapper.patch        |  39 --
 media-tv/kodi/files/kodi-cmake-no-java.patch       |  56 ---
 media-tv/kodi/kodi-17.6-r11.ebuild                 | 277 --------------
 media-tv/kodi/metadata.xml                         |   2 -
 9 files changed, 855 deletions(-)

diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
index edb5036b3d2..c921311ac0c 100644
--- a/media-tv/kodi/Manifest
+++ b/media-tv/kodi/Manifest
@@ -1,13 +1,7 @@
-DIST ffmpeg-kodi-3.1.11-Krypton-17.5.tar.gz 11188798 BLAKE2B bb91a89a47f3ea6894f28834b477cc2c2db64590e0202b784182f724e89fb385385218463404076565bedcd41a81797c2f340ce579aee75e09f2c99ae494031d SHA512 b28bb6970c6767213f34e5f4f3e48ad5219a6c668a5264ff7de0a42712cb7393f389ddd88f56785a2dc8089f8231ae5fd05adfa10dbf15ea3e0ad7bc2ccd4d73
 DIST ffmpeg-kodi-4.0.3-Leia-18.2.tar.gz 12426917 BLAKE2B 83da9511d7b4ef6a8c813561a061c4fe86712e4424c30c9005500751c6c79f4232910caaf13cd34d2db1867f592b042dd291d6c32a77f80107ce87a3a7db1760 SHA512 b4d4bf16f05b953ba81769446c8fd90246e1919b9ef671fb212008151c83d8445e4123ad37c352aa6243074962832e817749d2de318eb721d5bb5d655fd77ab2
 DIST ffmpeg-kodi-4.0.4-Leia-18.4.tar.gz 12430413 BLAKE2B 6de6fde2c16264f851466b46f87c23c34e7d503203f69d47342d46034f153860190d196da51221f866315405c8a33325b2160283333256ee5d5e293336afae99 SHA512 c6dd75dbff7119adeeda246cfb640b5e8d3b4c242ef83e5ba070207b60f0c715c3fe3cb328d87687b70a133f122a03aba990f0e95f3aac7d5dbcee25bec59078
-DIST kodi-17.6-generated-addons.tar.xz 57564 BLAKE2B 9b3000ac23a6aab24b703a2b66016dbf0637ff3d615b89435cba3717acb913a4543bb57aaa9ae59a9493891ba62af06414ef2c0cea3a81e9ec32ea60e209330d SHA512 ee1344e859b2871f9dd3e2f2f75f9c0f9f787ac111a6b9ab8f80af6524a786d51baeb4f247a8c5b35001073be49bf4289d1c63e3114625143f3747aa9b1f4be2
-DIST kodi-17.6.tar.gz 58275293 BLAKE2B 538675b7a3400d9182f957da9bbf609ce5ece502c3a7f4a32e26c802bae9795979554204148e06d1923d8e68ba1f06f9d92bf11416f73cf9431381642ca00639 SHA512 1f1ba91e6129ab423f9ad47b63d7bb75775dbf18638a96413a572aaa790f4f0d738ca35486513e158a7f55d501f78f08dd9d68aabe2fbb80a729c6091b264111
 DIST kodi-18.3.tar.gz 51013397 BLAKE2B cce29d481397dddd3c942f83a034bc6d73eafc1be2a50436e1e5611ccf04c27e6110c4b4f99f7f7d1cf8da3e2550209c8bee3db6e98136b8fa9738c4b1fc7e43 SHA512 4e898e28238dcbc67e106c5a0ef88bd6a82f8c0ad00e77e3ddbe2da6181b37d9ca1ba6bda57206223cfa119c5291edb4410d3e773d97b5ab67660e49929437ec
 DIST kodi-18.4.tar.gz 51027569 BLAKE2B 47e3377abb4a1e5a3c26b1519f45ab9347127467594841ac689b857a3f4163731951d4e1e4960bce5c2af4fa224acf4a3887f42bdc41a603bba4979d3bcbcda8 SHA512 ae08fc29d20387d9352dc1ae4a89da19962a279b89705ff8f7869377281589d44a685cebaa8509d3252ae79215dcdaadb72e9fa752e6d2bce59974bc23276aad
 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
-DIST libdvdnav-43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac.tar.gz 130603 BLAKE2B 0a211fcedb216567bcd929048af01486ff91efbb8d31592fd116676b6ae95de3cd7bfab7cd79853b3d15e96c27e62cce8c79eeb9baee68a1bad4f3fce8a207a0 SHA512 901c6f24afa1d78b6ed78d1ee30daf634ca0bbc0467ef9cc3416bcab4fbc4fda6869ffa051791d85c0b510de748805328627681ef044668a7857299f0035232e
 DIST libdvdnav-6.0.0-Leia-Alpha-3.tar.gz 137942 BLAKE2B 7573434a0ae8e8ccabf48173f81fcde29074eb138e119a2ae9156cde3c3d8bfd716f5d0e605b97f2dcac21f570781137c8533c5ae306b51e3905822fda318355 SHA512 11c93eaacd156f8fd7dec7c43d366438b201f31ad55b2870463a9e286912b6ada08882319a021fb7992190f87b909a49f2b83e0321cc17aedc29f7fe5898fa72
-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

diff --git a/media-tv/kodi/files/generate.sh b/media-tv/kodi/files/generate.sh
deleted file mode 100755
index 2e5b67fb90e..00000000000
--- a/media-tv/kodi/files/generate.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/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-adapt-to-deprecated-symbols-and-functions.patch b/media-tv/kodi/files/kodi-17-adapt-to-deprecated-symbols-and-functions.patch
deleted file mode 100644
index 0ec08810db5..00000000000
--- a/media-tv/kodi/files/kodi-17-adapt-to-deprecated-symbols-and-functions.patch
+++ /dev/null
@@ -1,401 +0,0 @@
-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
deleted file mode 100644
index 5f5e613bed2..00000000000
--- a/media-tv/kodi/files/kodi-17-fix-audio-with-latest-ffmpeg.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-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/files/kodi-17.6-nmblookup.patch b/media-tv/kodi/files/kodi-17.6-nmblookup.patch
deleted file mode 100644
index 29737f980ec..00000000000
--- a/media-tv/kodi/files/kodi-17.6-nmblookup.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From ba2cb820f32994482a1918bd16bd0a548bb394ac Mon Sep 17 00:00:00 2001
-From: Craig Andrews <candrews@integralblue.com>
-Date: Tue, 12 Jun 2018 12:28:41 -0400
-Subject: [PATCH] [dns-cache] Only use nmblookup if HAS_FILESYSTEM_SMB
-
-nmblookup is part of SmbClient so only use it if SmbClient is present.
-
-Fixes https://trac.kodi.tv/ticket/17916
----
- xbmc/network/DNSNameCache.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/xbmc/network/DNSNameCache.cpp b/xbmc/network/DNSNameCache.cpp
-index e993c536bf41..b30c60baf738 100644
---- a/xbmc/network/DNSNameCache.cpp
-+++ b/xbmc/network/DNSNameCache.cpp
-@@ -54,7 +54,7 @@ bool CDNSNameCache::Lookup(const std::string& strHostName, std::string& strIpAdd
-   if(g_DNSCache.GetCached(strHostName, strIpAddress))
-     return true;
- 
--#ifndef TARGET_WINDOWS
-+#if !defined(TARGET_WINDOWS) && defined(HAS_FILESYSTEM_SMB)
-   // perform netbios lookup (win32 is handling this via gethostbyname)
-   char nmb_ip[100];
-   char line[200];

diff --git a/media-tv/kodi/files/kodi-17.6-wrapper.patch b/media-tv/kodi/files/kodi-17.6-wrapper.patch
deleted file mode 100644
index dc3e9887da9..00000000000
--- a/media-tv/kodi/files/kodi-17.6-wrapper.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From bbc7a53911f1ef8a4a24b76d88c5b0e5899e082f Mon Sep 17 00:00:00 2001
-From: Michael Cronenworth <mike@cchtml.com>
-Date: Fri, 16 Mar 2018 13:48:34 -0500
-Subject: [PATCH] DllLoader: Update variable to use standard va_list type
-
-The _G_ types were ancient, internal-only types defined in _G_config.h
-and are now deprecated.
-
-https://sourceware.org/ml/libc-announce/2018/msg00000.html
-https://sourceware.org/git/?p=glibc.git;a=commit;h=48a8f8328122ab8d06b7333cb87be46feeaf7cca
-
-Signed-off-by: Michael Cronenworth <mike@cchtml.com>
----
- xbmc/cores/DllLoader/exports/wrapper.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/xbmc/cores/DllLoader/exports/wrapper.c b/xbmc/cores/DllLoader/exports/wrapper.c
-index 1980bfe65cac..7c7d4ac6131d 100644
---- a/xbmc/cores/DllLoader/exports/wrapper.c
-+++ b/xbmc/cores/DllLoader/exports/wrapper.c
-@@ -45,9 +45,6 @@ typedef int64_t   off64_t;
- typedef off64_t   __off64_t;
- typedef fpos_t    fpos64_t;
- #define stat64    stat
--#if defined(TARGET_DARWIN) || defined(TARGET_ANDROID)
--#define _G_va_list va_list
--#endif
- #endif
- 
- #ifdef TARGET_POSIX
-@@ -485,7 +482,7 @@ int __wrap___printf_chk(int flag, const char *format, ...)
-   return res;
- }
- 
--int __wrap___vfprintf_chk(FILE* stream, int flag, const char *format, _G_va_list ap)
-+int __wrap___vfprintf_chk(FILE* stream, int flag, const char *format, va_list ap)
- {
-   return dll_vfprintf(stream, format, ap);
- }

diff --git a/media-tv/kodi/files/kodi-cmake-no-java.patch b/media-tv/kodi/files/kodi-cmake-no-java.patch
deleted file mode 100644
index 2d965ab351e..00000000000
--- a/media-tv/kodi/files/kodi-cmake-no-java.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-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.6-r11.ebuild b/media-tv/kodi/kodi-17.6-r11.ebuild
deleted file mode 100644
index 30817ba59e8..00000000000
--- a/media-tv/kodi/kodi-17.6-r11.ebuild
+++ /dev/null
@@ -1,277 +0,0 @@
-# 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,X(+)]
-	>=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/metadata.xml b/media-tv/kodi/metadata.xml
index 2ddce679368..269b8bfc2c4 100644
--- a/media-tv/kodi/metadata.xml
+++ b/media-tv/kodi/metadata.xml
@@ -14,10 +14,8 @@
 		<flag name="lirc">Enable support for controlling Totem with a remote control using <pkg>app-misc/lirc</pkg></flag>
 		<flag name="mariadb">Add MariaDB support</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="raspberry-pi">Enable support for the Raspberry Pi</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>


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2019-12-06 17:07 Craig Andrews
  0 siblings, 0 replies; 24+ messages in thread
From: Craig Andrews @ 2019-12-06 17:07 UTC (permalink / raw
  To: gentoo-commits

commit:     d809e892a10f4ad04312db32d98e32421c367d9a
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Fri Dec  6 17:04:57 2019 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Fri Dec  6 17:07:51 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d809e892

media-tv/kodi: Fix compiling with >=dev-libs/libfmt-6.1.0

Closes: https://bugs.gentoo.org/702104
Package-Manager: Portage-2.3.81, Repoman-2.3.20
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>

 media-tv/kodi/files/kodi-18.5-cassert.patch | 42 +++++++++++++++++++++++++++++
 media-tv/kodi/kodi-18.5.ebuild              |  3 +++
 media-tv/kodi/kodi-9999.ebuild              |  4 ++-
 3 files changed, 48 insertions(+), 1 deletion(-)

diff --git a/media-tv/kodi/files/kodi-18.5-cassert.patch b/media-tv/kodi/files/kodi-18.5-cassert.patch
new file mode 100644
index 00000000000..9558baa9e18
--- /dev/null
+++ b/media-tv/kodi/files/kodi-18.5-cassert.patch
@@ -0,0 +1,42 @@
+https://github.com/xbmc/xbmc/pull/17000
+
+From bbfc36f06c191d3bdea19cacc498afb86bd25404 Mon Sep 17 00:00:00 2001
+From: Craig Andrews <candrews@integralblue.com>
+Date: Thu, 5 Dec 2019 14:49:50 -0500
+Subject: [PATCH] Add missing cassert includes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Without these includes, ‘assert’ was not declared in this scope errors
+occur.
+---
+ xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp | 1 +
+ xbmc/windowing/GraphicContext.cpp                  | 2 ++
+ 2 files changed, 3 insertions(+)
+
+diff --git a/xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp b/xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp
+index 1303d894478c..aa85d95b3234 100644
+--- a/xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp
++++ b/xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp
+@@ -31,6 +31,7 @@
+ #include "utils/Variant.h"
+ #include "utils/log.h"
+ 
++#include <cassert>
+ #include <utility>
+ 
+ #define SETTING_PROFILE_NAME          "profile.name"
+diff --git a/xbmc/windowing/GraphicContext.cpp b/xbmc/windowing/GraphicContext.cpp
+index b47bafba57dc..75b333ea6daa 100644
+--- a/xbmc/windowing/GraphicContext.cpp
++++ b/xbmc/windowing/GraphicContext.cpp
+@@ -25,6 +25,8 @@
+ #include "settings/lib/Setting.h"
+ #include "utils/log.h"
+ 
++#include <cassert>
++
+ using namespace KODI::MESSAGING;
+ 
+ CGraphicContext::CGraphicContext(void) = default;

diff --git a/media-tv/kodi/kodi-18.5.ebuild b/media-tv/kodi/kodi-18.5.ebuild
index e4a919d0deb..f8dc1e17074 100644
--- a/media-tv/kodi/kodi-18.5.ebuild
+++ b/media-tv/kodi/kodi-18.5.ebuild
@@ -14,6 +14,9 @@ SRC_URI="https://github.com/xbmc/libdvdcss/archive/${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 )"
+PATCHES=(
+	"${FILESDIR}/${P}-cassert.patch"
+)
 
 if [[ ${PV} == *9999 ]] ; then
 	PYTHON_COMPAT=( python2_7 python3_{5,6,7} )

diff --git a/media-tv/kodi/kodi-9999.ebuild b/media-tv/kodi/kodi-9999.ebuild
index d44644c1f23..30fee14a935 100644
--- a/media-tv/kodi/kodi-9999.ebuild
+++ b/media-tv/kodi/kodi-9999.ebuild
@@ -15,7 +15,9 @@ SRC_URI="https://github.com/xbmc/libdvdcss/archive/${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 )"
-
+PATCHES=(
+	"${FILESDIR}/${PN}-18.5-cassert.patch"
+)
 if [[ ${PV} == *9999 ]] ; then
 	EGIT_REPO_URI="https://github.com/xbmc/xbmc.git"
 	inherit git-r3


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2020-06-23 18:44 Craig Andrews
  0 siblings, 0 replies; 24+ messages in thread
From: Craig Andrews @ 2020-06-23 18:44 UTC (permalink / raw
  To: gentoo-commits

commit:     a4886afa2c9569e600a4dca81e4eee4c46a77cfa
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 23 18:40:29 2020 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Tue Jun 23 18:44:17 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a4886afa

media-tv/kodi: backport disabling useless tests

Closes: https://bugs.gentoo.org/729204
Package-Manager: Portage-2.3.102, Repoman-2.3.23
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>

 .../kodi/files/kodi-18-remove-useless-test.patch   | 51 ++++++++++++++++++++++
 media-tv/kodi/kodi-18.6.ebuild                     |  1 +
 media-tv/kodi/kodi-18.7.1.ebuild                   |  1 +
 media-tv/kodi/kodi-18.7.ebuild                     |  1 +
 4 files changed, 54 insertions(+)

diff --git a/media-tv/kodi/files/kodi-18-remove-useless-test.patch b/media-tv/kodi/files/kodi-18-remove-useless-test.patch
new file mode 100644
index 00000000000..144626718b6
--- /dev/null
+++ b/media-tv/kodi/files/kodi-18-remove-useless-test.patch
@@ -0,0 +1,51 @@
+From 6cf1d4aaf9807a209f19e0aea97b44a7ae617f27 Mon Sep 17 00:00:00 2001
+From: Craig Andrews <candrews@integralblue.com>
+Date: Tue, 23 Jun 2020 14:30:29 -0400
+Subject: [PATCH] [test] TestCPUInfo: remove useless test as we cannot
+ guarantee that they exist
+
+---
+ xbmc/utils/test/TestCPUInfo.cpp | 30 ------------------------------
+ 1 file changed, 30 deletions(-)
+
+diff --git a/xbmc/utils/test/TestCPUInfo.cpp b/xbmc/utils/test/TestCPUInfo.cpp
+index fab473891356..df74ca3ee995 100644
+--- a/xbmc/utils/test/TestCPUInfo.cpp
++++ b/xbmc/utils/test/TestCPUInfo.cpp
+@@ -73,36 +73,6 @@ TEST(TestCPUInfo, getTemperature)
+ }
+ #endif
+ 
+-TEST(TestCPUInfo, getCPUModel)
+-{
+-  std::string s = g_cpuInfo.getCPUModel();
+-  EXPECT_STRNE("", s.c_str());
+-}
+-
+-TEST(TestCPUInfo, getCPUBogoMips)
+-{
+-  std::string s = g_cpuInfo.getCPUBogoMips();
+-  EXPECT_STRNE("", s.c_str());
+-}
+-
+-TEST(TestCPUInfo, getCPUHardware)
+-{
+-  std::string s = g_cpuInfo.getCPUHardware();
+-  EXPECT_STRNE("", s.c_str());
+-}
+-
+-TEST(TestCPUInfo, getCPURevision)
+-{
+-  std::string s = g_cpuInfo.getCPURevision();
+-  EXPECT_STRNE("", s.c_str());
+-}
+-
+-TEST(TestCPUInfo, getCPUSerial)
+-{
+-  std::string s = g_cpuInfo.getCPUSerial();
+-  EXPECT_STRNE("", s.c_str());
+-}
+-
+ TEST(TestCPUInfo, CoreInfo)
+ {
+   ASSERT_TRUE(g_cpuInfo.HasCoreId(0));

diff --git a/media-tv/kodi/kodi-18.6.ebuild b/media-tv/kodi/kodi-18.6.ebuild
index 0a97baf0c63..b73cbf49d2d 100644
--- a/media-tv/kodi/kodi-18.6.ebuild
+++ b/media-tv/kodi/kodi-18.6.ebuild
@@ -16,6 +16,7 @@ SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_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 )"
 PATCHES=(
 	"${FILESDIR}/${PN}-18.5-cassert.patch"
+	"${FILESDIR}/${PN}-18-remove-useless-test.patch"
 )
 
 if [[ ${PV} == *9999 ]] ; then

diff --git a/media-tv/kodi/kodi-18.7.1.ebuild b/media-tv/kodi/kodi-18.7.1.ebuild
index 25f6abdbcdf..17a04601f75 100644
--- a/media-tv/kodi/kodi-18.7.1.ebuild
+++ b/media-tv/kodi/kodi-18.7.1.ebuild
@@ -16,6 +16,7 @@ SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_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 )"
 PATCHES=(
 	"${FILESDIR}/${PN}-18.5-cassert.patch"
+	"${FILESDIR}/${PN}-18-remove-useless-test.patch"
 )
 
 if [[ ${PV} == *9999 ]] ; then

diff --git a/media-tv/kodi/kodi-18.7.ebuild b/media-tv/kodi/kodi-18.7.ebuild
index 25f6abdbcdf..17a04601f75 100644
--- a/media-tv/kodi/kodi-18.7.ebuild
+++ b/media-tv/kodi/kodi-18.7.ebuild
@@ -16,6 +16,7 @@ SRC_URI="https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_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 )"
 PATCHES=(
 	"${FILESDIR}/${PN}-18.5-cassert.patch"
+	"${FILESDIR}/${PN}-18-remove-useless-test.patch"
 )
 
 if [[ ${PV} == *9999 ]] ; then


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2020-08-04 20:43 Craig Andrews
  0 siblings, 0 replies; 24+ messages in thread
From: Craig Andrews @ 2020-08-04 20:43 UTC (permalink / raw
  To: gentoo-commits

commit:     cc667f8994edb317eb357300f1ceb325cc4b1e9b
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  4 20:43:16 2020 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Tue Aug  4 20:43:48 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cc667f89

media-tv/kodi: Fix test failures with USE=-webserver

Closes: https://bugs.gentoo.org/734922
Package-Manager: Portage-3.0.1, Repoman-2.3.23
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>

 ...19.0_alpha1-conditional-TestHTTPDirectory.patch | 31 ++++++++++++++++++++++
 media-tv/kodi/kodi-19.0_alpha1.ebuild              |  4 +++
 2 files changed, 35 insertions(+)

diff --git a/media-tv/kodi/files/kodi-19.0_alpha1-conditional-TestHTTPDirectory.patch b/media-tv/kodi/files/kodi-19.0_alpha1-conditional-TestHTTPDirectory.patch
new file mode 100644
index 00000000000..096a4032628
--- /dev/null
+++ b/media-tv/kodi/files/kodi-19.0_alpha1-conditional-TestHTTPDirectory.patch
@@ -0,0 +1,31 @@
+From 3be79a564343886ade7e88f447944fd4b5452959 Mon Sep 17 00:00:00 2001
+From: Craig Andrews <candrews@integralblue.com>
+Date: Fri, 31 Jul 2020 14:56:21 -0400
+Subject: [PATCH] [test] [webserver] Conditional TestHTTPDirectory
+
+TestHTTPDirectory.cpp requires microhttpd so only include it if microhttpd is found.
+
+TestHTTPDirectory.cpp includes network/WebServer.h which includes network/httprequesthandler/IHTTPRequestHandler.h which includes microhttpd.h
+---
+ xbmc/filesystem/test/CMakeLists.txt | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/xbmc/filesystem/test/CMakeLists.txt b/xbmc/filesystem/test/CMakeLists.txt
+index 235acc8549cf..9572459cf198 100644
+--- a/xbmc/filesystem/test/CMakeLists.txt
++++ b/xbmc/filesystem/test/CMakeLists.txt
+@@ -1,10 +1,13 @@
+ set(SOURCES TestDirectory.cpp
+             TestFile.cpp
+             TestFileFactory.cpp
+-            TestHTTPDirectory.cpp
+             TestZipFile.cpp
+             TestZipManager.cpp)
+ 
++if(MICROHTTPD_FOUND)
++  list(APPEND SOURCES TestHTTPDirectory.cpp)
++endif()
++
+ if(NFS_FOUND)
+   list(APPEND SOURCES TestNfsFile.cpp)
+ endif()

diff --git a/media-tv/kodi/kodi-19.0_alpha1.ebuild b/media-tv/kodi/kodi-19.0_alpha1.ebuild
index d253bed8325..9bf450173d8 100644
--- a/media-tv/kodi/kodi-19.0_alpha1.ebuild
+++ b/media-tv/kodi/kodi-19.0_alpha1.ebuild
@@ -29,6 +29,10 @@ else
 	S=${WORKDIR}/xbmc-${MY_PV}-${CODENAME}
 fi
 
+PATCHES=(
+	"${FILESDIR}/${P}-conditional-TestHTTPDirectory.patch"
+)
+
 inherit autotools cmake desktop linux-info pax-utils python-single-r1 xdg
 
 DESCRIPTION="A free and open source media-player and entertainment hub"


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2022-08-26 14:38 Jakov Smolić
  0 siblings, 0 replies; 24+ messages in thread
From: Jakov Smolić @ 2022-08-26 14:38 UTC (permalink / raw
  To: gentoo-commits

commit:     7342318ebb39976b31c697e4cfe7221d348e5ed6
Author:     Yixun Lan <dlan <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 25 13:36:16 2022 +0000
Commit:     Jakov Smolić <jsmolic <AT> gentoo <DOT> org>
CommitDate: Fri Aug 26 14:38:09 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7342318e

media-tv/kodi: fix missing atomic library issue

Upstream: https://github.com/xbmc/xbmc/pull/21743
Closes: https://bugs.gentoo.org/864421
Signed-off-by: Yixun Lan <dlan <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/27016
Signed-off-by: Jakov Smolić <jsmolic <AT> gentoo.org>

 media-tv/kodi/files/kodi-19.4-atomic.patch | 108 +++++++++++++++++++++++++++++
 media-tv/kodi/kodi-19.4-r2.ebuild          |   1 +
 2 files changed, 109 insertions(+)

diff --git a/media-tv/kodi/files/kodi-19.4-atomic.patch b/media-tv/kodi/files/kodi-19.4-atomic.patch
new file mode 100644
index 000000000000..3811fda8886d
--- /dev/null
+++ b/media-tv/kodi/files/kodi-19.4-atomic.patch
@@ -0,0 +1,108 @@
+From ac3213e683e4c62c50dc02fef3b168d883245094 Mon Sep 17 00:00:00 2001
+From: Yixun Lan <dlan@gentoo.org>
+Date: Tue, 9 Aug 2022 16:45:09 +0800
+Subject: [PATCH] [cmake] link atomic library for certain CPU architectures
+
+For those CPU architectures:
+RISC-V lack 8-bit and 16-bit atomic instructions, and
+ARM/MIPS/PPC lack 64-bit atomic instruction.
+
+GCC is supposed  to convert these atomics via masking and shifting
+like LLVM, which means anything that wants to use these instructions
+needs the link option -latomic.
+
+In this patch, we will try to detect if 8-bit, 64-bit atomic instructions exist,
+otherwise the atomic library will append to the DEPLIBS list.
+
+Original issue:
+* https://gitlab.kitware.com/cmake/cmake/-/issues/23021#note_1098733
+
+For reference:
+* https://gcc.gnu.org/wiki/Atomic/GCCMM
+
+riscv64 specific:
+* https://lists.debian.org/debian-riscv/2022/01/msg00009.html
+
+Signed-off-by: Yixun Lan <dlan@gentoo.org>
+---
+ cmake/modules/FindAtomic.cmake      | 56 +++++++++++++++++++++++++++++
+ cmake/scripts/linux/ArchSetup.cmake |  3 ++
+ 2 files changed, 59 insertions(+)
+ create mode 100644 cmake/modules/FindAtomic.cmake
+
+diff --git a/cmake/modules/FindAtomic.cmake b/cmake/modules/FindAtomic.cmake
+new file mode 100644
+index 0000000000..8ea3c815d7
+--- /dev/null
++++ b/cmake/modules/FindAtomic.cmake
+@@ -0,0 +1,56 @@
++#.rst:
++# FindAtomic
++# -----
++# Finds the ATOMIC library
++#
++# This will define the following variables::
++#
++# ATOMIC_FOUND - system has ATOMIC
++# ATOMIC_LIBRARIES - the ATOMIC libraries
++#
++# and the following imported targets::
++#
++#   ATOMIC::ATOMIC    - The ATOMIC library
++
++
++include(CheckCXXSourceCompiles)
++
++set(atomic_code
++    "
++     #include <atomic>
++     #include <cstdint>
++     std::atomic<uint8_t> n8 (0); // riscv64
++     std::atomic<uint64_t> n64 (0); // armel, mipsel, powerpc
++     int main() {
++       ++n8;
++       ++n64;
++       return 0;
++     }")
++
++check_cxx_source_compiles("${atomic_code}" ATOMIC_LOCK_FREE_INSTRUCTIONS)
++
++if(ATOMIC_LOCK_FREE_INSTRUCTIONS)
++  set(ATOMIC_FOUND TRUE)
++  set(ATOMIC_LIBRARIES)
++else()
++  set(CMAKE_REQUIRED_LIBRARIES "-latomic")
++  check_cxx_source_compiles("${atomic_code}" ATOMIC_IN_LIBRARY)
++  set(CMAKE_REQUIRED_LIBRARIES)
++  if(ATOMIC_IN_LIBRARY)
++    set(ATOMIC_LIBRARY atomic)
++    include(FindPackageHandleStandardArgs)
++    find_package_handle_standard_args(Atomic DEFAULT_MSG ATOMIC_LIBRARY)
++    set(ATOMIC_LIBRARIES ${ATOMIC_LIBRARY})
++    if(NOT TARGET ATOMIC::ATOMIC)
++      add_library(ATOMIC::ATOMIC UNKNOWN IMPORTED)
++      set_target_properties(ATOMIC::ATOMIC PROPERTIES
++	      IMPORTED_LOCATION "${ATOMIC_LIBRARY}")
++    endif()
++    unset(ATOMIC_LIBRARY)
++  else()
++    if(Atomic_FIND_REQUIRED)
++      message(FATAL_ERROR "Neither lock free instructions nor -latomic found.")
++    endif()
++  endif()
++endif()
++unset(atomic_code)
+diff --git a/cmake/scripts/linux/ArchSetup.cmake b/cmake/scripts/linux/ArchSetup.cmake
+index 35ab1402f5..848723af1f 100644
+--- a/cmake/scripts/linux/ArchSetup.cmake
++++ b/cmake/scripts/linux/ArchSetup.cmake
+@@ -199,3 +199,6 @@ if(NOT USE_INTERNAL_LIBS)
+     set(USE_INTERNAL_LIBS OFF)
+   endif()
+ endif()
++
++# Atomic library
++list(APPEND PLATFORM_REQUIRED_DEPS Atomic)
+-- 
+2.35.1
+

diff --git a/media-tv/kodi/kodi-19.4-r2.ebuild b/media-tv/kodi/kodi-19.4-r2.ebuild
index 060512a9f02d..eb948b74ad25 100644
--- a/media-tv/kodi/kodi-19.4-r2.ebuild
+++ b/media-tv/kodi/kodi-19.4-r2.ebuild
@@ -35,6 +35,7 @@ inherit autotools cmake desktop linux-info pax-utils python-single-r1 xdg
 
 PATCHES=(
 	"${FILESDIR}/${P}-fmt-9.patch"
+	"${FILESDIR}/${P}-atomic.patch"
 )
 
 DESCRIPTION="A free and open source media-player and entertainment hub"


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2022-12-17 19:38 Craig Andrews
  0 siblings, 0 replies; 24+ messages in thread
From: Craig Andrews @ 2022-12-17 19:38 UTC (permalink / raw
  To: gentoo-commits

commit:     ea3f9b515f106ef3b8a48009ddc7057acf5ea7b2
Author:     V3n3RiX <venerix <AT> koprulu <DOT> sector>
AuthorDate: Fri Dec 16 22:00:54 2022 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Sat Dec 17 19:38:35 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ea3f9b51

media-tv/kodi: mesa 22.3.0 compatibility

Closes: https://bugs.gentoo.org/885419
Closes: https://github.com/gentoo/gentoo/pull/28683
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>

 media-tv/kodi/files/kodi-19.4-fix-mesa-22.3.0-build.patch | 12 ++++++++++++
 media-tv/kodi/kodi-19.4-r3.ebuild                         |  5 +++++
 media-tv/kodi/kodi-19.4-r4.ebuild                         |  5 +++++
 3 files changed, 22 insertions(+)

diff --git a/media-tv/kodi/files/kodi-19.4-fix-mesa-22.3.0-build.patch b/media-tv/kodi/files/kodi-19.4-fix-mesa-22.3.0-build.patch
new file mode 100644
index 000000000000..e9ff90dfe55d
--- /dev/null
+++ b/media-tv/kodi/files/kodi-19.4-fix-mesa-22.3.0-build.patch
@@ -0,0 +1,12 @@
+--- xbmc/xbmc/windowing/X11/GLContextEGL.h
++++ xbmc/xbmc/windowing/X11/GLContextEGL.h
+@@ -13,7 +13,7 @@
+ #include "threads/CriticalSection.h"
+ 
+ #include <EGL/eglext.h>
+-#include <EGL/eglextchromium.h>
++#include <EGL/eglext_angle.h>
+ #include <X11/Xutil.h>
+ 
+ class CGLContextEGL : public CGLContext
+

diff --git a/media-tv/kodi/kodi-19.4-r3.ebuild b/media-tv/kodi/kodi-19.4-r3.ebuild
index caecc50cdfca..cc58afabb027 100644
--- a/media-tv/kodi/kodi-19.4-r3.ebuild
+++ b/media-tv/kodi/kodi-19.4-r3.ebuild
@@ -208,6 +208,11 @@ src_unpack() {
 }
 
 src_prepare() {
+	# https://bugs.gentoo.org/885419
+	if has_version ">=media-libs/mesa-22.3.0"; then
+		PATCHES+=( "${FILESDIR}/${P}-fix-mesa-22.3.0-build.patch" )
+	fi
+
 	cmake_src_prepare
 
 	# avoid long delays when powerkit isn't running #348580

diff --git a/media-tv/kodi/kodi-19.4-r4.ebuild b/media-tv/kodi/kodi-19.4-r4.ebuild
index 3fcd9b13f6b0..d295604a6976 100644
--- a/media-tv/kodi/kodi-19.4-r4.ebuild
+++ b/media-tv/kodi/kodi-19.4-r4.ebuild
@@ -209,6 +209,11 @@ src_unpack() {
 }
 
 src_prepare() {
+	# https://bugs.gentoo.org/885419
+	if has_version ">=media-libs/mesa-22.3.0"; then
+		PATCHES+=( "${FILESDIR}/${P}-fix-mesa-22.3.0-build.patch" )
+	fi
+
 	cmake_src_prepare
 
 	# avoid long delays when powerkit isn't running #348580


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2023-01-30  3:27 Sam James
  0 siblings, 0 replies; 24+ messages in thread
From: Sam James @ 2023-01-30  3:27 UTC (permalink / raw
  To: gentoo-commits

commit:     b1abe11db602377ba9c72c9944feefba52160b17
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 30 03:10:44 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jan 30 03:24:45 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b1abe11d

media-tv/kodi: fix build w/ gcc 13

Closes: https://bugs.gentoo.org/892503
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-tv/kodi/files/kodi-19.5-gcc-13.patch | 58 ++++++++++++++++++++++++++++++
 media-tv/kodi/kodi-19.5.ebuild             |  1 +
 2 files changed, 59 insertions(+)

diff --git a/media-tv/kodi/files/kodi-19.5-gcc-13.patch b/media-tv/kodi/files/kodi-19.5-gcc-13.patch
new file mode 100644
index 000000000000..130c3c225486
--- /dev/null
+++ b/media-tv/kodi/files/kodi-19.5-gcc-13.patch
@@ -0,0 +1,58 @@
+https://bugs.gentoo.org/892503
+https://github.com/xbmc/xbmc/pull/22627
+https://github.com/xbmc/xbmc/pull/22631
+
+From 6730f62c5d709f8789e11d3f979c597fe702daa3 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sun, 29 Jan 2023 22:14:16 +0000
+Subject: [PATCH] windowing: X11: Add missing <cstdint> include (fix build with
+ GCC 13)
+
+GCC 13 (as usual for new compiler releases) shuffles around some
+internal includes and so <cstdint> etc is no longer transitively included.
+
+See https://www.gnu.org/software/gcc/gcc-13/porting_to.html.
+
+Bug: https://bugs.gentoo.org/892503
+--- a/xbmc/windowing/X11/GLContext.h
++++ b/xbmc/windowing/X11/GLContext.h
+@@ -8,6 +8,7 @@
+ 
+ #pragma once
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include <X11/Xlib.h>
+
+--- a/xbmc/cores/VideoPlayer/VideoRenderers/ColorManager.h
++++ b/xbmc/cores/VideoPlayer/VideoRenderers/ColorManager.h
+@@ -12,6 +12,7 @@
+ #include <lcms2.h>
+ #endif
+ 
++#include <cstdint>
+ #include <string>
+ 
+ extern "C"
+--- a/xbmc/pictures/Picture.h
++++ b/xbmc/pictures/Picture.h
+@@ -11,6 +11,8 @@
+ #include "pictures/PictureScalingAlgorithm.h"
+ #include "utils/Job.h"
+ 
++#include <cstddef>
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ 
+--- a/xbmc/platform/Filesystem.h
++++ b/xbmc/platform/Filesystem.h
+@@ -8,6 +8,7 @@
+ 
+ #pragma once
+ 
++#include <cstdint>
+ #include <string>
+ #include <system_error>
+ namespace KODI

diff --git a/media-tv/kodi/kodi-19.5.ebuild b/media-tv/kodi/kodi-19.5.ebuild
index bda9d573b7d2..68653e38cf72 100644
--- a/media-tv/kodi/kodi-19.5.ebuild
+++ b/media-tv/kodi/kodi-19.5.ebuild
@@ -36,6 +36,7 @@ inherit autotools cmake desktop libtool linux-info pax-utils python-single-r1 xd
 PATCHES=(
 	"${FILESDIR}/${PN}-19.4-atomic.patch"
 	"${FILESDIR}/${PN}-19.4-dav1d-1.0.0.patch"
+	"${FILESDIR}/${PN}-19.5-gcc-13.patch"
 )
 
 DESCRIPTION="A free and open source media-player and entertainment hub"


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2023-05-31  3:07 Sam James
  0 siblings, 0 replies; 24+ messages in thread
From: Sam James @ 2023-05-31  3:07 UTC (permalink / raw
  To: gentoo-commits

commit:     57ce221edfeafd9b91be2ce4aacbedda83f62215
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed May 31 03:06:04 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed May 31 03:06:04 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=57ce221e

media-tv/kodi: fix build w/ new flatbuffers

Closes: https://bugs.gentoo.org/907420
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-tv/kodi/files/kodi-19.5-flatbuffers.patch | 35 +++++++++++++++++++++++++
 media-tv/kodi/kodi-19.5.ebuild                  | 13 ++++-----
 2 files changed, 42 insertions(+), 6 deletions(-)

diff --git a/media-tv/kodi/files/kodi-19.5-flatbuffers.patch b/media-tv/kodi/files/kodi-19.5-flatbuffers.patch
new file mode 100644
index 000000000000..3e8f00c1449f
--- /dev/null
+++ b/media-tv/kodi/files/kodi-19.5-flatbuffers.patch
@@ -0,0 +1,35 @@
+https://github.com/xbmc/xbmc/pull/23334
+
+From 07d8c98a0a65e005b85ef70e06eb1b9bbe7f764c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Markus=20H=C3=A4rer?= <markus.haerer@gmx.net>
+Date: Sun, 28 May 2023 00:49:40 +0200
+Subject: [PATCH] SavestateFlatBuffer: Remove forward declararion of
+ FlatBufferBuilder
+
+This caused a compiler error with recent faltbuffers because the type changed:
+
+In file included from xbmc/cores/RetroPlayer/savestates/SavestateDatabase.cpp:12:
+xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h:19:7: error: definition of type 'FlatBufferBuilder' conflicts with type alias of the same name
+class FlatBufferBuilder;
+      ^
+/usr/include/flatbuffers/flatbuffer_builder.h:1414:7: note: 'FlatBufferBuilder' declared here
+using FlatBufferBuilder = FlatBufferBuilderImpl<false>;
+      ^
+1 error generated.
+
+(cherry picked from commit 351184d7e4e3edc447d04a297769eb41a477ba68)
+--- a/xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h
++++ b/xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h
+@@ -14,11 +14,6 @@
+ 
+ #include <flatbuffers/flatbuffers.h>
+ 
+-namespace flatbuffers
+-{
+-class FlatBufferBuilder;
+-}
+-
+ namespace KODI
+ {
+ namespace RETRO
+

diff --git a/media-tv/kodi/kodi-19.5.ebuild b/media-tv/kodi/kodi-19.5.ebuild
index 2a49d55230af..6dffb81372ec 100644
--- a/media-tv/kodi/kodi-19.5.ebuild
+++ b/media-tv/kodi/kodi-19.5.ebuild
@@ -33,12 +33,6 @@ fi
 
 inherit autotools cmake desktop libtool linux-info pax-utils python-single-r1 xdg
 
-PATCHES=(
-	"${FILESDIR}/${PN}-19.4-atomic.patch"
-	"${FILESDIR}/${PN}-19.4-dav1d-1.0.0.patch"
-	"${FILESDIR}/${PN}-19.5-gcc-13.patch"
-)
-
 DESCRIPTION="A free and open source media-player and entertainment hub"
 HOMEPAGE="https://kodi.tv/ https://kodi.wiki/"
 
@@ -195,6 +189,13 @@ In some cases Kodi needs to access multicast addresses.
 Please consider enabling IP_MULTICAST under Networking options.
 "
 
+PATCHES=(
+	"${FILESDIR}/${PN}-19.4-atomic.patch"
+	"${FILESDIR}/${PN}-19.4-dav1d-1.0.0.patch"
+	"${FILESDIR}/${PN}-19.5-gcc-13.patch"
+	"${FILESDIR}/${PN}-19.5-flatbuffers.patch"
+)
+
 pkg_setup() {
 	check_extra_config
 	python-single-r1_pkg_setup


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2024-01-21  4:41 Sam James
  0 siblings, 0 replies; 24+ messages in thread
From: Sam James @ 2024-01-21  4:41 UTC (permalink / raw
  To: gentoo-commits

commit:     8f454c9a9c209a829a4066c71aad5845e58ce720
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Sun Dec 24 14:09:33 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jan 21 04:41:08 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8f454c9a

media-tv/kodi: add 20.3

* Drop riscv due to new dependency sci-libs/kissfft.

Bug: https://bugs.gentoo.org/779184
Bug: https://bugs.gentoo.org/818262
Bug: https://bugs.gentoo.org/860984
Closes: https://bugs.gentoo.org/892547
Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-tv/kodi/Manifest                            |   2 +
 media-tv/kodi/files/kodi-20.2-binutils-2.41.patch | 103 +++++
 media-tv/kodi/kodi-20.3.ebuild                    | 474 ++++++++++++++++++++++
 3 files changed, 579 insertions(+)

diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
index d37004f2967f..6e9e7f54540a 100644
--- a/media-tv/kodi/Manifest
+++ b/media-tv/kodi/Manifest
@@ -1,6 +1,8 @@
 DIST ffmpeg-kodi-4.3.2-Matrix-19.1.tar.gz 13490949 BLAKE2B 90007f2c4bac0e0a52b419d9333cf75b00e291f1ea7447cbdc579ee2f860de7c436c924253600f3fbd6e3faaabe97aaf46db083a5bbd2f5f03badcca5d643e89 SHA512 d3719253d674b16638b873545583b82fba3176803c81ba8bcb37e90456dd956f1c2ee8996493840cff2d61c6399f06ed0524a759f46e4ce174bce23e9c6eda4a
+DIST ffmpeg-kodi-4.4.1-Nexus-Alpha1.tar.gz 13725564 BLAKE2B 51d310e7000aeba657d55341c5fdb540474e197b85062228ab4b314c8309ec11985aa7f105193333fc6106529e8e58c86eafe268190894be8532d0e0b9065fa6 SHA512 8beb04d577b5251e74b0d52f4d130997a8ba94bbd488c7c8309e6b45095c27807e150212888ce3a384b23dff52f8df1a7bde5407bae924ddc363f8125c0616c5
 DIST ffmpeg-kodi-5.1.2-Nexus-Alpha3.tar.gz 14416966 BLAKE2B fe35ef6a9aa2d60a2b34432ae8063850003d550208f223ea43af8ebcaa73e6993639e8cfe8a38676bac79e6b1816bd791b75b66ef58ff4d740bc9a5e0e7f9b78 SHA512 ce60852b8456d6f4bfc60de0ceadb33034d9b3eea8c0bc84d8b7199984ecbf334a2c4d9b42eade439d0ef30ce22e3b2ca0a49d4df837a18cd3136b4343ed3113
 DIST kodi-19.5-Matrix.tar.gz 53496968 BLAKE2B 89855e4d59faa5734e945e50267c2ec8d8e8bef91ecfa49ae49dd99f749a59609b55c57821042939082a8f98ea95f7edc3de0fa0494e218d454c67b79807ef87 SHA512 b560c068491a7f62894167da99be082f0e6a8a840cbfe1fb0cef5c844cda959bd3b5479a435b58616bb2a8454083ad393a4d49de05fbbdb0817a0fad9726e52f
+DIST kodi-20.3-Nexus.tar.gz 54567232 BLAKE2B 956be2d1bef16910d88f244331bdff60cce309d9596ec7939a459489b7fa7ab3ca7b29e2aca0de542f48f95321d86c9d7a606ac311a7a3c69e0e6f901511982e SHA512 cdec1383d33f421828f0249ac2929980c6eaa39e345a8a364d9f3479f873029a15f3f6e6d40707fd2df2067a71bdaa3c6a1e26277074c31c631c71afe7465cb4
 DIST libdvdcss-1.4.2-Leia-Beta-5.tar.gz 101068 BLAKE2B 283aa2cec0a2200d3569bc280cb9659e9224a6b3a77db8a35b269cd8caf1337ac9d8b92b806df66f63ef7458a46bd6261f0b8b14678b10e26644a79dcbeea5da SHA512 5185dbdbeb1bd13ea9d8723f1f4ab599d6f3102f5ba1096cd085aa1cda252c045f327c719227bba8e1b742352ade5e335106c8d0c1637a5a6b93ce661620dd7e
 DIST libdvdcss-1.4.3-Next-Nexus-Alpha2-2.tar.gz 102124 BLAKE2B 2f503d3ab767094958f7ec10b4ad11ffd02665deee571c8f3c739bef5fc7e2ff84babc5a3fdee638dc095f896b72fe3ce65e6b688674cb5f7b7b77190992688c SHA512 d3be3bfc13c5ea56d8db745c2aab090c99760684fe4c8f62a13d266feb319e9180ceeecf8116bfd2ed90d9accba2c11dbbf93b61ad00f69a40812ebf4eabcdda
 DIST libdvdnav-6.0.0-Leia-Alpha-3.tar.gz 137942 BLAKE2B 7573434a0ae8e8ccabf48173f81fcde29074eb138e119a2ae9156cde3c3d8bfd716f5d0e605b97f2dcac21f570781137c8533c5ae306b51e3905822fda318355 SHA512 11c93eaacd156f8fd7dec7c43d366438b201f31ad55b2870463a9e286912b6ada08882319a021fb7992190f87b909a49f2b83e0321cc17aedc29f7fe5898fa72

diff --git a/media-tv/kodi/files/kodi-20.2-binutils-2.41.patch b/media-tv/kodi/files/kodi-20.2-binutils-2.41.patch
new file mode 100644
index 000000000000..6ee7a55ee1de
--- /dev/null
+++ b/media-tv/kodi/files/kodi-20.2-binutils-2.41.patch
@@ -0,0 +1,103 @@
+https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/effadce6c756247ea8bae32dc13bb3e6f464f0eb
+
+From db99a6e0ed9490478a7af7b6a3299688b1a329e1 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Sun, 24 Dec 2023 14:02:37 +0200
+Subject: [PATCH] ffmpeg: add patch to fix build against binutils-2.41
+
+Signed-off-by: Alfred Wingate <parona@protonmail.com>
+--- a/cmake/modules/FindFFMPEG.cmake
++++ b/cmake/modules/FindFFMPEG.cmake
+@@ -96,7 +96,9 @@ macro(buildFFMPEG)
+                  -DPKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig)
+   set(PATCH_COMMAND ${CMAKE_COMMAND} -E copy
+                     ${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/CMakeLists.txt
+-                    <SOURCE_DIR>)
++                    <SOURCE_DIR> &&
++                    # patch internal ffmpeg, fix build against binutils 2.41
++                    patch -p1 < ${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/build-fix-for-binutils-2.41.patch)
+ 
+   if(CMAKE_GENERATOR STREQUAL Xcode)
+     set(FFMPEG_GENERATOR CMAKE_GENERATOR "Unix Makefiles")
+--- /dev/null
++++ b/tools/depends/target/ffmpeg/build-fix-for-binutils-2.41.patch
+@@ -0,0 +1,76 @@
++From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001
++From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
++Date: Sun, 16 Jul 2023 18:18:02 +0300
++Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift
++ instructions within inline assembly
++
++Fixes assembling with binutil as >= 2.41
++
++Signed-off-by: James Almer <jamrial@gmail.com>
++---
++ libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++---
++ 1 file changed, 23 insertions(+), 3 deletions(-)
++
++diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h
++index 6298f5ed19..ca7e2dffc1 100644
++--- a/libavcodec/x86/mathops.h
+++++ b/libavcodec/x86/mathops.h
++@@ -35,12 +35,20 @@
++ static av_always_inline av_const int MULL(int a, int b, unsigned shift)
++ {
++     int rt, dummy;
+++    if (__builtin_constant_p(shift))
++     __asm__ (
++         "imull %3               \n\t"
++         "shrdl %4, %%edx, %%eax \n\t"
++         :"=a"(rt), "=d"(dummy)
++-        :"a"(a), "rm"(b), "ci"((uint8_t)shift)
+++        :"a"(a), "rm"(b), "i"(shift & 0x1F)
++     );
+++    else
+++        __asm__ (
+++            "imull %3               \n\t"
+++            "shrdl %4, %%edx, %%eax \n\t"
+++            :"=a"(rt), "=d"(dummy)
+++            :"a"(a), "rm"(b), "c"((uint8_t)shift)
+++        );
++     return rt;
++ }
++ 
++@@ -113,19 +121,31 @@ __asm__ volatile(\
++ // avoid +32 for shift optimization (gcc should do that ...)
++ #define NEG_SSR32 NEG_SSR32
++ static inline  int32_t NEG_SSR32( int32_t a, int8_t s){
+++    if (__builtin_constant_p(s))
++     __asm__ ("sarl %1, %0\n\t"
++          : "+r" (a)
++-         : "ic" ((uint8_t)(-s))
+++         : "i" (-s & 0x1F)
++     );
+++    else
+++        __asm__ ("sarl %1, %0\n\t"
+++               : "+r" (a)
+++               : "c" ((uint8_t)(-s))
+++        );
++     return a;
++ }
++ 
++ #define NEG_USR32 NEG_USR32
++ static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
+++    if (__builtin_constant_p(s))
++     __asm__ ("shrl %1, %0\n\t"
++          : "+r" (a)
++-         : "ic" ((uint8_t)(-s))
+++         : "i" (-s & 0x1F)
++     );
+++    else
+++        __asm__ ("shrl %1, %0\n\t"
+++               : "+r" (a)
+++               : "c" ((uint8_t)(-s))
+++        );
++     return a;
++ }
++ 
++-- 
++2.25.1
++
+-- 
+2.43.0
+

diff --git a/media-tv/kodi/kodi-20.3.ebuild b/media-tv/kodi/kodi-20.3.ebuild
new file mode 100644
index 000000000000..893bd5d6c5b5
--- /dev/null
+++ b/media-tv/kodi/kodi-20.3.ebuild
@@ -0,0 +1,474 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# FFmpeg can be unbundled, but is currently stuck at a very old version.
+# libdvd{css,read,nav} are not unbundlable without patching the buildsystem.
+
+# Versions for the forked projects that are bundled
+# See tools/depends/target/<project>/<project>-VERSION
+LIBDVDCSS_VERSION="1.4.3-Next-Nexus-Alpha2-2"
+LIBDVDREAD_VERSION="6.1.3-Next-Nexus-Alpha2-2"
+LIBDVDNAV_VERSION="6.1.1-Next-Nexus-Alpha2-2"
+FFMPEG_VERSION="4.4.1"
+CODENAME="Nexus"
+FFMPEG_KODI_VERSION="Alpha1"
+
+# Doesn't build with jdk-21
+_JAVA_PKG_WANT_BUILD_VM=( {openjdk{,-jre},icedtea}{,-bin}-{8,11,17} )
+JAVA_PKG_WANT_BUILD_VM=${_JAVA_PKG_WANT_BUILD_VM[@]}
+# Required to be set, but not used.
+JAVA_PKG_WANT_SOURCE="17"
+JAVA_PKG_WANT_TARGET="17"
+
+PYTHON_REQ_USE="sqlite,ssl"
+PYTHON_COMPAT=( python3_{10..11} ) # python3.12 support added in 21
+
+CPU_FLAGS="cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_arm_neon"
+
+inherit cmake desktop flag-o-matic java-pkg-2 linux-info optfeature pax-utils python-single-r1 xdg
+
+DESCRIPTION="A free and open source media-player and entertainment hub"
+HOMEPAGE="https://kodi.tv/"
+
+SRC_URI="
+	https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_VERSION}.tar.gz
+		-> libdvdnav-${LIBDVDNAV_VERSION}.tar.gz
+	https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_VERSION}.tar.gz
+		-> libdvdread-${LIBDVDREAD_VERSION}.tar.gz
+	css? (
+		https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_VERSION}.tar.gz
+			-> libdvdcss-${LIBDVDCSS_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
+	EGIT_REPO_URI="https://github.com/xbmc/xbmc.git"
+	if [[ ${PV} != "9999" ]]; then
+		EGIT_BRANCH="${CODENAME}"
+	fi
+	inherit git-r3
+else
+	MY_PV=${PV/_p/_r}
+	MY_PV=${MY_PV/_alpha/a}
+	MY_PV=${MY_PV/_beta/b}
+	MY_PV=${MY_PV/_rc/RC}
+	MY_PV="${MY_PV}-${CODENAME}"
+	MY_P="${PN}-${MY_PV}"
+	SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+	KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+	S=${WORKDIR}/xbmc-${MY_PV}
+fi
+
+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 doc eventclients gbm gles lcms libusb lirc mariadb mysql nfs +optical pipewire pulseaudio raspberry-pi samba system-ffmpeg test udf udev upnp vaapi vdpau wayland webserver X +xslt zeroconf ${CPU_FLAGS}"
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	^^ ( gbm wayland X )
+	?? ( mariadb mysql )
+	bluray? ( udf )
+	gbm? ( udev )
+	udev? ( !libusb )
+	vdpau? ( X !gles !gbm )
+	zeroconf? ( dbus )
+"
+RESTRICT="!test? ( test )"
+
+# dev-libs/libcec[-cubox] bug #818262
+COMMON_DEPEND="
+	>=dev-libs/flatbuffers-1.12.0:=
+	>=dev-libs/lzo-2.04:2
+	media-libs/giflib:=
+	>=media-libs/libjpeg-turbo-2.0.4:=
+	>=media-libs/libpng-1.6.26:0=
+	wayland? (
+		dev-cpp/waylandpp:=
+	)
+"
+COMMON_TARGET_DEPEND="${PYTHON_DEPS}
+	>=net-misc/curl-7.68.0[http2]
+	>=sys-libs/zlib-1.2.11
+	dev-db/sqlite:3
+	dev-libs/crossguid
+	>=dev-libs/fribidi-1.0.5
+	>=dev-libs/libcdio-2.1.0:=[cxx]
+	>=dev-libs/libfmt-6.1.2:=
+	dev-libs/libfstrcmp
+	dev-libs/libpcre[cxx]
+	>=dev-libs/openssl-1.1.1k:0=
+	>=dev-libs/spdlog-1.5.0:=
+	dev-libs/tinyxml[stl]
+	media-fonts/roboto
+	media-libs/libglvnd[X?]
+	>=media-libs/freetype-2.10.1
+	media-libs/harfbuzz:=
+	>=media-libs/libass-0.13.4:=
+	media-libs/mesa[egl(+),gbm(+)?,wayland?,X?]
+	>=media-libs/taglib-1.9.0
+	sci-libs/kissfft
+	virtual/libiconv
+	virtual/ttf-fonts
+	x11-libs/libdrm
+	$(python_gen_cond_dep '
+		dev-python/pillow[${PYTHON_USEDEP}]
+		dev-python/pycryptodome[${PYTHON_USEDEP}]
+	')
+	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.1.2:=
+	)
+	caps? (
+		sys-libs/libcap
+	)
+	cec? (
+		>=dev-libs/libcec-4.0[-cubox,raspberry-pi?]
+	)
+	dbus? (
+		sys-apps/dbus
+	)
+	gbm? (
+		>=dev-libs/libinput-1.10.5:=
+		x11-libs/libxkbcommon
+	)
+	gles? (
+		!raspberry-pi? (
+			media-libs/mesa[gles2]
+		)
+	)
+	!gles? (
+		media-libs/glu
+	)
+	lcms? (
+		>=media-libs/lcms-2.10:2
+	)
+	libusb? (
+		virtual/libusb:1
+	)
+	lirc? (
+		app-misc/lirc
+	)
+	mariadb? (
+		dev-db/mariadb-connector-c:=
+	)
+	mysql? (
+		dev-db/mysql-connector-c:=
+	)
+	nfs? (
+		>=net-fs/libnfs-2.0.0:=
+	)
+	pipewire? (
+		>=media-video/pipewire-0.3.24:=
+	)
+	pulseaudio? (
+		media-libs/libpulse
+	)
+	raspberry-pi? (
+		|| (
+			media-libs/raspberrypi-userland
+			media-libs/raspberrypi-userland-bin
+			media-libs/mesa[gles2,video_cards_vc4]
+		)
+	)
+	samba? (
+		>=net-fs/samba-3.4.6[smbclient(+)]
+	)
+	system-ffmpeg? (
+		>=media-video/ffmpeg-${FFMPEG_VERSION}:=[encode,postproc,vaapi?,vdpau?,X?]
+		=media-video/ffmpeg-4*[openssl]
+	)
+	!system-ffmpeg? (
+		app-arch/bzip2
+		media-libs/dav1d:=
+	)
+	udf? (
+		>=dev-libs/libudfread-1.0.0
+	)
+	udev? (
+		virtual/libudev:=
+	)
+	vaapi? (
+		media-libs/libva:=[wayland?,X?]
+	)
+	vdpau? (
+		|| (
+			>=x11-libs/libvdpau-1.1
+			>=x11-drivers/nvidia-drivers-180.51
+		)
+	)
+	wayland? (
+		>=x11-libs/libxkbcommon-0.4.1[wayland]
+	)
+	webserver? (
+		>=net-libs/libmicrohttpd-0.9.55:=[messages(+)]
+	)
+	X? (
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+	)
+	xslt? (
+		dev-libs/libxslt
+		>=dev-libs/libxml2-2.9.4
+	)
+	zeroconf? (
+		net-dns/avahi[dbus]
+	)
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	${COMMON_TARGET_DEPEND}
+"
+DEPEND="
+	${COMMON_DEPEND}
+	${COMMON_TARGET_DEPEND}
+	dev-libs/rapidjson
+	test? (
+		>=dev-cpp/gtest-1.10.0
+	)
+	wayland? (
+		>=dev-libs/wayland-protocols-1.7
+	)
+	X? (
+		x11-base/xorg-proto
+		x11-libs/libXrender
+	)
+"
+# <dev-lang/swig-4.2.0 https://github.com/xbmc/xbmc/issues/24385
+BDEPEND="
+	${COMMON_DEPEND}
+	dev-build/cmake
+	<dev-lang/swig-4.2.0
+	virtual/pkgconfig
+	<=virtual/jre-17:*
+	doc? (
+		app-text/doxygen
+	)
+"
+
+# bug #544020
+CONFIG_CHECK="~IP_MULTICAST"
+ERROR_IP_MULTICAST="
+In some cases Kodi needs to access multicast addresses.
+Please consider enabling IP_MULTICAST under Networking options.
+"
+
+PATCHES=(
+	"${FILESDIR}"/kodi-20.2-binutils-2.41.patch
+)
+
+pkg_setup() {
+	check_extra_config
+	java-pkg-2_pkg_setup
+	python-single-r1_pkg_setup
+}
+
+src_unpack() {
+	if [[ ${PV} == *9999 ]] ; then
+		git-r3_src_unpack
+	else
+		unpack ${MY_P}.tar.gz
+	fi
+}
+
+src_prepare() {
+	cmake_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
+
+	# Add all possible names for kissfft libraries
+	for datatype in {float,int16,int32,simd}; do
+		sed -i \
+			-e "s/\(find_library(KISSFFT_LIBRARY NAMES .*\)/\1 kissfft-${datatype} kissfft-${datatype}-openmp/" \
+			cmake/modules/FindKissFFT.cmake || die
+	done
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-Wno-dev # less noise
+
+		-DAPP_RENDER_SYSTEM=$(usex gles gles gl)
+		-DCORE_PLATFORM_NAME=$(usev gbm)$(usev wayland)$(usev X x11)
+		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+		-DENABLE_TESTING=$(usex test)
+		-DVERBOSE=ON
+
+		# Enforce use of configured python interpeter
+		-DPYTHON_PATH=$(python_get_library_path)
+		-DPYTHON_VER=${EPYTHON##python} # wont work for pypy
+
+		# Toolchain
+		-DENABLE_CCACHE=OFF
+		-DENABLE_CLANGFORMAT=OFF
+		-DENABLE_CLANGTIDY=OFF
+		-DENABLE_CPPCHECK=OFF
+		-DENABLE_INCLUDEWHATYOUUSE=OFF
+		# https://bugs.gentoo.org/show_bug.cgi?id=606124
+		-DENABLE_GOLD=OFF
+		-DENABLE_LLD=OFF
+		-DENABLE_MOLD=OFF
+		-DUSE_LTO=OFF
+
+		# Features
+		-DENABLE_AIRTUNES=$(usex airplay)
+		-DENABLE_ALSA=$(usex alsa)
+		-DENABLE_AVAHI=$(usex zeroconf)
+		-DENABLE_BLUETOOTH=$(usex bluetooth)
+		-DENABLE_BLURAY=$(usex bluray)
+		-DENABLE_CAP=$(usex caps)
+		-DENABLE_CEC=$(usex cec)
+		-DENABLE_DBUS=$(usex dbus)
+		-DENABLE_DVDCSS=$(usex css)
+		-DENABLE_EVENTCLIENTS=ON # alway enable to have 'kodi-send' and filter extra staff in 'src_install()'
+		-DENABLE_ISO9660PP=$(usex optical)
+		-DENABLE_LCMS2=$(usex lcms)
+		-DENABLE_LIRCCLIENT=$(usex lirc)
+		-DENABLE_MARIADBCLIENT=$(usex mariadb)
+		-DENABLE_MDNS=OFF # used only on Android
+		-DENABLE_MICROHTTPD=$(usex webserver)
+		-DENABLE_MYSQLCLIENT=$(usex mysql)
+		-DENABLE_NFS=$(usex nfs)
+		-DENABLE_OPENGL=$(usex !gles)
+		-DENABLE_OPENGLES=$(usex gles)
+		-DENABLE_OPTICAL=$(usex optical)
+		-DENABLE_PIPEWIRE=$(usex pipewire)
+		-DENABLE_PLIST=$(usex airplay)
+		-DENABLE_PULSEAUDIO=$(usex pulseaudio)
+		-DENABLE_SMBCLIENT=$(usex samba)
+		-DENABLE_SNDIO=OFF
+		-DENABLE_UDEV=$(usex udev)
+		-DENABLE_UDFREAD=$(usex udf)
+		-DENABLE_UPNP=$(usex upnp)
+		-DENABLE_VAAPI=$(usex vaapi)
+		-DENABLE_VDPAU=$(usex vdpau)
+		-DENABLE_XSLT=$(usex xslt)
+
+		#To bundle or not
+		-DENABLE_INTERNAL_CROSSGUID=OFF
+		-DENABLE_INTERNAL_DAV1D=OFF
+		-DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)"
+		-DENABLE_INTERNAL_FLATBUFFERS=OFF
+		-DENABLE_INTERNAL_FMT=OFF
+		-DENABLE_INTERNAL_FSTRCMP=OFF
+		-DENABLE_INTERNAL_GTEST=OFF
+		-DENABLE_INTERNAL_KISSFFT=OFF
+		-DENABLE_INTERNAL_PCRE=OFF
+		-DENABLE_INTERNAL_RapidJSON=OFF
+		-DENABLE_INTERNAL_SPDLOG=OFF
+		-DENABLE_INTERNAL_TAGLIB=OFF
+		-DENABLE_INTERNAL_UDFREAD=OFF
+
+		-DWITH_FFMPEG=$(usex system-ffmpeg)
+
+		-Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_VERSION}.tar.gz"
+		-Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_VERSION}.tar.gz"
+	)
+
+	# Separated to avoid "Manually-specified variables were not used by the project:"
+	use css && mycmakeargs+=( -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_VERSION}.tar.gz" )
+	use !system-ffmpeg && mycmakeargs+=(
+		-DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz"
+	)
+	use nfs && mycmakeargs+=( -DENABLE_INTERNAL_NFS=OFF )
+	use !udev && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) )
+	use X && use !gles && mycmakeargs+=( -DENABLE_GLX=ON )
+
+	for flag in ${CPU_FLAGS[@]} ; do
+		local name=${flag#cpu_flags_*_}
+		mycmakeargs+=( -DENABLE_${name^^}=$(usex ${flag}) )
+	done
+
+	if ! is-flag -DNDEBUG && ! is-flag -D_DEBUG ; then
+		# Kodi requires one of the 'NDEBUG' or '_DEBUG' defines
+		append-cflags -DNDEBUG
+		append-cxxflags -DNDEBUG
+	fi
+
+	# Violates ODR (bug #860984) and USE_LTO does spooky stuff
+	# https://github.com/xbmc/xbmc/commit/cb72a22d54a91845b1092c295f84eeb48328921e
+	filter-lto
+
+	cmake_src_configure
+}
+
+src_compile() {
+	cmake_src_compile all
+	use doc && cmake_build doc
+	use test && cmake_build kodi-test
+}
+
+src_test() {
+	local -x CMAKE_SKIP_TESTS=(
+		# Known failing, unreliable test
+		# bug #743938
+		TestCPUInfo.GetCPUFrequency
+		# Test failure stemming from sci-libs/kissfft
+		# The difference between output[2i] and (i==freq1?1.0:0.0) is inf, which exceeds 1e-7, where output[2i]
+		# evaluates to inf,(i==freq1?1.0:0.0) evaluates to 0, and 1e-7 evaluates to 9.9999999999999995e-08.
+		TestRFFT.SimpleSignal
+		# bug #779184
+		# https://github.com/xbmc/xbmc/issues/18594
+		$(usev x86 TestDateTime.SetFromDBTime)
+	)
+
+	# see https://github.com/xbmc/xbmc/issues/17860#issuecomment-630120213
+	local -x KODI_HOME="${BUILD_DIR}"
+
+	cmake_src_test
+}
+
+src_install() {
+	cmake_src_install
+
+	# bug #457588
+	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
+
+	if use !eventclients ; then
+		rm -f "${ED}"/usr/bin/kodi-ps3remote || die
+		rm -f "${D}"$(python_get_sitedir)/kodi/ps3_remote.py || die
+		rm -rf "${D}"$(python_get_sitedir)/kodi/ps3 || die
+		rm -rf "${D}"$(python_get_sitedir)/kodi/bt || die
+		rm -rf "${ED}"/usr/share/doc/${PF}/kodi-eventclients-dev || die
+	fi
+
+	python_optimize "${D}$(python_get_sitedir)"
+
+	einstalldocs
+	use doc && dodoc -r "${S}"/docs/html/
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if use dbus ; then
+		optfeature "getting battery level and active power source" sys-power/upower
+		optfeature "control of shutdown, reboot, suspend, and hibernate" sys-auth/elogind sys-apps/systemd
+		optfeature "storage management support (automounting, volume monitoring, etc)" sys-fs/udisks:2
+	fi
+}


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2024-05-23 18:01 Matt Turner
  0 siblings, 0 replies; 24+ messages in thread
From: Matt Turner @ 2024-05-23 18:01 UTC (permalink / raw
  To: gentoo-commits

commit:     eef3a99ed8f0e12d70bb434ecb3715cd3c7c9ce2
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Thu May 23 09:56:51 2024 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Thu May 23 17:55:09 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eef3a99e

media-tv/kodi: fix gcc-14

Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 media-tv/kodi/files/kodi-21-fix-gcc14.patch | 42 +++++++++++++++++++++++++++++
 media-tv/kodi/kodi-21.0-r1.ebuild           |  4 +++
 2 files changed, 46 insertions(+)

diff --git a/media-tv/kodi/files/kodi-21-fix-gcc14.patch b/media-tv/kodi/files/kodi-21-fix-gcc14.patch
new file mode 100644
index 000000000000..fdfa36723f1f
--- /dev/null
+++ b/media-tv/kodi/files/kodi-21-fix-gcc14.patch
@@ -0,0 +1,42 @@
+https://github.com/xbmc/xbmc/pull/25106
+
+From 2bf5ab07731b3d4160196e6b8d9ab9e25bea2ef9 Mon Sep 17 00:00:00 2001
+From: Rudi Heitbaum <rudi@heitbaum.com>
+Date: Thu, 2 May 2024 08:02:42 +0000
+Subject: [PATCH 1/2] add missing c++ headers
+
+Add missing headers which are no longer indirectly included by
+other headers, fixes build with gcc-14
+
+Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
+--- a/xbmc/platform/posix/filesystem/SMBWSDiscoveryListener.cpp
++++ b/xbmc/platform/posix/filesystem/SMBWSDiscoveryListener.cpp
+@@ -17,6 +17,7 @@
+ 
+ #include "platform/posix/filesystem/SMBWSDiscovery.h"
+ 
++#include <algorithm>
+ #include <array>
+ #include <chrono>
+ #include <mutex>
+
+From b6ddd8fb25ef20e8adb9a9f9b53bebf0cee3a970 Mon Sep 17 00:00:00 2001
+From: Rudi Heitbaum <rudi@heitbaum.com>
+Date: Thu, 2 May 2024 08:05:00 +0000
+Subject: [PATCH 2/2] Geometry: fix template-id not allowed for constructor
+
+fixes gcc-14 error:
+- warning: template-id not allowed for constructor in C++20
+
+Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
+--- a/xbmc/utils/Geometry.h
++++ b/xbmc/utils/Geometry.h
+@@ -177,7 +177,7 @@ template <typename T> class CSizeGen
+     return {m_w, m_h};
+   }
+ 
+-  template<class U> explicit CSizeGen<T>(const CSizeGen<U>& rhs)
++  template<class U> explicit CSizeGen(const CSizeGen<U>& rhs)
+   {
+     CheckSet(static_cast<T> (rhs.m_w), static_cast<T> (rhs.m_h));
+   }

diff --git a/media-tv/kodi/kodi-21.0-r1.ebuild b/media-tv/kodi/kodi-21.0-r1.ebuild
index bdc7176cb631..18b27c8c116d 100644
--- a/media-tv/kodi/kodi-21.0-r1.ebuild
+++ b/media-tv/kodi/kodi-21.0-r1.ebuild
@@ -259,6 +259,10 @@ BDEPEND="
 	)
 "
 
+PATHCES=(
+	"${FILESDIR}"/kodi-21-fix-gcc14.ebuild
+)
+
 # bug #544020
 CONFIG_CHECK="~IP_MULTICAST"
 ERROR_IP_MULTICAST="


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2024-06-02  7:10 Sam James
  0 siblings, 0 replies; 24+ messages in thread
From: Sam James @ 2024-06-02  7:10 UTC (permalink / raw
  To: gentoo-commits

commit:     4012f0c17431071322b37b09006a6f6aa7334735
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Sat Jun  1 16:58:08 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jun  2 07:09:28 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4012f0c1

media-tv/kodi: fix issue that breaks playing DVDs and BluRays

Bug: https://bugs.gentoo.org/933370
Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-tv/kodi/files/kodi-21-fix-dvd-playing.patch |  50 +++
 media-tv/kodi/kodi-21.0-r2.ebuild                 | 516 ++++++++++++++++++++++
 2 files changed, 566 insertions(+)

diff --git a/media-tv/kodi/files/kodi-21-fix-dvd-playing.patch b/media-tv/kodi/files/kodi-21-fix-dvd-playing.patch
new file mode 100644
index 000000000000..febcdc2197e4
--- /dev/null
+++ b/media-tv/kodi/files/kodi-21-fix-dvd-playing.patch
@@ -0,0 +1,50 @@
+https://bugs.gentoo.org/933370
+https://github.com/xbmc/xbmc/issues/24955
+https://github.com/xbmc/xbmc/pull/24968
+
+From e8493d3ac390bac4ca74fa5435bb258d6764dae5 Mon Sep 17 00:00:00 2001
+From: Jose Luis Marti <joseluis.marti@gmail.com>
+Date: Tue, 9 Apr 2024 23:06:10 +0200
+Subject: [PATCH] [DllLoader] Remove fstatvfs64 wrapper
+
+Co-authored-by: fuzzard <fuzzard@users.noreply.github.com>
+--- a/xbmc/cores/DllLoader/exports/wrapper.c
++++ b/xbmc/cores/DllLoader/exports/wrapper.c
+@@ -36,7 +36,6 @@ typedef fpos_t    fpos64_t;
+ #endif
+ 
+ struct mntent;
+-struct statvfs64;
+ 
+ void* dllmalloc(size_t );
+ void* dllcalloc( size_t , size_t );
+@@ -92,7 +91,6 @@ int dll_ftrylockfile(FILE *file);
+ void dll_funlockfile(FILE *file);
+ int dll_fstat64(int fd, struct stat64 *buf);
+ int dll_fstat(int fd, struct _stat *buf);
+-int dll_fstatvfs64(int fildes, struct statvfs64 *buf);
+ FILE* dll_popen(const char *command, const char *mode);
+ void* dll_dlopen(const char *filename, int flag);
+ int dll_setvbuf(FILE *stream, char *buf, int type, size_t size);
+@@ -445,11 +443,6 @@ int __wrap_fstat64(int fd, struct stat64* buf)
+   return dll_fstat64(fd, buf);
+ }
+ 
+-int __wrap_fstatvfs64(int fd, struct statvfs64* buf)
+-{
+-  return dll_fstatvfs64(fd, buf);
+-}
+-
+ int __wrap_setvbuf(FILE *stream, char *buf, int type, size_t size)
+ {
+    return dll_setvbuf(stream, buf, type, size);
+--- a/xbmc/cores/DllLoader/exports/wrapper_mach_alias
++++ b/xbmc/cores/DllLoader/exports/wrapper_mach_alias
+@@ -20,7 +20,6 @@ ___wrap_fread _fread
+ ___wrap_freopen _freopen
+ ___wrap_fseek _fseek
+ ___wrap_fsetpos _fsetpos
+-___wrap_fstatvfs64 _fstatvfs64
+ ___wrap_ftell _ftell
+ ___wrap_ftrylockfile _ftrylockfile
+ ___wrap_funlockfile _funlockfile

diff --git a/media-tv/kodi/kodi-21.0-r2.ebuild b/media-tv/kodi/kodi-21.0-r2.ebuild
new file mode 100644
index 000000000000..f975ad26a22a
--- /dev/null
+++ b/media-tv/kodi/kodi-21.0-r2.ebuild
@@ -0,0 +1,516 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CODENAME="Omega"
+
+# libdvd{css,read,nav} are not unbundlable without patching the buildsystem.
+
+# Versions for the forked projects that are bundled
+# See tools/depends/target/<project>/<project>-VERSION
+LIBDVDCSS_VERSION="1.4.3-Next-Nexus-Alpha2-2"
+LIBDVDREAD_VERSION="6.1.3-Next-Nexus-Alpha2-2"
+LIBDVDNAV_VERSION="6.1.1-Next-Nexus-Alpha2-2"
+FFMPEG_VERSION="6.0.1"
+
+# Java bundles from xbmc/interfaces/swig/CMakeLists.txt
+GROOVY_VERSION="4.0.16"
+APACHE_COMMON_LANG_VERSION="3.14.0"
+APACHE_COMMON_TEXT_VERSION="1.11.0"
+
+# Doesn't build with jdk-21
+_JAVA_PKG_WANT_BUILD_VM=( {openjdk{,-jre},icedtea}{,-bin}-{8,11,17} )
+JAVA_PKG_WANT_BUILD_VM=${_JAVA_PKG_WANT_BUILD_VM[@]}
+# Required to be set, but not used.
+JAVA_PKG_WANT_SOURCE="17"
+JAVA_PKG_WANT_TARGET="17"
+
+PYTHON_REQ_USE="sqlite,ssl"
+PYTHON_COMPAT=( python3_{10..12} )
+
+CPU_FLAGS="cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_arm_neon"
+
+inherit autotools cmake desktop flag-o-matic java-pkg-2 libtool linux-info optfeature pax-utils python-single-r1 \
+	toolchain-funcs xdg
+
+DESCRIPTION="A free and open source media-player and entertainment hub"
+HOMEPAGE="https://kodi.tv/"
+
+SRC_URI="
+	https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_VERSION}.tar.gz
+		-> libdvdnav-${LIBDVDNAV_VERSION}.tar.gz
+	https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_VERSION}.tar.gz
+		-> libdvdread-${LIBDVDREAD_VERSION}.tar.gz
+	https://mirrors.kodi.tv/build-deps/sources/apache-groovy-binary-${GROOVY_VERSION}.zip
+	https://mirrors.kodi.tv/build-deps/sources/commons-lang3-${APACHE_COMMON_LANG_VERSION}-bin.tar.gz
+	https://mirrors.kodi.tv/build-deps/sources/commons-text-${APACHE_COMMON_TEXT_VERSION}-bin.tar.gz
+	css? (
+		https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_VERSION}.tar.gz
+			-> libdvdcss-${LIBDVDCSS_VERSION}.tar.gz
+	)
+	!system-ffmpeg? (
+		https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz
+	)
+"
+if [[ ${PV} == *9999 ]] ; then
+	EGIT_REPO_URI="https://github.com/xbmc/xbmc.git"
+	if [[ ${PV} != "9999" ]]; then
+		EGIT_BRANCH="${CODENAME}"
+	fi
+	inherit git-r3
+else
+	MY_PV=${PV/_p/_r}
+	MY_PV=${MY_PV/_alpha/a}
+	MY_PV=${MY_PV/_beta/b}
+	MY_PV=${MY_PV/_rc/rc}
+	MY_PV="${MY_PV}-${CODENAME}"
+	MY_P="${PN}-${MY_PV}"
+	SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+	KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+	S=${WORKDIR}/xbmc-${MY_PV}
+fi
+
+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 doc eventclients gbm gles lcms libusb lirc mariadb mysql nfs +optical pipewire pulseaudio samba soc +system-ffmpeg test udf udev upnp vaapi vdpau wayland webserver X +xslt zeroconf ${CPU_FLAGS}"
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	^^ ( gbm wayland X )
+	?? ( mariadb mysql )
+	bluray? ( udf )
+	gbm? ( udev )
+	soc? ( system-ffmpeg )
+	udev? ( !libusb )
+	vdpau? ( X !gles !gbm )
+	zeroconf? ( dbus )
+"
+RESTRICT="!test? ( test )"
+
+# dev-libs/libcec[-cubox] bug #818262
+COMMON_DEPEND="
+	>=dev-libs/flatbuffers-23.3.3:=
+	>=dev-libs/lzo-2.04:2
+	media-libs/giflib:=
+	>=media-libs/libjpeg-turbo-2.0.4:=
+	>=media-libs/libpng-1.6.26:0=
+	wayland? (
+		dev-cpp/waylandpp:=
+	)
+"
+COMMON_TARGET_DEPEND="${PYTHON_DEPS}
+	>=net-misc/curl-7.68.0[http2]
+	>=sys-libs/zlib-1.2.11
+	dev-db/sqlite:3
+	dev-libs/crossguid
+	>=dev-libs/fribidi-1.0.5
+	>=dev-libs/libcdio-2.1.0:=[cxx]
+	>=dev-libs/libfmt-6.1.2:=
+	dev-libs/libfstrcmp
+	dev-libs/libpcre[cxx]
+	>=dev-libs/openssl-1.1.1k:0=
+	>=dev-libs/spdlog-1.5.0:=
+	dev-libs/tinyxml[stl]
+	dev-libs/tinyxml2:=
+	media-fonts/roboto
+	media-libs/libglvnd[X?]
+	>=media-libs/freetype-2.10.1
+	media-libs/harfbuzz:=
+	>=media-libs/libass-0.15.0:=
+	media-libs/mesa[egl(+),gbm(+)?,wayland?,X?]
+	>=media-libs/taglib-1.9.0
+	=media-video/ffmpeg-6*:=[encode,soc(-)?,postproc,vaapi?,vdpau?,X?]
+	sci-libs/kissfft
+	virtual/libiconv
+	virtual/ttf-fonts
+	x11-libs/libdrm
+	$(python_gen_cond_dep '
+		dev-python/pillow[${PYTHON_USEDEP}]
+		dev-python/pycryptodome[${PYTHON_USEDEP}]
+	')
+	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.1.2:=
+	)
+	caps? (
+		sys-libs/libcap
+	)
+	cec? (
+		>=dev-libs/libcec-4.0[-cubox]
+	)
+	dbus? (
+		sys-apps/dbus
+	)
+	gbm? (
+		>=dev-libs/libinput-1.10.5:=
+		media-libs/libdisplay-info
+		x11-libs/libxkbcommon
+	)
+	gles? (
+		|| (
+			>=media-libs/mesa-24.1.0_rc1[opengl]
+			<media-libs/mesa-24.1.0_rc1[gles2]
+		)
+	)
+	!gles? (
+		media-libs/glu
+	)
+	lcms? (
+		>=media-libs/lcms-2.10:2
+	)
+	libusb? (
+		virtual/libusb:1
+	)
+	lirc? (
+		app-misc/lirc
+	)
+	mariadb? (
+		dev-db/mariadb-connector-c:=
+	)
+	mysql? (
+		dev-db/mysql-connector-c:=
+	)
+	nfs? (
+		>=net-fs/libnfs-2.0.0:=
+	)
+	pipewire? (
+		>=media-video/pipewire-0.3.50:=
+	)
+	pulseaudio? (
+		media-libs/libpulse
+	)
+	samba? (
+		>=net-fs/samba-3.4.6[smbclient(+)]
+	)
+	udf? (
+		>=dev-libs/libudfread-1.0.0
+	)
+	udev? (
+		virtual/libudev:=
+	)
+	vaapi? (
+		media-libs/libva:=[wayland?,X?]
+	)
+	vdpau? (
+		|| (
+			>=x11-libs/libvdpau-1.1
+			>=x11-drivers/nvidia-drivers-180.51
+		)
+	)
+	wayland? (
+		>=x11-libs/libxkbcommon-0.4.1[wayland]
+	)
+	webserver? (
+		>=net-libs/libmicrohttpd-0.9.77:=[messages(+)]
+	)
+	X? (
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+	)
+	xslt? (
+		dev-libs/libxslt
+		>=dev-libs/libxml2-2.9.4
+	)
+	zeroconf? (
+		net-dns/avahi[dbus]
+	)
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	${COMMON_TARGET_DEPEND}
+"
+DEPEND="
+	${COMMON_DEPEND}
+	${COMMON_TARGET_DEPEND}
+	>=dev-libs/rapidjson-1.0.2
+	test? (
+		>=dev-cpp/gtest-1.10.0
+	)
+	wayland? (
+		>=dev-libs/wayland-protocols-1.7
+	)
+	X? (
+		x11-base/xorg-proto
+		x11-libs/libXrender
+	)
+"
+BDEPEND="
+	${COMMON_DEPEND}
+	app-arch/unzip
+	dev-build/cmake
+	dev-lang/swig
+	virtual/pkgconfig
+	<=virtual/jre-17:*
+	doc? (
+		app-text/doxygen
+	)
+"
+
+PATCHES=(
+	"${FILESDIR}"/kodi-21-fix-gcc14.patch
+	"${FILESDIR}"/kodi-21-fix-dvd-playing.patch
+)
+
+# bug #544020
+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
+	java-pkg-2_pkg_setup
+	python-single-r1_pkg_setup
+}
+
+src_unpack() {
+	if [[ ${PV} == *9999 ]] ; then
+		git-r3_src_unpack
+	else
+		unpack ${MY_P}.tar.gz
+	fi
+
+	unpack apache-groovy-binary-${GROOVY_VERSION}.zip
+	unpack commons-lang3-${APACHE_COMMON_LANG_VERSION}-bin.tar.gz
+	unpack commons-text-${APACHE_COMMON_TEXT_VERSION}-bin.tar.gz
+}
+
+src_prepare() {
+	cmake_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
+
+	# Add all possible names for kissfft libraries
+	for datatype in {float,int16,int32,simd}; do
+		sed -i \
+			-e "s/\(find_library(KISSFFT_LIBRARY NAMES .*\)/\1 kissfft-${datatype} kissfft-${datatype}-openmp/" \
+			cmake/modules/FindKissFFT.cmake || die
+	done
+
+	if tc-is-cross-compiler; then
+		# These tools are automatically built with CMake during a native build
+		# but need to be built in advance using Autotools for a cross build.
+		NATIVE_TOOLS=(
+			TexturePacker
+			JsonSchemaBuilder
+		)
+
+		local t
+		for t in "${NATIVE_TOOLS[@]}" ; do
+			pushd "${S}/tools/depends/native/$t/src" >/dev/null || die
+			AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" eautoreconf
+			popd >/dev/null || die
+		done
+		elibtoolize
+	fi
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-Wno-dev # less noise
+
+		-DAPP_RENDER_SYSTEM=$(usex gles gles gl)
+		-DCORE_PLATFORM_NAME=$(usev gbm)$(usev wayland)$(usev X x11)
+		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+		-DENABLE_TESTING=$(usex test)
+		-DVERBOSE=ON
+
+		# Enforce use of configured python interpeter
+		-DPYTHON_PATH=$(python_get_library_path)
+		-DPYTHON_VER=${EPYTHON##python} # wont work for pypy
+
+		# Toolchain
+		-DENABLE_CCACHE=OFF
+		-DENABLE_CLANGFORMAT=OFF
+		-DENABLE_CLANGTIDY=OFF
+		-DENABLE_CPPCHECK=OFF
+		-DENABLE_INCLUDEWHATYOUUSE=OFF
+		# https://bugs.gentoo.org/show_bug.cgi?id=606124
+		-DENABLE_GOLD=OFF
+		-DENABLE_LLD=OFF
+		-DENABLE_MOLD=OFF
+		-DUSE_LTO=OFF
+
+		# Features
+		-DENABLE_AIRTUNES=$(usex airplay)
+		-DENABLE_ALSA=$(usex alsa)
+		-DENABLE_AVAHI=$(usex zeroconf)
+		-DENABLE_BLUETOOTH=$(usex bluetooth)
+		-DENABLE_BLURAY=$(usex bluray)
+		-DENABLE_CAP=$(usex caps)
+		-DENABLE_CEC=$(usex cec)
+		-DENABLE_DBUS=$(usex dbus)
+		-DENABLE_DVDCSS=$(usex css)
+		-DENABLE_EVENTCLIENTS=ON # alway enable to have 'kodi-send' and filter extra staff in 'src_install()'
+		-DENABLE_ISO9660PP=$(usex optical)
+		-DENABLE_LCMS2=$(usex lcms)
+		-DENABLE_LIRCCLIENT=$(usex lirc)
+		-DENABLE_MARIADBCLIENT=$(usex mariadb)
+		-DENABLE_MDNS=OFF # used only on Android
+		-DENABLE_MICROHTTPD=$(usex webserver)
+		-DENABLE_MYSQLCLIENT=$(usex mysql)
+		-DENABLE_NFS=$(usex nfs)
+		-DENABLE_OPENGL=$(usex !gles)
+		-DENABLE_OPENGLES=$(usex gles)
+		-DENABLE_OPTICAL=$(usex optical)
+		-DENABLE_PIPEWIRE=$(usex pipewire)
+		-DENABLE_PLIST=$(usex airplay)
+		-DENABLE_PULSEAUDIO=$(usex pulseaudio)
+		-DENABLE_SMBCLIENT=$(usex samba)
+		-DENABLE_SNDIO=OFF
+		-DENABLE_UDEV=$(usex udev)
+		-DENABLE_UDFREAD=$(usex udf)
+		-DENABLE_UPNP=$(usex upnp)
+		-DENABLE_VAAPI=$(usex vaapi)
+		-DENABLE_VDPAU=$(usex vdpau)
+		-DENABLE_XSLT=$(usex xslt)
+
+		-DWITH_FFMPEG=$(usex system-ffmpeg)
+
+		#To bundle or not
+		-DENABLE_INTERNAL_CROSSGUID=OFF
+		-DENABLE_INTERNAL_DAV1D=OFF
+		-DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)"
+		-DENABLE_INTERNAL_FLATBUFFERS=OFF
+		-DENABLE_INTERNAL_FMT=OFF
+		-DENABLE_INTERNAL_FSTRCMP=OFF
+		-DENABLE_INTERNAL_GTEST=OFF
+		-DENABLE_INTERNAL_KISSFFT=OFF
+		-DENABLE_INTERNAL_PCRE=OFF
+		-DENABLE_INTERNAL_RapidJSON=OFF
+		-DENABLE_INTERNAL_SPDLOG=OFF
+		-DENABLE_INTERNAL_TAGLIB=OFF
+		-DENABLE_INTERNAL_UDFREAD=OFF
+
+		-DTARBALL_DIR="${DISTDIR}"
+		-Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_VERSION}.tar.gz"
+		-Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_VERSION}.tar.gz"
+		-Dgroovy_SOURCE_DIR="${WORKDIR}/groovy-${GROOVY_VERSION}"
+		-Dapache-commons-lang_SOURCE_DIR="${WORKDIR}/commons-lang3-${APACHE_COMMON_LANG_VERSION}"
+		-Dapache-commons-text_SOURCE_DIR="${WORKDIR}/commons-text-${APACHE_COMMON_TEXT_VERSION}"
+	)
+
+	# Separated to avoid "Manually-specified variables were not used by the project:"
+	use cec && mycmakeargs+=( -DENABLE_INTERNAL_CEC=OFF )
+	use css && mycmakeargs+=( -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_VERSION}.tar.gz" )
+	use nfs && mycmakeargs+=( -DENABLE_INTERNAL_NFS=OFF )
+	use !system-ffmpeg && mycmakeargs+=(
+		-DFFMPEG_URL="${DISTDIR}/ffmpeg-${FFMPEG_VERSION}.tar.gz"
+	)
+	use !udev && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) )
+	use X && use !gles && mycmakeargs+=( -DENABLE_GLX=ON )
+
+	for flag in ${CPU_FLAGS[@]} ; do
+		local name=${flag#cpu_flags_*_}
+		mycmakeargs+=( -DENABLE_${name^^}=$(usex ${flag}) )
+	done
+
+	if ! is-flag -DNDEBUG && ! is-flag -D_DEBUG ; then
+		# Kodi requires one of the 'NDEBUG' or '_DEBUG' defines
+		append-cflags -DNDEBUG
+		append-cxxflags -DNDEBUG
+	fi
+
+	# Violates ODR (bug #860984) and USE_LTO does spooky stuff
+	# https://github.com/xbmc/xbmc/commit/cb72a22d54a91845b1092c295f84eeb48328921e
+	filter-lto
+
+	if tc-is-cross-compiler; then
+		for t in "${NATIVE_TOOLS[@]}" ; do
+			pushd "${S}/tools/depends/native/$t/src" >/dev/null || die
+			econf_build
+			install -m0755 /dev/null "$t" || die # Actually build later.
+			mycmakeargs+=( -DWITH_${t^^}="${PWD}/$t" )
+			popd >/dev/null || die
+		done
+	fi
+
+	cmake_src_configure
+}
+
+src_compile() {
+	if tc-is-cross-compiler; then
+		for t in "${NATIVE_TOOLS[@]}" ; do
+			emake -C "${S}/tools/depends/native/$t/src"
+		done
+	fi
+
+	cmake_src_compile all
+	use doc && cmake_build doc
+	use test && cmake_build kodi-test
+}
+
+src_test() {
+	local -x CMAKE_SKIP_TESTS=(
+		# Known failing, unreliable test
+		# bug #743938
+		TestCPUInfo.GetCPUFrequency
+		# Test failure stemming from sci-libs/kissfft
+		# The difference between output[2i] and (i==freq1?1.0:0.0) is inf, which exceeds 1e-7, where output[2i]
+		# evaluates to inf,(i==freq1?1.0:0.0) evaluates to 0, and 1e-7 evaluates to 9.9999999999999995e-08.
+		TestRFFT.SimpleSignal
+		# bug #779184
+		# https://github.com/xbmc/xbmc/issues/18594
+		$(usev x86 TestDateTime.SetFromDBTime)
+		# Tries to ping localhost, naturally breaking network-sandbox
+		TestNetwork.PingHost
+	)
+
+	# see https://github.com/xbmc/xbmc/issues/17860#issuecomment-630120213
+	local -x KODI_HOME="${BUILD_DIR}"
+
+	cmake_src_test
+}
+
+src_install() {
+	cmake_src_install
+
+	# bug #457588
+	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
+
+	if use !eventclients ; then
+		rm -f "${ED}"/usr/bin/kodi-ps3remote || die
+		rm -f "${D}"$(python_get_sitedir)/kodi/ps3_remote.py || die
+		rm -rf "${D}"$(python_get_sitedir)/kodi/ps3 || die
+		rm -rf "${D}"$(python_get_sitedir)/kodi/bt || die
+		rm -rf "${ED}"/usr/share/doc/${PF}/kodi-eventclients-dev || die
+	fi
+
+	python_optimize "${D}$(python_get_sitedir)"
+
+	einstalldocs
+	use doc && dodoc -r "${S}"/docs/html/
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if use dbus ; then
+		optfeature "getting battery level and active power source" sys-power/upower
+		optfeature "control of shutdown, reboot, suspend, and hibernate" sys-auth/elogind sys-apps/systemd
+		optfeature "storage management support (automounting, volume monitoring, etc)" sys-fs/udisks:2
+	fi
+}


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2024-08-25 16:10 Sam James
  0 siblings, 0 replies; 24+ messages in thread
From: Sam James @ 2024-08-25 16:10 UTC (permalink / raw
  To: gentoo-commits

commit:     dd83e4cf9ccbccd0cd854c4b503c775fb048acc8
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Sun Aug 18 08:03:07 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Aug 25 16:08:22 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dd83e4cf

media-tv/kodi: add 21.1

* Allow building multiple with display backends.
* Allow building with openjdk-21.
* Skip TestDateTime for 32-bit arches comphensively.
* Explicitly list licenses for vendored dependencies.
* Fix system-ffmpeg

Bug: https://bugs.gentoo.org/779184
Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-tv/kodi/Manifest                             |   1 +
 .../files/kodi-21-optional-ffmpeg-libx11.patch     |  14 +
 .../files/kodi-21.1-silence-libdvdread-git.patch   |  36 ++
 media-tv/kodi/kodi-21.1.ebuild                     | 545 +++++++++++++++++++++
 4 files changed, 596 insertions(+)

diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
index 3f1e09c883ae..470709e254cd 100644
--- a/media-tv/kodi/Manifest
+++ b/media-tv/kodi/Manifest
@@ -7,6 +7,7 @@ DIST ffmpeg-kodi-4.4.1-Nexus-Alpha1.tar.gz 13725564 BLAKE2B 51d310e7000aeba657d5
 DIST kodi-19.5-Matrix.tar.gz 53496968 BLAKE2B 89855e4d59faa5734e945e50267c2ec8d8e8bef91ecfa49ae49dd99f749a59609b55c57821042939082a8f98ea95f7edc3de0fa0494e218d454c67b79807ef87 SHA512 b560c068491a7f62894167da99be082f0e6a8a840cbfe1fb0cef5c844cda959bd3b5479a435b58616bb2a8454083ad393a4d49de05fbbdb0817a0fad9726e52f
 DIST kodi-20.5-Nexus.tar.gz 54568445 BLAKE2B 15eb409918fa3768528d9abd24c52fd8b94c82699ef2ce10a529278fe25544dc335b66d137ae8ae304511cd92c1c0be34881937ec705ba936f5a4b0d737903f7 SHA512 a47a54ca11e1d3daeddea8c1ae716cd4461e3441de43a026a920c709b2ff5c7e0acc2a5fd4ac8c15f0da1940bd7f21a65eff32203ad8e167603c1576b21d4dcc
 DIST kodi-21.0-Omega.tar.gz 40987733 BLAKE2B 33adaf588b3362dc9d184bfb66c36ad5fa2e442255da47db4813f926e73f5a607dd7de809ecf8a4982f985bc8dac53cba17fb9db6a009bb0cdb6284db3b1edb4 SHA512 9c2ca6b6e72197d2b1c26a47cf4ddc209318fcaa5a30ea20475ecc5518c7d1395c2e9cf3e3a75a13334b0505e7b417acdb0d76a20567a0c86841b3e69232625b
+DIST kodi-21.1-Omega.tar.gz 41091890 BLAKE2B e711ef9b958ff3f8e006913ea6c42092164eeaae7011c2307f6d9846509e58db101a19dd51f4e95000de2f30ca2e77fd196187223d0ced7adad233d3ab57e286 SHA512 8458447c2a6d7ce0fdcfc7ec9b4ff1f8be0abf18a16804d245c3cef99408fcfb4b13aa18fca16c87e560316c97d281e214cf37fd7e17e243c1206c5575195dc8
 DIST libdvdcss-1.4.2-Leia-Beta-5.tar.gz 101068 BLAKE2B 283aa2cec0a2200d3569bc280cb9659e9224a6b3a77db8a35b269cd8caf1337ac9d8b92b806df66f63ef7458a46bd6261f0b8b14678b10e26644a79dcbeea5da SHA512 5185dbdbeb1bd13ea9d8723f1f4ab599d6f3102f5ba1096cd085aa1cda252c045f327c719227bba8e1b742352ade5e335106c8d0c1637a5a6b93ce661620dd7e
 DIST libdvdcss-1.4.3-Next-Nexus-Alpha2-2.tar.gz 102124 BLAKE2B 2f503d3ab767094958f7ec10b4ad11ffd02665deee571c8f3c739bef5fc7e2ff84babc5a3fdee638dc095f896b72fe3ce65e6b688674cb5f7b7b77190992688c SHA512 d3be3bfc13c5ea56d8db745c2aab090c99760684fe4c8f62a13d266feb319e9180ceeecf8116bfd2ed90d9accba2c11dbbf93b61ad00f69a40812ebf4eabcdda
 DIST libdvdnav-6.0.0-Leia-Alpha-3.tar.gz 137942 BLAKE2B 7573434a0ae8e8ccabf48173f81fcde29074eb138e119a2ae9156cde3c3d8bfd716f5d0e605b97f2dcac21f570781137c8533c5ae306b51e3905822fda318355 SHA512 11c93eaacd156f8fd7dec7c43d366438b201f31ad55b2870463a9e286912b6ada08882319a021fb7992190f87b909a49f2b83e0321cc17aedc29f7fe5898fa72

diff --git a/media-tv/kodi/files/kodi-21-optional-ffmpeg-libx11.patch b/media-tv/kodi/files/kodi-21-optional-ffmpeg-libx11.patch
new file mode 100644
index 000000000000..1d0805a3e574
--- /dev/null
+++ b/media-tv/kodi/files/kodi-21-optional-ffmpeg-libx11.patch
@@ -0,0 +1,14 @@
+--- a/tools/depends/target/ffmpeg/CMakeLists.txt
++++ b/tools/depends/target/ffmpeg/CMakeLists.txt
+@@ -74,6 +74,11 @@ if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL freebsd)
+   else()
+     list(APPEND ffmpeg_conf --disable-vdpau)
+   endif()
++  if ("x11" IN_LIST CORE_PLATFORM_NAME_LC)
++    list(APPEND ffmpeg_conf --enable-xlib)
++  else()
++    list(APPEND ffmpeg_conf --disable-xlib)
++  endif()
+ elseif(CORE_SYSTEM_NAME STREQUAL android)
+   list(APPEND ffmpeg_conf --target-os=android
+                           --extra-libs=-liconv

diff --git a/media-tv/kodi/files/kodi-21.1-silence-libdvdread-git.patch b/media-tv/kodi/files/kodi-21.1-silence-libdvdread-git.patch
new file mode 100644
index 000000000000..83190d91e1db
--- /dev/null
+++ b/media-tv/kodi/files/kodi-21.1-silence-libdvdread-git.patch
@@ -0,0 +1,36 @@
+From a193fae2ace4aa9086f9b73fa7008a016c30061e Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Wed, 21 Aug 2024 13:40:02 +0300
+Subject: [PATCH] Silence git "command not found"
+
+--- a/cmake/modules/FindLibDvdRead.cmake
++++ b/cmake/modules/FindLibDvdRead.cmake
+@@ -39,6 +39,9 @@ if(NOT TARGET LibDvdRead::LibDvdRead)
+ 
+   set(LIBDVDREAD_VERSION ${${MODULE}_VER})
+ 
++  set(patches "${CORE_SOURCE_DIR}/tools/depends/target/${MODULE_LC}/silence-git.patch")
++  generate_patchcommand("${patches}")
++
+   set(HOST_ARCH ${ARCH})
+   if(CORE_SYSTEM_NAME STREQUAL android)
+     if(ARCH STREQUAL arm)
+--- /dev/null
++++ b/tools/depends/target/libdvdread/silence-git.patch
+@@ -0,0 +1,13 @@
++diff --git a/Makefile.am b/Makefile.am
++index f2849b8..7cee887 100644
++--- a/Makefile.am
+++++ b/Makefile.am
++@@ -2,7 +2,7 @@ ACLOCAL_AMFLAGS = -Im4
++ 
++ AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_builddir)/src/dvdread $(CSS_CFLAGS)
++ 
++-dist_doc_DATA = AUTHORS ChangeLog COPYING NEWS README.md TODO
+++dist_doc_DATA = AUTHORS COPYING NEWS README.md TODO
++ 
++ MAINTAINERCLEANFILES = ChangeLog
++ 
+-- 
+2.46.0
+

diff --git a/media-tv/kodi/kodi-21.1.ebuild b/media-tv/kodi/kodi-21.1.ebuild
new file mode 100644
index 000000000000..3e9e0d60425b
--- /dev/null
+++ b/media-tv/kodi/kodi-21.1.ebuild
@@ -0,0 +1,545 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CODENAME="Omega"
+
+# libdvd{css,read,nav} are not unbundlable without patching the buildsystem.
+
+# Versions for the forked projects that are bundled
+# See tools/depends/target/<project>/<project>-VERSION
+LIBDVDCSS_VERSION="1.4.3-Next-Nexus-Alpha2-2"
+LIBDVDREAD_VERSION="6.1.3-Next-Nexus-Alpha2-2"
+LIBDVDNAV_VERSION="6.1.1-Next-Nexus-Alpha2-2"
+FFMPEG_VERSION="6.0.1"
+
+# Java bundles from xbmc/interfaces/swig/CMakeLists.txt
+GROOVY_VERSION="4.0.16"
+APACHE_COMMON_LANG_VERSION="3.14.0"
+APACHE_COMMON_TEXT_VERSION="1.11.0"
+
+_JAVA_PKG_WANT_BUILD_VM=( {openjdk{,-jre},icedtea}{,-bin}-{8,11,17,21} )
+JAVA_PKG_WANT_BUILD_VM=${_JAVA_PKG_WANT_BUILD_VM[@]}
+# Required to be set, but not used.
+JAVA_PKG_WANT_SOURCE="21"
+JAVA_PKG_WANT_TARGET="21"
+
+PYTHON_REQ_USE="sqlite,ssl"
+PYTHON_COMPAT=( python3_{10..12} )
+
+# See cmake/scripts/common/ArchSetup.cmake for available options
+CPU_FLAGS="cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_arm_neon"
+
+inherit autotools cmake desktop flag-o-matic java-pkg-2 libtool linux-info optfeature pax-utils python-single-r1 \
+	toolchain-funcs xdg
+
+DESCRIPTION="A free and open source media-player and entertainment hub"
+HOMEPAGE="https://kodi.tv/"
+
+SRC_URI="
+	https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_VERSION}.tar.gz
+		-> libdvdnav-${LIBDVDNAV_VERSION}.tar.gz
+	https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_VERSION}.tar.gz
+		-> libdvdread-${LIBDVDREAD_VERSION}.tar.gz
+	https://mirrors.kodi.tv/build-deps/sources/apache-groovy-binary-${GROOVY_VERSION}.zip
+	https://mirrors.kodi.tv/build-deps/sources/commons-lang3-${APACHE_COMMON_LANG_VERSION}-bin.tar.gz
+	https://mirrors.kodi.tv/build-deps/sources/commons-text-${APACHE_COMMON_TEXT_VERSION}-bin.tar.gz
+	css? (
+		https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_VERSION}.tar.gz
+			-> libdvdcss-${LIBDVDCSS_VERSION}.tar.gz
+	)
+	!system-ffmpeg? (
+		https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz
+	)
+"
+if [[ ${PV} == *9999 ]] ; then
+	EGIT_REPO_URI="https://github.com/xbmc/xbmc.git"
+	if [[ ${PV} != "9999" ]]; then
+		EGIT_BRANCH="${CODENAME}"
+	fi
+	inherit git-r3
+else
+	MY_PV=${PV/_p/_r}
+	MY_PV=${MY_PV/_alpha/a}
+	MY_PV=${MY_PV/_beta/b}
+	MY_PV=${MY_PV/_rc/rc}
+	MY_PV="${MY_PV}-${CODENAME}"
+	MY_P="${PN}-${MY_PV}"
+	SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+	KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+	S=${WORKDIR}/xbmc-${MY_PV}
+fi
+
+LICENSE="GPL-2+"
+# vendored dependencies
+# apache-groovy, common-lang3 and commons-text
+LICENSE+=" Apache-2.0"
+# libdvdnav, libdvdread and libdvdcss.
+LICENSE+=" GPL-2+"
+# ffmpeg built as USE="gpl"
+LICENSE+=" !system-ffmpeg? ( 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 doc eventclients gbm gles lcms libusb lirc mariadb mysql nfs +optical pipewire pulseaudio samba soc +system-ffmpeg test udf udev upnp vaapi vdpau wayland webserver X +xslt zeroconf ${CPU_FLAGS}"
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	|| ( gbm wayland X )
+	?? ( mariadb mysql )
+	bluray? ( udf )
+	gbm? ( udev )
+	soc? ( system-ffmpeg )
+	udev? ( !libusb )
+	vdpau? ( X !gles !gbm )
+	zeroconf? ( dbus )
+"
+RESTRICT="!test? ( test )"
+
+# dev-libs/libcec[-cubox] bug #818262
+COMMON_DEPEND="
+	>=dev-libs/flatbuffers-23.3.3:=
+	>=dev-libs/lzo-2.04:2
+	media-libs/giflib:=
+	>=media-libs/libjpeg-turbo-2.0.4:=
+	>=media-libs/libpng-1.6.26:0=
+	wayland? (
+		dev-cpp/waylandpp:=
+	)
+"
+COMMON_TARGET_DEPEND="${PYTHON_DEPS}
+	>=net-misc/curl-7.68.0[http2]
+	>=sys-libs/zlib-1.2.11
+	dev-db/sqlite:3
+	dev-libs/crossguid
+	>=dev-libs/fribidi-1.0.5
+	>=dev-libs/libcdio-2.1.0:=[cxx]
+	>=dev-libs/libfmt-6.1.2:=
+	dev-libs/libfstrcmp
+	dev-libs/libpcre[cxx]
+	>=dev-libs/openssl-1.1.1k:0=
+	>=dev-libs/spdlog-1.5.0:=
+	dev-libs/tinyxml[stl]
+	dev-libs/tinyxml2:=
+	media-fonts/roboto
+	media-libs/libglvnd[X?]
+	>=media-libs/freetype-2.10.1
+	media-libs/harfbuzz:=
+	>=media-libs/libass-0.15.0:=
+	media-libs/mesa[egl(+),gbm(+)?,wayland?,X?]
+	>=media-libs/taglib-1.9.0
+	sci-libs/kissfft
+	virtual/libiconv
+	virtual/ttf-fonts
+	x11-libs/libdrm
+	$(python_gen_cond_dep '
+		dev-python/pillow[${PYTHON_USEDEP}]
+		dev-python/pycryptodome[${PYTHON_USEDEP}]
+	')
+	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.1.2:=
+	)
+	caps? (
+		sys-libs/libcap
+	)
+	cec? (
+		>=dev-libs/libcec-4.0[-cubox]
+	)
+	dbus? (
+		sys-apps/dbus
+	)
+	gbm? (
+		>=dev-libs/libinput-1.10.5:=
+		media-libs/libdisplay-info
+		x11-libs/libxkbcommon
+	)
+	gles? (
+		|| (
+			>=media-libs/mesa-24.1.0_rc1[opengl]
+			<media-libs/mesa-24.1.0_rc1[gles2]
+		)
+	)
+	!gles? (
+		media-libs/glu
+	)
+	lcms? (
+		>=media-libs/lcms-2.10:2
+	)
+	libusb? (
+		virtual/libusb:1
+	)
+	lirc? (
+		app-misc/lirc
+	)
+	mariadb? (
+		dev-db/mariadb-connector-c:=
+	)
+	mysql? (
+		dev-db/mysql-connector-c:=
+	)
+	nfs? (
+		>=net-fs/libnfs-2.0.0:=
+	)
+	pipewire? (
+		>=media-video/pipewire-0.3.50:=
+	)
+	pulseaudio? (
+		media-libs/libpulse
+	)
+	samba? (
+		>=net-fs/samba-3.4.6[smbclient(+)]
+	)
+	system-ffmpeg? (
+		=media-video/ffmpeg-6*:=[encode,soc(-)?,postproc,vaapi?,vdpau?,X?]
+	)
+	!system-ffmpeg? (
+		app-arch/bzip2
+		app-arch/xz-utils
+		media-libs/dav1d:=
+		net-libs/gnutls:=
+	)
+	udf? (
+		>=dev-libs/libudfread-1.0.0
+	)
+	udev? (
+		virtual/libudev:=
+	)
+	vaapi? (
+		media-libs/libva:=[wayland?,X?]
+	)
+	vdpau? (
+		|| (
+			>=x11-libs/libvdpau-1.1
+			>=x11-drivers/nvidia-drivers-180.51
+		)
+	)
+	wayland? (
+		>=x11-libs/libxkbcommon-0.4.1[wayland]
+	)
+	webserver? (
+		>=net-libs/libmicrohttpd-0.9.77:=[messages(+)]
+	)
+	X? (
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXrandr
+	)
+	xslt? (
+		dev-libs/libxslt
+		>=dev-libs/libxml2-2.9.4
+	)
+	zeroconf? (
+		net-dns/avahi[dbus]
+	)
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	${COMMON_TARGET_DEPEND}
+"
+DEPEND="
+	${COMMON_DEPEND}
+	${COMMON_TARGET_DEPEND}
+	>=dev-libs/rapidjson-1.0.2
+	test? (
+		>=dev-cpp/gtest-1.10.0
+	)
+	wayland? (
+		>=dev-libs/wayland-protocols-1.7
+	)
+	X? (
+		x11-base/xorg-proto
+		x11-libs/libXrender
+	)
+"
+BDEPEND="
+	${COMMON_DEPEND}
+	app-arch/unzip
+	dev-build/cmake
+	dev-lang/swig
+	virtual/pkgconfig
+	<=virtual/jre-21:*
+	doc? (
+		app-text/doxygen
+	)
+"
+
+PATCHES=(
+	"${FILESDIR}"/kodi-21-optional-ffmpeg-libx11.patch
+	"${FILESDIR}"/kodi-21.1-silence-libdvdread-git.patch
+)
+
+# bug #544020
+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
+	java-pkg-2_pkg_setup
+	python-single-r1_pkg_setup
+}
+
+src_unpack() {
+	if [[ ${PV} == *9999 ]] ; then
+		git-r3_src_unpack
+	else
+		unpack ${MY_P}.tar.gz
+	fi
+
+	unpack apache-groovy-binary-${GROOVY_VERSION}.zip
+	unpack commons-lang3-${APACHE_COMMON_LANG_VERSION}-bin.tar.gz
+	unpack commons-text-${APACHE_COMMON_TEXT_VERSION}-bin.tar.gz
+}
+
+src_prepare() {
+	cmake_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
+
+	# Add all possible names for kissfft libraries
+	for datatype in {float,int16,int32,simd}; do
+		sed -i \
+			-e "s/\(find_library(KISSFFT_LIBRARY NAMES .*\)/\1 kissfft-${datatype} kissfft-${datatype}-openmp/" \
+			cmake/modules/FindKissFFT.cmake || die
+	done
+
+	if tc-is-cross-compiler; then
+		# These tools are automatically built with CMake during a native build
+		# but need to be built in advance using Autotools for a cross build.
+		NATIVE_TOOLS=(
+			TexturePacker
+			JsonSchemaBuilder
+		)
+
+		local t
+		for t in "${NATIVE_TOOLS[@]}" ; do
+			pushd "${S}/tools/depends/native/$t/src" >/dev/null || die
+			AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" eautoreconf
+			popd >/dev/null || die
+		done
+		elibtoolize
+	fi
+}
+
+src_configure() {
+	local core_platform=(
+		$(usev gbm)
+		$(usev wayland)
+		$(usev X x11)
+	)
+
+	local mycmakeargs=(
+		-Wno-dev # less noise
+
+		-DAPP_RENDER_SYSTEM=$(usex gles gles gl)
+		-DCORE_PLATFORM_NAME="${core_platform[*]}"
+		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+		-DENABLE_TESTING=$(usex test)
+		-DVERBOSE=ON
+
+		# Enforce use of configured python interpeter
+		-DPYTHON_PATH=$(python_get_library_path)
+		-DPYTHON_VER=${EPYTHON##python} # wont work for pypy
+
+		# Toolchain
+		-DENABLE_CCACHE=OFF
+		-DENABLE_CLANGFORMAT=OFF
+		-DENABLE_CLANGTIDY=OFF
+		-DENABLE_CPPCHECK=OFF
+		-DENABLE_INCLUDEWHATYOUUSE=OFF
+		# https://bugs.gentoo.org/show_bug.cgi?id=606124
+		-DENABLE_GOLD=OFF
+		-DENABLE_LLD=OFF
+		-DENABLE_MOLD=OFF
+		-DUSE_LTO=OFF
+
+		# Features
+		-DENABLE_AIRTUNES=$(usex airplay)
+		-DENABLE_ALSA=$(usex alsa)
+		-DENABLE_AVAHI=$(usex zeroconf)
+		-DENABLE_BLUETOOTH=$(usex bluetooth)
+		-DENABLE_BLURAY=$(usex bluray)
+		-DENABLE_CAP=$(usex caps)
+		-DENABLE_CEC=$(usex cec)
+		-DENABLE_DBUS=$(usex dbus)
+		-DENABLE_DVDCSS=$(usex css)
+		-DENABLE_EVENTCLIENTS=ON # alway enable to have 'kodi-send' and filter extra stuff in 'src_install()'
+		-DENABLE_ISO9660PP=$(usex optical)
+		-DENABLE_LCMS2=$(usex lcms)
+		-DENABLE_LIRCCLIENT=$(usex lirc)
+		-DENABLE_MARIADBCLIENT=$(usex mariadb)
+		-DENABLE_MDNS=OFF # used only on Android
+		-DENABLE_MICROHTTPD=$(usex webserver)
+		-DENABLE_MYSQLCLIENT=$(usex mysql)
+		-DENABLE_NFS=$(usex nfs)
+		-DENABLE_OPENGL=$(usex !gles)
+		-DENABLE_OPENGLES=$(usex gles)
+		-DENABLE_OPTICAL=$(usex optical)
+		-DENABLE_PIPEWIRE=$(usex pipewire)
+		-DENABLE_PLIST=$(usex airplay)
+		-DENABLE_PULSEAUDIO=$(usex pulseaudio)
+		-DENABLE_SMBCLIENT=$(usex samba)
+		-DENABLE_SNDIO=OFF
+		-DENABLE_UDEV=$(usex udev)
+		-DENABLE_UDFREAD=$(usex udf)
+		-DENABLE_UPNP=$(usex upnp)
+		-DENABLE_VAAPI=$(usex vaapi)
+		-DENABLE_VDPAU=$(usex vdpau)
+		-DENABLE_XSLT=$(usex xslt)
+
+		-DWITH_FFMPEG=$(usex system-ffmpeg)
+
+		#To bundle or not
+		-DENABLE_INTERNAL_CROSSGUID=OFF
+		-DENABLE_INTERNAL_DAV1D=OFF
+		-DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)"
+		-DENABLE_INTERNAL_FLATBUFFERS=OFF
+		-DENABLE_INTERNAL_FMT=OFF
+		-DENABLE_INTERNAL_FSTRCMP=OFF
+		-DENABLE_INTERNAL_GTEST=OFF
+		-DENABLE_INTERNAL_KISSFFT=OFF
+		-DENABLE_INTERNAL_PCRE=OFF
+		-DENABLE_INTERNAL_RapidJSON=OFF
+		-DENABLE_INTERNAL_SPDLOG=OFF
+		-DENABLE_INTERNAL_TAGLIB=OFF
+		-DENABLE_INTERNAL_UDFREAD=OFF
+
+		-DTARBALL_DIR="${DISTDIR}"
+		-Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_VERSION}.tar.gz"
+		-Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_VERSION}.tar.gz"
+		-Dgroovy_SOURCE_DIR="${WORKDIR}/groovy-${GROOVY_VERSION}"
+		-Dapache-commons-lang_SOURCE_DIR="${WORKDIR}/commons-lang3-${APACHE_COMMON_LANG_VERSION}"
+		-Dapache-commons-text_SOURCE_DIR="${WORKDIR}/commons-text-${APACHE_COMMON_TEXT_VERSION}"
+	)
+
+	# Separated to avoid "Manually-specified variables were not used by the project:"
+	use cec && mycmakeargs+=( -DENABLE_INTERNAL_CEC=OFF )
+	use css && mycmakeargs+=( -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_VERSION}.tar.gz" )
+	use nfs && mycmakeargs+=( -DENABLE_INTERNAL_NFS=OFF )
+	use !system-ffmpeg && mycmakeargs+=(
+		-DFFMPEG_URL="${DISTDIR}/ffmpeg-${FFMPEG_VERSION}.tar.gz"
+	)
+	use !udev && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) )
+	use X && use !gles && mycmakeargs+=( -DENABLE_GLX=ON )
+
+	for flag in ${CPU_FLAGS[@]} ; do
+		local name=${flag#cpu_flags_*_}
+		mycmakeargs+=( -DENABLE_${name^^}=$(usex ${flag}) )
+	done
+
+	if ! is-flag -DNDEBUG && ! is-flag -D_DEBUG ; then
+		# Kodi requires one of the 'NDEBUG' or '_DEBUG' defines
+		append-cflags -DNDEBUG
+		append-cxxflags -DNDEBUG
+	fi
+
+	# Violates ODR (bug #860984) and USE_LTO does spooky stuff
+	# https://github.com/xbmc/xbmc/commit/cb72a22d54a91845b1092c295f84eeb48328921e
+	filter-lto
+
+	if tc-is-cross-compiler; then
+		for t in "${NATIVE_TOOLS[@]}" ; do
+			pushd "${S}/tools/depends/native/$t/src" >/dev/null || die
+			econf_build
+			install -m0755 /dev/null "$t" || die # Actually build later.
+			mycmakeargs+=( -DWITH_${t^^}="${PWD}/$t" )
+			popd >/dev/null || die
+		done
+	fi
+
+	cmake_src_configure
+}
+
+src_compile() {
+	if tc-is-cross-compiler; then
+		for t in "${NATIVE_TOOLS[@]}" ; do
+			emake -C "${S}/tools/depends/native/$t/src"
+		done
+	fi
+
+	cmake_src_compile all
+	use doc && cmake_build doc
+	use test && cmake_build kodi-test
+}
+
+src_test() {
+	local -x CMAKE_SKIP_TESTS=(
+		# Known failing, unreliable test
+		# bug #743938
+		TestCPUInfo.GetCPUFrequency
+		# Test failure stemming from sci-libs/kissfft
+		# The difference between output[2i] and (i==freq1?1.0:0.0) is inf, which exceeds 1e-7, where output[2i]
+		# evaluates to inf,(i==freq1?1.0:0.0) evaluates to 0, and 1e-7 evaluates to 9.9999999999999995e-08.
+		TestRFFT.SimpleSignal
+		# Tries to ping localhost, naturally breaking network-sandbox
+		TestNetwork.PingHost
+	)
+
+	if use arm || use x86; then
+		# bug #779184
+		# https://github.com/xbmc/xbmc/issues/18594
+		CMAKE_SKIP_TESTS+=(
+			TestDateTime.Reset
+			TestDateTime.SetDateTime
+			TestDateTime.SetFromDBTime
+		)
+	fi
+
+	# see https://github.com/xbmc/xbmc/issues/17860#issuecomment-630120213
+	local -x KODI_HOME="${BUILD_DIR}"
+
+	cmake_src_test
+}
+
+src_install() {
+	cmake_src_install
+
+	# bug #457588
+	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
+
+	if use !eventclients ; then
+		rm -f "${ED}"/usr/bin/kodi-ps3remote || die
+		rm -f "${D}"$(python_get_sitedir)/kodi/ps3_remote.py || die
+		rm -rf "${D}"$(python_get_sitedir)/kodi/ps3 || die
+		rm -rf "${D}"$(python_get_sitedir)/kodi/bt || die
+		rm -rf "${ED}"/usr/share/doc/${PF}/kodi-eventclients-dev || die
+	fi
+
+	python_optimize "${D}$(python_get_sitedir)"
+
+	einstalldocs
+	use doc && dodoc -r "${S}"/docs/html/
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if use dbus ; then
+		optfeature "getting battery level and active power source" sys-power/upower
+		optfeature "control of shutdown, reboot, suspend, and hibernate" sys-auth/elogind sys-apps/systemd
+		optfeature "storage management support (automounting, volume monitoring, etc)" sys-fs/udisks:2
+	fi
+}


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/
@ 2024-09-14 20:12 Andreas Sturmlechner
  0 siblings, 0 replies; 24+ messages in thread
From: Andreas Sturmlechner @ 2024-09-14 20:12 UTC (permalink / raw
  To: gentoo-commits

commit:     4aae5251ec3c8d40d17390a3261dfb1939c7bd75
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 14 10:46:17 2024 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Sep 14 20:11:48 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4aae5251

media-tv/kodi: drop 19.5-r2, 20.5-r1, de-stabilising x86

19*: still no python3_12, broken against current stable toolchain
x86: tests are failing w/ 32-bit, we've waited long enough.

Bug: https://bugs.gentoo.org/779184
Bug: https://bugs.gentoo.org/905103
Bug: https://bugs.gentoo.org/932996
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 media-tv/kodi/Manifest                             |   7 -
 media-tv/kodi/files/kodi-19.4-atomic.patch         | 108 -----
 media-tv/kodi/files/kodi-19.4-dav1d-1.0.0.patch    |  94 ----
 .../files/kodi-19.4-fix-mesa-22.3.0-build.patch    |  12 -
 media-tv/kodi/files/kodi-19.5-flatbuffers.patch    |  35 --
 media-tv/kodi/files/kodi-19.5-gcc-13.patch         |  70 ---
 media-tv/kodi/files/kodi-20.2-binutils-2.41.patch  | 103 -----
 media-tv/kodi/files/kodi-20.3-gcc-14.patch         |  72 ----
 media-tv/kodi/kodi-19.5-r2.ebuild                  | 382 ----------------
 media-tv/kodi/kodi-20.5-r1.ebuild                  | 479 ---------------------
 10 files changed, 1362 deletions(-)

diff --git a/media-tv/kodi/Manifest b/media-tv/kodi/Manifest
index 470709e254cd..fc0af0953573 100644
--- a/media-tv/kodi/Manifest
+++ b/media-tv/kodi/Manifest
@@ -2,15 +2,8 @@ DIST apache-groovy-binary-4.0.16.zip 29793704 BLAKE2B 30f77c6400c85821cf78f6ba10
 DIST commons-lang3-3.14.0-bin.tar.gz 9442785 BLAKE2B 2ecdd06f97ac2688220055a08f67da9b859bed3ab00ff41800d5d9a1cebda599db2e816425c10c265dd6827a0ef79fc3dd094a8b3c9b9ae4ceae8f5750a59cf2 SHA512 8e7e62418a49ba810512c13a640a8bf35f878fcd54af32fdaab1111e37817f58b21b475980ba663fba4887e45ef8d88af8ff17796f20d202e929e8e2574546dc
 DIST commons-text-1.11.0-bin.tar.gz 3018564 BLAKE2B c32e41c6b8c90dea876caf4c2cedc9358d5e49506bfee7aee42ac6b92dbe8505d5e5d81c860a739bb06214b832cc29e91ddb95f3cfc24515c970302a519a5e43 SHA512 2e94877000dd270b69e2e8cbf49f258a90b4c628b6b6b0814e300a2f0e9c391f0816dceb0707e596ae3b7c9532f93e7a4917df47c77f44b3a810e14042ce5f3f
 DIST ffmpeg-6.0.1.tar.gz 15437409 BLAKE2B 6424e30c6d354abbbea8a807822ae61589413189e9c4ba7aa51c307179287506b9072626e9745861fe83753c0015b50d179f9b4f298fe9abf74bee13936639af SHA512 945e34840092dc0fd3824eb1af2be79868af2afb4fe13159b19a9bcfc464cc4d53243c13ff065199290e9393ddbf4b1c5c8abccf83a31a31d6c7490e499fd1fc
-DIST ffmpeg-kodi-4.3.2-Matrix-19.1.tar.gz 13490949 BLAKE2B 90007f2c4bac0e0a52b419d9333cf75b00e291f1ea7447cbdc579ee2f860de7c436c924253600f3fbd6e3faaabe97aaf46db083a5bbd2f5f03badcca5d643e89 SHA512 d3719253d674b16638b873545583b82fba3176803c81ba8bcb37e90456dd956f1c2ee8996493840cff2d61c6399f06ed0524a759f46e4ce174bce23e9c6eda4a
-DIST ffmpeg-kodi-4.4.1-Nexus-Alpha1.tar.gz 13725564 BLAKE2B 51d310e7000aeba657d55341c5fdb540474e197b85062228ab4b314c8309ec11985aa7f105193333fc6106529e8e58c86eafe268190894be8532d0e0b9065fa6 SHA512 8beb04d577b5251e74b0d52f4d130997a8ba94bbd488c7c8309e6b45095c27807e150212888ce3a384b23dff52f8df1a7bde5407bae924ddc363f8125c0616c5
-DIST kodi-19.5-Matrix.tar.gz 53496968 BLAKE2B 89855e4d59faa5734e945e50267c2ec8d8e8bef91ecfa49ae49dd99f749a59609b55c57821042939082a8f98ea95f7edc3de0fa0494e218d454c67b79807ef87 SHA512 b560c068491a7f62894167da99be082f0e6a8a840cbfe1fb0cef5c844cda959bd3b5479a435b58616bb2a8454083ad393a4d49de05fbbdb0817a0fad9726e52f
-DIST kodi-20.5-Nexus.tar.gz 54568445 BLAKE2B 15eb409918fa3768528d9abd24c52fd8b94c82699ef2ce10a529278fe25544dc335b66d137ae8ae304511cd92c1c0be34881937ec705ba936f5a4b0d737903f7 SHA512 a47a54ca11e1d3daeddea8c1ae716cd4461e3441de43a026a920c709b2ff5c7e0acc2a5fd4ac8c15f0da1940bd7f21a65eff32203ad8e167603c1576b21d4dcc
 DIST kodi-21.0-Omega.tar.gz 40987733 BLAKE2B 33adaf588b3362dc9d184bfb66c36ad5fa2e442255da47db4813f926e73f5a607dd7de809ecf8a4982f985bc8dac53cba17fb9db6a009bb0cdb6284db3b1edb4 SHA512 9c2ca6b6e72197d2b1c26a47cf4ddc209318fcaa5a30ea20475ecc5518c7d1395c2e9cf3e3a75a13334b0505e7b417acdb0d76a20567a0c86841b3e69232625b
 DIST kodi-21.1-Omega.tar.gz 41091890 BLAKE2B e711ef9b958ff3f8e006913ea6c42092164eeaae7011c2307f6d9846509e58db101a19dd51f4e95000de2f30ca2e77fd196187223d0ced7adad233d3ab57e286 SHA512 8458447c2a6d7ce0fdcfc7ec9b4ff1f8be0abf18a16804d245c3cef99408fcfb4b13aa18fca16c87e560316c97d281e214cf37fd7e17e243c1206c5575195dc8
-DIST libdvdcss-1.4.2-Leia-Beta-5.tar.gz 101068 BLAKE2B 283aa2cec0a2200d3569bc280cb9659e9224a6b3a77db8a35b269cd8caf1337ac9d8b92b806df66f63ef7458a46bd6261f0b8b14678b10e26644a79dcbeea5da SHA512 5185dbdbeb1bd13ea9d8723f1f4ab599d6f3102f5ba1096cd085aa1cda252c045f327c719227bba8e1b742352ade5e335106c8d0c1637a5a6b93ce661620dd7e
 DIST libdvdcss-1.4.3-Next-Nexus-Alpha2-2.tar.gz 102124 BLAKE2B 2f503d3ab767094958f7ec10b4ad11ffd02665deee571c8f3c739bef5fc7e2ff84babc5a3fdee638dc095f896b72fe3ce65e6b688674cb5f7b7b77190992688c SHA512 d3be3bfc13c5ea56d8db745c2aab090c99760684fe4c8f62a13d266feb319e9180ceeecf8116bfd2ed90d9accba2c11dbbf93b61ad00f69a40812ebf4eabcdda
-DIST libdvdnav-6.0.0-Leia-Alpha-3.tar.gz 137942 BLAKE2B 7573434a0ae8e8ccabf48173f81fcde29074eb138e119a2ae9156cde3c3d8bfd716f5d0e605b97f2dcac21f570781137c8533c5ae306b51e3905822fda318355 SHA512 11c93eaacd156f8fd7dec7c43d366438b201f31ad55b2870463a9e286912b6ada08882319a021fb7992190f87b909a49f2b83e0321cc17aedc29f7fe5898fa72
 DIST libdvdnav-6.1.1-Next-Nexus-Alpha2-2.tar.gz 128547 BLAKE2B db4d05836d8fbb3637ae50bdbfc0e4b612ee6b3be24addfea94ce772c3bf28d58b63a3f252d6f9f016f72f8cbb841cc1820b091226b136f4c4664385a32da73c SHA512 51e6fc033121241354a5f0b3fc9a430577ae3ff6bb7f31445aa548ef4893037fb80eea3b2c6774c81e9ebaf9c45e9b490c98c2c65eb38f9f7daba84b236f7e1d
-DIST libdvdread-6.0.0-Leia-Alpha-3.tar.gz 130649 BLAKE2B 0c206acdaf0776841ab792c74e023af07d9539eb72e03ae164382a31ed950f60e5e15f1d055979d28f1398924471b294d11f064b11b8373353b3962a3777ff3c SHA512 b3419ba0a1a2dd70f1bb6236afdfe1c6e88c9ad4264198b289e3bba9375e077cecf7f89848c7b09debaa445327f3507101f3d157e692f7a7163b2bb52643e1e7
 DIST libdvdread-6.1.3-Next-Nexus-Alpha2-2.tar.gz 110513 BLAKE2B c94feb5a03a12efa5b7767965118d2500a088299ea36f3b82e46d157e45893e6b04503cb50f179ca681bac914457607fab26acfa6e304752b355c407578572d1 SHA512 629a41157d07b8ec0ea1fe89ae5ec48f63047472a862782b805c531ae31a0376fc4dc15175f8280c3ef91d7fa977bacebb1b51232640034a34bab2293210fc5e

diff --git a/media-tv/kodi/files/kodi-19.4-atomic.patch b/media-tv/kodi/files/kodi-19.4-atomic.patch
deleted file mode 100644
index 3811fda8886d..000000000000
--- a/media-tv/kodi/files/kodi-19.4-atomic.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From ac3213e683e4c62c50dc02fef3b168d883245094 Mon Sep 17 00:00:00 2001
-From: Yixun Lan <dlan@gentoo.org>
-Date: Tue, 9 Aug 2022 16:45:09 +0800
-Subject: [PATCH] [cmake] link atomic library for certain CPU architectures
-
-For those CPU architectures:
-RISC-V lack 8-bit and 16-bit atomic instructions, and
-ARM/MIPS/PPC lack 64-bit atomic instruction.
-
-GCC is supposed  to convert these atomics via masking and shifting
-like LLVM, which means anything that wants to use these instructions
-needs the link option -latomic.
-
-In this patch, we will try to detect if 8-bit, 64-bit atomic instructions exist,
-otherwise the atomic library will append to the DEPLIBS list.
-
-Original issue:
-* https://gitlab.kitware.com/cmake/cmake/-/issues/23021#note_1098733
-
-For reference:
-* https://gcc.gnu.org/wiki/Atomic/GCCMM
-
-riscv64 specific:
-* https://lists.debian.org/debian-riscv/2022/01/msg00009.html
-
-Signed-off-by: Yixun Lan <dlan@gentoo.org>
----
- cmake/modules/FindAtomic.cmake      | 56 +++++++++++++++++++++++++++++
- cmake/scripts/linux/ArchSetup.cmake |  3 ++
- 2 files changed, 59 insertions(+)
- create mode 100644 cmake/modules/FindAtomic.cmake
-
-diff --git a/cmake/modules/FindAtomic.cmake b/cmake/modules/FindAtomic.cmake
-new file mode 100644
-index 0000000000..8ea3c815d7
---- /dev/null
-+++ b/cmake/modules/FindAtomic.cmake
-@@ -0,0 +1,56 @@
-+#.rst:
-+# FindAtomic
-+# -----
-+# Finds the ATOMIC library
-+#
-+# This will define the following variables::
-+#
-+# ATOMIC_FOUND - system has ATOMIC
-+# ATOMIC_LIBRARIES - the ATOMIC libraries
-+#
-+# and the following imported targets::
-+#
-+#   ATOMIC::ATOMIC    - The ATOMIC library
-+
-+
-+include(CheckCXXSourceCompiles)
-+
-+set(atomic_code
-+    "
-+     #include <atomic>
-+     #include <cstdint>
-+     std::atomic<uint8_t> n8 (0); // riscv64
-+     std::atomic<uint64_t> n64 (0); // armel, mipsel, powerpc
-+     int main() {
-+       ++n8;
-+       ++n64;
-+       return 0;
-+     }")
-+
-+check_cxx_source_compiles("${atomic_code}" ATOMIC_LOCK_FREE_INSTRUCTIONS)
-+
-+if(ATOMIC_LOCK_FREE_INSTRUCTIONS)
-+  set(ATOMIC_FOUND TRUE)
-+  set(ATOMIC_LIBRARIES)
-+else()
-+  set(CMAKE_REQUIRED_LIBRARIES "-latomic")
-+  check_cxx_source_compiles("${atomic_code}" ATOMIC_IN_LIBRARY)
-+  set(CMAKE_REQUIRED_LIBRARIES)
-+  if(ATOMIC_IN_LIBRARY)
-+    set(ATOMIC_LIBRARY atomic)
-+    include(FindPackageHandleStandardArgs)
-+    find_package_handle_standard_args(Atomic DEFAULT_MSG ATOMIC_LIBRARY)
-+    set(ATOMIC_LIBRARIES ${ATOMIC_LIBRARY})
-+    if(NOT TARGET ATOMIC::ATOMIC)
-+      add_library(ATOMIC::ATOMIC UNKNOWN IMPORTED)
-+      set_target_properties(ATOMIC::ATOMIC PROPERTIES
-+	      IMPORTED_LOCATION "${ATOMIC_LIBRARY}")
-+    endif()
-+    unset(ATOMIC_LIBRARY)
-+  else()
-+    if(Atomic_FIND_REQUIRED)
-+      message(FATAL_ERROR "Neither lock free instructions nor -latomic found.")
-+    endif()
-+  endif()
-+endif()
-+unset(atomic_code)
-diff --git a/cmake/scripts/linux/ArchSetup.cmake b/cmake/scripts/linux/ArchSetup.cmake
-index 35ab1402f5..848723af1f 100644
---- a/cmake/scripts/linux/ArchSetup.cmake
-+++ b/cmake/scripts/linux/ArchSetup.cmake
-@@ -199,3 +199,6 @@ if(NOT USE_INTERNAL_LIBS)
-     set(USE_INTERNAL_LIBS OFF)
-   endif()
- endif()
-+
-+# Atomic library
-+list(APPEND PLATFORM_REQUIRED_DEPS Atomic)
--- 
-2.35.1
-

diff --git a/media-tv/kodi/files/kodi-19.4-dav1d-1.0.0.patch b/media-tv/kodi/files/kodi-19.4-dav1d-1.0.0.patch
deleted file mode 100644
index b37ace0f31ec..000000000000
--- a/media-tv/kodi/files/kodi-19.4-dav1d-1.0.0.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-diff -Nur a/cmake/modules/FindFFMPEG.cmake b/cmake/modules/FindFFMPEG.cmake
---- a/cmake/modules/FindFFMPEG.cmake	2022-03-02 18:38:51.000000000 +0000
-+++ b/cmake/modules/FindFFMPEG.cmake	2022-11-22 19:15:38.690434650 +0000
-@@ -275,6 +275,8 @@
-                       PATCH_COMMAND ${CMAKE_COMMAND} -E copy
-                                     ${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/CMakeLists.txt
-                                     <SOURCE_DIR> &&
-+				    # patch internal ffmpeg, fix build against dav1d 1.0.0
-+				    patch -p1 < ${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/build-fix-for-dav1d-1.0.0.patch &&
-                                     ${CMAKE_COMMAND} -E copy
-                                     ${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/FindGnuTls.cmake
-                                     <SOURCE_DIR>)
-diff -Nur a/tools/depends/target/ffmpeg/build-fix-for-dav1d-1.0.0.patch b/tools/depends/target/ffmpeg/build-fix-for-dav1d-1.0.0.patch
---- a/tools/depends/target/ffmpeg/build-fix-for-dav1d-1.0.0.patch	1970-01-01 01:00:00.000000000 +0100
-+++ b/tools/depends/target/ffmpeg/build-fix-for-dav1d-1.0.0.patch	2022-11-22 19:12:09.566420470 +0000
-@@ -0,0 +1,78 @@
-+From 2546e1ed27f92a840a2cf319e3c1833799974cf1 Mon Sep 17 00:00:00 2001
-+From: BlackEagle <ike.devolder@gmail.com>
-+Date: Fri, 29 Apr 2022 14:33:12 +0200
-+Subject: [PATCH] add build fix for dav1d 1.0.0
-+
-+Taken from https://github.com/FFmpeg/FFmpeg/commit/e204846ec16c1ab34c7f3a681734cf5190433018
-+
-+add FF_DAV1D_VERSION_AT_LEAST
-+
-+Extracted from https://github.com/FFmpeg/FFmpeg/commit/7ee17ec7e46afef0e0af20af196292ec75f50b62
-+
-+Signed-off-by: BlackEagle <ike.devolder@gmail.com>
-+---
-+ libavcodec/libdav1d.c | 24 ++++++++++++++++++++++--
-+ 1 file changed, 22 insertions(+), 2 deletions(-)
-+
-+diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c
-+index bbb3ec1e6c..08b4af8ac8 100644
-+--- a/libavcodec/libdav1d.c
-++++ b/libavcodec/libdav1d.c
-+@@ -30,6 +30,9 @@
-+ #include "decode.h"
-+ #include "internal.h"
-+ 
-++#define FF_DAV1D_VERSION_AT_LEAST(x,y) \
-++    (DAV1D_API_VERSION_MAJOR > (x) || DAV1D_API_VERSION_MAJOR == (x) && DAV1D_API_VERSION_MINOR >= (y))
-++
-+ typedef struct Libdav1dContext {
-+     AVClass *class;
-+     Dav1dContext *c;
-+@@ -140,6 +143,15 @@ static av_cold int libdav1d_init(AVCodecContext *c)
-+     if (dav1d->operating_point >= 0)
-+         s.operating_point = dav1d->operating_point;
-+ 
-++#if FF_DAV1D_VERSION_AT_LEAST(6,0)
-++    if (dav1d->frame_threads || dav1d->tile_threads)
-++        s.n_threads = FFMAX(dav1d->frame_threads, dav1d->tile_threads);
-++    else
-++        s.n_threads = FFMIN(threads, DAV1D_MAX_THREADS);
-++    s.max_frame_delay = (c->flags & AV_CODEC_FLAG_LOW_DELAY) ? 1 : s.n_threads;
-++    av_log(c, AV_LOG_DEBUG, "Using %d threads, %d max_frame_delay\n",
-++           s.n_threads, s.max_frame_delay);
-++#else
-+     s.n_tile_threads = dav1d->tile_threads
-+                      ? dav1d->tile_threads
-+                      : FFMIN(floor(sqrt(threads)), DAV1D_MAX_TILE_THREADS);
-+@@ -148,6 +160,7 @@ static av_cold int libdav1d_init(AVCodecContext *c)
-+                       : FFMIN(ceil(threads / s.n_tile_threads), DAV1D_MAX_FRAME_THREADS);
-+     av_log(c, AV_LOG_DEBUG, "Using %d frame threads, %d tile threads\n",
-+            s.n_frame_threads, s.n_tile_threads);
-++#endif
-+ 
-+     res = dav1d_open(&dav1d->c, &s);
-+     if (res < 0)
-+@@ -384,11 +397,18 @@ static av_cold int libdav1d_close(AVCodecContext *c)
-+     return 0;
-+ }
-+ 
-++#ifndef DAV1D_MAX_FRAME_THREADS
-++#define DAV1D_MAX_FRAME_THREADS DAV1D_MAX_THREADS
-++#endif
-++#ifndef DAV1D_MAX_TILE_THREADS
-++#define DAV1D_MAX_TILE_THREADS DAV1D_MAX_THREADS
-++#endif
-++
-+ #define OFFSET(x) offsetof(Libdav1dContext, x)
-+ #define VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM
-+ static const AVOption libdav1d_options[] = {
-+-    { "tilethreads", "Tile threads", OFFSET(tile_threads), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, DAV1D_MAX_TILE_THREADS, VD },
-+-    { "framethreads", "Frame threads", OFFSET(frame_threads), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, DAV1D_MAX_FRAME_THREADS, VD },
-++    { "tilethreads", "Tile threads", OFFSET(tile_threads), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, DAV1D_MAX_TILE_THREADS, VD | AV_OPT_FLAG_DEPRECATED },
-++    { "framethreads", "Frame threads", OFFSET(frame_threads), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, DAV1D_MAX_FRAME_THREADS, VD | AV_OPT_FLAG_DEPRECATED },
-+     { "filmgrain", "Apply Film Grain", OFFSET(apply_grain), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VD },
-+     { "oppoint",  "Select an operating point of the scalable bitstream", OFFSET(operating_point), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 31, VD },
-+     { "alllayers", "Output all spatial layers", OFFSET(all_layers), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VD },
-+-- 
-+2.36.0
-+

diff --git a/media-tv/kodi/files/kodi-19.4-fix-mesa-22.3.0-build.patch b/media-tv/kodi/files/kodi-19.4-fix-mesa-22.3.0-build.patch
deleted file mode 100644
index e9ff90dfe55d..000000000000
--- a/media-tv/kodi/files/kodi-19.4-fix-mesa-22.3.0-build.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- xbmc/xbmc/windowing/X11/GLContextEGL.h
-+++ xbmc/xbmc/windowing/X11/GLContextEGL.h
-@@ -13,7 +13,7 @@
- #include "threads/CriticalSection.h"
- 
- #include <EGL/eglext.h>
--#include <EGL/eglextchromium.h>
-+#include <EGL/eglext_angle.h>
- #include <X11/Xutil.h>
- 
- class CGLContextEGL : public CGLContext
-

diff --git a/media-tv/kodi/files/kodi-19.5-flatbuffers.patch b/media-tv/kodi/files/kodi-19.5-flatbuffers.patch
deleted file mode 100644
index 3e8f00c1449f..000000000000
--- a/media-tv/kodi/files/kodi-19.5-flatbuffers.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-https://github.com/xbmc/xbmc/pull/23334
-
-From 07d8c98a0a65e005b85ef70e06eb1b9bbe7f764c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Markus=20H=C3=A4rer?= <markus.haerer@gmx.net>
-Date: Sun, 28 May 2023 00:49:40 +0200
-Subject: [PATCH] SavestateFlatBuffer: Remove forward declararion of
- FlatBufferBuilder
-
-This caused a compiler error with recent faltbuffers because the type changed:
-
-In file included from xbmc/cores/RetroPlayer/savestates/SavestateDatabase.cpp:12:
-xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h:19:7: error: definition of type 'FlatBufferBuilder' conflicts with type alias of the same name
-class FlatBufferBuilder;
-      ^
-/usr/include/flatbuffers/flatbuffer_builder.h:1414:7: note: 'FlatBufferBuilder' declared here
-using FlatBufferBuilder = FlatBufferBuilderImpl<false>;
-      ^
-1 error generated.
-
-(cherry picked from commit 351184d7e4e3edc447d04a297769eb41a477ba68)
---- a/xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h
-+++ b/xbmc/cores/RetroPlayer/savestates/SavestateFlatBuffer.h
-@@ -14,11 +14,6 @@
- 
- #include <flatbuffers/flatbuffers.h>
- 
--namespace flatbuffers
--{
--class FlatBufferBuilder;
--}
--
- namespace KODI
- {
- namespace RETRO
-

diff --git a/media-tv/kodi/files/kodi-19.5-gcc-13.patch b/media-tv/kodi/files/kodi-19.5-gcc-13.patch
deleted file mode 100644
index 268ebc2737f7..000000000000
--- a/media-tv/kodi/files/kodi-19.5-gcc-13.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-https://bugs.gentoo.org/892503
-https://github.com/xbmc/xbmc/pull/22627
-https://github.com/xbmc/xbmc/pull/22631
-
-From 6730f62c5d709f8789e11d3f979c597fe702daa3 Mon Sep 17 00:00:00 2001
-From: Sam James <sam@gentoo.org>
-Date: Sun, 29 Jan 2023 22:14:16 +0000
-Subject: [PATCH] windowing: X11: Add missing <cstdint> include (fix build with
- GCC 13)
-
-GCC 13 (as usual for new compiler releases) shuffles around some
-internal includes and so <cstdint> etc is no longer transitively included.
-
-See https://www.gnu.org/software/gcc/gcc-13/porting_to.html.
-
-Bug: https://bugs.gentoo.org/892503
---- a/xbmc/windowing/X11/GLContext.h
-+++ b/xbmc/windowing/X11/GLContext.h
-@@ -8,6 +8,7 @@
- 
- #pragma once
- 
-+#include <cstdint>
- #include <string>
- 
- #include <X11/Xlib.h>
-
---- a/xbmc/cores/VideoPlayer/VideoRenderers/ColorManager.h
-+++ b/xbmc/cores/VideoPlayer/VideoRenderers/ColorManager.h
-@@ -12,6 +12,7 @@
- #include <lcms2.h>
- #endif
- 
-+#include <cstdint>
- #include <string>
- 
- extern "C"
---- a/xbmc/pictures/Picture.h
-+++ b/xbmc/pictures/Picture.h
-@@ -11,6 +11,8 @@
- #include "pictures/PictureScalingAlgorithm.h"
- #include "utils/Job.h"
- 
-+#include <cstddef>
-+#include <cstdint>
- #include <string>
- #include <vector>
- 
---- a/xbmc/platform/Filesystem.h
-+++ b/xbmc/platform/Filesystem.h
-@@ -8,6 +8,7 @@
- 
- #pragma once
- 
-+#include <cstdint>
- #include <string>
- #include <system_error>
- namespace KODI
-diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.h
-index 66d1bf0200..dcd60698d6 100644
---- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.h
-+++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.h
-@@ -9,6 +9,7 @@
- #pragma once
- 
- #include <array>
-+#include <cstdint>
- 
- #if defined(HAS_GL)
- // always define GL_GLEXT_PROTOTYPES before include gl headers

diff --git a/media-tv/kodi/files/kodi-20.2-binutils-2.41.patch b/media-tv/kodi/files/kodi-20.2-binutils-2.41.patch
deleted file mode 100644
index 6ee7a55ee1de..000000000000
--- a/media-tv/kodi/files/kodi-20.2-binutils-2.41.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/effadce6c756247ea8bae32dc13bb3e6f464f0eb
-
-From db99a6e0ed9490478a7af7b6a3299688b1a329e1 Mon Sep 17 00:00:00 2001
-From: Alfred Wingate <parona@protonmail.com>
-Date: Sun, 24 Dec 2023 14:02:37 +0200
-Subject: [PATCH] ffmpeg: add patch to fix build against binutils-2.41
-
-Signed-off-by: Alfred Wingate <parona@protonmail.com>
---- a/cmake/modules/FindFFMPEG.cmake
-+++ b/cmake/modules/FindFFMPEG.cmake
-@@ -96,7 +96,9 @@ macro(buildFFMPEG)
-                  -DPKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig)
-   set(PATCH_COMMAND ${CMAKE_COMMAND} -E copy
-                     ${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/CMakeLists.txt
--                    <SOURCE_DIR>)
-+                    <SOURCE_DIR> &&
-+                    # patch internal ffmpeg, fix build against binutils 2.41
-+                    patch -p1 < ${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/build-fix-for-binutils-2.41.patch)
- 
-   if(CMAKE_GENERATOR STREQUAL Xcode)
-     set(FFMPEG_GENERATOR CMAKE_GENERATOR "Unix Makefiles")
---- /dev/null
-+++ b/tools/depends/target/ffmpeg/build-fix-for-binutils-2.41.patch
-@@ -0,0 +1,76 @@
-+From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001
-+From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
-+Date: Sun, 16 Jul 2023 18:18:02 +0300
-+Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift
-+ instructions within inline assembly
-+
-+Fixes assembling with binutil as >= 2.41
-+
-+Signed-off-by: James Almer <jamrial@gmail.com>
-+---
-+ libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++---
-+ 1 file changed, 23 insertions(+), 3 deletions(-)
-+
-+diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h
-+index 6298f5ed19..ca7e2dffc1 100644
-+--- a/libavcodec/x86/mathops.h
-++++ b/libavcodec/x86/mathops.h
-+@@ -35,12 +35,20 @@
-+ static av_always_inline av_const int MULL(int a, int b, unsigned shift)
-+ {
-+     int rt, dummy;
-++    if (__builtin_constant_p(shift))
-+     __asm__ (
-+         "imull %3               \n\t"
-+         "shrdl %4, %%edx, %%eax \n\t"
-+         :"=a"(rt), "=d"(dummy)
-+-        :"a"(a), "rm"(b), "ci"((uint8_t)shift)
-++        :"a"(a), "rm"(b), "i"(shift & 0x1F)
-+     );
-++    else
-++        __asm__ (
-++            "imull %3               \n\t"
-++            "shrdl %4, %%edx, %%eax \n\t"
-++            :"=a"(rt), "=d"(dummy)
-++            :"a"(a), "rm"(b), "c"((uint8_t)shift)
-++        );
-+     return rt;
-+ }
-+ 
-+@@ -113,19 +121,31 @@ __asm__ volatile(\
-+ // avoid +32 for shift optimization (gcc should do that ...)
-+ #define NEG_SSR32 NEG_SSR32
-+ static inline  int32_t NEG_SSR32( int32_t a, int8_t s){
-++    if (__builtin_constant_p(s))
-+     __asm__ ("sarl %1, %0\n\t"
-+          : "+r" (a)
-+-         : "ic" ((uint8_t)(-s))
-++         : "i" (-s & 0x1F)
-+     );
-++    else
-++        __asm__ ("sarl %1, %0\n\t"
-++               : "+r" (a)
-++               : "c" ((uint8_t)(-s))
-++        );
-+     return a;
-+ }
-+ 
-+ #define NEG_USR32 NEG_USR32
-+ static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
-++    if (__builtin_constant_p(s))
-+     __asm__ ("shrl %1, %0\n\t"
-+          : "+r" (a)
-+-         : "ic" ((uint8_t)(-s))
-++         : "i" (-s & 0x1F)
-+     );
-++    else
-++        __asm__ ("shrl %1, %0\n\t"
-++               : "+r" (a)
-++               : "c" ((uint8_t)(-s))
-++        );
-+     return a;
-+ }
-+ 
-+-- 
-+2.25.1
-+
--- 
-2.43.0
-

diff --git a/media-tv/kodi/files/kodi-20.3-gcc-14.patch b/media-tv/kodi/files/kodi-20.3-gcc-14.patch
deleted file mode 100644
index b4c5ee94eb80..000000000000
--- a/media-tv/kodi/files/kodi-20.3-gcc-14.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-https://github.com/xbmc/xbmc/commit/3dcea03c915f2062d4f8740d66abdf033fba9d6c
-https://bugs.gentoo.org/923041
-
-From 3dcea03c915f2062d4f8740d66abdf033fba9d6c Mon Sep 17 00:00:00 2001
-From: Manuel Lauss <manuel.lauss@gmail.com>
-Date: Fri, 13 Oct 2023 12:27:15 +0200
-Subject: [PATCH] add missing c++ headers
-
-Add a few missing headers which are no longer indirectly included by
-other headers, fixes build with gcc-14
---- a/xbmc/addons/AddonUpdateRules.cpp
-+++ b/xbmc/addons/AddonUpdateRules.cpp
-@@ -12,6 +12,7 @@
- #include "addons/addoninfo/AddonInfo.h"
- #include "utils/log.h"
- 
-+#include <algorithm>
- #include <mutex>
- 
- using namespace ADDON;
---- a/xbmc/addons/binary-addons/AddonDll.cpp
-+++ b/xbmc/addons/binary-addons/AddonDll.cpp
-@@ -27,6 +27,7 @@
- #include "utils/Variant.h"
- #include "utils/log.h"
- 
-+#include <algorithm>
- #include <utility>
- 
- using namespace KODI::MESSAGING;
---- a/xbmc/interfaces/json-rpc/TextureOperations.cpp
-+++ b/xbmc/interfaces/json-rpc/TextureOperations.cpp
-@@ -14,6 +14,8 @@
- #include "TextureDatabase.h"
- #include "utils/Variant.h"
- 
-+#include <algorithm>
-+
- using namespace JSONRPC;
- 
- JSONRPC_STATUS CTextureOperations::GetTextures(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result)
---- a/xbmc/utils/EGLImage.cpp
-+++ b/xbmc/utils/EGLImage.cpp
-@@ -14,6 +14,7 @@
- #include "utils/StringUtils.h"
- #include "utils/log.h"
- 
-+#include <algorithm>
- #include <map>
- 
- namespace
---- a/xbmc/windowing/gbm/drm/DRMConnector.cpp
-+++ b/xbmc/windowing/gbm/drm/DRMConnector.cpp
-@@ -11,6 +11,7 @@
- #include "utils/XTimeUtils.h"
- #include "utils/log.h"
- 
-+#include <algorithm>
- #include <map>
- 
- using namespace KODI::WINDOWING::GBM;
---- a/xbmc/windowing/gbm/drm/DRMPlane.cpp
-+++ b/xbmc/windowing/gbm/drm/DRMPlane.cpp
-@@ -13,6 +13,8 @@
- #include "utils/StringUtils.h"
- #include "utils/log.h"
- 
-+#include <algorithm>
-+
- using namespace KODI::WINDOWING::GBM;
- 
- CDRMPlane::CDRMPlane(int fd, uint32_t plane) : CDRMObject(fd), m_plane(drmModeGetPlane(m_fd, plane))

diff --git a/media-tv/kodi/kodi-19.5-r2.ebuild b/media-tv/kodi/kodi-19.5-r2.ebuild
deleted file mode 100644
index 7b7a084a897d..000000000000
--- a/media-tv/kodi/kodi-19.5-r2.ebuild
+++ /dev/null
@@ -1,382 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_REQ_USE="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.3.2"
-CODENAME="Matrix"
-FFMPEG_KODI_VERSION="19.1"
-PYTHON_COMPAT=( python3_{10..11} )
-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
-	EGIT_REPO_URI="https://github.com/xbmc/xbmc.git"
-	EGIT_BRANCH="Matrix"
-	inherit git-r3
-else
-	MY_PV=${PV/_p/_r}
-	MY_PV=${MY_PV/_alpha/a}
-	MY_PV=${MY_PV/_beta/b}
-	MY_PV=${MY_PV/_rc/RC}
-	MY_PV="${MY_PV}-${CODENAME}"
-	MY_P="${PN}-${MY_PV}"
-	SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
-	KEYWORDS="amd64 ~arm arm64 ~riscv x86"
-	S=${WORKDIR}/xbmc-${MY_PV}
-fi
-
-inherit autotools cmake desktop libtool linux-info pax-utils python-single-r1 xdg
-
-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 dav1d dbus eventclients gbm gles lcms libusb lirc mariadb mysql nfs +optical power-control pulseaudio raspberry-pi samba +system-ffmpeg test udf udev udisks upnp upower vaapi vdpau wayland webserver +X +xslt zeroconf"
-IUSE="${IUSE} cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_arm_neon"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	|| ( gbm wayland X )
-	?? ( mariadb mysql )
-	bluray? ( udf )
-	udev? ( !libusb )
-	udisks? ( dbus )
-	upower? ( dbus )
-	power-control? ( dbus )
-	vdpau? (
-		X
-		!gles
-		!gbm
-	)
-	zeroconf? ( dbus )
-"
-RESTRICT="!test? ( test )"
-
-COMMON_DEPEND="
-	>=dev-libs/lzo-2.04
-	>=dev-libs/flatbuffers-1.12.0:=
-	>=media-libs/libjpeg-turbo-2.0.4:=
-	>=media-libs/libpng-1.6.26:0=
-"
-COMMON_TARGET_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.1.2 )
-	caps? ( sys-libs/libcap )
-	dbus? ( sys-apps/dbus )
-	dev-db/sqlite
-	<dev-libs/crossguid-0.2.2_p20190529
-	>=dev-libs/fribidi-1.0.5
-	cec? ( >=dev-libs/libcec-4.0 )
-	dev-libs/libpcre[cxx]
-	>=dev-libs/spdlog-1.5.0:=
-	dev-libs/tinyxml[stl]
-	$(python_gen_cond_dep '
-		dev-python/pillow[${PYTHON_USEDEP}]
-		dev-python/pycryptodome[${PYTHON_USEDEP}]
-	')
-	>=dev-libs/libcdio-2.1.0[cxx]
-	>=dev-libs/libfmt-6.1.2
-	dev-libs/libfstrcmp
-	gbm? (
-		>=dev-libs/libinput-1.10.5
-		media-libs/mesa[gbm(+)]
-		x11-libs/libxkbcommon
-	)
-	gles? (
-		!raspberry-pi? (
-			|| (
-				>=media-libs/mesa-24.1.0_rc1[opengl]
-				<media-libs/mesa-24.1.0_rc1[gles2]
-			)
-		)
-	)
-	lcms? ( media-libs/lcms:2 )
-	libusb? ( virtual/libusb:1 )
-	virtual/ttf-fonts
-	media-fonts/roboto
-	>=media-libs/freetype-2.10.1
-	>=media-libs/libass-0.13.4
-	!raspberry-pi? ( media-libs/mesa[egl(+)] )
-	>=media-libs/taglib-1.11.1
-	system-ffmpeg? (
-		>=media-video/ffmpeg-${FFMPEG_VERSION}:=[dav1d?,encode,postproc]
-		=media-video/ffmpeg-4*[openssl]
-	)
-	!system-ffmpeg? (
-		app-arch/bzip2
-		dav1d? ( media-libs/dav1d:= )
-	)
-	mysql? ( dev-db/mysql-connector-c:= )
-	mariadb? ( dev-db/mariadb-connector-c:= )
-	>=net-misc/curl-7.68.0[http2]
-	nfs? ( >=net-fs/libnfs-2.0.0:= )
-	!gles? ( media-libs/glu )
-	>=dev-libs/openssl-1.1.1k:0=
-	raspberry-pi? (
-		|| (
-			media-libs/raspberrypi-userland
-			media-libs/raspberrypi-userland-bin
-			>=media-libs/mesa-24.1.0_rc1[opengl,video_cards_vc4]
-			<media-libs/mesa-24.1.0_rc1[egl(+),gles2,video_cards_vc4]
-		)
-	)
-	pulseaudio? ( media-sound/pulseaudio )
-	samba? ( >=net-fs/samba-3.4.6[smbclient(+)] )
-	>=sys-libs/zlib-1.2.11
-	udf? ( >=dev-libs/libudfread-1.0.0 )
-	udev? ( virtual/udev )
-	vaapi? (
-		media-libs/libva:=
-		system-ffmpeg? ( media-video/ffmpeg[vaapi] )
-		wayland? ( media-libs/libva[wayland] )
-		X? ( media-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? (
-		media-libs/mesa[X]
-		!gles? ( media-libs/libglvnd[X] )
-		x11-libs/libX11
-		x11-libs/libXrandr
-		x11-libs/libXrender
-		system-ffmpeg? ( media-video/ffmpeg[X] )
-	)
-	x11-libs/libdrm
-	xslt? (
-		dev-libs/libxslt
-		>=dev-libs/libxml2-2.9.4
-	)
-	zeroconf? ( net-dns/avahi[dbus] )
-"
-RDEPEND="${COMMON_DEPEND} ${COMMON_TARGET_DEPEND}
-	lirc? ( app-misc/lirc )
-	power-control? ( || ( sys-apps/systemd sys-auth/elogind ) )
-	udisks? ( sys-fs/udisks:2 )
-	upower? ( sys-power/upower )
-"
-DEPEND="${COMMON_DEPEND} ${COMMON_TARGET_DEPEND}
-	dev-libs/rapidjson
-	test? ( >=dev-cpp/gtest-1.10.0 )
-"
-BDEPEND="${COMMON_DEPEND}
-	dev-build/cmake
-	dev-lang/swig
-	media-libs/giflib
-	>=dev-libs/flatbuffers-1.11.0
-	>=media-libs/libjpeg-turbo-2.0.4:=
-	>=media-libs/libpng-1.6.26:0=
-	virtual/pkgconfig
-	virtual/jre
-"
-
-CONFIG_CHECK="~IP_MULTICAST"
-ERROR_IP_MULTICAST="
-In some cases Kodi needs to access multicast addresses.
-Please consider enabling IP_MULTICAST under Networking options.
-"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-19.4-atomic.patch"
-	"${FILESDIR}/${PN}-19.4-dav1d-1.0.0.patch"
-	"${FILESDIR}/${PN}-19.5-gcc-13.patch"
-	"${FILESDIR}/${PN}-19.5-flatbuffers.patch"
-)
-
-pkg_setup() {
-	check_extra_config
-	python-single-r1_pkg_setup
-}
-
-src_unpack() {
-	if [[ ${PV} == *9999 ]] ; then
-		git-r3_src_unpack
-	else
-		default
-	fi
-}
-
-src_prepare() {
-	# https://bugs.gentoo.org/885419
-	if has_version ">=media-libs/mesa-22.3.0"; then
-		PATCHES+=( "${FILESDIR}/${PN}-19.4-fix-mesa-22.3.0-build.patch" )
-	fi
-
-	cmake_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}"/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}"/tools/depends/native/TexturePacker/src/autogen.sh \
-		"${S}"/tools/depends/native/JsonSchemaBuilder/src/autogen.sh \
-		|| die
-}
-
-src_configure() {
-	local platform=()
-	use gbm && platform+=( gbm )
-	use wayland && platform+=( wayland )
-	use X && platform+=( x11 )
-	local core_platform_name="${platform[@]}"
-	local mycmakeargs=(
-		-DENABLE_SSE=$(usex cpu_flags_x86_sse)
-		-DENABLE_SSE2=$(usex cpu_flags_x86_sse2)
-		-DENABLE_SSE3=$(usex cpu_flags_x86_sse3)
-		-DENABLE_SSE4_1=$(usex cpu_flags_x86_sse4_1)
-		-DENABLE_SSE4_2=$(usex cpu_flags_x86_sse4_2)
-		-DENABLE_AVX=$(usex cpu_flags_x86_avx)
-		-DENABLE_AVX2=$(usex cpu_flags_x86_avx2)
-		-DENABLE_NEON=$(usex cpu_flags_arm_neon)
-		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
-		-DVERBOSE=ON
-		-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_CLANGFORMAT=OFF
-		-DENABLE_CLANGTIDY=OFF
-		-DENABLE_CPPCHECK=OFF
-		-DENABLE_ISO9660PP=$(usex optical)
-		-DENABLE_CEC=$(usex cec)
-		-DENABLE_DBUS=$(usex dbus)
-		-DENABLE_DVDCSS=$(usex css)
-		-DENABLE_EVENTCLIENTS=ON # alway enable to have 'kodi-send' and filter extra staff in 'src_install()'
-		-DENABLE_INTERNAL_CROSSGUID=OFF
-		-DENABLE_INTERNAL_RapidJSON=OFF
-		-DENABLE_INTERNAL_FMT=OFF
-		-DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)"
-		-DENABLE_INTERNAL_FSTRCMP=OFF
-		-DENABLE_INTERNAL_FLATBUFFERS=OFF
-		-DENABLE_INTERNAL_DAV1D=OFF
-		-DENABLE_INTERNAL_GTEST=OFF
-		-DENABLE_INTERNAL_UDFREAD=OFF
-		-DENABLE_INTERNAL_SPDLOG=OFF
-		-DENABLE_CAP=$(usex caps)
-		-DENABLE_LCMS2=$(usex lcms)
-		-DENABLE_LIRCCLIENT=$(usex lirc)
-		-DENABLE_MARIADBCLIENT=$(usex mariadb)
-		-DENABLE_MDNS=OFF # used only on Android
-		-DENABLE_MICROHTTPD=$(usex webserver)
-		-DENABLE_MYSQLCLIENT=$(usex mysql)
-		-DENABLE_NFS=$(usex nfs)
-		-DENABLE_OPENGLES=$(usex gles)
-		-DENABLE_OPENGL=$(usex !gles)
-		-DENABLE_OPTICAL=$(usex optical)
-		-DENABLE_PLIST=$(usex airplay)
-		-DENABLE_PULSEAUDIO=$(usex pulseaudio)
-		-DENABLE_SMBCLIENT=$(usex samba)
-		-DENABLE_SNDIO=OFF
-		-DENABLE_TESTING=$(usex test)
-		-DENABLE_UDEV=$(usex udev)
-		-DENABLE_UDFREAD=$(usex udf)
-		-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"
-		-DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
-		-DPYTHON_LIBRARY="$(python_get_library_path)"
-		-DAPP_RENDER_SYSTEM="$(usex gles gles gl)"
-		-DCORE_PLATFORM_NAME="${core_platform_name}"
-	)
-
-	use !udev && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) )
-
-	use X && use !gles && mycmakeargs+=( -DENABLE_GLX=ON )
-
-	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 ! echo "${CFLAGS}" | grep -Fwqe '-DNDEBUG' - && ! echo "${CFLAGS}" | grep -Fwqe '-D_DEBUG' - ; then
-		CFLAGS+=' -DNDEBUG' # Kodi requires one of the 'NDEBUG' or '_DEBUG' defines
-		CXXFLAGS+=' -DNDEBUG'
-	fi
-
-	cmake_src_configure
-}
-
-src_compile() {
-	cmake_src_compile all
-}
-
-src_test() {
-	local myctestargs=(
-		# Known failing, unreliable test
-		# bug #743938
-		-E "(TestCPUInfo.GetCPUFrequency)"
-	)
-
-	# see https://github.com/xbmc/xbmc/issues/17860#issuecomment-630120213
-	KODI_HOME="${BUILD_DIR}" cmake_build check
-}
-
-src_install() {
-	cmake_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
-
-	if use !eventclients ; then
-		rm -f "${ED}"/usr/bin/kodi-ps3remote || die
-		rm -f "${D}"$(python_get_sitedir)/kodi/ps3_remote.py || die
-		rm -rf "${D}"$(python_get_sitedir)/kodi/ps3 || die
-		rm -rf "${D}"$(python_get_sitedir)/kodi/bt || die
-		rm -rf "${ED}"/usr/share/doc/${PF}/kodi-eventclients-dev || die
-	fi
-
-	python_optimize "${D}$(python_get_sitedir)"
-}

diff --git a/media-tv/kodi/kodi-20.5-r1.ebuild b/media-tv/kodi/kodi-20.5-r1.ebuild
deleted file mode 100644
index a518af43864c..000000000000
--- a/media-tv/kodi/kodi-20.5-r1.ebuild
+++ /dev/null
@@ -1,479 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# FFmpeg can be unbundled, but is currently stuck at a very old version.
-# libdvd{css,read,nav} are not unbundlable without patching the buildsystem.
-
-# Versions for the forked projects that are bundled
-# See tools/depends/target/<project>/<project>-VERSION
-LIBDVDCSS_VERSION="1.4.3-Next-Nexus-Alpha2-2"
-LIBDVDREAD_VERSION="6.1.3-Next-Nexus-Alpha2-2"
-LIBDVDNAV_VERSION="6.1.1-Next-Nexus-Alpha2-2"
-FFMPEG_VERSION="4.4.1"
-CODENAME="Nexus"
-FFMPEG_KODI_VERSION="Alpha1"
-
-# Doesn't build with jdk-21
-_JAVA_PKG_WANT_BUILD_VM=( {openjdk{,-jre},icedtea}{,-bin}-{8,11,17} )
-JAVA_PKG_WANT_BUILD_VM=${_JAVA_PKG_WANT_BUILD_VM[@]}
-# Required to be set, but not used.
-JAVA_PKG_WANT_SOURCE="17"
-JAVA_PKG_WANT_TARGET="17"
-
-PYTHON_REQ_USE="sqlite,ssl"
-PYTHON_COMPAT=( python3_{10..11} ) # python3.12 support added in 21
-
-CPU_FLAGS="cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_arm_neon"
-
-inherit cmake desktop flag-o-matic java-pkg-2 linux-info optfeature pax-utils python-single-r1 xdg
-
-DESCRIPTION="A free and open source media-player and entertainment hub"
-HOMEPAGE="https://kodi.tv/"
-
-SRC_URI="
-	https://github.com/xbmc/libdvdnav/archive/${LIBDVDNAV_VERSION}.tar.gz
-		-> libdvdnav-${LIBDVDNAV_VERSION}.tar.gz
-	https://github.com/xbmc/libdvdread/archive/${LIBDVDREAD_VERSION}.tar.gz
-		-> libdvdread-${LIBDVDREAD_VERSION}.tar.gz
-	css? (
-		https://github.com/xbmc/libdvdcss/archive/${LIBDVDCSS_VERSION}.tar.gz
-			-> libdvdcss-${LIBDVDCSS_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
-	EGIT_REPO_URI="https://github.com/xbmc/xbmc.git"
-	if [[ ${PV} != "9999" ]]; then
-		EGIT_BRANCH="${CODENAME}"
-	fi
-	inherit git-r3
-else
-	MY_PV=${PV/_p/_r}
-	MY_PV=${MY_PV/_alpha/a}
-	MY_PV=${MY_PV/_beta/b}
-	MY_PV=${MY_PV/_rc/RC}
-	MY_PV="${MY_PV}-${CODENAME}"
-	MY_P="${PN}-${MY_PV}"
-	SRC_URI+=" https://github.com/xbmc/xbmc/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
-	KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
-	S=${WORKDIR}/xbmc-${MY_PV}
-fi
-
-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 doc eventclients gbm gles lcms libusb lirc mariadb mysql nfs +optical pipewire pulseaudio raspberry-pi samba system-ffmpeg test udf udev upnp vaapi vdpau wayland webserver X +xslt zeroconf ${CPU_FLAGS}"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	^^ ( gbm wayland X )
-	?? ( mariadb mysql )
-	bluray? ( udf )
-	gbm? ( udev )
-	udev? ( !libusb )
-	vdpau? ( X !gles !gbm )
-	zeroconf? ( dbus )
-"
-RESTRICT="!test? ( test )"
-
-# dev-libs/libcec[-cubox] bug #818262
-COMMON_DEPEND="
-	>=dev-libs/flatbuffers-1.12.0:=
-	>=dev-libs/lzo-2.04:2
-	media-libs/giflib:=
-	>=media-libs/libjpeg-turbo-2.0.4:=
-	>=media-libs/libpng-1.6.26:0=
-	wayland? (
-		dev-cpp/waylandpp:=
-	)
-"
-COMMON_TARGET_DEPEND="${PYTHON_DEPS}
-	>=net-misc/curl-7.68.0[http2]
-	>=sys-libs/zlib-1.2.11
-	dev-db/sqlite:3
-	dev-libs/crossguid
-	>=dev-libs/fribidi-1.0.5
-	>=dev-libs/libcdio-2.1.0:=[cxx]
-	>=dev-libs/libfmt-6.1.2:=
-	dev-libs/libfstrcmp
-	dev-libs/libpcre[cxx]
-	>=dev-libs/openssl-1.1.1k:0=
-	>=dev-libs/spdlog-1.5.0:=
-	dev-libs/tinyxml[stl]
-	media-fonts/roboto
-	media-libs/libglvnd[X?]
-	>=media-libs/freetype-2.10.1
-	media-libs/harfbuzz:=
-	>=media-libs/libass-0.13.4:=
-	media-libs/mesa[egl(+),gbm(+)?,wayland?,X?]
-	>=media-libs/taglib-1.9.0
-	sci-libs/kissfft
-	virtual/libiconv
-	virtual/ttf-fonts
-	x11-libs/libdrm
-	$(python_gen_cond_dep '
-		dev-python/pillow[${PYTHON_USEDEP}]
-		dev-python/pycryptodome[${PYTHON_USEDEP}]
-	')
-	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.1.2:=
-	)
-	caps? (
-		sys-libs/libcap
-	)
-	cec? (
-		>=dev-libs/libcec-4.0[-cubox]
-	)
-	dbus? (
-		sys-apps/dbus
-	)
-	gbm? (
-		>=dev-libs/libinput-1.10.5:=
-		x11-libs/libxkbcommon
-	)
-	gles? (
-		!raspberry-pi? (
-			|| (
-				>=media-libs/mesa-24.1.0_rc1[opengl]
-				<media-libs/mesa-24.1.0_rc1[gles2]
-			)
-		)
-	)
-	!gles? (
-		media-libs/glu
-	)
-	lcms? (
-		>=media-libs/lcms-2.10:2
-	)
-	libusb? (
-		virtual/libusb:1
-	)
-	lirc? (
-		app-misc/lirc
-	)
-	mariadb? (
-		dev-db/mariadb-connector-c:=
-	)
-	mysql? (
-		dev-db/mysql-connector-c:=
-	)
-	nfs? (
-		>=net-fs/libnfs-2.0.0:=
-	)
-	pipewire? (
-		>=media-video/pipewire-0.3.24:=
-	)
-	pulseaudio? (
-		media-libs/libpulse
-	)
-	raspberry-pi? (
-		|| (
-			media-libs/raspberrypi-userland
-			media-libs/raspberrypi-userland-bin
-			>=media-libs/mesa-24.1.0_rc1[opengl,video_cards_vc4]
-			<media-libs/mesa-24.1.0_rc1[egl(+),gles2,video_cards_vc4]
-		)
-	)
-	samba? (
-		>=net-fs/samba-3.4.6[smbclient(+)]
-	)
-	system-ffmpeg? (
-		>=media-video/ffmpeg-${FFMPEG_VERSION}:=[encode,postproc,vaapi?,vdpau?,X?]
-		=media-video/ffmpeg-4*[openssl]
-	)
-	!system-ffmpeg? (
-		app-arch/bzip2
-		media-libs/dav1d:=
-	)
-	udf? (
-		>=dev-libs/libudfread-1.0.0
-	)
-	udev? (
-		virtual/libudev:=
-	)
-	vaapi? (
-		media-libs/libva:=[wayland?,X?]
-	)
-	vdpau? (
-		|| (
-			>=x11-libs/libvdpau-1.1
-			>=x11-drivers/nvidia-drivers-180.51
-		)
-	)
-	wayland? (
-		>=x11-libs/libxkbcommon-0.4.1[wayland]
-	)
-	webserver? (
-		>=net-libs/libmicrohttpd-0.9.55:=[messages(+)]
-	)
-	X? (
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXrandr
-	)
-	xslt? (
-		dev-libs/libxslt
-		>=dev-libs/libxml2-2.9.4
-	)
-	zeroconf? (
-		net-dns/avahi[dbus]
-	)
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	${COMMON_TARGET_DEPEND}
-"
-DEPEND="
-	${COMMON_DEPEND}
-	${COMMON_TARGET_DEPEND}
-	dev-libs/rapidjson
-	test? (
-		>=dev-cpp/gtest-1.10.0
-	)
-	wayland? (
-		>=dev-libs/wayland-protocols-1.7
-	)
-	X? (
-		x11-base/xorg-proto
-		x11-libs/libXrender
-	)
-"
-# <dev-lang/swig-4.2.0 https://github.com/xbmc/xbmc/issues/24385
-BDEPEND="
-	${COMMON_DEPEND}
-	dev-build/cmake
-	<dev-lang/swig-4.2.0
-	virtual/pkgconfig
-	<=virtual/jre-17:*
-	doc? (
-		app-text/doxygen
-	)
-"
-
-# bug #544020
-CONFIG_CHECK="~IP_MULTICAST"
-ERROR_IP_MULTICAST="
-In some cases Kodi needs to access multicast addresses.
-Please consider enabling IP_MULTICAST under Networking options.
-"
-
-PATCHES=(
-	"${FILESDIR}"/kodi-20.2-binutils-2.41.patch
-	"${FILESDIR}"/kodi-20.3-gcc-14.patch
-)
-
-pkg_setup() {
-	check_extra_config
-	java-pkg-2_pkg_setup
-	python-single-r1_pkg_setup
-}
-
-src_unpack() {
-	if [[ ${PV} == *9999 ]] ; then
-		git-r3_src_unpack
-	else
-		unpack ${MY_P}.tar.gz
-	fi
-}
-
-src_prepare() {
-	cmake_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
-
-	# Add all possible names for kissfft libraries
-	for datatype in {float,int16,int32,simd}; do
-		sed -i \
-			-e "s/\(find_library(KISSFFT_LIBRARY NAMES .*\)/\1 kissfft-${datatype} kissfft-${datatype}-openmp/" \
-			cmake/modules/FindKissFFT.cmake || die
-	done
-}
-
-src_configure() {
-	local mycmakeargs=(
-		-Wno-dev # less noise
-
-		-DAPP_RENDER_SYSTEM=$(usex gles gles gl)
-		-DCORE_PLATFORM_NAME=$(usev gbm)$(usev wayland)$(usev X x11)
-		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
-		-DENABLE_TESTING=$(usex test)
-		-DVERBOSE=ON
-
-		# Enforce use of configured python interpeter
-		-DPYTHON_PATH=$(python_get_library_path)
-		-DPYTHON_VER=${EPYTHON##python} # wont work for pypy
-
-		# Toolchain
-		-DENABLE_CCACHE=OFF
-		-DENABLE_CLANGFORMAT=OFF
-		-DENABLE_CLANGTIDY=OFF
-		-DENABLE_CPPCHECK=OFF
-		-DENABLE_INCLUDEWHATYOUUSE=OFF
-		# https://bugs.gentoo.org/show_bug.cgi?id=606124
-		-DENABLE_GOLD=OFF
-		-DENABLE_LLD=OFF
-		-DENABLE_MOLD=OFF
-		-DUSE_LTO=OFF
-
-		# Features
-		-DENABLE_AIRTUNES=$(usex airplay)
-		-DENABLE_ALSA=$(usex alsa)
-		-DENABLE_AVAHI=$(usex zeroconf)
-		-DENABLE_BLUETOOTH=$(usex bluetooth)
-		-DENABLE_BLURAY=$(usex bluray)
-		-DENABLE_CAP=$(usex caps)
-		-DENABLE_CEC=$(usex cec)
-		-DENABLE_DBUS=$(usex dbus)
-		-DENABLE_DVDCSS=$(usex css)
-		-DENABLE_EVENTCLIENTS=ON # alway enable to have 'kodi-send' and filter extra staff in 'src_install()'
-		-DENABLE_ISO9660PP=$(usex optical)
-		-DENABLE_LCMS2=$(usex lcms)
-		-DENABLE_LIRCCLIENT=$(usex lirc)
-		-DENABLE_MARIADBCLIENT=$(usex mariadb)
-		-DENABLE_MDNS=OFF # used only on Android
-		-DENABLE_MICROHTTPD=$(usex webserver)
-		-DENABLE_MYSQLCLIENT=$(usex mysql)
-		-DENABLE_NFS=$(usex nfs)
-		-DENABLE_OPENGL=$(usex !gles)
-		-DENABLE_OPENGLES=$(usex gles)
-		-DENABLE_OPTICAL=$(usex optical)
-		-DENABLE_PIPEWIRE=$(usex pipewire)
-		-DENABLE_PLIST=$(usex airplay)
-		-DENABLE_PULSEAUDIO=$(usex pulseaudio)
-		-DENABLE_SMBCLIENT=$(usex samba)
-		-DENABLE_SNDIO=OFF
-		-DENABLE_UDEV=$(usex udev)
-		-DENABLE_UDFREAD=$(usex udf)
-		-DENABLE_UPNP=$(usex upnp)
-		-DENABLE_VAAPI=$(usex vaapi)
-		-DENABLE_VDPAU=$(usex vdpau)
-		-DENABLE_XSLT=$(usex xslt)
-
-		#To bundle or not
-		-DENABLE_INTERNAL_CROSSGUID=OFF
-		-DENABLE_INTERNAL_DAV1D=OFF
-		-DENABLE_INTERNAL_FFMPEG="$(usex !system-ffmpeg)"
-		-DENABLE_INTERNAL_FLATBUFFERS=OFF
-		-DENABLE_INTERNAL_FMT=OFF
-		-DENABLE_INTERNAL_FSTRCMP=OFF
-		-DENABLE_INTERNAL_GTEST=OFF
-		-DENABLE_INTERNAL_KISSFFT=OFF
-		-DENABLE_INTERNAL_PCRE=OFF
-		-DENABLE_INTERNAL_RapidJSON=OFF
-		-DENABLE_INTERNAL_SPDLOG=OFF
-		-DENABLE_INTERNAL_TAGLIB=OFF
-		-DENABLE_INTERNAL_UDFREAD=OFF
-
-		-DWITH_FFMPEG=$(usex system-ffmpeg)
-
-		-Dlibdvdnav_URL="${DISTDIR}/libdvdnav-${LIBDVDNAV_VERSION}.tar.gz"
-		-Dlibdvdread_URL="${DISTDIR}/libdvdread-${LIBDVDREAD_VERSION}.tar.gz"
-	)
-
-	# Separated to avoid "Manually-specified variables were not used by the project:"
-	use css && mycmakeargs+=( -Dlibdvdcss_URL="${DISTDIR}/libdvdcss-${LIBDVDCSS_VERSION}.tar.gz" )
-	use !system-ffmpeg && mycmakeargs+=(
-		-DFFMPEG_URL="${DISTDIR}/ffmpeg-${PN}-${FFMPEG_VERSION}-${CODENAME}-${FFMPEG_KODI_VERSION}.tar.gz"
-	)
-	use nfs && mycmakeargs+=( -DENABLE_INTERNAL_NFS=OFF )
-	use !udev && mycmakeargs+=( -DENABLE_LIBUSB=$(usex libusb) )
-	use X && use !gles && mycmakeargs+=( -DENABLE_GLX=ON )
-
-	for flag in ${CPU_FLAGS[@]} ; do
-		local name=${flag#cpu_flags_*_}
-		mycmakeargs+=( -DENABLE_${name^^}=$(usex ${flag}) )
-	done
-
-	if ! is-flag -DNDEBUG && ! is-flag -D_DEBUG ; then
-		# Kodi requires one of the 'NDEBUG' or '_DEBUG' defines
-		append-cflags -DNDEBUG
-		append-cxxflags -DNDEBUG
-	fi
-
-	# Violates ODR (bug #860984) and USE_LTO does spooky stuff
-	# https://github.com/xbmc/xbmc/commit/cb72a22d54a91845b1092c295f84eeb48328921e
-	filter-lto
-
-	cmake_src_configure
-}
-
-src_compile() {
-	cmake_src_compile all
-	use doc && cmake_build doc
-	use test && cmake_build kodi-test
-}
-
-src_test() {
-	local -x CMAKE_SKIP_TESTS=(
-		# Known failing, unreliable test
-		# bug #743938
-		TestCPUInfo.GetCPUFrequency
-		# Test failure stemming from sci-libs/kissfft
-		# The difference between output[2i] and (i==freq1?1.0:0.0) is inf, which exceeds 1e-7, where output[2i]
-		# evaluates to inf,(i==freq1?1.0:0.0) evaluates to 0, and 1e-7 evaluates to 9.9999999999999995e-08.
-		TestRFFT.SimpleSignal
-		# bug #779184
-		# https://github.com/xbmc/xbmc/issues/18594
-		$(usev x86 TestDateTime.SetFromDBTime)
-	)
-
-	# see https://github.com/xbmc/xbmc/issues/17860#issuecomment-630120213
-	local -x KODI_HOME="${BUILD_DIR}"
-
-	cmake_src_test
-}
-
-src_install() {
-	cmake_src_install
-
-	# bug #457588
-	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
-
-	if use !eventclients ; then
-		rm -f "${ED}"/usr/bin/kodi-ps3remote || die
-		rm -f "${D}"$(python_get_sitedir)/kodi/ps3_remote.py || die
-		rm -rf "${D}"$(python_get_sitedir)/kodi/ps3 || die
-		rm -rf "${D}"$(python_get_sitedir)/kodi/bt || die
-		rm -rf "${ED}"/usr/share/doc/${PF}/kodi-eventclients-dev || die
-	fi
-
-	python_optimize "${D}$(python_get_sitedir)"
-
-	einstalldocs
-	use doc && dodoc -r "${S}"/docs/html/
-}
-
-pkg_postinst() {
-	xdg_pkg_postinst
-
-	if use dbus ; then
-		optfeature "getting battery level and active power source" sys-power/upower
-		optfeature "control of shutdown, reboot, suspend, and hibernate" sys-auth/elogind sys-apps/systemd
-		optfeature "storage management support (automounting, volume monitoring, etc)" sys-fs/udisks:2
-	fi
-}


^ permalink raw reply related	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2024-09-14 20:12 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-24 10:00 [gentoo-commits] repo/gentoo:master commit in: media-tv/kodi/files/, media-tv/kodi/ Alexis Ballier
  -- strict thread matches above, loose matches on Subject: below --
2024-09-14 20:12 Andreas Sturmlechner
2024-08-25 16:10 Sam James
2024-06-02  7:10 Sam James
2024-05-23 18:01 Matt Turner
2024-01-21  4:41 Sam James
2023-05-31  3:07 Sam James
2023-01-30  3:27 Sam James
2022-12-17 19:38 Craig Andrews
2022-08-26 14:38 Jakov Smolić
2020-08-04 20:43 Craig Andrews
2020-06-23 18:44 Craig Andrews
2019-12-06 17:07 Craig Andrews
2019-09-05 17:30 Craig Andrews
2019-09-02 20:42 Craig Andrews
2019-02-18  3:01 Craig Andrews
2018-11-28 16:33 Craig Andrews
2018-06-25 17:37 Craig Andrews
2017-10-23 13:36 Craig Andrews
2017-01-20 16:52 Jory Pratt
2017-01-17 19:38 David Seifert
2017-01-17 18:57 David Seifert
2015-08-26  5:27 Mike Frysinger
2015-08-26  5:23 Mike Frysinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox