diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /media-tv/kodi/files |
reinit the tree, so we can have metadata
Diffstat (limited to 'media-tv/kodi/files')
-rwxr-xr-x | media-tv/kodi/files/generate.sh | 34 | ||||
-rw-r--r-- | media-tv/kodi/files/kodi-17.3-ftpparse_string.patch | 82 | ||||
-rw-r--r-- | media-tv/kodi/files/kodi-17.3-unrar-vulnerability.patch | 45 | ||||
-rw-r--r-- | media-tv/kodi/files/kodi-17.4-mariadb.patch | 23 | ||||
-rw-r--r-- | media-tv/kodi/files/kodi-cmake-no-java.patch | 56 |
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}) |