diff options
author | joerg <joerg@pkgsrc.org> | 2015-12-23 12:43:25 +0000 |
---|---|---|
committer | joerg <joerg@pkgsrc.org> | 2015-12-23 12:43:25 +0000 |
commit | 5d64a651f46c5e17ba8c09632293092e080c5dc3 (patch) | |
tree | 6622ce45b5b21d750b46089fc078feb359607627 /multimedia | |
parent | c702113336b8d2b6a836d8bdef1bd0d1ca7240f0 (diff) | |
download | pkgsrc-5d64a651f46c5e17ba8c09632293092e080c5dc3.tar.gz |
Fix missing cstdlib / locale.h includes. Avoid UB by not passing non-POD
types to variadic functions. It's silly to force the construction of a
std::string as potential copy when just the C string is used anyway.
Diffstat (limited to 'multimedia')
19 files changed, 393 insertions, 9 deletions
diff --git a/multimedia/kodi/distinfo b/multimedia/kodi/distinfo index bb1eddb1017..63eae50a774 100644 --- a/multimedia/kodi/distinfo +++ b/multimedia/kodi/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.9 2015/11/22 11:35:02 wiz Exp $ +$NetBSD: distinfo,v 1.10 2015/12/23 12:43:25 joerg Exp $ SHA1 (15.2-Isengard.tar.gz) = 4acb4a60eadc7289f873cff5add31693b9520cba RMD160 (15.2-Isengard.tar.gz) = d81d3f15783b2b69920ea85d7e04f01872f2d85f @@ -15,6 +15,7 @@ SHA1 (patch-lib_gtest_configure.ac) = 5c45c0ee6c997157c4e2bfe9d99c2e1e5b63ad1d SHA1 (patch-m4_xbmc__arch.m4) = ec0018a5a07cd8ab0e6718585fe8dcc9dd561c02 SHA1 (patch-xbmc_GUIInfoManager.cpp) = 8ffd619dfc7f611da927422e9be295d8fa5fb71c SHA1 (patch-xbmc_Makefile.in) = 8a55856686715244d9999f846a2cc8bac6f08a21 +SHA1 (patch-xbmc_TextureDatabase.cpp) = b2fef50f58d9d89ec844ae8ba959bb63451df990 SHA1 (patch-xbmc_Util.cpp) = 6284dfb29649ec9eeb5e9f9b07e2c164e6df304f SHA1 (patch-xbmc_addons_Addon.cpp) = 9060723ebba93311eb6f4657bae73d9589b96a77 SHA1 (patch-xbmc_addons_AddonDll.h) = 77905da081d2436c383328421e1ab9316fb5939d @@ -25,21 +26,35 @@ SHA1 (patch-xbmc_cores_DllLoader_exports_emu__msvcrt.cpp) = 650a107afbf5bb78eb97 SHA1 (patch-xbmc_cores_DllLoader_exports_emu__msvcrt.h) = 6047438509663af2826bd5e6c181d9018f86b27c SHA1 (patch-xbmc_cores_DllLoader_exports_util_EmuFileWrapper.h) = a4d62050c1efb96a0b1e6ccb2d9529f6ae3a1135 SHA1 (patch-xbmc_cores_DllLoader_exports_wrapper.c) = 275e8e9fed74e0a97c9c138ab37d21cff62d4e33 +SHA1 (patch-xbmc_cores_dvdplayer_DVDDemuxSPU.cpp) = fa18bcbbc6c9b7d7d758128d21146d13c6335d66 +SHA1 (patch-xbmc_dbwrappers_Database.cpp) = 4abf8e5c39f08b54c977943b3c6e5b9b7ed3dbbc +SHA1 (patch-xbmc_dbwrappers_Database.h) = 858b3360d591662642d719c4dc681d1b514a2e8a +SHA1 (patch-xbmc_dialogs_GUIDialogGamepad.cpp) = 565fb5fb003e61ece6443613f5b5d01f2e7d6b99 +SHA1 (patch-xbmc_dialogs_GUIDialogMediaFilter.cpp) = 3e468c187236281ae6ebdcd08a2fd13e6a7e4eb2 +SHA1 (patch-xbmc_dialogs_GUIDialogNumeric.cpp) = cbc6cfc83bd8855d6d8ab62029c6f5a930f00a1a SHA1 (patch-xbmc_filesystem_SAPDirectory.cpp) = ad07af23222a835540d78419b896590395e61e78 +SHA1 (patch-xbmc_guilib_GUIAction.cpp) = e2e1280590a651a7d83d326514763529895c6f57 +SHA1 (patch-xbmc_guilib_GUISpinControl.cpp) = ecf66b7ddc29754112e4a8770fab892a6e27774c SHA1 (patch-xbmc_guilib_TextureBundleXPR.cpp) = b3012d41cb4cf0ea0d92c675cf6c16928439c643 SHA1 (patch-xbmc_guilib_XBTFReader.cpp) = e0505ee31f92ceb37dbb1200f49806af85410e2c +SHA1 (patch-xbmc_interfaces_legacy_Dialog.cpp) = 52673f270c94e2f0c003ceedf86972fcbb3d071a SHA1 (patch-xbmc_interfaces_python_XBPython.cpp) = 0ad33ef736f12b6aca8667da5d50998d69c90ea7 SHA1 (patch-xbmc_linux_LinuxTimezone.cpp) = 18974ed63d1ac35a4060ea3d01826120b016c06e SHA1 (patch-xbmc_linux_PlatformDefs.h) = 56d70fce18807b10cb8d42ac0feca94d0c113c57 -SHA1 (patch-xbmc_linux_XFileUtils.cpp) = 4c03a869957ca501adaa5dc0d966cfd043e0d5c9 +SHA1 (patch-xbmc_linux_XFileUtils.cpp) = 8840ef540c023bc988c918ec7067cc2383b83a88 SHA1 (patch-xbmc_linux_XMemUtils.cpp) = 2c8fb8f80feb4d5f50518d9bd6fcc69519674658 +SHA1 (patch-xbmc_main_main.cpp) = f19ee0a085ac4924b31beb210d625dc3819f080d +SHA1 (patch-xbmc_music_MusicDatabase.cpp) = 0bcb1d3654b3975decc3802cf36b885af10b5313 SHA1 (patch-xbmc_network_linux_NetworkLinux.cpp) = febc3a9791d0c087261ccbbecdcffcaa4793e333 SHA1 (patch-xbmc_peripherals_bus_PeripheralBusUSB.h) = e3682d8fbfad9bca11a706c2ca3a77f0a7751e3a SHA1 (patch-xbmc_peripherals_bus_linux_PeripheralBusUSBLibUSB.cpp) = 040678e8379f6797e8276d9787d60fcdb24e17c9 +SHA1 (patch-xbmc_pvr_PVRActionListener.cpp) = f51e7877e09a42dc6e7c14eb35a15145915c98a7 SHA1 (patch-xbmc_settings_Settings.cpp) = aa2426fcd69652bc656dba0b7d92341235309a8f SHA1 (patch-xbmc_storage_DetectDVDType.cpp) = 7414b122a2787dfe8a4753b50445b16230262d92 SHA1 (patch-xbmc_storage_IoSupport.cpp) = d15ff91f76f0ce063dc6dda104a595f33bbdc01e SHA1 (patch-xbmc_storage_MediaManager.cpp) = 5a816d5c6b060a99aa498f6f9b62571873d23970 +SHA1 (patch-xbmc_storage_linux_DeviceKitDisksProvider.cpp) = d3fdb7286528878f53d83a2ce98ebfc5e1032d19 +SHA1 (patch-xbmc_storage_linux_UDisksProvider.cpp) = 4f4c31fec090f23c5b05e8b6f52ef720d2da7101 SHA1 (patch-xbmc_system.h) = 10738c487ed6c2de066483cc077ad05037132da8 SHA1 (patch-xbmc_system__gl.h) = e2b8e3d57c6d838020163cf56e8f868c959af937 SHA1 (patch-xbmc_threads_platform_pthreads_ThreadImpl.cpp) = f8853a8ace422d9ab088be89b5562da552edcc7a @@ -48,7 +63,9 @@ SHA1 (patch-xbmc_utils_CharsetConverter.cpp) = 420a1e39d24c38dca2a8702a22b8cf67e SHA1 (patch-xbmc_utils_Stopwatch.cpp) = fd2b8f7112e89ce164a0329ea3ee389f85705d1f SHA1 (patch-xbmc_utils_SystemInfo.cpp) = 444e0e34842f97660d521b9715c01fa4fe99a9f0 SHA1 (patch-xbmc_utils_test_TestSystemInfo.cpp) = eeca9e097346f9f2c7f047f5906d6ffb75fd393b +SHA1 (patch-xbmc_video_VideoDatabase.cpp) = e0ac33bfd9918dc263b858044dea81efe8ebee6f SHA1 (patch-xbmc_windowing_WinEvents.cpp) = 5e1c202214cd95671cc8bb503dd49080efd828f2 +SHA1 (patch-xbmc_windowing_WinEventsX11.cpp) = bca8536bdeb09c7396c8a917074e71fe3045dec6 SHA1 (patch-xbmc_windowing_WindowingFactory.h) = 736df0f1a0f3c7e9048481a58c15951bdea017f1 SHA1 (patch-xbmc_windowing_X11_XRandR.cpp) = e0d03f225704019fb162022020d1d9ed72ed480a SHA1 (patch-xbmc_windows_GUIWindowSystemInfo.cpp) = 761af54a7728059356e14b15b55383d5a53c92a1 diff --git a/multimedia/kodi/patches/patch-xbmc_TextureDatabase.cpp b/multimedia/kodi/patches/patch-xbmc_TextureDatabase.cpp new file mode 100644 index 00000000000..9d007423962 --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_TextureDatabase.cpp @@ -0,0 +1,13 @@ +$NetBSD: patch-xbmc_TextureDatabase.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/TextureDatabase.cpp.orig 2015-12-22 18:18:09.000000000 +0000 ++++ xbmc/TextureDatabase.cpp +@@ -294,7 +294,7 @@ bool CTextureDatabase::GetTextures(CVari + if (!CDatabase::BuildSQL("", filter, sqlFilter)) + return false; + +- sql = PrepareSQL(sql, !filter.fields.empty() ? filter.fields.c_str() : "*") + sqlFilter; ++ sql = PrepareSQL(sql.c_str(), !filter.fields.empty() ? filter.fields.c_str() : "*") + sqlFilter; + if (!m_pDS->query(sql.c_str())) + return false; + diff --git a/multimedia/kodi/patches/patch-xbmc_cores_dvdplayer_DVDDemuxSPU.cpp b/multimedia/kodi/patches/patch-xbmc_cores_dvdplayer_DVDDemuxSPU.cpp new file mode 100644 index 00000000000..14146613113 --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_cores_dvdplayer_DVDDemuxSPU.cpp @@ -0,0 +1,12 @@ +$NetBSD: patch-xbmc_cores_dvdplayer_DVDDemuxSPU.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/cores/dvdplayer/DVDDemuxSPU.cpp.orig 2015-12-22 17:49:55.000000000 +0000 ++++ xbmc/cores/dvdplayer/DVDDemuxSPU.cpp +@@ -21,6 +21,7 @@ + #include "DVDDemuxSPU.h" + #include "DVDClock.h" + #include "utils/log.h" ++#include <cstdlib> + + #undef ALIGN + #define ALIGN(value, alignment) (((value)+((alignment)-1))&~((alignment)-1)) diff --git a/multimedia/kodi/patches/patch-xbmc_dbwrappers_Database.cpp b/multimedia/kodi/patches/patch-xbmc_dbwrappers_Database.cpp new file mode 100644 index 00000000000..9b7ade1ad0e --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_dbwrappers_Database.cpp @@ -0,0 +1,22 @@ +$NetBSD: patch-xbmc_dbwrappers_Database.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/dbwrappers/Database.cpp.orig 2015-12-22 17:53:05.000000000 +0000 ++++ xbmc/dbwrappers/Database.cpp +@@ -127,7 +127,7 @@ void CDatabase::Split(const std::string& + strFileName = strFileNameAndPath.substr(i); + } + +-std::string CDatabase::PrepareSQL(std::string strStmt, ...) const ++std::string CDatabase::PrepareSQL(const char *strStmt, ...) const + { + std::string strResult = ""; + +@@ -135,7 +135,7 @@ std::string CDatabase::PrepareSQL(std::s + { + va_list args; + va_start(args, strStmt); +- strResult = m_pDB->vprepare(strStmt.c_str(), args); ++ strResult = m_pDB->vprepare(strStmt, args); + va_end(args); + } + diff --git a/multimedia/kodi/patches/patch-xbmc_dbwrappers_Database.h b/multimedia/kodi/patches/patch-xbmc_dbwrappers_Database.h new file mode 100644 index 00000000000..f8536fcc6cc --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_dbwrappers_Database.h @@ -0,0 +1,15 @@ +$NetBSD: patch-xbmc_dbwrappers_Database.h,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +Passing non-POD types to variadic functions is UB. + +--- xbmc/dbwrappers/Database.h.orig 2015-12-22 18:37:20.000000000 +0000 ++++ xbmc/dbwrappers/Database.h +@@ -71,7 +71,7 @@ public: + void RollbackTransaction(); + bool InTransaction(); + +- std::string PrepareSQL(std::string strStmt, ...) const; ++ std::string PrepareSQL(const char *strStmt, ...) const; + + /*! + * @brief Get a single value from a table. diff --git a/multimedia/kodi/patches/patch-xbmc_dialogs_GUIDialogGamepad.cpp b/multimedia/kodi/patches/patch-xbmc_dialogs_GUIDialogGamepad.cpp new file mode 100644 index 00000000000..106179ab156 --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_dialogs_GUIDialogGamepad.cpp @@ -0,0 +1,12 @@ +$NetBSD: patch-xbmc_dialogs_GUIDialogGamepad.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/dialogs/GUIDialogGamepad.cpp.orig 2015-12-22 17:55:50.000000000 +0000 ++++ xbmc/dialogs/GUIDialogGamepad.cpp +@@ -26,6 +26,7 @@ + #include "GUIDialogOK.h" + #include "input/Key.h" + #include "guilib/LocalizeStrings.h" ++#include <cstdlib> + + CGUIDialogGamepad::CGUIDialogGamepad(void) + : CGUIDialogBoxBase(WINDOW_DIALOG_GAMEPAD, "DialogGamepad.xml") diff --git a/multimedia/kodi/patches/patch-xbmc_dialogs_GUIDialogMediaFilter.cpp b/multimedia/kodi/patches/patch-xbmc_dialogs_GUIDialogMediaFilter.cpp new file mode 100644 index 00000000000..23e9b408564 --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_dialogs_GUIDialogMediaFilter.cpp @@ -0,0 +1,13 @@ +$NetBSD: patch-xbmc_dialogs_GUIDialogMediaFilter.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/dialogs/GUIDialogMediaFilter.cpp.orig 2015-12-22 17:56:43.000000000 +0000 ++++ xbmc/dialogs/GUIDialogMediaFilter.cpp +@@ -888,7 +888,7 @@ bool CGUIDialogMediaFilter::GetMinMax(co + return false; + } + +- std::string strSQL = "SELECT %s FROM %s "; ++ const char *strSQL = "SELECT %s FROM %s "; + + min = static_cast<int>(strtol(db->GetSingleValue(db->PrepareSQL(strSQL, std::string("MIN(" + field + ")").c_str(), table.c_str()) + strSQLExtra).c_str(), NULL, 0)); + max = static_cast<int>(strtol(db->GetSingleValue(db->PrepareSQL(strSQL, std::string("MAX(" + field + ")").c_str(), table.c_str()) + strSQLExtra).c_str(), NULL, 0)); diff --git a/multimedia/kodi/patches/patch-xbmc_dialogs_GUIDialogNumeric.cpp b/multimedia/kodi/patches/patch-xbmc_dialogs_GUIDialogNumeric.cpp new file mode 100644 index 00000000000..98cdc923c46 --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_dialogs_GUIDialogNumeric.cpp @@ -0,0 +1,12 @@ +$NetBSD: patch-xbmc_dialogs_GUIDialogNumeric.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/dialogs/GUIDialogNumeric.cpp.orig 2015-12-22 17:57:34.000000000 +0000 ++++ xbmc/dialogs/GUIDialogNumeric.cpp +@@ -28,6 +28,7 @@ + #include "input/Key.h" + #include "guilib/LocalizeStrings.h" + #include "interfaces/AnnouncementManager.h" ++#include <cstdlib> + + #define CONTROL_HEADING_LABEL 1 + #define CONTROL_INPUT_LABEL 4 diff --git a/multimedia/kodi/patches/patch-xbmc_guilib_GUIAction.cpp b/multimedia/kodi/patches/patch-xbmc_guilib_GUIAction.cpp new file mode 100644 index 00000000000..8ba0b0d3e90 --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_guilib_GUIAction.cpp @@ -0,0 +1,12 @@ +$NetBSD: patch-xbmc_guilib_GUIAction.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/guilib/GUIAction.cpp.orig 2015-12-22 18:26:01.000000000 +0000 ++++ xbmc/guilib/GUIAction.cpp +@@ -23,6 +23,7 @@ + #include "GUIWindowManager.h" + #include "GUIControl.h" + #include "GUIInfoManager.h" ++#include <cstdlib> + + using namespace std; + diff --git a/multimedia/kodi/patches/patch-xbmc_guilib_GUISpinControl.cpp b/multimedia/kodi/patches/patch-xbmc_guilib_GUISpinControl.cpp new file mode 100644 index 00000000000..0417a44a61c --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_guilib_GUISpinControl.cpp @@ -0,0 +1,12 @@ +$NetBSD: patch-xbmc_guilib_GUISpinControl.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/guilib/GUISpinControl.cpp.orig 2015-12-22 18:27:35.000000000 +0000 ++++ xbmc/guilib/GUISpinControl.cpp +@@ -22,6 +22,7 @@ + #include "input/Key.h" + #include "utils/StringUtils.h" + #include <stdio.h> ++#include <cstdlib> + + using namespace std; + diff --git a/multimedia/kodi/patches/patch-xbmc_interfaces_legacy_Dialog.cpp b/multimedia/kodi/patches/patch-xbmc_interfaces_legacy_Dialog.cpp new file mode 100644 index 00000000000..8514de13c06 --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_interfaces_legacy_Dialog.cpp @@ -0,0 +1,12 @@ +$NetBSD: patch-xbmc_interfaces_legacy_Dialog.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/interfaces/legacy/Dialog.cpp.orig 2015-12-22 18:00:09.000000000 +0000 ++++ xbmc/interfaces/legacy/Dialog.cpp +@@ -33,6 +33,7 @@ + #include "WindowException.h" + #include "ApplicationMessenger.h" + #include "Dialog.h" ++#include <cstdlib> + + #define ACTIVE_WINDOW g_windowManager.GetActiveWindow() + diff --git a/multimedia/kodi/patches/patch-xbmc_linux_XFileUtils.cpp b/multimedia/kodi/patches/patch-xbmc_linux_XFileUtils.cpp index f41d1698a5e..6e28e020a43 100644 --- a/multimedia/kodi/patches/patch-xbmc_linux_XFileUtils.cpp +++ b/multimedia/kodi/patches/patch-xbmc_linux_XFileUtils.cpp @@ -1,8 +1,14 @@ -$NetBSD: patch-xbmc_linux_XFileUtils.cpp,v 1.1 2015/11/17 14:56:07 jmcneill Exp $ +$NetBSD: patch-xbmc_linux_XFileUtils.cpp,v 1.2 2015/12/23 12:43:25 joerg Exp $ --- xbmc/linux/XFileUtils.cpp.orig 2015-10-19 06:31:15.000000000 +0000 +++ xbmc/linux/XFileUtils.cpp -@@ -29,7 +29,7 @@ +@@ -24,12 +24,13 @@ + #include "XTimeUtils.h" + #include "filesystem/SpecialProtocol.h" + #include "utils/StringUtils.h" ++#include <cstdlib> + + #ifdef TARGET_POSIX #include "XHandle.h" #include <sys/types.h> #include <sys/stat.h> @@ -11,7 +17,7 @@ $NetBSD: patch-xbmc_linux_XFileUtils.cpp,v 1.1 2015/11/17 14:56:07 jmcneill Exp #include <sys/vfs.h> #else #include <sys/param.h> -@@ -68,7 +68,7 @@ HANDLE FindFirstFile(LPCSTR szPath,LPWIN +@@ -68,7 +69,7 @@ HANDLE FindFirstFile(LPCSTR szPath,LPWIN StringUtils::Replace(strPath, '\\','/'); // if the file name is a directory then we add a * to look for all files in this directory @@ -20,7 +26,7 @@ $NetBSD: patch-xbmc_linux_XFileUtils.cpp,v 1.1 2015/11/17 14:56:07 jmcneill Exp DIR *testDir = opendir(strPath.c_str()); #else DIR *testDir = opendir(szPath); -@@ -289,7 +289,7 @@ HANDLE CreateFile(LPCTSTR lpFileName, DW +@@ -289,7 +290,7 @@ HANDLE CreateFile(LPCTSTR lpFileName, DW HANDLE result = new CXHandle(CXHandle::HND_FILE); result->fd = fd; @@ -29,7 +35,7 @@ $NetBSD: patch-xbmc_linux_XFileUtils.cpp,v 1.1 2015/11/17 14:56:07 jmcneill Exp // special case for opening the cdrom device if (strcmp(lpFileName, MEDIA_DETECT::CLibcdio::GetInstance()->GetDeviceFileName())==0) result->m_bCDROM = true; -@@ -575,7 +575,7 @@ DWORD SetFilePointer(HANDLE hFile, int3 +@@ -575,7 +576,7 @@ DWORD SetFilePointer(HANDLE hFile, int3 nMode = SEEK_END; off64_t currOff; @@ -38,7 +44,7 @@ $NetBSD: patch-xbmc_linux_XFileUtils.cpp,v 1.1 2015/11/17 14:56:07 jmcneill Exp currOff = lseek(hFile->fd, offset, nMode); #else currOff = lseek64(hFile->fd, offset, nMode); -@@ -645,7 +645,7 @@ BOOL SetEndOfFile(HANDLE hFile) +@@ -645,7 +646,7 @@ BOOL SetEndOfFile(HANDLE hFile) return false; // get the current offset @@ -47,7 +53,7 @@ $NetBSD: patch-xbmc_linux_XFileUtils.cpp,v 1.1 2015/11/17 14:56:07 jmcneill Exp off64_t currOff = lseek(hFile->fd, 0, SEEK_CUR); #else off64_t currOff = lseek64(hFile->fd, 0, SEEK_CUR); -@@ -676,7 +676,7 @@ BOOL SetFilePointerEx( HANDLE hFile, +@@ -676,7 +677,7 @@ BOOL SetFilePointerEx( HANDLE hFile, off64_t toMove = liDistanceToMove.QuadPart; diff --git a/multimedia/kodi/patches/patch-xbmc_main_main.cpp b/multimedia/kodi/patches/patch-xbmc_main_main.cpp new file mode 100644 index 00000000000..047e387de3a --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_main_main.cpp @@ -0,0 +1,12 @@ +$NetBSD: patch-xbmc_main_main.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/main/main.cpp.orig 2015-12-22 18:28:15.000000000 +0000 ++++ xbmc/main/main.cpp +@@ -28,6 +28,7 @@ + #ifdef TARGET_POSIX + #include <sys/resource.h> + #include <signal.h> ++#include <locale.h> + #endif + #if defined(TARGET_DARWIN_OSX) + #include "Util.h" diff --git a/multimedia/kodi/patches/patch-xbmc_music_MusicDatabase.cpp b/multimedia/kodi/patches/patch-xbmc_music_MusicDatabase.cpp new file mode 100644 index 00000000000..cb2249aa930 --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_music_MusicDatabase.cpp @@ -0,0 +1,86 @@ +$NetBSD: patch-xbmc_music_MusicDatabase.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/music/MusicDatabase.cpp.orig 2015-12-22 18:03:08.000000000 +0000 ++++ xbmc/music/MusicDatabase.cpp +@@ -1414,7 +1414,7 @@ bool CMusicDatabase::GetAlbumsByArtist(i + if (includeFeatured == false) + strPrepSQL += " AND boolFeatured = 0"; + +- strSQL=PrepareSQL(strPrepSQL, idArtist); ++ strSQL=PrepareSQL(strPrepSQL.c_str(), idArtist); + if (!m_pDS->query(strSQL.c_str())) + return false; + if (m_pDS->num_rows() == 0) +@@ -1448,7 +1448,7 @@ bool CMusicDatabase::GetArtistsByAlbum(i + if (includeFeatured == false) + strPrepSQL += " AND boolFeatured = 0"; + +- strSQL=PrepareSQL(strPrepSQL, idAlbum); ++ strSQL=PrepareSQL(strPrepSQL.c_str(), idAlbum); + if (!m_pDS->query(strSQL.c_str())) + return false; + if (m_pDS->num_rows() == 0) +@@ -1482,7 +1482,7 @@ bool CMusicDatabase::GetSongsByArtist(in + if (includeFeatured == false) + strPrepSQL += " AND boolFeatured = 0"; + +- strSQL=PrepareSQL(strPrepSQL, idArtist); ++ strSQL=PrepareSQL(strPrepSQL.c_str(), idArtist); + if (!m_pDS->query(strSQL.c_str())) + return false; + if (m_pDS->num_rows() == 0) +@@ -1516,7 +1516,7 @@ bool CMusicDatabase::GetArtistsBySong(in + if (includeFeatured == false) + strPrepSQL += " AND boolFeatured = 0"; + +- strSQL=PrepareSQL(strPrepSQL, idSong); ++ strSQL=PrepareSQL(strPrepSQL.c_str(), idSong); + if (!m_pDS->query(strSQL.c_str())) + return false; + if (m_pDS->num_rows() == 0) +@@ -3159,7 +3159,7 @@ bool CMusicDatabase::GetCommonNav(const + if (!BuildSQL(strBaseDir, strSQL, extFilter, strSQL, musicUrl)) + return false; + +- strSQL = PrepareSQL(strSQL, !extFilter.fields.empty() ? extFilter.fields.c_str() : labelField.c_str()); ++ strSQL = PrepareSQL(strSQL.c_str(), !extFilter.fields.empty() ? extFilter.fields.c_str() : labelField.c_str()); + + // run query + CLog::Log(LOGDEBUG, "%s query: %s", __FUNCTION__, strSQL.c_str()); +@@ -3311,7 +3311,7 @@ bool CMusicDatabase::GetArtistsByWhere(c + sortDescription.sortBy == SortByNone && + (sortDescription.limitStart > 0 || sortDescription.limitEnd > 0)) + { +- total = (int)strtol(GetSingleValue(PrepareSQL(strSQL, "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); ++ total = (int)strtol(GetSingleValue(PrepareSQL(strSQL.c_str(), "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); + strSQLExtra += DatabaseUtils::BuildLimitClause(sortDescription.limitEnd, sortDescription.limitStart); + } + +@@ -3470,11 +3470,11 @@ bool CMusicDatabase::GetAlbumsByWhere(co + sortDescription.sortBy == SortByNone && + (sortDescription.limitStart > 0 || sortDescription.limitEnd > 0)) + { +- total = (int)strtol(GetSingleValue(PrepareSQL(strSQL, "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); ++ total = (int)strtol(GetSingleValue(PrepareSQL(strSQL.c_str(), "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); + strSQLExtra += DatabaseUtils::BuildLimitClause(sortDescription.limitEnd, sortDescription.limitStart); + } + +- strSQL = PrepareSQL(strSQL, !filter.fields.empty() && filter.fields.compare("*") != 0 ? filter.fields.c_str() : "albumview.*") + strSQLExtra; ++ strSQL = PrepareSQL(strSQL.c_str(), !filter.fields.empty() && filter.fields.compare("*") != 0 ? filter.fields.c_str() : "albumview.*") + strSQLExtra; + + CLog::Log(LOGDEBUG, "%s query: %s", __FUNCTION__, strSQL.c_str()); + // run query +@@ -3583,11 +3583,11 @@ bool CMusicDatabase::GetSongsByWhere(con + sortDescription.sortBy == SortByNone && + (sortDescription.limitStart > 0 || sortDescription.limitEnd > 0)) + { +- total = (int)strtol(GetSingleValue(PrepareSQL(strSQL, "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); ++ total = (int)strtol(GetSingleValue(PrepareSQL(strSQL.c_str(), "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); + strSQLExtra += DatabaseUtils::BuildLimitClause(sortDescription.limitEnd, sortDescription.limitStart); + } + +- strSQL = PrepareSQL(strSQL, !filter.fields.empty() && filter.fields.compare("*") != 0 ? filter.fields.c_str() : "songview.*") + strSQLExtra; ++ strSQL = PrepareSQL(strSQL.c_str(), !filter.fields.empty() && filter.fields.compare("*") != 0 ? filter.fields.c_str() : "songview.*") + strSQLExtra; + + CLog::Log(LOGDEBUG, "%s query = %s", __FUNCTION__, strSQL.c_str()); + // run query diff --git a/multimedia/kodi/patches/patch-xbmc_pvr_PVRActionListener.cpp b/multimedia/kodi/patches/patch-xbmc_pvr_PVRActionListener.cpp new file mode 100644 index 00000000000..6921fa6b88f --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_pvr_PVRActionListener.cpp @@ -0,0 +1,13 @@ +$NetBSD: patch-xbmc_pvr_PVRActionListener.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/pvr/PVRActionListener.cpp.orig 2015-12-22 18:44:41.000000000 +0000 ++++ xbmc/pvr/PVRActionListener.cpp +@@ -34,6 +34,8 @@ + #include "pvr/PVRManager.h" + #include "pvr/channels/PVRChannelGroupsContainer.h" + ++#include <cstdlib> ++ + using namespace PVR; + + CPVRActionListener::CPVRActionListener() diff --git a/multimedia/kodi/patches/patch-xbmc_storage_linux_DeviceKitDisksProvider.cpp b/multimedia/kodi/patches/patch-xbmc_storage_linux_DeviceKitDisksProvider.cpp new file mode 100644 index 00000000000..e2a07c65d5f --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_storage_linux_DeviceKitDisksProvider.cpp @@ -0,0 +1,12 @@ +$NetBSD: patch-xbmc_storage_linux_DeviceKitDisksProvider.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/storage/linux/DeviceKitDisksProvider.cpp.orig 2015-12-22 18:20:08.000000000 +0000 ++++ xbmc/storage/linux/DeviceKitDisksProvider.cpp +@@ -17,6 +17,7 @@ + * <http://www.gnu.org/licenses/>. + * + */ ++#include <cstdlib> + #include "DeviceKitDisksProvider.h" + #ifdef HAS_DBUS + #include "settings/AdvancedSettings.h" diff --git a/multimedia/kodi/patches/patch-xbmc_storage_linux_UDisksProvider.cpp b/multimedia/kodi/patches/patch-xbmc_storage_linux_UDisksProvider.cpp new file mode 100644 index 00000000000..50defcdb7ce --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_storage_linux_UDisksProvider.cpp @@ -0,0 +1,12 @@ +$NetBSD: patch-xbmc_storage_linux_UDisksProvider.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/storage/linux/UDisksProvider.cpp.orig 2015-12-22 18:21:00.000000000 +0000 ++++ xbmc/storage/linux/UDisksProvider.cpp +@@ -17,6 +17,7 @@ + * <http://www.gnu.org/licenses/>. + * + */ ++#include <cstdlib> + #include "UDisksProvider.h" + #ifdef HAS_DBUS + #include "settings/AdvancedSettings.h" diff --git a/multimedia/kodi/patches/patch-xbmc_video_VideoDatabase.cpp b/multimedia/kodi/patches/patch-xbmc_video_VideoDatabase.cpp new file mode 100644 index 00000000000..50123da2c9c --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_video_VideoDatabase.cpp @@ -0,0 +1,78 @@ +$NetBSD: patch-xbmc_video_VideoDatabase.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/video/VideoDatabase.cpp.orig 2015-12-22 18:22:01.000000000 +0000 ++++ xbmc/video/VideoDatabase.cpp +@@ -6194,11 +6194,11 @@ bool CVideoDatabase::GetMoviesByWhere(co + sorting.sortBy == SortByNone && + (sorting.limitStart > 0 || sorting.limitEnd > 0)) + { +- total = (int)strtol(GetSingleValue(PrepareSQL(strSQL, "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); ++ total = (int)strtol(GetSingleValue(PrepareSQL(strSQL.c_str(), "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); + strSQLExtra += DatabaseUtils::BuildLimitClause(sorting.limitEnd, sorting.limitStart); + } + +- strSQL = PrepareSQL(strSQL, !extFilter.fields.empty() ? extFilter.fields.c_str() : "*") + strSQLExtra; ++ strSQL = PrepareSQL(strSQL.c_str(), !extFilter.fields.empty() ? extFilter.fields.c_str() : "*") + strSQLExtra; + + int iRowsFound = RunQuery(strSQL); + if (iRowsFound <= 0) +@@ -6300,11 +6300,11 @@ bool CVideoDatabase::GetTvShowsByWhere(c + sorting.sortBy == SortByNone && + (sorting.limitStart > 0 || sorting.limitEnd > 0)) + { +- total = (int)strtol(GetSingleValue(PrepareSQL(strSQL, "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); ++ total = (int)strtol(GetSingleValue(PrepareSQL(strSQL.c_str(), "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); + strSQLExtra += DatabaseUtils::BuildLimitClause(sorting.limitEnd, sorting.limitStart); + } + +- strSQL = PrepareSQL(strSQL, !extFilter.fields.empty() ? extFilter.fields.c_str() : "*") + strSQLExtra; ++ strSQL = PrepareSQL(strSQL.c_str(), !extFilter.fields.empty() ? extFilter.fields.c_str() : "*") + strSQLExtra; + + int iRowsFound = RunQuery(strSQL); + if (iRowsFound <= 0) +@@ -6427,11 +6427,11 @@ bool CVideoDatabase::GetEpisodesByWhere( + sorting.sortBy == SortByNone && + (sorting.limitStart > 0 || sorting.limitEnd > 0)) + { +- total = (int)strtol(GetSingleValue(PrepareSQL(strSQL, "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); ++ total = (int)strtol(GetSingleValue(PrepareSQL(strSQL.c_str(), "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); + strSQLExtra += DatabaseUtils::BuildLimitClause(sorting.limitEnd, sorting.limitStart); + } + +- strSQL = PrepareSQL(strSQL, !extFilter.fields.empty() ? extFilter.fields.c_str() : "*") + strSQLExtra; ++ strSQL = PrepareSQL(strSQL.c_str(), !extFilter.fields.empty() ? extFilter.fields.c_str() : "*") + strSQLExtra; + + int iRowsFound = RunQuery(strSQL); + if (iRowsFound <= 0) +@@ -7074,10 +7074,13 @@ void CVideoDatabase::GetMusicVideoArtist + std::string strLike; + if (!strSearch.empty()) + strLike = "and actor.name like '%%%s%%'"; +- if (CProfilesManager::Get().GetMasterProfile().getLockMode() != LOCK_MODE_EVERYONE && !g_passwordManager.bMasterUser) +- strSQL=PrepareSQL("SELECT actor.actor_id, actor.name, path.strPath FROM actor INNER JOIN actor_link ON actor_link.actor_id=actor.actor_id INNER JOIN musicvideo ON actor_link.media_id=musicvideo.idMVideo INNER JOIN files ON files.idFile=musicvideo.idFile INNER JOIN path ON path.idPath=files.idPath WHERE actor_link.media_type='musicvideo' "+strLike, strSearch.c_str()); +- else +- strSQL=PrepareSQL("SELECT DISTINCT actor.actor_id, actor.name from actor INNER JOIN actor_link ON actor_link.actor_id=actor.actor_id WHERE actor_link.media_type='musicvideo' "+strLike,strSearch.c_str()); ++ if (CProfilesManager::Get().GetMasterProfile().getLockMode() != LOCK_MODE_EVERYONE && !g_passwordManager.bMasterUser) { ++ std::string full_query = "SELECT actor.actor_id, actor.name, path.strPath FROM actor INNER JOIN actor_link ON actor_link.actor_id=actor.actor_id INNER JOIN musicvideo ON actor_link.media_id=musicvideo.idMVideo INNER JOIN files ON files.idFile=musicvideo.idFile INNER JOIN path ON path.idPath=files.idPath WHERE actor_link.media_type='musicvideo' "+strLike; ++ strSQL=PrepareSQL(full_query.c_str(), strSearch.c_str()); ++ } else { ++ std::string full_query = "SELECT DISTINCT actor.actor_id, actor.name from actor INNER JOIN actor_link ON actor_link.actor_id=actor.actor_id WHERE actor_link.media_type='musicvideo' "+strLike; ++ strSQL=PrepareSQL(full_query.c_str(),strSearch.c_str()); ++ } + m_pDS->query( strSQL.c_str() ); + + while (!m_pDS->eof()) +@@ -7262,11 +7265,11 @@ bool CVideoDatabase::GetMusicVideosByWhe + sorting.sortBy == SortByNone && + (sorting.limitStart > 0 || sorting.limitEnd > 0)) + { +- total = (int)strtol(GetSingleValue(PrepareSQL(strSQL, "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); ++ total = (int)strtol(GetSingleValue(PrepareSQL(strSQL.c_str(), "COUNT(1)") + strSQLExtra, m_pDS).c_str(), NULL, 10); + strSQLExtra += DatabaseUtils::BuildLimitClause(sorting.limitEnd, sorting.limitStart); + } + +- strSQL = PrepareSQL(strSQL, !extFilter.fields.empty() ? extFilter.fields.c_str() : "*") + strSQLExtra; ++ strSQL = PrepareSQL(strSQL.c_str(), !extFilter.fields.empty() ? extFilter.fields.c_str() : "*") + strSQLExtra; + + int iRowsFound = RunQuery(strSQL); + if (iRowsFound <= 0) diff --git a/multimedia/kodi/patches/patch-xbmc_windowing_WinEventsX11.cpp b/multimedia/kodi/patches/patch-xbmc_windowing_WinEventsX11.cpp new file mode 100644 index 00000000000..a8d6b353c18 --- /dev/null +++ b/multimedia/kodi/patches/patch-xbmc_windowing_WinEventsX11.cpp @@ -0,0 +1,13 @@ +$NetBSD: patch-xbmc_windowing_WinEventsX11.cpp,v 1.1 2015/12/23 12:43:25 joerg Exp $ + +--- xbmc/windowing/WinEventsX11.cpp.orig 2015-12-22 18:16:12.000000000 +0000 ++++ xbmc/windowing/WinEventsX11.cpp +@@ -19,6 +19,8 @@ + * + */ + ++#include <locale.h> ++#include <cstdlib> + #include "system.h" + + #ifdef HAS_X11_WIN_EVENTS |