Merge pull request #746 from MilhouseVH/kodi17b2

kodi: update to 17.0-beta2-6e9d6fb
This commit is contained in:
Christian Hewitt 2016-09-18 17:21:51 +04:00 committed by GitHub
commit 88a20f0b27
19 changed files with 1846 additions and 855 deletions

View File

@ -1,38 +0,0 @@
From f70c4d76e1d9c0219a3927b6b66090b7575e7933 Mon Sep 17 00:00:00 2001
From: Gerald Dachs <gda@dachsweb.de>
Date: Thu, 17 Mar 2016 12:12:51 +0100
Subject: [PATCH] use system audio mode request instead of power on to start
AVR reliable
---
src/libcec/devices/CECBusDevice.cpp | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/libcec/devices/CECBusDevice.cpp b/src/libcec/devices/CECBusDevice.cpp
index 55939d1..e2d5ea3 100644
--- a/src/libcec/devices/CECBusDevice.cpp
+++ b/src/libcec/devices/CECBusDevice.cpp
@@ -1025,14 +1025,19 @@ bool CCECBusDevice::ActivateSource(uint64_t iDelay /* = 0 */)
bool bReturn(true);
if (iDelay == 0)
{
- /** some AVRs fail to be powered up by the TV when it powers up. power up the AVR explicitly */
+ /** send system audio mode request if AVR exists */
if (m_iLogicalAddress != CECDEVICE_AUDIOSYSTEM)
{
CCECBusDevice* audioSystem(m_processor->GetDevice(CECDEVICE_AUDIOSYSTEM));
- if (audioSystem && audioSystem->IsPresent() && audioSystem->GetPowerStatus(m_iLogicalAddress) != CEC_POWER_STATUS_ON)
+ if (audioSystem && audioSystem->IsPresent())
{
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "powering up the AVR");
- audioSystem->PowerOn(m_iLogicalAddress);
+ cec_command command;
+
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "sending system audio mode request for '%s'", ToString(m_iLogicalAddress));
+ cec_command::Format(command, m_iLogicalAddress, CECDEVICE_AUDIOSYSTEM, CEC_OPCODE_SYSTEM_AUDIO_MODE_REQUEST);
+ command.parameters.PushBack((uint8_t) ((m_iPhysicalAddress >> 8) & 0xFF));
+ command.parameters.PushBack((uint8_t) (m_iPhysicalAddress & 0xFF));
+ bReturn = m_handler->Transmit(command, false, false);
}
}

View File

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

View File

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

View File

