Merge pull request #1758 from MilhouseVH/kodi18a1jun17v2

kodi: update to kodi-734cda1 (latest kodi 18a1 master)
This commit is contained in:
Lukas Rusak 2017-07-07 10:17:11 -07:00 committed by GitHub
commit e28ed50403
52 changed files with 173 additions and 217 deletions

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libiconv"
PKG_VERSION="1.14"
PKG_VERSION="1.15"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://savannah.gnu.org/projects/libiconv/"

View File

@ -1,16 +0,0 @@
from
http://www.itkb.ro/kb/linux/patch-libiconv-pentru-glibc-216
--- a/srclib/stdio.in.h.orig 2011-08-07 16:42:06.000000000 +0300
+++ b/srclib/stdio.in.h 2013-01-10 15:53:03.000000000 +0200
@@ -695,7 +695,9 @@
/* It is very rare that the developer ever has full control of stdin,
so any use of gets warrants an unconditional warning. Assume it is
always declared, since it is required by C89. */
-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#endif
#endif

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libfmt"
PKG_VERSION="3.0.1"
PKG_VERSION="3.0.2"
PKG_ARCH="any"
PKG_LICENSE="BSD"
PKG_SITE="https://github.com/fmtlib/fmt"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="adsp.freesurround"
PKG_VERSION="79fa039"
PKG_VERSION="03ec089"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audiodecoder.2sf"
PKG_VERSION="36ebc05"
PKG_VERSION="2bc20c5"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audiodecoder.gme"
PKG_VERSION="7458853"
PKG_VERSION="a7d64dd"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audiodecoder.gsf"
PKG_VERSION="d56eafc"
PKG_VERSION="6af240a"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audiodecoder.usf"
PKG_VERSION="ce4b75c"
PKG_VERSION="c7fa708"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audioencoder.flac"
PKG_VERSION="bd1a353"
PKG_VERSION="d93774a"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audioencoder.lame"
PKG_VERSION="d75255b"
PKG_VERSION="6a250f9"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audioencoder.vorbis"
PKG_VERSION="507a34d"
PKG_VERSION="6bd0b65"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="audioencoder.wav"
PKG_VERSION="8a1fed5"
PKG_VERSION="2700ba0"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="imagedecoder.raw"
PKG_VERSION="1ab2416"
PKG_VERSION="22427d6"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="inputstream.adaptive"
PKG_VERSION="f1f5539"
PKG_VERSION="db9b6a1"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/liberty-developer/inputstream.adaptive/archive/$PKG_VERSION.tar.gz"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="inputstream.rtmp"
PKG_VERSION="d93d32d"
PKG_VERSION="6db3697"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/notspiff/inputstream.rtmp/archive/$PKG_VERSION.tar.gz"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="peripheral.joystick"
PKG_VERSION="f49fa33"
PKG_VERSION="1b7ba07"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="peripheral.steamcontroller"
PKG_VERSION="6842e35"
PKG_VERSION="4eb972a"
PKG_REV="101"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.dvbviewer"
PKG_VERSION="3f05af6"
PKG_VERSION="a5db9dd"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.hts"
PKG_VERSION="7f998e0"
PKG_VERSION="c2ca2db"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.mythtv"
PKG_VERSION="f2da22c"
PKG_VERSION="6e88cbb"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.octonet"
PKG_VERSION="ff2d4a7"
PKG_VERSION="020dd98"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.vdr.vnsi"
PKG_VERSION="40dc17d"
PKG_VERSION="7d6b52e"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="screensaver.asteroids"
PKG_VERSION="d30d588"
PKG_VERSION="d606895"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="screensaver.asterwave"
PKG_VERSION="aea811d"
PKG_VERSION="4326ddc"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="screensaver.biogenesis"
PKG_VERSION="5d0a8db"
PKG_VERSION="c1ea27c"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="screensaver.cpblobs"
PKG_VERSION="2ec8294"
PKG_VERSION="6acb909"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="screensaver.greynetic"
PKG_VERSION="e75b536"
PKG_VERSION="8b7b810"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="screensaver.matrixtrails"
PKG_VERSION="55bac2c"
PKG_VERSION="3323406"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="screensaver.pingpong"
PKG_VERSION="76a9739"
PKG_VERSION="cfd0a05"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="screensaver.pyro"
PKG_VERSION="2eaaa39"
PKG_VERSION="97e997e"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="screensaver.stars"
PKG_VERSION="d05afc5"
PKG_VERSION="e0da61c"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="screensavers.rsxs"
PKG_VERSION="219f5ab"
PKG_VERSION="e302833"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"
@ -42,7 +42,9 @@ addon() {
mkdir -p $ADDON_BUILD/$_ADDON_ID/
cp -PR $PKG_BUILD/.install_pkg/usr/share/$MEDIACENTER/addons/$_ADDON_ID/* $ADDON_BUILD/$_ADDON_ID/
cp -PL $PKG_BUILD/.install_pkg/usr/lib/$MEDIACENTER/addons/$_ADDON_ID/*.so $ADDON_BUILD/$_ADDON_ID/
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$_ADDON_ID/addon.xml)
cp -PL $PKG_BUILD/.install_pkg/usr/lib/$MEDIACENTER/addons/$_ADDON_ID/$ADDONSO $ADDON_BUILD/$_ADDON_ID/
MULTI_ADDONS="$MULTI_ADDONS $_ADDON_ID"
done

View File

@ -1,16 +1,17 @@
diff -Naur screensavers.rsxs-3241d29.orig/CMakeLists.txt screensavers.rsxs-3241d29/CMakeLists.txt
--- screensavers.rsxs-3241d29.orig/CMakeLists.txt 2015-10-22 23:59:38.187280475 -0700
+++ screensavers.rsxs-3241d29/CMakeLists.txt 2015-10-23 00:00:27.228113829 -0700
@@ -17,7 +17,7 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ed0f308..74fc6bf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,7 +17,7 @@ set(rsxs_dir lib/rsxs-1.0)
include_directories(${OpenGL_INCLUDE_DIR}
${PNG_INCLUDE_DIR}
${KODI_INCLUDE_DIR}
${KODI_INCLUDE_DIR}/.. # Hack way with "/..", need bigger Kodi cmake rework to match right include ways
- ${X_INCLUDE_DIRS}
+ ${X_INCLUDE_DIR}
${CMAKE_BINARY_DIR}/rsxs-prefix/src/rsxs-build
${PROJECT_SOURCE_DIR}/${rsxs_dir}/src
${PROJECT_SOURCE_DIR}/${rsxs_dir}/lib
@@ -67,7 +67,7 @@
@@ -67,7 +67,7 @@ externalproject_add(rsxs SOURCE_DIR ${PROJECT_SOURCE_DIR}/${rsxs_dir}
--disable-skyrocket
--disable-solarwinds
--disable-sound

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="visualization.fishbmc"
PKG_VERSION="c5835e0"
PKG_VERSION="ccc919c"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="visualization.goom"
PKG_VERSION="89ae55a"
PKG_VERSION="0c93889"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="visualization.projectm"
PKG_VERSION="5f1c7bb"
PKG_VERSION="a39f73b"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="visualization.shadertoy"
PKG_VERSION="9419ec1"
PKG_VERSION="1717f36"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="visualization.spectrum"
PKG_VERSION="9ff9d71"
PKG_VERSION="2b78ea0"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="visualization.waveform"
PKG_VERSION="d0caa05"
PKG_VERSION="0e78a14"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi-platform"
PKG_VERSION="c8188d8"
PKG_VERSION="36fb493"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" ?>
<settings>
<settings version="1">
<section id="system">
<category id="display">
@ -46,7 +46,7 @@
<section id="pvr">
<category id="pvrmanager">
<group id="2">
<group id="1">
<setting id="pvrmanager.syncchannelgroups">
<default>false</default>
</setting>

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi"
PKG_VERSION="423072a"
PKG_VERSION="734cda1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"

View File

@ -1,7 +1,7 @@
From 416981e6bbcf81443e3ca8f35ca26042e174c971 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Mon, 2 Mar 2015 23:50:40 +0200
Subject: [PATCH 05/13] make binary addons executable
From 3e1f7d098726e4af7eac9c83c70cf8196e4e9e3e Mon Sep 17 00:00:00 2001
From: MilhouseVH <milhouseVH.github@nmacleod.com>
Date: Wed, 5 Jul 2017 15:46:51 +0100
Subject: [PATCH] make binary addons executable
add executable mode to all files in addon's bin folder
@ -11,24 +11,24 @@ credits to vpeter4 for the patch
1 file changed, 26 insertions(+)
diff --git a/xbmc/addons/Addon.cpp b/xbmc/addons/Addon.cpp
index 77c2db8..6c21c87 100644
index 07fd5bf..639ee5c 100644
--- a/xbmc/addons/Addon.cpp
+++ b/xbmc/addons/Addon.cpp
@@ -46,6 +46,10 @@
#include <string.h>
#include <ostream>
@@ -26,6 +26,10 @@
#include <utility>
#include <vector>
+#include <iostream>
+#include <dirent.h>
+#include <sys/stat.h>
+
using XFILE::CDirectory;
using XFILE::CFile;
@@ -694,6 +698,28 @@ void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_REPOSITORY))
CRepositoryUpdater::GetInstance().ScheduleUpdate(); //notify updater there is a new addon or version
#include "AddonManager.h"
#include "addons/Service.h"
#include "filesystem/Directory.h"
@@ -417,6 +421,28 @@ void OnPreInstall(const AddonPtr& addon)
void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
{
+ // OE: make binary addons executable, creddits to vpeter4
+ std::string addonDirPath;
+ std::string chmodFilePath;
@ -55,5 +55,5 @@ index 77c2db8..6c21c87 100644
}
--
2.5.0
2.7.4

View File

@ -11,10 +11,10 @@ tz-data.service
1 file changed, 12 insertions(+)
diff --git a/xbmc/linux/LinuxTimezone.cpp b/xbmc/linux/LinuxTimezone.cpp
index 7de8f8c..e278c6a 100644
index 372c119..0759a3b 100644
--- a/xbmc/linux/LinuxTimezone.cpp
+++ b/xbmc/linux/LinuxTimezone.cpp
@@ -42,6 +42,8 @@
@@ -43,6 +43,8 @@
#include <algorithm>
@ -23,23 +23,23 @@ index 7de8f8c..e278c6a 100644
CLinuxTimezone::CLinuxTimezone() : m_IsDST(0)
{
char* line = NULL;
@@ -159,6 +161,16 @@ void CLinuxTimezone::OnSettingChanged(const CSetting *setting)
@@ -160,6 +162,16 @@ void CLinuxTimezone::OnSettingChanged(std::shared_ptr<const CSetting> setting)
const std::string &settingId = setting->GetId();
if (settingId == CSettings::SETTING_LOCALE_TIMEZONE)
{
+ std::ofstream out("/storage/.cache/timezone");
+ if (out)
+ {
+ const std::string tz = std::string("TIMEZONE=") + ((CSettingString*)setting)->GetValue().c_str();
+ const std::string tz = std::string("TIMEZONE=") + (std::static_pointer_cast<const CSettingString>(setting)->GetValue().c_str());
+ out << tz << std::endl;
+ out.flush();
+ out.close();
+ system("systemctl restart tz-data.service");
+ }
+
SetTimezone(((CSettingString*)setting)->GetValue());
SetTimezone(std::static_pointer_cast<const CSettingString>(setting)->GetValue());
CDateTime::ResetTimezoneBias();
--
2.5.0
2.7.4

View File

@ -1,14 +1,18 @@
commit 07c96988b65becae0141d71d40481bcf916bee68
Author: Stefan Saraev <stefan@saraev.ca>
Date: Sun Dec 18 11:30:39 2016 -0800
From faebee708dc7c24d177fa6b8874b3f1374a08e25 Mon Sep 17 00:00:00 2001
From: MilhouseVH <milhouseVH.github@nmacleod.com>
Date: Wed, 5 Jul 2017 15:58:57 +0100
Subject: [PATCH] use a wrapper to setup systemd services
use a wrapper to setup systemd services
---
xbmc/addons/Addon.cpp | 35 +++++++++++++++++++++++++++++++++++
xbmc/addons/Addon.h | 2 ++
2 files changed, 37 insertions(+)
diff --git a/xbmc/addons/Addon.cpp b/xbmc/addons/Addon.cpp
index 8f62079..a54682a 100644
index 639ee5c..7f205a7 100644
--- a/xbmc/addons/Addon.cpp
+++ b/xbmc/addons/Addon.cpp
@@ -348,6 +348,13 @@ AddonVersion CAddon::GetDependencyVersion(const std::string &dependencyID) const
@@ -396,18 +396,36 @@ AddonVersion CAddon::GetDependencyVersion(const std::string &dependencyID) const
return AddonVersion("0.0.0");
}
@ -22,34 +26,34 @@ index 8f62079..a54682a 100644
void OnEnabled(const std::string& id)
{
// If the addon is a special, call enabled handler
@@ -356,6 +363,11 @@ void OnEnabled(const std::string& id)
CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_ADSPDLL))
AddonPtr addon;
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_PVRDLL))
return addon->OnEnabled();
+
+ // OE: systemctl enable & start on addon enable
+ if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE))
+ CallOEWrapper(addon->ID(), false);
+ // OE
+
if (CAddonMgr::GetInstance().ServicesHasStarted())
{
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE))
@@ -379,6 +391,11 @@ void OnDisabled(const std::string& id)
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE, false))
std::static_pointer_cast<CService>(addon)->Stop();
}
}
void OnDisabled(const std::string& id)
{
AddonPtr addon;
+
+ // OE: systemctl stop & disable on addon disable
+ if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE, false))
+ CallOEWrapper(addon->ID(), true);
+ // OE
+
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_PVRDLL, false))
return addon->OnDisabled();
}
@@ -443,11 +461,28 @@ void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
}
// OE
void OnPreInstall(const AddonPtr& addon)
@@ -401,6 +418,15 @@ void OnPreInstall(const AddonPtr& addon)
void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
{
AddonPtr localAddon;
+ AddonPtr localAddon;
+
+ // OE: systemctl stop & disable / enable & start on addon upgrade
+ if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
@ -59,31 +63,34 @@ index 8f62079..a54682a 100644
+ }
+ // OE
+
if (CAddonMgr::GetInstance().ServicesHasStarted())
{
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
@@ -439,6 +465,11 @@ void OnPreUnInstall(const AddonPtr& addon)
{
AddonPtr localAddon;
addon->OnPostInstall(update, modal);
}
void OnPreUnInstall(const AddonPtr& addon)
{
+ AddonPtr localAddon;
+
+ // OE: systemctl stop & disable on addon uninstall
+ if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
+ CallOEWrapper(addon->ID(), true);
+ // OE
+
if (CAddonMgr::GetInstance().ServicesHasStarted())
{
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
addon->OnPreUnInstall();
}
diff --git a/xbmc/addons/Addon.h b/xbmc/addons/Addon.h
index 515afe1..36287d6 100644
index 35203a2..8e4b95e 100644
--- a/xbmc/addons/Addon.h
+++ b/xbmc/addons/Addon.h
@@ -121,6 +121,8 @@ public:
const InfoMap& ExtraInfo() const override { return m_props.extrainfo; }
const ADDONDEPS& GetDeps() const override { return m_props.dependencies; }
@@ -84,6 +84,8 @@ public:
const InfoMap& ExtraInfo() const override { return m_addonInfo.ExtraInfo(); }
const ADDONDEPS& GetDeps() const override { return m_addonInfo.GetDeps(); }
+ void CallOEWrapper(const std::string& ID, bool disable);
+
/*! \brief Check whether the this addon can be configured or not
\return true if the addon has settings, false otherwise
\sa LoadSettings, LoadUserSettings, SaveSettings, HasUserSettings, GetSetting, UpdateSetting
std::string FanArt() const override
{
auto it = m_addonInfo.Art().find("fanart");
--
2.7.4

View File

@ -1,7 +1,7 @@
From 66fa8d82238e001dc81b0a266e323c6a2f8b11b2 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Mon, 15 Dec 2014 21:28:54 +0200
Subject: [PATCH 10/13] handle SIGTERM
From f7b15b94254a0af6009ed38cc45bcf63cb1b510d Mon Sep 17 00:00:00 2001
From: MilhouseVH <milhouseVH.github@nmacleod.com>
Date: Tue, 4 Jul 2017 20:51:08 +0100
Subject: [PATCH] handle SIGTERM
0. CApplication::Stop cant be trusted. (deadlocks crashes and boo)
@ -15,18 +15,18 @@ so, when shutdown/reboot is requested:
6. addons / pvrmanager / cec / everything else.. are free to deadlock / crash now, we dont care
7. KILL
---
xbmc/Application.cpp | 17 ++++++++++++-----
xbmc/Application.h | 1 +
xbmc/XBApplicationEx.cpp | 1 +
xbmc/XBApplicationEx.h | 1 +
xbmc/main/main.cpp | 15 +++++++++++++++
5 files changed, 30 insertions(+), 5 deletions(-)
xbmc/Application.cpp | 21 ++++++++++++++++-----
xbmc/Application.h | 1 +
xbmc/XBApplicationEx.cpp | 1 +
xbmc/XBApplicationEx.h | 1 +
xbmc/platform/posix/main.cpp | 2 +-
5 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index 1c906a2..99ca567 100644
index ee50f37..28034c8 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -2490,12 +2490,12 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg)
@@ -2355,12 +2355,12 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg)
switch (pMsg->dwMessage)
{
case TMSG_POWERDOWN:
@ -39,9 +39,9 @@ index 1c906a2..99ca567 100644
- Stop(EXITCODE_QUIT);
+ SetExitCode(EXITCODE_QUIT);
break;
case TMSG_SHUTDOWN:
@@ -2539,12 +2539,13 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg)
@@ -2381,12 +2381,13 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg)
case TMSG_RESTART:
case TMSG_RESET:
@ -56,54 +56,58 @@ index 1c906a2..99ca567 100644
Stop(EXITCODE_RESTARTAPP);
#endif
break;
@@ -2890,14 +2891,21 @@ bool CApplication::Cleanup()
@@ -2805,6 +2806,17 @@ bool CApplication::Cleanup()
}
}
+void CApplication::SetExitCode(int exitCode)
+{
+ // save it for CEC
+ m_ExitCode = exitCode;
+ m_ExitCodeSet = true;
+ if (!m_ExitCodeSet)
+ {
+ CLog::Log(LOGINFO, "Saving exitCode %d", exitCode);
+ // save it for CEC
+ m_ExitCode = exitCode;
+ m_ExitCodeSet = true;
+ }
+}
+
void CApplication::Stop(int exitCode)
{
try
{
@@ -2812,7 +2824,7 @@ void CApplication::Stop(int exitCode)
m_frameMoveGuard.unlock();
CVariant vExitCode(CVariant::VariantTypeObject);
- vExitCode["exitcode"] = exitCode;
+ vExitCode["exitcode"] = m_ExitCode;
CAnnouncementManager::GetInstance().Announce(System, "xbmc", "OnQuit", vExitCode);
// Abort any active screensaver
@@ -2922,7 +2930,6 @@ void CApplication::Stop(int exitCode)
m_bStop = true;
@@ -2846,7 +2858,6 @@ void CApplication::Stop(int exitCode)
// Needs cleaning up
CApplicationMessenger::GetInstance().Stop();
m_AppFocused = false;
- m_ExitCode = exitCode;
CLog::Log(LOGNOTICE, "stop all");
// cancel any jobs from the jobmanager
diff --git a/xbmc/Application.h b/xbmc/Application.h
index f1dfe0d..200abee 100644
index 1402787..c21ab93 100644
--- a/xbmc/Application.h
+++ b/xbmc/Application.h
@@ -154,6 +154,7 @@ public:
void StartPVRManager();
void StopPVRManager();
@@ -147,6 +147,7 @@ public:
bool StartServer(enum ESERVERS eServer, bool bStart, bool bWait = false);
bool IsCurrentThread() const;
+ void SetExitCode(int exitCode);
void Stop(int exitCode);
void RestartApp();
void UnloadSkin(bool forReload = false);
diff --git a/xbmc/XBApplicationEx.cpp b/xbmc/XBApplicationEx.cpp
index 048a6c1..fa99ac1 100644
index 035aed2..34102f5 100644
--- a/xbmc/XBApplicationEx.cpp
+++ b/xbmc/XBApplicationEx.cpp
@@ -40,6 +40,7 @@ CXBApplicationEx::CXBApplicationEx()
@@ -46,6 +46,7 @@ CXBApplicationEx::CXBApplicationEx()
m_bStop = false;
m_AppFocused = true;
m_ExitCode = EXITCODE_QUIT;
@ -112,10 +116,10 @@ index 048a6c1..fa99ac1 100644
}
diff --git a/xbmc/XBApplicationEx.h b/xbmc/XBApplicationEx.h
index c46cba1..ed3f35f 100644
index 3c8dffd..e96bd5e 100644
--- a/xbmc/XBApplicationEx.h
+++ b/xbmc/XBApplicationEx.h
@@ -40,6 +40,7 @@ public:
@@ -42,6 +42,7 @@ public:
// Variables for timing
bool m_bStop;
int m_ExitCode;
@ -124,37 +128,18 @@ index c46cba1..ed3f35f 100644
bool m_renderGUI;
diff --git a/xbmc/platform/posix/main.cpp b/xbmc/platform/posix/main.cpp
index 01027f8..4cfb04e 100644
index bee93da..e36af76 100644
--- a/xbmc/platform/posix/main.cpp
+++ b/xbmc/platform/posix/main.cpp
@@ -41,12 +41,27 @@
#include "input/linux/LIRC.h"
#endif
#include "platform/XbmcContext.h"
+#include "Application.h"
+
+void xbmc_term_handler(int signum)
+{
+ CLog::Log(LOGINFO, "Received SIGTERM...");
+ if (!g_application.m_ExitCodeSet)
+ g_application.SetExitCode(EXITCODE_RESTARTAPP);
+ g_application.Stop(EXITCODE_RESTARTAPP);
+}
#ifdef __cplusplus
extern "C"
#endif
int main(int argc, char* argv[])
{
+ // SIGTERM handler
+ struct sigaction action;
+ memset(&action, 0, sizeof(struct sigaction));
+ action.sa_handler = xbmc_term_handler;
+ sigaction(SIGTERM, &action, NULL);
+
// set up some xbmc specific relationships
XBMC::Context context;
@@ -63,7 +63,7 @@ protected:
void Process() override
{
CMessagePrinter::DisplayMessage("Exiting application");
- KODI::MESSAGING::CApplicationMessenger::GetInstance().PostMsg(TMSG_QUIT);
+ KODI::MESSAGING::CApplicationMessenger::GetInstance().PostMsg(TMSG_RESTARTAPP);
}
};
--
2.5.0
2.7.4

View File

@ -22,7 +22,7 @@ index 9940b6a..d7575f0 100644
@@ -914,8 +915,24 @@ void CSettings::InitializeDefaults()
if (g_application.IsStandAlone())
((CSettingInt*)m_settingsManager->GetSetting(CSettings::SETTING_POWERMANAGEMENT_SHUTDOWNSTATE))->SetDefault(POWERSTATE_SHUTDOWN);
std::static_pointer_cast<CSettingInt>(GetSettingsManager()->GetSetting(CSettings::SETTING_POWERMANAGEMENT_SHUTDOWNSTATE))->SetDefault(POWERSTATE_SHUTDOWN);
+
+
+// LibreELEC integration patch. We ship a special limited range intel kernel patch
@ -35,9 +35,9 @@ index 9940b6a..d7575f0 100644
+ SysfsUtils::GetString("/proc/fb", gpuvendor);
+ bool isIntel = StringUtils::EndsWith(gpuvendor, "inteldrmfb");
+ // Intel driver is operating in passthrough mode so use limited range by default
+ ((CSettingBool*)GetSetting(CSettings::SETTING_VIDEOSCREEN_LIMITEDRANGE))->SetDefault(isIntel);
+ ((CSettingBool*)GetSetting(CSettings::SETTING_VIDEOPLAYER_USEVAAPI))->SetDefault(isIntel);
+ ((CSettingBool*)GetSetting(CSettings::SETTING_VIDEOPLAYER_USEVDPAU))->SetDefault(!isIntel);
+ std::static_pointer_cast<CSettingBool>(GetSettingsManager()->GetSetting(CSettings::SETTING_VIDEOSCREEN_LIMITEDRANGE))->SetDefault(isIntel);
+ std::static_pointer_cast<CSettingBool>(GetSettingsManager()->GetSetting(CSettings::SETTING_VIDEOPLAYER_USEVAAPI))->SetDefault(isIntel);
+ std::static_pointer_cast<CSettingBool>(GetSettingsManager()->GetSetting(CSettings::SETTING_VIDEOPLAYER_USEVDPAU))->SetDefault(!isIntel);
+#endif
g_powerManager.SetDefaults();

View File

@ -1,27 +0,0 @@
From b1a9fcaf87add539888bdb592d42262e770eda46 Mon Sep 17 00:00:00 2001
From: MilhouseVH <milhouseVH.github@nmacleod.com>
Date: Sat, 6 May 2017 04:25:16 +0100
Subject: [PATCH] libmicrohttpd: use MHD_USE_INTERNAL_POLLING_THREAD with
version >= 0.9.54
---
xbmc/network/WebServer.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/xbmc/network/WebServer.cpp b/xbmc/network/WebServer.cpp
index 6e70d3e..c35f009 100644
--- a/xbmc/network/WebServer.cpp
+++ b/xbmc/network/WebServer.cpp
@@ -1130,6 +1130,9 @@ struct MHD_Daemon* CWebServer::StartMHD(unsigned int flags, int port)
// WARNING: set MHD_OPTION_CONNECTION_TIMEOUT to something higher than 1
// otherwise on libmicrohttpd 0.4.4-1 it spins a busy loop
MHD_USE_THREAD_PER_CONNECTION
+#if (MHD_VERSION >= 0x00095400)
+ | MHD_USE_INTERNAL_POLLING_THREAD /* MHD_USE_THREAD_PER_CONNECTION must be used only with MHD_USE_INTERNAL_POLLING_THREAD since 0.9.54 */
+#endif
#endif
#if (MHD_VERSION >= 0x00040001)
| MHD_USE_DEBUG /* Print MHD error messages to log */
--
2.7.4

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="p8-platform"
PKG_VERSION="38343e0"
PKG_VERSION="3219004"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"

View File

@ -18,7 +18,7 @@
PKG_NAME="ffmpeg"
# Current branch is: release/3.3-kodi
PKG_VERSION="eb0819c"
PKG_VERSION="30554d7"
PKG_ARCH="any"
PKG_LICENSE="LGPLv2.1+"
PKG_SITE="https://ffmpeg.org"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libmicrohttpd"
PKG_VERSION="0.9.54"
PKG_VERSION="0.9.55"
PKG_ARCH="any"
PKG_LICENSE="LGPLv2.1"
PKG_SITE="http://www.gnu.org/software/libmicrohttpd/"

View File

@ -109,6 +109,7 @@ git_clone $REPO master $PKG_NAME.git $GIT_HASH
if [ -f ../../packages/mediacenter/p8-platform/package.mk ] ; then
# update package.mk
RESOLVED_HASH=$(resolve_hash $PKG_NAME.git $GIT_HASH)
echo "Resolving hash for ${PKG_NAME}: ${GIT_HASH} => ${RESOLVED_HASH}"
sed -i "s|PKG_VERSION=.*|PKG_VERSION=\"$RESOLVED_HASH\"|g" ../../packages/mediacenter/p8-platform/package.mk
fi
rm -rf $PKG_NAME.git
@ -122,6 +123,7 @@ git_clone $REPO master $PKG_NAME.git $GIT_HASH
if [ -f ../../packages/mediacenter/kodi-platform/package.mk ] ; then
# update package.mk
RESOLVED_HASH=$(resolve_hash $PKG_NAME.git $GIT_HASH)
echo "Resolving hash for ${PKG_NAME}: ${GIT_HASH} => ${RESOLVED_HASH}"
sed -e "s|PKG_VERSION=.*|PKG_VERSION=\"$RESOLVED_HASH\"|g" \
-e "s|PKG_GIT_URL=.*|PKG_GIT_URL=\"$REPO\"|g" \
-i ../../packages/mediacenter/kodi-platform/package.mk
@ -158,6 +160,7 @@ for addontxt in $KODI_DIR/cmake/addons/bootstrap/repositories/*-addons.txt ; do
# update package.mk
RESOLVED_HASH=$(resolve_hash $PKG_NAME.git $GIT_HASH)
echo "Resolving hash for ${PKG_NAME}: ${GIT_HASH} => ${RESOLVED_HASH}"
sed -e "s|PKG_VERSION=.*|PKG_VERSION=\"$RESOLVED_HASH\"|g" \
-e "s|PKG_GIT_URL=.*|PKG_GIT_URL=\"$REPO\"|g" \
-i ../../packages/mediacenter/kodi-binary-addons/$ADDON/package.mk
@ -189,6 +192,7 @@ for ADDON in $(ls -1 ../../packages/mediacenter/kodi-binary-addons); do
# update package.mk for stale github.com packages
RESOLVED_HASH=$(resolve_hash ${ADDON}.git HEAD) || continue
echo "Resolving hash for ${ADDON}: HEAD => ${RESOLVED_HASH}"
sed -e "s|PKG_VERSION=.*|PKG_VERSION=\"$RESOLVED_HASH\"|g" \
-i ../../packages/mediacenter/kodi-binary-addons/$ADDON/package.mk