diff --git a/packages/mediacenter/kodi-theme-Confluence/package.mk b/packages/mediacenter/kodi-theme-Confluence/package.mk
index 012947c84c..98bf3af4da 100644
--- a/packages/mediacenter/kodi-theme-Confluence/package.mk
+++ b/packages/mediacenter/kodi-theme-Confluence/package.mk
@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi-theme-Confluence"
-PKG_VERSION="14-7cc53a9"
+PKG_VERSION="15.0-beta1-56af059"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk
index 1e9b8fcfd5..e6dc432fbb 100644
--- a/packages/mediacenter/kodi/package.mk
+++ b/packages/mediacenter/kodi/package.mk
@@ -17,14 +17,14 @@
################################################################################
PKG_NAME="kodi"
-PKG_VERSION="14-7cc53a9"
+PKG_VERSION="15.0-beta1-56af059"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
-PKG_DEPENDS_TARGET="toolchain boost Python zlib bzip2 systemd pciutils lzo pcre swig:host libass enca curl rtmpdump fontconfig fribidi tinyxml libjpeg-turbo libpng tiff freetype jasper libogg libcdio libmodplug libmpeg2 taglib libxml2 libxslt yajl sqlite libvorbis ffmpeg kodi:host"
-PKG_DEPENDS_HOST="toolchain"
+PKG_DEPENDS_TARGET="toolchain kodi:host libsquish boost Python zlib bzip2 systemd pciutils lzo pcre swig:host libass curl rtmpdump fontconfig fribidi tinyxml libjpeg-turbo libpng tiff freetype jasper libogg libcdio libmpeg2 taglib libxml2 libxslt yajl sqlite libvorbis ffmpeg"
+PKG_DEPENDS_HOST="lzo:host libpng:host libjpeg-turbo:host giflib:host"
PKG_PRIORITY="optional"
PKG_SECTION="mediacenter"
PKG_SHORTDESC="kodi: Kodi Mediacenter"
@@ -33,15 +33,14 @@ PKG_LONGDESC="Kodi Media Center (which was formerly named Xbox Media Center or X
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
+DEBUG="yes"
+
# configure GPU drivers and dependencies:
get_graphicdrivers
# for dbus support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET dbus"
-# needed for hosttools (Texturepacker)
- PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET lzo:host SDL:host SDL_image:host"
-
if [ "$DISPLAYSERVER" = "x11" ]; then
# for libX11 support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libX11 libXext libdrm"
@@ -68,14 +67,6 @@ else
KODI_OPENGLES="--disable-gles"
fi
-if [ "$SDL_SUPPORT" = yes ]; then
-# for SDL support
- PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET SDL2"
- KODI_SDL="--enable-sdl"
-else
- KODI_SDL="--disable-sdl"
-fi
-
if [ "$ALSA_SUPPORT" = yes ]; then
# for ALSA support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET alsa-lib"
@@ -97,53 +88,17 @@ else
KODI_CEC="--disable-libcec"
fi
-if [ "$KODI_SCR_RSXS" = yes ]; then
-# for RSXS Screensaver support
- PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libXt libXmu"
- KODI_RSXS="--enable-rsxs"
-# fix build of RSXS Screensaver support if not using libiconv
- export jm_cv_func_gettimeofday_clobber=no
-else
- KODI_RSXS="--disable-rsxs"
-fi
-
-if [ "$KODI_VIS_PROJECTM" = yes ]; then
-# for ProjectM Visualisation support
- KODI_PROJECTM="--enable-projectm"
-else
- KODI_PROJECTM="--disable-projectm"
-fi
-
-if [ "$KODI_VIS_GOOM" = yes ]; then
-# for GOOM Visualisation support
- KODI_GOOM="--enable-goom"
-else
- KODI_GOOM="--disable-goom"
-fi
-
-if [ "$KODI_VIS_WAVEFORM" = yes ]; then
-# for Waveform Visualisation support
- KODI_WAVEFORM="--enable-waveform"
-else
- KODI_WAVEFORM="--disable-waveform"
-fi
-
-if [ "$KODI_VIS_SPECTRUM" = yes ]; then
-# for Spectrum Visualisation support
- KODI_SPECTRUM="--enable-spectrum"
-else
- KODI_SPECTRUM="--disable-spectrum"
-fi
-
-if [ "$KODI_VIS_FISHBMC" = yes ]; then
-# for FishBMC Visualisation support
- KODI_FISHBMC="--enable-fishbmc"
-else
- KODI_FISHBMC="--disable-fishbmc"
-fi
+# TODO remove
+KODI_RSXS="--disable-rsxs"
+KODI_PROJECTM="--disable-projectm"
+KODI_GOOM="--disable-goom"
+KODI_WAVEFORM="--disable-waveform"
+KODI_SPECTRUM="--disable-spectrum"
+KODI_FISHBMC="--disable-fishbmc"
if [ "$JOYSTICK_SUPPORT" = yes ]; then
# for Joystick support
+ PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET SDL2"
KODI_JOYSTICK="--enable-joystick"
else
KODI_JOYSTICK="--disable-joystick"
@@ -168,10 +123,6 @@ else
KODI_DVDCSS="--disable-dvdcss"
fi
-if [ "$FAAC_SUPPORT" = yes ]; then
- PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET faac"
-fi
-
if [ "$KODI_BLURAY_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libbluray"
KODI_BLURAY="--enable-libbluray"
@@ -294,7 +245,6 @@ PKG_CONFIGURE_OPTS_TARGET="gl_cv_func_gettimeofday_clobber=no \
--disable-optimizations \
$KODI_OPENGL \
$KODI_OPENGLES \
- $KODI_SDL \
$KODI_OPENMAX \
$KODI_VDPAU \
$KODI_VAAPI \
@@ -318,8 +268,6 @@ PKG_CONFIGURE_OPTS_TARGET="gl_cv_func_gettimeofday_clobber=no \
--enable-rtmp \
$KODI_SAMBA \
$KODI_NFS \
- --disable-afpclient \
- --enable-libvorbisenc \
--disable-libcap \
$KODI_DVDCSS \
--disable-mid \
@@ -347,10 +295,13 @@ pre_configure_host() {
make_host() {
make -C tools/depends/native/JsonSchemaBuilder
+ make -C tools/depends/native/TexturePacker
}
makeinstall_host() {
cp -PR tools/depends/native/JsonSchemaBuilder/native/JsonSchemaBuilder $ROOT/$TOOLCHAIN/bin
+ rm -f $ROOT/$TOOLCHAIN/bin/TexturePacker
+ cp -PR tools/depends/native/TexturePacker/native/TexturePacker $ROOT/$TOOLCHAIN/bin
}
pre_build_target() {
@@ -394,9 +345,6 @@ make_target() {
if [ "$DISPLAYSERVER" = "x11" ]; then
make kodi-xrandr
fi
-
- make -C tools/TexturePacker
- cp -PR tools/TexturePacker/TexturePacker $ROOT/$TOOLCHAIN/bin
}
post_makeinstall_target() {
@@ -423,14 +371,6 @@ post_makeinstall_target() {
rm -rf $INSTALL/usr/lib/kodi/kodi-xrandr
fi
- if [ ! "$KODI_SCR_RSXS" = yes ]; then
- rm -rf $INSTALL/usr/share/kodi/addons/screensaver.rsxs.*
- fi
-
- if [ ! "$KODI_VIS_PROJECTM" = yes ]; then
- rm -rf $INSTALL/usr/share/kodi/addons/visualization.projectm
- fi
-
rm -rf $INSTALL/usr/share/applications
rm -rf $INSTALL/usr/share/icons
rm -rf $INSTALL/usr/share/kodi/addons/service.xbmc.versioncheck
diff --git a/packages/mediacenter/kodi/patches/kodi-051-add_ouya_controller_keymap.patch b/packages/mediacenter/kodi/patches/kodi-051-add_ouya_controller_keymap.patch
deleted file mode 100644
index 199c1a442d..0000000000
--- a/packages/mediacenter/kodi/patches/kodi-051-add_ouya_controller_keymap.patch
+++ /dev/null
@@ -1,338 +0,0 @@
-diff -Naur xbmc-14-5ec51aa.orig/system/keymaps/joystick.Ouya.Controller.xml xbmc-14-5ec51aa/system/keymaps/joystick.Ouya.Controller.xml
---- xbmc-14-5ec51aa.orig/system/keymaps/joystick.Ouya.Controller.xml 1969-12-31 16:00:00.000000000 -0800
-+++ xbmc-14-5ec51aa/system/keymaps/joystick.Ouya.Controller.xml 2014-06-06 16:31:54.812044875 -0700
-@@ -0,0 +1,334 @@
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ AnalogSeekBack
-+ AnalogSeekForward
-+ ScrollUp
-+ ScrollDown
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ AnalogRewind
-+ AnalogFastForward
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ AnalogRewind
-+ AnalogFastForward
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ AnalogMove
-+ AnalogMove
-+ ZoomOut
-+ ZoomIn
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ CursorLeft
-+ CursorRight
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
diff --git a/packages/mediacenter/kodi/patches/kodi-052-ps4_controller_support.patch b/packages/mediacenter/kodi/patches/kodi-052-ps4_controller_support.patch
deleted file mode 100644
index 03283fe921..0000000000
--- a/packages/mediacenter/kodi/patches/kodi-052-ps4_controller_support.patch
+++ /dev/null
@@ -1,328 +0,0 @@
-diff -Naur xbmc-14-5ec51aa.orig/system/keymaps/joystick.PS4.Controller.xml xbmc-14-5ec51aa/system/keymaps/joystick.PS4.Controller.xml
---- xbmc-14-5ec51aa.orig/system/keymaps/joystick.PS4.Controller.xml 1969-12-31 16:00:00.000000000 -0800
-+++ xbmc-14-5ec51aa/system/keymaps/joystick.PS4.Controller.xml 2014-06-06 16:53:33.786191904 -0700
-@@ -0,0 +1,324 @@
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ Left
-+ Right
-+ Up
-+ Down
-+ AnalogSeekForward
-+ AnalogSeekBack
-+ ScrollUp
-+ ScrollDown
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ StepBack
-+ StepForward
-+ BigStepForward
-+ BigStepBack
-+
-+
-+
-+
-+
-+ ChannelUp
-+ ChannelDown
-+ PreviousChannelGroup
-+ NextChannelGroup
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+ PreviousPicture
-+ NextPicture
-+ AnalogMove
-+ AnalogMove
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
diff --git a/packages/mediacenter/kodi/patches/kodi-053-add-custom-key-id.patch b/packages/mediacenter/kodi/patches/kodi-053-add-custom-key-id.patch
deleted file mode 100644
index 3925f09d02..0000000000
--- a/packages/mediacenter/kodi/patches/kodi-053-add-custom-key-id.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur kodi-14-b5dbdb5.orig/xbmc/input/linux/LinuxInputDevices.cpp kodi-14-b5dbdb5/xbmc/input/linux/LinuxInputDevices.cpp
---- kodi-14-b5dbdb5.orig/xbmc/input/linux/LinuxInputDevices.cpp 2015-02-20 22:00:07.688420179 -0800
-+++ kodi-14-b5dbdb5/xbmc/input/linux/LinuxInputDevices.cpp 2015-02-20 22:01:36.495680879 -0800
-@@ -255,6 +255,8 @@
- { 378 , XBMCK_RIGHT }, // Green
- { 381 , XBMCK_UP }, // Yellow
- { 366 , XBMCK_DOWN }, // Blue
-+ // Rii i7 Home button
-+ { 172 , XBMCK_HOME },
- };
-
- typedef enum
diff --git a/packages/mediacenter/kodi/patches/kodi-102-dont_really_depend_on_SDL_image.patch b/packages/mediacenter/kodi/patches/kodi-102-dont_really_depend_on_SDL_image.patch
deleted file mode 100644
index d0aa38f3a0..0000000000
--- a/packages/mediacenter/kodi/patches/kodi-102-dont_really_depend_on_SDL_image.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur kodi-14-af6d342/configure.in kodi-14-af6d342.patch/configure.in
---- kodi-14-af6d342/configure.in 2014-10-27 11:34:57.000000000 +0100
-+++ kodi-14-af6d342.patch/configure.in 2014-10-31 02:34:19.322700780 +0100
-@@ -1230,7 +1230,6 @@
- [AC_MSG_ERROR($missing_library)])
- ]
- )
-- AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
- AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
- fi
- fi
diff --git a/packages/mediacenter/kodi/patches/kodi-104-use-udevil-to-umount.patch b/packages/mediacenter/kodi/patches/kodi-104-use-udevil-to-umount.patch
index 86bfb5c4fe..f5c29accf1 100644
--- a/packages/mediacenter/kodi/patches/kodi-104-use-udevil-to-umount.patch
+++ b/packages/mediacenter/kodi/patches/kodi-104-use-udevil-to-umount.patch
@@ -1,7 +1,7 @@
-From 855160db446fe0059f072b207d53c15ba18d952f Mon Sep 17 00:00:00 2001
+From a3795cdc78a56b73875ce862227114bdf2871591 Mon Sep 17 00:00:00 2001
From: Stefan Saraev
Date: Thu, 17 Apr 2014 12:12:50 +0300
-Subject: [PATCH] use udevil to umount
+Subject: [PATCH 1/6] use udevil to umount
---
xbmc/linux/PosixMountProvider.cpp | 2 +-
@@ -9,10 +9,10 @@ Subject: [PATCH] use udevil to umount
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/xbmc/linux/PosixMountProvider.cpp b/xbmc/linux/PosixMountProvider.cpp
-index 2339709..7001563 100644
+index 218d10b..57e94ca 100644
--- a/xbmc/linux/PosixMountProvider.cpp
+++ b/xbmc/linux/PosixMountProvider.cpp
-@@ -131,7 +131,7 @@ bool CPosixMountProvider::Eject(CStdString mountpath)
+@@ -133,7 +133,7 @@ bool CPosixMountProvider::Eject(const std::string& mountpath)
{
// just go ahead and try to umount the disk
// if it does umount, life is good, if not, no loss.
@@ -22,10 +22,10 @@ index 2339709..7001563 100644
if (status == 0)
diff --git a/xbmc/storage/linux/UDevProvider.cpp b/xbmc/storage/linux/UDevProvider.cpp
-index 73aa408..8bd02b6 100644
+index 0ca370b..dffee34 100644
--- a/xbmc/storage/linux/UDevProvider.cpp
+++ b/xbmc/storage/linux/UDevProvider.cpp
-@@ -183,7 +183,7 @@ bool CUDevProvider::Eject(CStdString mountpath)
+@@ -207,7 +207,7 @@ bool CUDevProvider::Eject(const std::string& mountpath)
{
// just go ahead and try to umount the disk
// if it does umount, life is good, if not, no loss.
@@ -35,5 +35,5 @@ index 73aa408..8bd02b6 100644
if (status == 0)
--
-1.9.1
+2.1.4
diff --git a/packages/mediacenter/kodi/patches/kodi-200-make-binary-addons-executable.patch b/packages/mediacenter/kodi/patches/kodi-200-make-binary-addons-executable.patch
index 03ad7e1487..fbbfe2687e 100644
--- a/packages/mediacenter/kodi/patches/kodi-200-make-binary-addons-executable.patch
+++ b/packages/mediacenter/kodi/patches/kodi-200-make-binary-addons-executable.patch
@@ -1,28 +1,28 @@
-From c572751d90ab26971d401819b146cf4daa64670c Mon Sep 17 00:00:00 2001
-From: vpeter4
-Date: Wed, 1 Oct 2014 10:12:11 +0200
+From 06ebc448041c43b8c13ac61b7bda20cb6120c588 Mon Sep 17 00:00:00 2001
+From: Stefan Saraev
+Date: Mon, 2 Mar 2015 23:50:40 +0200
Subject: [PATCH] make binary addons executable
add executable mode to all files in addon's bin folder
---
- xbmc/addons/AddonInstaller.cpp | 23 +++++++++++++++++++++++
+ xbmc/addons/AddonInstaller.cpp | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp
-index d358a23..6b55c3a 100644
+index f4a241c..f6d88f2 100644
--- a/xbmc/addons/AddonInstaller.cpp
+++ b/xbmc/addons/AddonInstaller.cpp
-@@ -39,6 +39,9 @@
- #include "dialogs/GUIDialogKaiToast.h"
+@@ -40,6 +40,9 @@
+ #include "dialogs/GUIDialogOK.h"
#include "dialogs/GUIDialogProgress.h"
#include "URL.h"
+#include
+#include
+#include
- using namespace std;
- using namespace XFILE;
-@@ -715,6 +718,26 @@ bool CAddonInstallJob::Install(const std::string &installFrom, const AddonPtr& r
+ #include
+
+@@ -869,6 +872,26 @@ bool CAddonInstallJob::Install(const std::string &installFrom, const AddonPtr& r
void CAddonInstallJob::OnPostInstall(bool reloadAddon)
{
@@ -46,9 +46,9 @@ index d358a23..6b55c3a 100644
+ closedir(addonsDir);
+ }
+
- if (CSettings::Get().GetBool("general.addonnotifications"))
- {
- CGUIDialogKaiToast::QueueNotification(m_addon->Icon(),
+ if (!IsModal() && CSettings::Get().GetBool("general.addonnotifications"))
+ CGUIDialogKaiToast::QueueNotification(m_addon->Icon(), m_addon->Name(),
+ g_localizeStrings.Get(m_update ? 24065 : 24064),
--
-1.8.1.2
+1.7.10.4
diff --git a/packages/mediacenter/kodi/patches/kodi-501-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch b/packages/mediacenter/kodi/patches/kodi-501-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch
index d58eeecb9d..17b1a6752d 100644
--- a/packages/mediacenter/kodi/patches/kodi-501-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch
+++ b/packages/mediacenter/kodi/patches/kodi-501-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch
@@ -1,18 +1,18 @@
diff --git a/xbmc/interfaces/python/XBPython.cpp b/xbmc/interfaces/python/XBPython.cpp
-index 01a129e..07b4878 100644
+index f179b12..4a4ddd1 100644
--- a/xbmc/interfaces/python/XBPython.cpp
+++ b/xbmc/interfaces/python/XBPython.cpp
-@@ -445,10 +445,9 @@ bool XBPython::InitializeEngine()
- // at http://docs.python.org/using/cmdline.html#environment-variables
+@@ -571,10 +571,9 @@ bool XBPython::OnScriptInitialized(ILanguageInvoker *invoker)
+ // at http://docs.python.org/using/cmdline.html#environment-variables
#if !defined(TARGET_WINDOWS) && !defined(TARGET_ANDROID)
-- /* PYTHONOPTIMIZE is set off intentionally when using external Python.
-- Reason for this is because we cannot be sure what version of Python
-- was used to compile the various Python object files (i.e. .pyo,
-- .pyc, etc.). */
-+ // Required for python to find optimized code (pyo) files
-+ setenv("PYTHONOPTIMIZE", "1", 1);
+- /* PYTHONOPTIMIZE is set off intentionally when using external Python.
+- Reason for this is because we cannot be sure what version of Python
+- was used to compile the various Python object files (i.e. .pyo,
+- .pyc, etc.). */
++ // Required for python to find optimized code (pyo) files
++ setenv("PYTHONOPTIMIZE", "1", 1);
+
- // check if we are running as real xbmc.app or just binary
- if (!CUtil::GetFrameworksPath(true).empty())
- {
+ // check if we are running as real xbmc.app or just binary
+ if (!CUtil::GetFrameworksPath(true).empty())
+ {
diff --git a/packages/mediacenter/kodi/patches/kodi-995.01-fernetmenta.patch b/packages/mediacenter/kodi/patches/kodi-995.01-fernetmenta.patch
deleted file mode 100644
index 61b6f44c47..0000000000
--- a/packages/mediacenter/kodi/patches/kodi-995.01-fernetmenta.patch
+++ /dev/null
@@ -1,1223 +0,0 @@
-From f96268818f3d054afb71d22be580d9cdedd7eb66 Mon Sep 17 00:00:00 2001
-From: xbmc
-Date: Thu, 11 Oct 2012 12:05:50 +0200
-Subject: [PATCH 01/10] vdpau: advanced settings for auto deinterlacing
-
----
- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 8 ++++----
- xbmc/settings/AdvancedSettings.cpp | 4 ++++
- xbmc/settings/AdvancedSettings.h | 2 ++
- 3 files changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
-index 1871eb8..5e18248 100644
---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
-+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
-@@ -1965,10 +1965,10 @@ EINTERLACEMETHOD CMixer::GetDeinterlacingMethod(bool log /* = false */)
- if (method == VS_INTERLACEMETHOD_AUTO)
- {
- int deint = -1;
--// if (m_config.outHeight >= 720)
--// deint = g_advancedSettings.m_videoVDPAUdeintHD;
--// else
--// deint = g_advancedSettings.m_videoVDPAUdeintSD;
-+ if (m_config.outHeight >= 720)
-+ deint = g_advancedSettings.m_videoVDPAUdeintHD;
-+ else
-+ deint = g_advancedSettings.m_videoVDPAUdeintSD;
-
- if (deint != -1)
- {
-diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
-index e6d58b3..1f92402 100644
---- a/xbmc/settings/AdvancedSettings.cpp
-+++ b/xbmc/settings/AdvancedSettings.cpp
-@@ -157,6 +157,8 @@ void CAdvancedSettings::Initialize()
- m_videoAutoScaleMaxFps = 30.0f;
- m_videoDisableBackgroundDeinterlace = false;
- m_videoCaptureUseOcclusionQuery = -1; //-1 is auto detect
-+ m_videoVDPAUdeintHD = -1;
-+ m_videoVDPAUdeintSD = -1;
- m_videoVDPAUtelecine = false;
- m_videoVDPAUdeintSkipChromaHD = false;
- m_useFfmpegVda = false;
-@@ -589,6 +591,8 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file)
- XMLUtils::GetFloat(pElement,"autoscalemaxfps",m_videoAutoScaleMaxFps, 0.0f, 1000.0f);
- XMLUtils::GetBoolean(pElement, "disablebackgrounddeinterlace", m_videoDisableBackgroundDeinterlace);
- XMLUtils::GetInt(pElement, "useocclusionquery", m_videoCaptureUseOcclusionQuery, -1, 1);
-+ XMLUtils::GetInt(pElement,"vdpauHDdeint",m_videoVDPAUdeintHD);
-+ XMLUtils::GetInt(pElement,"vdpauSDdeint",m_videoVDPAUdeintSD);
- XMLUtils::GetBoolean(pElement,"vdpauInvTelecine",m_videoVDPAUtelecine);
- XMLUtils::GetBoolean(pElement,"vdpauHDdeintSkipChroma",m_videoVDPAUdeintSkipChromaHD);
- XMLUtils::GetBoolean(pElement,"useffmpegvda", m_useFfmpegVda);
-diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
-index fb5a837..9b805a0 100644
---- a/xbmc/settings/AdvancedSettings.h
-+++ b/xbmc/settings/AdvancedSettings.h
-@@ -162,6 +162,8 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler
- int m_videoPercentSeekBackwardBig;
- CStdString m_videoPPFFmpegDeint;
- CStdString m_videoPPFFmpegPostProc;
-+ int m_videoVDPAUdeintHD;
-+ int m_videoVDPAUdeintSD;
- bool m_videoVDPAUtelecine;
- bool m_videoVDPAUdeintSkipChromaHD;
- bool m_musicUseTimeSeeking;
-
-From aecf2bd32b23a933d65eff1e32a295fdadaf8867 Mon Sep 17 00:00:00 2001
-From: Rainer Hochecker
-Date: Thu, 25 Jul 2013 17:18:13 +0200
-Subject: [PATCH 02/10] ActiveAE: slightly reduce buffer size
-
----
- xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
-index 6e9900f..17b6c01 100644
---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
-+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
-@@ -33,8 +33,8 @@ using namespace ActiveAE;
-
- #include "utils/TimeUtils.h"
-
--#define MAX_CACHE_LEVEL 0.5 // total cache time of stream in seconds
--#define MAX_WATER_LEVEL 0.25 // buffered time after stream stages in seconds
-+#define MAX_CACHE_LEVEL 0.4 // total cache time of stream in seconds
-+#define MAX_WATER_LEVEL 0.2 // buffered time after stream stages in seconds
- #define MAX_BUFFER_TIME 0.1 // max time of a buffer in seconds
-
- void CEngineStats::Reset(unsigned int sampleRate)
-
-From 817f21c47b7c000b6a49596b862adfa6de4feec7 Mon Sep 17 00:00:00 2001
-From: Rainer Hochecker
-Date: Sat, 4 Oct 2014 21:25:31 +0200
-Subject: [PATCH 04/10] vaapi: lock gfx context on pre-cleanup
-
----
- xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
-index ed7bd74..9c1dd84 100644
---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
-+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
-@@ -628,6 +628,7 @@ long CDecoder::Release()
- if (g_advancedSettings.CanLogComponent(LOGVIDEO))
- CLog::Log(LOGDEBUG,"VAAPI::Release pre-cleanup");
-
-+ CSingleLock lock1(g_graphicsContext);
- Message *reply;
- if (m_vaapiOutput.m_controlPort.SendOutMessageSync(COutputControlProtocol::PRECLEANUP,
- &reply,
-
-From d0fa19a4c6ce0967d4bfdab9836696b379895064 Mon Sep 17 00:00:00 2001
-From: Anssi Hannula
-Date: Sun, 19 Oct 2014 21:34:47 +0300
-Subject: [PATCH 05/10] [linux] Add FDEventMonitor for monitoring file
- descriptors
-
-Add FDEventMonitor helper thread for monitoring file descriptors for
-events (ready for read, ready for write) without the need for spawning
-a separate thread with a tight loop around poll()/select().
-
-FDEventMonitor uses an eventfd for signaling poll() instead of a
-timeout, therefore it can sleep for long times in case of no events but
-still immediately respond to e.g. shutdown.
----
- xbmc/linux/FDEventMonitor.cpp | 248 ++++++++++++++++++++++++++++++++++++++++++
- xbmc/linux/FDEventMonitor.h | 89 +++++++++++++++
- xbmc/linux/Makefile.in | 1 +
- 3 files changed, 338 insertions(+)
- create mode 100644 xbmc/linux/FDEventMonitor.cpp
- create mode 100644 xbmc/linux/FDEventMonitor.h
-
-diff --git a/xbmc/linux/FDEventMonitor.cpp b/xbmc/linux/FDEventMonitor.cpp
-new file mode 100644
-index 0000000..4a41477
---- /dev/null
-+++ b/xbmc/linux/FDEventMonitor.cpp
-@@ -0,0 +1,248 @@
-+/*
-+ * Copyright (C) 2014 Team Kodi
-+ * http://xbmc.org
-+ *
-+ * 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 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.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with Kodi; see the file COPYING. If not, see
-+ * .
-+ *
-+ */
-+#include "system.h"
-+#ifdef HAS_ALSA
-+
-+#include
-+#include
-+#include
-+
-+#include "utils/log.h"
-+
-+#include "FDEventMonitor.h"
-+
-+CFDEventMonitor::CFDEventMonitor() :
-+ CThread("FDEventMonitor"),
-+ m_nextID(0),
-+ m_wakeupfd(-1)
-+{
-+}
-+
-+CFDEventMonitor::~CFDEventMonitor()
-+{
-+ CSingleLock lock(m_mutex);
-+ InterruptPoll();
-+
-+ if (m_wakeupfd >= 0)
-+ {
-+ /* sets m_bStop */
-+ StopThread(false);
-+
-+ /* wake up the poll() call */
-+ eventfd_write(m_wakeupfd, 1);
-+
-+ /* Wait for the thread to stop */
-+ {
-+ CSingleExit exit(m_mutex);
-+ StopThread(true);
-+ }
-+
-+ close(m_wakeupfd);
-+ }
-+}
-+
-+void CFDEventMonitor::AddFD(const MonitoredFD& monitoredFD, int& id)
-+{
-+ CSingleLock lock(m_mutex);
-+ InterruptPoll();
-+
-+ AddFDLocked(monitoredFD, id);
-+
-+ StartMonitoring();
-+}
-+
-+void CFDEventMonitor::AddFDs(const std::vector& monitoredFDs,
-+ std::vector& ids)
-+{
-+ CSingleLock lock(m_mutex);
-+ InterruptPoll();
-+
-+ for (unsigned int i = 0; i < monitoredFDs.size(); ++i)
-+ {
-+ int id;
-+ AddFDLocked(monitoredFDs[i], id);
-+ ids.push_back(id);
-+ }
-+
-+ StartMonitoring();
-+}
-+
-+void CFDEventMonitor::RemoveFD(int id)
-+{
-+ CSingleLock lock(m_mutex);
-+ InterruptPoll();
-+
-+ if (m_monitoredFDs.erase(id) != 1)
-+ {
-+ CLog::Log(LOGERROR, "CFDEventMonitor::RemoveFD - Tried to remove non-existing monitoredFD %d", id);
-+ }
-+
-+ UpdatePollDescs();
-+}
-+
-+void CFDEventMonitor::RemoveFDs(const std::vector& ids)
-+{
-+ CSingleLock lock(m_mutex);
-+ InterruptPoll();
-+
-+ for (unsigned int i = 0; i < ids.size(); ++i)
-+ {
-+ if (m_monitoredFDs.erase(ids[i]) != 1)
-+ {
-+ CLog::Log(LOGERROR, "CFDEventMonitor::RemoveFDs - Tried to remove non-existing monitoredFD %d while removing %u FDs", ids[i], (unsigned)ids.size());
-+ }
-+ }
-+
-+ UpdatePollDescs();
-+}
-+
-+void CFDEventMonitor::Process()
-+{
-+ eventfd_t dummy;
-+
-+ while (!m_bStop)
-+ {
-+ CSingleLock lock(m_mutex);
-+ CSingleLock pollLock(m_pollMutex);
-+
-+ /*
-+ * Leave the main mutex here to allow another thread to
-+ * lock it while we are in poll().
-+ * By then calling InterruptPoll() the other thread can
-+ * wake up poll and wait for the processing to pause at
-+ * the above lock(m_mutex).
-+ */
-+ lock.Leave();
-+
-+ int err = poll(&m_pollDescs[0], m_pollDescs.size(), -1);
-+
-+ if (err < 0 && errno != EINTR)
-+ {
-+ CLog::Log(LOGERROR, "CFDEventMonitor::Process - poll() failed, error %d, stopping monitoring", errno);
-+ StopThread(false);
-+ }
-+
-+ // Something woke us up - either there is data available or we are being
-+ // paused/stopped via m_wakeupfd.
-+
-+ for (unsigned int i = 0; i < m_pollDescs.size(); ++i)
-+ {
-+ struct pollfd& pollDesc = m_pollDescs[i];
-+ int id = m_monitoredFDbyPollDescs[i];
-+ const MonitoredFD& monitoredFD = m_monitoredFDs[id];
-+
-+ if (pollDesc.revents)
-+ {
-+ if (monitoredFD.callback)
-+ {
-+ monitoredFD.callback(id, pollDesc.fd, pollDesc.revents,
-+ monitoredFD.callbackData);
-+ }
-+
-+ if (pollDesc.revents & (POLLERR | POLLHUP | POLLNVAL))
-+ {
-+ CLog::Log(LOGERROR, "CFDEventMonitor::Process - polled fd %d got revents 0x%x, removing it", pollDesc.fd, pollDesc.revents);
-+
-+ /* Probably would be nice to inform our caller that their FD was
-+ * dropped, but oh well... */
-+ m_monitoredFDs.erase(id);
-+ UpdatePollDescs();
-+ }
-+
-+ pollDesc.revents = 0;
-+ }
-+ }
-+
-+ /* flush wakeup fd */
-+ eventfd_read(m_wakeupfd, &dummy);
-+
-+ }
-+}
-+
-+void CFDEventMonitor::AddFDLocked(const MonitoredFD& monitoredFD, int& id)
-+{
-+ id = m_nextID;
-+
-+ while (m_monitoredFDs.count(id))
-+ {
-+ ++id;
-+ }
-+ m_nextID = id + 1;
-+
-+ m_monitoredFDs[id] = monitoredFD;
-+
-+ AddPollDesc(id, monitoredFD.fd, monitoredFD.events);
-+}
-+
-+void CFDEventMonitor::AddPollDesc(int id, int fd, short events)
-+{
-+ struct pollfd newPollFD;
-+ newPollFD.fd = fd;
-+ newPollFD.events = events;
-+ newPollFD.revents = 0;
-+
-+ m_pollDescs.push_back(newPollFD);
-+ m_monitoredFDbyPollDescs.push_back(id);
-+}
-+
-+void CFDEventMonitor::UpdatePollDescs()
-+{
-+ m_monitoredFDbyPollDescs.clear();
-+ m_pollDescs.clear();
-+
-+ for (std::map::iterator it = m_monitoredFDs.begin();
-+ it != m_monitoredFDs.end(); ++it)
-+ {
-+ AddPollDesc(it->first, it->second.fd, it->second.events);
-+ }
-+}
-+
-+void CFDEventMonitor::StartMonitoring()
-+{
-+ if (!IsRunning())
-+ {
-+ /* Start the monitoring thread */
-+
-+ m_wakeupfd = eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK);
-+ if (m_wakeupfd < 0)
-+ {
-+ CLog::Log(LOGERROR, "CFDEventMonitor::StartMonitoring - Failed to create eventfd, error %d", errno);
-+ return;
-+ }
-+
-+ /* Add wakeup fd to the fd list */
-+ int id;
-+ AddFDLocked(MonitoredFD(m_wakeupfd, POLLIN, NULL, NULL), id);
-+
-+ Create(false);
-+ }
-+}
-+
-+void CFDEventMonitor::InterruptPoll()
-+{
-+ if (m_wakeupfd >= 0)
-+ {
-+ eventfd_write(m_wakeupfd, 1);
-+ /* wait for the poll() result handling (if any) to end */
-+ CSingleLock pollLock(m_pollMutex);
-+ }
-+}
-+
-+#endif
-diff --git a/xbmc/linux/FDEventMonitor.h b/xbmc/linux/FDEventMonitor.h
-new file mode 100644
-index 0000000..4602d12
---- /dev/null
-+++ b/xbmc/linux/FDEventMonitor.h
-@@ -0,0 +1,89 @@
-+#pragma once
-+/*
-+ * Copyright (C) 2014 Team Kodi
-+ * http://xbmc.org
-+ *
-+ * 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 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.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with Kodi; see the file COPYING. If not, see
-+ * .
-+ *
-+ */
-+
-+#include "system.h"
-+
-+#include
-+#include