@ -0,0 +1,13 @@
diff --git a/inputstream.rtmp/addon.xml.in b/inputstream.rtmp/addon.xml.in
index 2e59513..aa2a5d4 100644
--- a/inputstream.rtmp/addon.xml.in
+++ b/inputstream.rtmp/addon.xml.in
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon
id="inputstream.rtmp"
- version="1.0.0"
+ version="1.0.1"
name="RTMP Input"
provider-name="spiff">
<requires>

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="inputstream.smoothstream" PKG_NAME="inputstream.smoothstream"
PKG_VERSION="b63ecbb" PKG_VERSION="081c6c4"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv" PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/mapfau/inputstream.smoothstream/archive/$PKG_VERSION.tar.gz" PKG_URL="https://github.com/mapfau/inputstream.smoothstream/archive/$PKG_VERSION.tar.gz"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="peripheral.joystick" PKG_NAME="peripheral.joystick"
PKG_VERSION="8653627" PKG_VERSION="263aa84"
PKG_REV="0" PKG_REV="0"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -0,0 +1,376 @@
From 40a0711876959f87311fd8a7916537e8fc5f5217 Mon Sep 17 00:00:00 2001
From: dvblogic <info@dvblogic.com>
Date: Tue, 13 Sep 2016 18:16:34 +0200
Subject: [PATCH 1/3] Version 3.3.5 Fixed: Crash on startup with search timers
Fixed: Incorrect disk space display if disk size is more than 2TB
---
lib/libdvblinkremote/recording_settings.cpp | 4 ++--
lib/libdvblinkremote/response.h | 4 ++--
lib/libdvblinkremote/util.cpp | 24 ++++++++++++++++++++++++
lib/libdvblinkremote/util.h | 2 ++
pvr.dvblink/addon.xml.in | 2 +-
pvr.dvblink/changelog.txt | 4 ++++
src/DVBLinkClient.cpp | 8 ++++----
7 files changed, 39 insertions(+), 9 deletions(-)
diff --git a/lib/libdvblinkremote/recording_settings.cpp b/lib/libdvblinkremote/recording_settings.cpp
index ae3e3b6..729c836 100644
--- a/lib/libdvblinkremote/recording_settings.cpp
+++ b/lib/libdvblinkremote/recording_settings.cpp
@@ -86,8 +86,8 @@ bool RecordingSettingsSerializer::ReadObject(RecordingSettings& object, const st
object.TimeMarginBeforeScheduledRecordings = Util::GetXmlFirstChildElementTextAsInt(elRoot, "before_margin");
object.TimeMarginAfterScheduledRecordings = Util::GetXmlFirstChildElementTextAsInt(elRoot, "after_margin");
object.RecordingPath = Util::GetXmlFirstChildElementText(elRoot, "recording_path");
- object.TotalSpace = Util::GetXmlFirstChildElementTextAsLong(elRoot, "total_space");
- object.AvailableSpace = Util::GetXmlFirstChildElementTextAsLong(elRoot, "avail_space");
+ object.TotalSpace = Util::GetXmlFirstChildElementTextAsLongLong(elRoot, "total_space");
+ object.AvailableSpace = Util::GetXmlFirstChildElementTextAsLongLong(elRoot, "avail_space");
return true;
}
diff --git a/lib/libdvblinkremote/response.h b/lib/libdvblinkremote/response.h
index 51b7ef8..5be5aec 100644
--- a/lib/libdvblinkremote/response.h
+++ b/lib/libdvblinkremote/response.h
@@ -1350,12 +1350,12 @@ namespace dvblinkremote {
/**
* The total space in KB.
*/
- long TotalSpace;
+ long long TotalSpace;
/**
* The available space in KB.
*/
- long AvailableSpace;
+ long long AvailableSpace;
};
class ChannelFavorite
diff --git a/lib/libdvblinkremote/util.cpp b/lib/libdvblinkremote/util.cpp
index 65ac456..6e0be90 100644
--- a/lib/libdvblinkremote/util.cpp
+++ b/lib/libdvblinkremote/util.cpp
@@ -34,6 +34,7 @@ bool Util::from_string(T& t, const std::string& s, std::ios_base& (*f)(std::ios_
template bool Util::from_string<int>(int& t, const std::string& s, std::ios_base& (*f)(std::ios_base&));
template bool Util::from_string<long>(long& t, const std::string& s, std::ios_base& (*f)(std::ios_base&));
+template bool Util::from_string<long long>(long long& t, const std::string& s, std::ios_base& (*f)(std::ios_base&));
template <class T>
bool Util::to_string(const T& t, std::string& s)
@@ -59,6 +60,11 @@ bool Util::ConvertToLong(const std::string& s, long& value)
return from_string<long>(value, s, std::dec);
}
+bool Util::ConvertToLongLong(const std::string& s, long long& value)
+{
+ return from_string<long long>(value, s, std::dec);
+}
+
bool Util::ConvertToString(const int& value, std::string& s)
{
return to_string(value, s);
@@ -192,6 +198,24 @@ long Util::GetXmlFirstChildElementTextAsLong(const tinyxml2::XMLElement* parentE
return value;
}
+long long Util::GetXmlFirstChildElementTextAsLongLong(const tinyxml2::XMLElement* parentElement, const char* name)
+{
+ const tinyxml2::XMLElement* el = parentElement->FirstChildElement(name);
+ const char* s = "-1";
+ long long value;
+
+ if (el != NULL && el->GetText()) {
+ s = el->GetText();
+ }
+
+ if (s && !Util::ConvertToLongLong(s, value))
+ {
+ value = -1;
+ }
+
+ return value;
+}
+
bool Util::GetXmlFirstChildElementTextAsBoolean(const tinyxml2::XMLElement* parentElement, const char* name)
{
const tinyxml2::XMLElement* el = parentElement->FirstChildElement(name);
diff --git a/lib/libdvblinkremote/util.h b/lib/libdvblinkremote/util.h
index 3af4914..63c9ecb 100644
--- a/lib/libdvblinkremote/util.h
+++ b/lib/libdvblinkremote/util.h
@@ -34,6 +34,7 @@ namespace dvblinkremote {
public:
static bool ConvertToInt(const std::string& s, int& value);
static bool ConvertToLong(const std::string& s, long& value);
+ static bool ConvertToLongLong(const std::string& s, long long& value);
static bool ConvertToString(const int& value, std::string&);
static bool ConvertToString(const unsigned int& value, std::string&);
static bool ConvertToString(const long& value, std::string&);
@@ -48,6 +49,7 @@ namespace dvblinkremote {
static int GetXmlFirstChildElementTextAsInt(const tinyxml2::XMLElement* parentElement, const char* name);
static long GetXmlFirstChildElementTextAsLong(const tinyxml2::XMLElement* parentElement, const char* name);
static bool GetXmlFirstChildElementTextAsBoolean(const tinyxml2::XMLElement* parentElement, const char* name);
+ static long long GetXmlFirstChildElementTextAsLongLong(const tinyxml2::XMLElement* parentElement, const char* name);
private:
template <class T> static bool from_string(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&));
diff --git a/pvr.dvblink/addon.xml.in b/pvr.dvblink/addon.xml.in
index 5e81fae..e9464b9 100644
--- a/pvr.dvblink/addon.xml.in
+++ b/pvr.dvblink/addon.xml.in
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon
id="pvr.dvblink"
- version="3.3.4"
+ version="3.3.5"
name="DVBLink PVR Client"
provider-name="DVBLogic">
<requires>
diff --git a/pvr.dvblink/changelog.txt b/pvr.dvblink/changelog.txt
index 25e1f0a..4f1a8e2 100644
--- a/pvr.dvblink/changelog.txt
+++ b/pvr.dvblink/changelog.txt
@@ -1,3 +1,7 @@
+[B]Version 3.3.5[/B]
+Fixed: Crash on startup with search timers
+Fixed: Incorrect disk space display if disk size is more than 2TB
+
[B]Version 3.3.4[/B]
Updated: language files from Transifex
diff --git a/src/DVBLinkClient.cpp b/src/DVBLinkClient.cpp
index fbb07f7..de9b480 100644
--- a/src/DVBLinkClient.cpp
+++ b/src/DVBLinkClient.cpp
@@ -736,11 +736,11 @@ int DVBLinkClient::GetSchedules(ADDON_HANDLE handle, const RecordingList& record
timer.iMarginEnd = bp_schedules[i]->MarginAfter / 60;
strncpy(timer.strEpgSearchString, bp_schedules[i]->GetKeyphrase().c_str(), sizeof(timer.strEpgSearchString) - 1);
- if (schedule_to_timer_map.find(epg_schedules[i]->GetID()) != schedule_to_timer_map.end() &&
- schedule_to_timer_map[epg_schedules[i]->GetID()].size() > 0)
+ if (schedule_to_timer_map.find(bp_schedules[i]->GetID()) != schedule_to_timer_map.end() &&
+ schedule_to_timer_map[bp_schedules[i]->GetID()].size() > 0)
{
- timer.startTime = schedule_to_timer_map[epg_schedules[i]->GetID()].at(0)->GetProgram().GetStartTime();
- timer.endTime = timer.startTime + schedule_to_timer_map[epg_schedules[i]->GetID()].at(0)->GetProgram().GetDuration();
+ timer.startTime = schedule_to_timer_map[bp_schedules[i]->GetID()].at(0)->GetProgram().GetStartTime();
+ timer.endTime = timer.startTime + schedule_to_timer_map[bp_schedules[i]->GetID()].at(0)->GetProgram().GetDuration();
}
strncpy(timer.strTitle, bp_schedules[i]->GetKeyphrase().c_str(), sizeof(timer.strTitle) - 1);
From ed9d369c1b683079dc7770af8313dfa46b35cddb Mon Sep 17 00:00:00 2001
From: dvblogic <info@dvblogic.com>
Date: Wed, 14 Sep 2016 09:21:33 +0200
Subject: [PATCH 2/3] Fixed: Doesn't build with tinyxml2 4.x #52
---
lib/libdvblinkremote/channel.cpp | 2 +-
lib/libdvblinkremote/epg.cpp | 2 +-
lib/libdvblinkremote/favorites.cpp | 2 +-
lib/libdvblinkremote/generic_response.cpp | 2 +-
lib/libdvblinkremote/parental_lock.cpp | 2 +-
lib/libdvblinkremote/playback_object.cpp | 2 +-
lib/libdvblinkremote/recording.cpp | 2 +-
lib/libdvblinkremote/recording_settings.cpp | 2 +-
lib/libdvblinkremote/scheduling.cpp | 2 +-
lib/libdvblinkremote/server_info.cpp | 2 +-
lib/libdvblinkremote/stream.cpp | 2 +-
lib/libdvblinkremote/streaming_capabilities.cpp | 2 +-
pvr.dvblink/changelog.txt | 1 +
13 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/lib/libdvblinkremote/channel.cpp b/lib/libdvblinkremote/channel.cpp
index 2861feb..b9f8ac5 100644
--- a/lib/libdvblinkremote/channel.cpp
+++ b/lib/libdvblinkremote/channel.cpp
@@ -122,7 +122,7 @@ bool GetChannelsResponseSerializer::ReadObject(ChannelList& object, const std::s
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("channels");
GetChannelsResponseXmlDataDeserializer* xmlDataDeserializer = new GetChannelsResponseXmlDataDeserializer(*this, object);
elRoot->Accept(xmlDataDeserializer);
diff --git a/lib/libdvblinkremote/epg.cpp b/lib/libdvblinkremote/epg.cpp
index b382e4d..3fcc65e 100644
--- a/lib/libdvblinkremote/epg.cpp
+++ b/lib/libdvblinkremote/epg.cpp
@@ -189,7 +189,7 @@ bool EpgSearchResponseSerializer::ReadObject(EpgSearchResult& object, const std:
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("epg_searcher");
ChannelEpgXmlDataDeserializer* xmlDataDeserializer = new ChannelEpgXmlDataDeserializer(*this, object);
elRoot->Accept(xmlDataDeserializer);
diff --git a/lib/libdvblinkremote/favorites.cpp b/lib/libdvblinkremote/favorites.cpp
index 4e7f96a..a29fd82 100644
--- a/lib/libdvblinkremote/favorites.cpp
+++ b/lib/libdvblinkremote/favorites.cpp
@@ -118,7 +118,7 @@ bool ChannelFavoritesSerializer::ReadObject(ChannelFavorites& object, const std:
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("favorites");
GetFavoritesResponseXmlDataDeserializer* xmlDataDeserializer = new GetFavoritesResponseXmlDataDeserializer(*this, object);
elRoot->Accept(xmlDataDeserializer);
diff --git a/lib/libdvblinkremote/generic_response.cpp b/lib/libdvblinkremote/generic_response.cpp
index 6d85841..7931957 100644
--- a/lib/libdvblinkremote/generic_response.cpp
+++ b/lib/libdvblinkremote/generic_response.cpp
@@ -74,7 +74,7 @@ bool GenericResponseSerializer::ReadObject(GenericResponse& object, const std::s
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("response");
int statusCode = Util::GetXmlFirstChildElementTextAsInt(elRoot, "status_code");
diff --git a/lib/libdvblinkremote/parental_lock.cpp b/lib/libdvblinkremote/parental_lock.cpp
index 1db186e..be8b156 100644
--- a/lib/libdvblinkremote/parental_lock.cpp
+++ b/lib/libdvblinkremote/parental_lock.cpp
@@ -95,7 +95,7 @@ bool ParentalStatusSerializer::ReadObject(ParentalStatus& object, const std::str
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("parental_status");
object.IsEnabled = Util::GetXmlFirstChildElementTextAsBoolean(elRoot, "is_enabled");
return true;
diff --git a/lib/libdvblinkremote/playback_object.cpp b/lib/libdvblinkremote/playback_object.cpp
index 99c8f15..ce3bff7 100644
--- a/lib/libdvblinkremote/playback_object.cpp
+++ b/lib/libdvblinkremote/playback_object.cpp
@@ -136,7 +136,7 @@ bool GetPlaybackObjectResponseSerializer::ReadObject(GetPlaybackObjectResponse&
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("object");
if (HasChildElement(*elRoot, "containers"))
diff --git a/lib/libdvblinkremote/recording.cpp b/lib/libdvblinkremote/recording.cpp
index 0bd21cd..d4dc828 100644
--- a/lib/libdvblinkremote/recording.cpp
+++ b/lib/libdvblinkremote/recording.cpp
@@ -106,7 +106,7 @@ bool GetRecordingsResponseSerializer::ReadObject(RecordingList& object, const st
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("recordings");
GetRecordingsResponseXmlDataDeserializer* xmlDataDeserializer = new GetRecordingsResponseXmlDataDeserializer(*this, object);
elRoot->Accept(xmlDataDeserializer);
diff --git a/lib/libdvblinkremote/recording_settings.cpp b/lib/libdvblinkremote/recording_settings.cpp
index 729c836..2940c63 100644
--- a/lib/libdvblinkremote/recording_settings.cpp
+++ b/lib/libdvblinkremote/recording_settings.cpp
@@ -81,7 +81,7 @@ bool RecordingSettingsSerializer::ReadObject(RecordingSettings& object, const st
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("recording_settings");
object.TimeMarginBeforeScheduledRecordings = Util::GetXmlFirstChildElementTextAsInt(elRoot, "before_margin");
object.TimeMarginAfterScheduledRecordings = Util::GetXmlFirstChildElementTextAsInt(elRoot, "after_margin");
diff --git a/lib/libdvblinkremote/scheduling.cpp b/lib/libdvblinkremote/scheduling.cpp
index 11a3792..aee900e 100644
--- a/lib/libdvblinkremote/scheduling.cpp
+++ b/lib/libdvblinkremote/scheduling.cpp
@@ -415,7 +415,7 @@ bool GetSchedulesResponseSerializer::ReadObject(StoredSchedules& object, const s
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("schedules");
GetSchedulesResponseXmlDataDeserializer* xmlDataDeserializer = new GetSchedulesResponseXmlDataDeserializer(*this, object);
elRoot->Accept(xmlDataDeserializer);
diff --git a/lib/libdvblinkremote/server_info.cpp b/lib/libdvblinkremote/server_info.cpp
index a308048..adbfcee 100644
--- a/lib/libdvblinkremote/server_info.cpp
+++ b/lib/libdvblinkremote/server_info.cpp
@@ -63,7 +63,7 @@ bool ServerInfoSerializer::ReadObject(ServerInfo& object, const std::string& xml
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("server_info");
object.install_id_ = Util::GetXmlFirstChildElementText(elRoot, "install_id");
object.server_id_ = Util::GetXmlFirstChildElementText(elRoot, "server_id");
diff --git a/lib/libdvblinkremote/stream.cpp b/lib/libdvblinkremote/stream.cpp
index 767c7e1..e2c8259 100644
--- a/lib/libdvblinkremote/stream.cpp
+++ b/lib/libdvblinkremote/stream.cpp
@@ -74,7 +74,7 @@ bool StreamResponseSerializer::ReadObject(Stream& object, const std::string& xml
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("stream");
long channelHandle = Util::GetXmlFirstChildElementTextAsLong(elRoot, "channel_handle");
std::string url = Util::GetXmlFirstChildElementText(elRoot, "url");
diff --git a/lib/libdvblinkremote/streaming_capabilities.cpp b/lib/libdvblinkremote/streaming_capabilities.cpp
index 2544199..d2da28a 100644
--- a/lib/libdvblinkremote/streaming_capabilities.cpp
+++ b/lib/libdvblinkremote/streaming_capabilities.cpp
@@ -83,7 +83,7 @@ bool StreamingCapabilitiesSerializer::ReadObject(StreamingCapabilities& object,
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("streaming_caps");
object.SupportedProtocols = Util::GetXmlFirstChildElementTextAsInt(elRoot, "protocols");
object.SupportedTranscoders = Util::GetXmlFirstChildElementTextAsInt(elRoot, "transcoders");
diff --git a/pvr.dvblink/changelog.txt b/pvr.dvblink/changelog.txt
index 4f1a8e2..bf2f4d4 100644
--- a/pvr.dvblink/changelog.txt
+++ b/pvr.dvblink/changelog.txt
@@ -1,6 +1,7 @@
[B]Version 3.3.5[/B]
Fixed: Crash on startup with search timers
Fixed: Incorrect disk space display if disk size is more than 2TB
+Fixed: tinyxml2 v4 compatibility (XML_NO_ERROR -> XML_SUCCESS)
[B]Version 3.3.4[/B]
Updated: language files from Transifex
From c5e4a81e007ce2547900a713436cefe66d917fa7 Mon Sep 17 00:00:00 2001
From: dvblogic <info@dvblogic.com>
Date: Wed, 14 Sep 2016 15:27:42 +0200
Subject: [PATCH 3/3] added #include <cstdarg> to prevent compiler errors
---
lib/libdvblinkremote/dvblinkremotecommunication.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/libdvblinkremote/dvblinkremotecommunication.cpp b/lib/libdvblinkremote/dvblinkremotecommunication.cpp
index 6037c3b..a254ded 100644
--- a/lib/libdvblinkremote/dvblinkremotecommunication.cpp
+++ b/lib/libdvblinkremote/dvblinkremotecommunication.cpp
@@ -21,6 +21,7 @@
*
***************************************************************************/
+#include <cstdarg>
#include "dvblinkremoteconnection.h"
#include "xml_object_serializer.h"
#include "generic_response.h"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.mediaportal.tvserver" PKG_NAME="pvr.mediaportal.tvserver"
PKG_VERSION="1042a71" PKG_VERSION="42c91b1"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.stalker" PKG_NAME="pvr.stalker"
PKG_VERSION="9c9c72e" PKG_VERSION="7df63b2"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.vdr.vnsi" PKG_NAME="pvr.vdr.vnsi"
PKG_VERSION="40c45dc" PKG_VERSION="da5fdd5"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="kodi-theme-Estuary" PKG_NAME="kodi-theme-Estuary"
PKG_VERSION="17.0-beta1-81d5d26" PKG_VERSION="17.0-beta2-6e9d6fb"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="kodi" PKG_NAME="kodi"
PKG_VERSION="17.0-beta1-81d5d26" PKG_VERSION="17.0-beta2-6e9d6fb"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -1,32 +1,22 @@
From 74ed25108f5a5c4771e001aa9921f175872c076e Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Fri, 24 Apr 2015 19:45:20 +0300
Subject: [PATCH 09/13] use a wrapper to setup systemd services
---
xbmc/addons/Addon.cpp | 30 ++++++++++++++++++++++++++++++
xbmc/addons/Addon.h | 2 ++
2 files changed, 32 insertions(+)
diff --git a/xbmc/addons/Addon.cpp b/xbmc/addons/Addon.cpp diff --git a/xbmc/addons/Addon.cpp b/xbmc/addons/Addon.cpp
index 377a49c..2fda194 100644 index 476ab29..ec5faa5 100644
--- a/xbmc/addons/Addon.cpp --- a/xbmc/addons/Addon.cpp
+++ b/xbmc/addons/Addon.cpp +++ b/xbmc/addons/Addon.cpp
@@ -638,6 +638,13 @@ AddonVersion CAddon::GetDependencyVersion(const std::string &dependencyID) const @@ -340,6 +340,13 @@ AddonVersion CAddon::GetDependencyVersion(const std::string &dependencyID) const
return AddonVersion("0.0.0"); return AddonVersion("0.0.0");
} }
+void CallOEWrapper(const std::string& ID, bool disable) +void CallOEWrapper(const std::string& ID, bool disable)
+{ +{
+ char cmd[255]; + char cmd[255];
+ snprintf(cmd, sizeof(cmd), "/usr/lib/libreelec/systemd-addon-wrapper %s %d %d", ID.c_str(), disable); + snprintf(cmd, sizeof(cmd), "/usr/lib/libreelec/systemd-addon-wrapper %s %d", ID.c_str(), disable);
+ system(cmd); + system(cmd);
+} +}
+ +
void OnEnabled(const std::string& id) void OnEnabled(const std::string& id)
{ {
// If the addon is a special, call enabled handler // If the addon is a special, call enabled handler
@@ -646,6 +653,11 @@ void OnEnabled(const std::string& id) @@ -348,6 +355,11 @@ void OnEnabled(const std::string& id)
CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_ADSPDLL)) CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_ADSPDLL))
return addon->OnEnabled(); return addon->OnEnabled();
@ -35,12 +25,12 @@ index 377a49c..2fda194 100644
+ CallOEWrapper(addon->ID(), false); + CallOEWrapper(addon->ID(), false);
+ // OE + // OE
+ +
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE)) if (CAddonMgr::GetInstance().ServicesHasStarted())
std::static_pointer_cast<CService>(addon)->Start(); {
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE))
@@ -663,6 +675,11 @@ void OnDisabled(const std::string& id) @@ -372,6 +384,11 @@ void OnDisabled(const std::string& id)
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE, false)) std::static_pointer_cast<CService>(addon)->Stop();
std::static_pointer_cast<CService>(addon)->Stop(); }
+ // OE: systemctl stop & disable on addon disable + // OE: systemctl stop & disable on addon disable
+ if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE, false)) + if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE, false))
@ -48,12 +38,13 @@ index 377a49c..2fda194 100644
+ // OE + // OE
+ +
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_CONTEXT_ITEM, false)) if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_CONTEXT_ITEM, false))
CContextMenuManager::GetInstance().Unregister(std::static_pointer_cast<CContextMenuAddon>(addon)); CContextMenuManager::GetInstance().Unload(*std::static_pointer_cast<CContextMenuAddon>(addon));
} }
@@ -686,6 +703,14 @@ void OnPreInstall(const AddonPtr& addon) @@ -399,6 +416,15 @@ void OnPreInstall(const AddonPtr& addon)
void OnPostInstall(const AddonPtr& addon, bool update, bool modal) void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
{ {
AddonPtr localAddon; AddonPtr localAddon;
+
+ // OE: systemctl stop & disable / enable & start on addon upgrade + // OE: systemctl stop & disable / enable & start on addon upgrade
+ if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE)) + if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
+ { + {
@ -62,34 +53,31 @@ index 377a49c..2fda194 100644
+ } + }
+ // OE + // OE
+ +
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE)) if (CAddonMgr::GetInstance().ServicesHasStarted())
std::static_pointer_cast<CService>(localAddon)->Start(); {
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
@@ -720,6 +745,11 @@ void OnPostInstall(const AddonPtr& addon, bool update, bool modal) @@ -415,6 +441,11 @@ void OnPreUnInstall(const AddonPtr& addon)
void OnPreUnInstall(const AddonPtr& addon)
{ {
AddonPtr localAddon; AddonPtr localAddon;
+ // OE: systemctl stop & disable on addon ininstall
+ // OE: systemctl stop & disable on addon uninstall
+ if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE)) + if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
+ CallOEWrapper(addon->ID(), true); + CallOEWrapper(addon->ID(), true);
+ // OE + // OE
+ +
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE)) if (CAddonMgr::GetInstance().ServicesHasStarted())
std::static_pointer_cast<CService>(localAddon)->Stop(); {
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
diff --git a/xbmc/addons/Addon.h b/xbmc/addons/Addon.h diff --git a/xbmc/addons/Addon.h b/xbmc/addons/Addon.h
index d0a40d3..0742374 100644 index 515afe1..36287d6 100644
--- a/xbmc/addons/Addon.h --- a/xbmc/addons/Addon.h
+++ b/xbmc/addons/Addon.h +++ b/xbmc/addons/Addon.h
@@ -173,6 +173,8 @@ public: @@ -121,6 +121,8 @@ public:
const InfoMap &ExtraInfo() const { return m_props.extrainfo; } const InfoMap& ExtraInfo() const override { return m_props.extrainfo; }
const ADDONDEPS &GetDeps() const { return m_props.dependencies; } const ADDONDEPS& GetDeps() const override { return m_props.dependencies; }
+ void CallOEWrapper(const std::string& ID, bool disable); + void CallOEWrapper(const std::string& ID, bool disable);
+ +
/*! \brief get the required version of a dependency. /*! \brief Check whether the this addon can be configured or not
\param dependencyID the addon ID of the dependency. \return true if the addon has settings, false otherwise
\return the version this addon requires. \sa LoadSettings, LoadUserSettings, SaveSettings, HasUserSettings, GetSetting, UpdateSetting
--
2.5.0

View File

@ -1,12 +0,0 @@
diff -Naur a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp 2016-02-14 00:19:32.000000000 +0100
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp 2016-03-02 09:36:04.503330833 +0100
@@ -1601,7 +1601,7 @@
am_private->gcodec.param = (void*)(EXTERNAL_PTS | SYNC_OUTSIDE);
break;
}
- am_private->gcodec.param = (void *)((unsigned int)am_private->gcodec.param | (am_private->video_rotation_degree << 16));
+ am_private->gcodec.param = (void *)((unsigned long)am_private->gcodec.param | (am_private->video_rotation_degree << 16));
// translate from generic to firemware version dependent
m_dll->codec_init_para(&am_private->gcodec, &am_private->vcodec);

View File

@ -1,135 +0,0 @@
From ee2dc577a03d86ac61e06bc95aaff1d1eddbf593 Mon Sep 17 00:00:00 2001
From: Garrett Brown <themagnificentmrb@gmail.com>
Date: Thu, 18 Aug 2016 14:10:36 -0700
Subject: [PATCH] Rename CPeripherals::GetAddon() to GetAddonWithButtonMap()
and move to addon bus
---
xbmc/peripherals/Peripherals.cpp | 26 +++++----------------
xbmc/peripherals/Peripherals.h | 2 +-
xbmc/peripherals/addons/AddonButtonMapping.cpp | 2 +-
xbmc/peripherals/addons/AddonInputHandling.cpp | 2 +-
.../peripherals/bus/virtual/PeripheralBusAddon.cpp | 27 ++++++++++++++++++----
5 files changed, 31 insertions(+), 28 deletions(-)
diff --git a/xbmc/peripherals/Peripherals.cpp b/xbmc/peripherals/Peripherals.cpp
index 629846d..30f160e 100644
--- a/xbmc/peripherals/Peripherals.cpp
+++ b/xbmc/peripherals/Peripherals.cpp
@@ -762,29 +762,15 @@ void CPeripherals::ProcessEvents(void)
bus->ProcessEvents();
}
-PeripheralAddonPtr CPeripherals::GetAddon(const CPeripheral* device)
+PeripheralAddonPtr CPeripherals::GetAddonWithButtonMap(const CPeripheral* device)
{
- PeripheralAddonPtr addon;
-
PeripheralBusAddonPtr addonBus = std::static_pointer_cast<CPeripheralBusAddon>(GetBusByType(PERIPHERAL_BUS_ADDON));
- if (device && addonBus)
- {
- PeripheralBusType busType = device->GetBusType();
- if (busType == PERIPHERAL_BUS_ADDON)
- {
- // If device is from an add-on, use that add-on
- PeripheralAddonPtr peripheralAddon;
- unsigned int index;
- if (addonBus->SplitLocation(device->Location(), addon, index))
- addon = std::move(peripheralAddon);
- }
- else
- {
- // Otherwise, have the add-on bus find a suitable add-on
- addonBus->GetAddonWithButtonMap(device, addon);
- }
- }
+ PeripheralAddonPtr addon;
+
+ PeripheralAddonPtr addonWithButtonMap;
+ if (addonBus && addonBus->GetAddonWithButtonMap(device, addonWithButtonMap))
+ addon = std::move(addonWithButtonMap);
return addon;
}
diff --git a/xbmc/peripherals/Peripherals.h b/xbmc/peripherals/Peripherals.h
index b66970d..33ca7fb 100644
--- a/xbmc/peripherals/Peripherals.h
+++ b/xbmc/peripherals/Peripherals.h
@@ -239,7 +239,7 @@ namespace PERIPHERALS
// implementation of IEventScannerCallback
virtual void ProcessEvents(void) override;
- virtual PeripheralAddonPtr GetAddon(const CPeripheral* device);
+ virtual PeripheralAddonPtr GetAddonWithButtonMap(const CPeripheral* device);
virtual void ResetButtonMaps(const std::string& controllerId);
diff --git a/xbmc/peripherals/addons/AddonButtonMapping.cpp b/xbmc/peripherals/addons/AddonButtonMapping.cpp
index 818e894..32a45c2 100644
--- a/xbmc/peripherals/addons/AddonButtonMapping.cpp
+++ b/xbmc/peripherals/addons/AddonButtonMapping.cpp
@@ -29,7 +29,7 @@ using namespace PERIPHERALS;
CAddonButtonMapping::CAddonButtonMapping(CPeripheral* peripheral, IButtonMapper* mapper)
{
- PeripheralAddonPtr addon = g_peripherals.GetAddon(peripheral);
+ PeripheralAddonPtr addon = g_peripherals.GetAddonWithButtonMap(peripheral);
if (!addon)
{
diff --git a/xbmc/peripherals/addons/AddonInputHandling.cpp b/xbmc/peripherals/addons/AddonInputHandling.cpp
index 7a29c9e..89527f4 100644
--- a/xbmc/peripherals/addons/AddonInputHandling.cpp
+++ b/xbmc/peripherals/addons/AddonInputHandling.cpp
@@ -32,7 +32,7 @@ using namespace PERIPHERALS;
CAddonInputHandling::CAddonInputHandling(CPeripheral* peripheral, IInputHandler* handler, IDriverReceiver* receiver)
{
- PeripheralAddonPtr addon = g_peripherals.GetAddon(peripheral);
+ PeripheralAddonPtr addon = g_peripherals.GetAddonWithButtonMap(peripheral);
if (!addon)
{
diff --git a/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp b/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp
index b533686..2426285 100644
--- a/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp
+++ b/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp
@@ -80,15 +80,32 @@ bool CPeripheralBusAddon::GetAddon(const std::string &strId, AddonPtr &addon) co
bool CPeripheralBusAddon::GetAddonWithButtonMap(const CPeripheral* device, PeripheralAddonPtr &addon) const
{
CSingleLock lock(m_critSection);
- for (const auto& addonIt : m_addons)
+
+ // If device is from an add-on, try to use that add-on
+ if (device && device->GetBusType() == PERIPHERAL_BUS_ADDON)
{
- if (addonIt->HasButtonMaps())
+ PeripheralAddonPtr addonWithButtonMap;
+ unsigned int index;
+ if (SplitLocation(device->Location(), addonWithButtonMap, index))
{
- addon = addonIt;
- return true;
+ if (addonWithButtonMap->HasButtonMaps())
+ addon = std::move(addonWithButtonMap);
}
}
- return false;
+
+ if (!addon)
+ {
+ auto it = std::find_if(m_addons.begin(), m_addons.end(),
+ [](const PeripheralAddonPtr& addon)
+ {
+ return addon->HasButtonMaps();
+ });
+
+ if (it != m_addons.end())
+ addon = *it;
+ }
+
+ return addon.get() != nullptr;
}
unsigned int CPeripheralBusAddon::GetAddonCount(void) const

View File

@ -1,103 +0,0 @@
commit 62fa4175cb82e40ea3b67887f08d1f9424aa8a8d
Author: MilhouseVH <milhouseVH.github@nmacleod.com>
Date: Wed Aug 31 04:37:27 2016
Revert "VideoPlayer: passthrough fixes"
This reverts commit 14af37aac18b0f471694dac7c65a96d39afaf327.
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.cpp
index 3af25db..8009297 100644
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.cpp
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.cpp
@@ -27,10 +27,6 @@
#include "cores/AudioEngine/AEFactory.h"
-extern "C" {
-#include "libavcodec/avcodec.h"
-}
-
#define TRUEHD_BUF_SIZE 61440
CDVDAudioCodecPassthrough::CDVDAudioCodecPassthrough(CProcessInfo &processInfo) :
@@ -118,7 +114,6 @@ void CDVDAudioCodecPassthrough::Dispose()
int CDVDAudioCodecPassthrough::Decode(uint8_t* pData, int iSize, double dts, double pts)
{
int used = 0;
- int skip = 0;
if (m_backlogSize)
{
if (m_currentPts == DVD_NOPTS_VALUE)
@@ -132,25 +127,12 @@ int CDVDAudioCodecPassthrough::Decode(uint8_t* pData, int iSize, double dts, dou
m_bufferSize = std::max(m_bufferSize, m_dataSize);
if (consumed != m_backlogSize)
{
- memmove(m_backlogBuffer, m_backlogBuffer+consumed, m_backlogSize-consumed);
+ memmove(m_backlogBuffer, m_backlogBuffer+consumed, consumed);
m_backlogSize -= consumed;
}
}
- // get rid of potential side data
- if (pData)
- {
- AVPacket pkt;
- av_init_packet(&pkt);
- pkt.data = pData;
- pkt.size = iSize;
- av_packet_split_side_data(&pkt);
- skip = iSize - pkt.size;
- pData = pkt.data;
- iSize = pkt.size;
- }
-
- if (pData && !m_backlogSize)
+ if (pData && !m_dataSize)
{
if (iSize <= 0)
return 0;
@@ -187,20 +169,6 @@ int CDVDAudioCodecPassthrough::Decode(uint8_t* pData, int iSize, double dts, dou
if (!m_dataSize)
return used;
- if (m_dataSize)
- {
- m_format.m_dataFormat = AE_FMT_RAW;
- m_format.m_streamInfo = m_parser.GetStreamInfo();
- m_format.m_sampleRate = m_parser.GetSampleRate();
- m_format.m_frameSize = 1;
- CAEChannelInfo layout;
- for (unsigned int i=0; i<m_parser.GetChannels(); i++)
- {
- layout += AE_CH_RAW;
- }
- m_format.m_channelLayout = layout;
- }
-
if (m_format.m_streamInfo.m_type == CAEStreamInfo::STREAM_TYPE_TRUEHD)
{
if (!m_trueHDoffset)
@@ -222,7 +190,21 @@ int CDVDAudioCodecPassthrough::Decode(uint8_t* pData, int iSize, double dts, dou
m_dataSize = 0;
}
- return used + skip;
+ if (m_dataSize)
+ {
+ m_format.m_dataFormat = AE_FMT_RAW;
+ m_format.m_streamInfo = m_parser.GetStreamInfo();
+ m_format.m_sampleRate = m_parser.GetSampleRate();
+ m_format.m_frameSize = 1;
+ CAEChannelInfo layout;
+ for (unsigned int i=0; i<m_parser.GetChannels(); i++)
+ {
+ layout += AE_CH_RAW;
+ }
+ m_format.m_channelLayout = layout;
+ }
+
+ return used;
}
void CDVDAudioCodecPassthrough::GetData(DVDAudioFrame &frame)

View File

@ -18,7 +18,7 @@
PKG_NAME="ffmpeg" PKG_NAME="ffmpeg"
# Current branch is: release/3.1-xbmc # Current branch is: release/3.1-xbmc
PKG_VERSION="6da2f5f" PKG_VERSION="e9002c3"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="LGPLv2.1+" PKG_LICENSE="LGPLv2.1+"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff