summaryrefslogtreecommitdiff
path: root/media-tv/kodi/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /media-tv/kodi/files
reinit the tree, so we can have metadata
Diffstat (limited to 'media-tv/kodi/files')
-rwxr-xr-xmedia-tv/kodi/files/generate.sh34
-rw-r--r--media-tv/kodi/files/kodi-17.3-ftpparse_string.patch82
-rw-r--r--media-tv/kodi/files/kodi-17.3-unrar-vulnerability.patch45
-rw-r--r--media-tv/kodi/files/kodi-17.4-mariadb.patch23
-rw-r--r--media-tv/kodi/files/kodi-cmake-no-java.patch56
5 files changed, 240 insertions, 0 deletions
diff --git a/media-tv/kodi/files/generate.sh b/media-tv/kodi/files/generate.sh
new file mode 100755
index 000000000000..2e5b67fb90e1
--- /dev/null
+++ b/media-tv/kodi/files/generate.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+# Generate the various interface files that normally requires java.
+# This makes building the release versions much nicer.
+
+set -eux
+
+PV=$1
+PN=kodi
+P="${PN}-${PV}"
+DISTDIR="/usr/portage/distfiles"
+GITDIR="/usr/local/src/kodi/git"
+
+if [[ ${PV} != "9999" ]] ; then
+ rm -rf xbmc-*/
+ tar xf ${DISTDIR}/${P}.tar.gz
+ d=$(echo xbmc-*/)
+else
+ stamp=$(date --date="$(git log -n1 --pretty=format:%ci master)" -u +%Y%m%d)
+ P+="-${stamp}"
+ cd ${GITDIR}
+ d=.
+fi
+#cd ${d} && git init . && git add . && git commit -qmm && cd ..
+make -C ${d} -j -f codegenerator.mk
+tar="${DISTDIR}/${P}-generated-addons.tar.xz"
+tar cf - \
+ ${d}/xbmc/interfaces/python/generated/*.cpp \
+ ${d}/xbmc/interfaces/json-rpc/ServiceDescription.h \
+ | xz > "${tar}"
+if [[ ${PV} != "9999" ]] ; then
+ rm -rf xbmc-*/
+fi
+
+du -b "${tar}"
diff --git a/media-tv/kodi/files/kodi-17.3-ftpparse_string.patch b/media-tv/kodi/files/kodi-17.3-ftpparse_string.patch
new file mode 100644
index 000000000000..da8d57a3d6b2
--- /dev/null
+++ b/media-tv/kodi/files/kodi-17.3-ftpparse_string.patch
@@ -0,0 +1,82 @@
+From 634153c85115b44015cdb1ddd6263f5a87e4e41b Mon Sep 17 00:00:00 2001
+From: Stefan Saraev <stefan@saraev.ca>
+Date: Sun, 7 May 2017 17:30:47 +0300
+Subject: [PATCH] FTPParse.cpp: use std::string
+
+---
+ xbmc/filesystem/FTPParse.cpp | 44 ++++++++++++++++++++++----------------------
+ 1 file changed, 22 insertions(+), 22 deletions(-)
+
+diff --git a/xbmc/filesystem/FTPParse.cpp b/xbmc/filesystem/FTPParse.cpp
+index 8dd9633ae19e..d78349adb580 100644
+--- a/xbmc/filesystem/FTPParse.cpp
++++ b/xbmc/filesystem/FTPParse.cpp
+@@ -30,7 +30,7 @@ CFTPParse::CFTPParse()
+ m_time = 0;
+ }
+
+-string CFTPParse::getName()
++std::string CFTPParse::getName()
+ {
+ return m_name;
+ }
+@@ -55,16 +55,16 @@ time_t CFTPParse::getTime()
+ return m_time;
+ }
+
+-void CFTPParse::setTime(string str)
++void CFTPParse::setTime(std::string str)
+ {
+ /* Variables used to capture patterns via the regexes */
+- string month;
+- string day;
+- string year;
+- string hour;
+- string minute;
+- string second;
+- string am_or_pm;
++ std::string month;
++ std::string day;
++ std::string year;
++ std::string hour;
++ std::string minute;
++ std::string second;
++ std::string am_or_pm;
+
+ /* time struct used to set the time_t variable */
+ struct tm time_struct = {};
+@@ -334,21 +334,21 @@ int CFTPParse::getDayOfWeek(int month, int date, int year)
+ return day_of_week;
+ }
+
+-int CFTPParse::FTPParse(string str)
++int CFTPParse::FTPParse(std::string str)
+ {
+ /* Various variable to capture patterns via the regexes */
+- string permissions;
+- string link_count;
+- string owner;
+- string group;
+- string size;
+- string date;
+- string name;
+- string type;
+- string stuff;
+- string facts;
+- string version;
+- string file_id;
++ std::string permissions;
++ std::string link_count;
++ std::string owner;
++ std::string group;
++ std::string size;
++ std::string date;
++ std::string name;
++ std::string type;
++ std::string stuff;
++ std::string facts;
++ std::string version;
++ std::string file_id;
+
+ /* Regex for standard Unix listing formats */
+ pcrecpp::RE unix_re("^([-bcdlps])" // type
diff --git a/media-tv/kodi/files/kodi-17.3-unrar-vulnerability.patch b/media-tv/kodi/files/kodi-17.3-unrar-vulnerability.patch
new file mode 100644
index 000000000000..95644d6921e7
--- /dev/null
+++ b/media-tv/kodi/files/kodi-17.3-unrar-vulnerability.patch
@@ -0,0 +1,45 @@
+See https://trac.kodi.tv/ticket/17510
+diff --git a/lib/UnrarXLib/rarvm.cpp b/lib/UnrarXLib/rarvm.cpp
+index 901c35dcb4..42df0a0110 100644
+--- a/lib/UnrarXLib/rarvm.cpp
++++ b/lib/UnrarXLib/rarvm.cpp
+@@ -873,14 +873,16 @@ void RarVM::ExecuteStandardFilter(VM_StandardFilters FilterType)
+ break;
+ case VMSF_DELTA:
+ {
+- int DataSize=R[4],Channels=R[0],SrcPos=0,Border=DataSize*2;
+- SET_VALUE(false,&Mem[VM_GLOBALMEMADDR+0x20],DataSize);
+- if (DataSize>=VM_GLOBALMEMADDR/2)
+- break;
+- for (int CurChannel=0;CurChannel<Channels;CurChannel++)
++ uint DataSize=R[4],Channels=R[0],SrcPos=0,Border=DataSize*2;
++ if (DataSize>VM_MEMSIZE/2 || Channels>MAX3_UNPACK_CHANNELS || Channels==0)
++ break;
++
++ // Bytes from same channels are grouped to continual data blocks,
++ // so we need to place them back to their interleaving positions.
++ for (uint CurChannel=0;CurChannel<Channels;CurChannel++)
+ {
+ byte PrevByte=0;
+- for (int DestPos=DataSize+CurChannel;DestPos<Border;DestPos+=Channels)
++ for (uint DestPos=DataSize+CurChannel;DestPos<Border;DestPos+=Channels)
+ Mem[DestPos]=(PrevByte-=Mem[SrcPos++]);
+ }
+ }
+diff --git a/lib/UnrarXLib/unpack.hpp b/lib/UnrarXLib/unpack.hpp
+index 83fb0f0254..36ac30d181 100644
+--- a/lib/UnrarXLib/unpack.hpp
++++ b/lib/UnrarXLib/unpack.hpp
+@@ -1,6 +1,12 @@
+ #ifndef _RAR_UNPACK_
+ #define _RAR_UNPACK_
+
++// Limit maximum number of channels in RAR3 delta filter to some reasonable
++// value to prevent too slow processing of corrupt archives with invalid
++// channels number. Must be equal or larger than v3_MAX_FILTER_CHANNELS.
++// No need to provide it for RAR5, which uses only 5 bits to store channels.
++#define MAX3_UNPACK_CHANNELS 1024
++
+ enum BLOCK_TYPES {BLOCK_LZ,BLOCK_PPM};
+
+ struct Decode
diff --git a/media-tv/kodi/files/kodi-17.4-mariadb.patch b/media-tv/kodi/files/kodi-17.4-mariadb.patch
new file mode 100644
index 000000000000..6def8f8a3043
--- /dev/null
+++ b/media-tv/kodi/files/kodi-17.4-mariadb.patch
@@ -0,0 +1,23 @@
+From ff848b104182467e5048351fdf27a07dd55a34a6 Mon Sep 17 00:00:00 2001
+From: Wolfgang Schupp <w.schupp@a1.net>
+Date: Tue, 29 Aug 2017 09:08:05 +0200
+Subject: [PATCH] Merge pull request #12727 from candrews/patch-6
+
+[cmake] FindMySqlClient: Compatibility with MariaDB
+---
+ project/cmake/modules/FindMySqlClient.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/project/cmake/modules/FindMySqlClient.cmake b/project/cmake/modules/FindMySqlClient.cmake
+index ceccea39b1e3..7b485778e4fc 100644
+--- a/project/cmake/modules/FindMySqlClient.cmake
++++ b/project/cmake/modules/FindMySqlClient.cmake
+@@ -21,7 +21,7 @@ else()
+ set(EXTRA_FIND_ARGS)
+ endif()
+
+-find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql_time.h)
++find_path(MYSQLCLIENT_INCLUDE_DIR NAMES mysql/mysql.h mysql/server/mysql.h)
+ find_library(MYSQLCLIENT_LIBRARY_RELEASE NAMES mysqlclient libmysql
+ PATH_SUFFIXES mysql
+ ${EXTRA_FIND_ARGS})
diff --git a/media-tv/kodi/files/kodi-cmake-no-java.patch b/media-tv/kodi/files/kodi-cmake-no-java.patch
new file mode 100644
index 000000000000..2d965ab351ee
--- /dev/null
+++ b/media-tv/kodi/files/kodi-cmake-no-java.patch
@@ -0,0 +1,56 @@
+diff --git a/xbmc/interfaces/swig/CMakeLists.txt b/xbmc/interfaces/swig/CMakeLists.txt
+index 6e676159eb..d45a2ecbab 100644
+--- a/xbmc/interfaces/swig/CMakeLists.txt
++++ b/xbmc/interfaces/swig/CMakeLists.txt
+@@ -1,43 +1,21 @@
+ function(generate_file file)
+- set(classpath ${GROOVY_DIR}/groovy-all-${GROOVY_VER}.jar
+- ${GROOVY_DIR}/commons-lang-${COMMONS_VER}.jar
+- ${CORE_SOURCE_DIR}/tools/codegenerator
+- ${CMAKE_CURRENT_SOURCE_DIR}/../python)
+- if(NOT CORE_SYSTEM_NAME STREQUAL windows)
+- set(devnull "/dev/null")
+- string(REPLACE ";" ":" classpath "${classpath}")
+- else()
+- set(devnull "nul")
+- endif()
+-
+- set(CPP_FILE ${file}.cpp)
+- add_custom_command(OUTPUT ${CPP_FILE}
+- COMMAND ${SWIG_EXECUTABLE}
+- ARGS -w401 -c++ -o ${file}.xml -xml -I${CORE_SOURCE_DIR}/xbmc -xmllang python ${CMAKE_CURRENT_SOURCE_DIR}/../swig/${file}
+- COMMAND ${Java_JAVA_EXECUTABLE}
+- ARGS -cp "${classpath}" groovy.ui.GroovyMain ${CORE_SOURCE_DIR}/tools/codegenerator/Generator.groovy ${file}.xml ${CMAKE_CURRENT_SOURCE_DIR}/../python/PythonSwig.cpp.template ${file}.cpp > ${devnull}
+- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../swig/${file})
++ set(CPP_FILE ${CORE_SOURCE_DIR}/xbmc/interfaces/python/generated/${file}.cpp)
+ set(SOURCES ${SOURCES} "${CPP_FILE}" PARENT_SCOPE)
+ endfunction()
+
+-find_package(Java COMPONENTS Runtime REQUIRED)
+ find_package(SWIG REQUIRED)
+
+ # The generated bindings
+-set(INPUTS AddonModuleXbmcaddon.i
+- AddonModuleXbmcgui.i
+- AddonModuleXbmc.i
+- AddonModuleXbmcplugin.i
+- AddonModuleXbmcvfs.i
+- AddonModuleXbmcwsgi.i)
+-
+-set(GROOVY_DIR ${CORE_SOURCE_DIR}/tools/codegenerator/groovy)
+-set(GROOVY_VER 2.4.4)
+-set(COMMONS_VER 2.6)
++set(INPUTS AddonModuleXbmcaddon
++ AddonModuleXbmcgui
++ AddonModuleXbmc
++ AddonModuleXbmcplugin
++ AddonModuleXbmcvfs
++ AddonModuleXbmcwsgi)
+
+ foreach(INPUT IN LISTS INPUTS)
+ generate_file(${INPUT})
+- list(APPEND GEN_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${INPUT}.cpp)
++ list(APPEND GEN_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${INPUT}.i.cpp)
+ endforeach()
+
+ add_library(python_binding STATIC ${SOURCES})