poco: Update to 1.10.1

This commit is contained in:
Alexey Pavlov
2020-02-21 10:21:50 +03:00
parent 465323869b
commit d1710effa1
13 changed files with 95 additions and 267 deletions

View File

@@ -1,24 +0,0 @@
From 05d6b3ffdda60904e85b404721119ac2f21d9dea Mon Sep 17 00:00:00 2001
From: Luigi 'Comio' Mantellini <luigi.mantellini@gmail.com>
Date: Mon, 24 Mar 2014 08:30:26 +0100
Subject: [PATCH] win32: Enable C++11 if compiler supports it.
---
Foundation/include/Poco/Platform_WIN32.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Foundation/include/Poco/Platform_WIN32.h b/Foundation/include/Poco/Platform_WIN32.h
index bcf5301..e79d018 100644
--- a/Foundation/include/Poco/Platform_WIN32.h
+++ b/Foundation/include/Poco/Platform_WIN32.h
@@ -160,7 +160,9 @@
// Enable C++11 support for VS 2010 and newer
-#if defined(_MSC_VER) && (_MSC_VER >= 1700) && !defined(POCO_ENABLE_CPP11)
+#if __cplusplus >= 201103L
+ #define POCO_ENABLE_CPP11
+#elif defined(_MSC_VER) && (_MSC_VER >= 1700) && !defined(POCO_ENABLE_CPP11)
#define POCO_ENABLE_CPP11
#endif

View File

@@ -1,48 +0,0 @@
From 1e80c649b86435643c81fb8b719cf0047efc6716 Mon Sep 17 00:00:00 2001
From: Luigi 'Comio' Mantellini <luigi.mantellini@gmail.com>
Date: Mon, 24 Mar 2014 08:31:34 +0100
Subject: [PATCH] mingw/win64: check for WIN64 and enable LLP64 schema.
---
Foundation/include/Poco/Types.h | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/Foundation/include/Poco/Types.h b/Foundation/include/Poco/Types.h
index 8e54d16..d5d7868 100644
--- a/Foundation/include/Poco/Types.h
+++ b/Foundation/include/Poco/Types.h
@@ -42,6 +42,9 @@
#include "Poco/Foundation.h"
+#if defined(_WIN64)
+#define __LLP64__
+#endif
namespace Poco {
@@ -77,14 +80,22 @@ namespace Poco {
typedef unsigned short UInt16;
typedef signed int Int32;
typedef unsigned int UInt32;
- typedef signed long IntPtr;
- typedef unsigned long UIntPtr;
#if defined(__LP64__)
#define POCO_PTR_IS_64_BIT 1
#define POCO_LONG_IS_64_BIT 1
+ typedef signed long IntPtr;
+ typedef unsigned long UIntPtr;
typedef signed long Int64;
typedef unsigned long UInt64;
+ #elif defined(__LLP64__)
+ #define POCO_PTR_IS_64_BIT 1
+ typedef signed long long IntPtr;
+ typedef unsigned long long UIntPtr;
+ typedef signed long long Int64;
+ typedef unsigned long long UInt64;
#else
+ typedef signed long IntPtr;
+ typedef unsigned long UIntPtr;
typedef signed long long Int64;
typedef unsigned long long UInt64;
#endif

View File

@@ -21,12 +21,12 @@ index b7b27e7..714acab 100644
#if !defined(POCO_NO_LOCALE)
#include <locale>
@@ -43,15 +45,6 @@
#include <cstdio>
#include <cinttypes>
-#if defined(_MSC_VER) || defined(__MINGW32__)
- #define I64_FMT "I64"
-#elif defined(__APPLE__)
-#elif defined(__APPLE__)
- #define I64_FMT "q"
-#else
- #define I64_FMT "ll"
@@ -36,19 +36,15 @@ index b7b27e7..714acab 100644
namespace Poco {
@@ -384,17 +377,15 @@ void NumberFormatter::append(std::string& str, double value, int width, int prec
@@ -384,13 +377,15 @@ void NumberFormatter::append(std::string& str, double value, int width, int prec
void NumberFormatter::append(std::string& str, const void* ptr)
{
- char buffer[24];
-#if defined(POCO_PTR_IS_64_BIT)
- #if defined(POCO_LONG_IS_64_BIT)
- std::sprintf(buffer, "%016lX", (UIntPtr) ptr);
- #else
- std::sprintf(buffer, "%016" I64_FMT "X", (UIntPtr) ptr);
- #endif
- std::sprintf(buffer, "%016" PRIXPTR, (UIntPtr) ptr);
-#else
- std::sprintf(buffer, "%08lX", (UIntPtr) ptr);
- std::sprintf(buffer, "%08" PRIXPTR, (UIntPtr) ptr);
-#endif
- str.append(buffer);
+ std::ostringstream os;

View File

@@ -1,37 +0,0 @@
From 805166411d6326ef68691e3c03922a15ab3f6ba3 Mon Sep 17 00:00:00 2001
From: Luigi 'Comio' Mantellini <luigi.mantellini@gmail.com>
Date: Mon, 24 Mar 2014 13:40:42 +0100
Subject: [PATCH] MinGW doesn't implement a wide character startup module. Use
standard main() call instead.
---
Util/include/Poco/Util/Application.h | 2 +-
Util/include/Poco/Util/ServerApplication.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Util/include/Poco/Util/Application.h b/Util/include/Poco/Util/Application.h
index 9078092..dcca468 100644
--- a/Util/include/Poco/Util/Application.h
+++ b/Util/include/Poco/Util/Application.h
@@ -490,7 +490,7 @@ inline Poco::Timespan Application::uptime() const
//
// Macro to implement main()
//
-#if defined(_WIN32) && defined(POCO_WIN32_UTF8) && !defined(POCO_NO_WSTRING)
+#if (defined(_WIN32) || defined(_WIN64)) && defined(POCO_WIN32_UTF8) && !defined(POCO_NO_WSTRING) && !defined(__MINGW32__)
#define POCO_APP_MAIN(App) \
int wmain(int argc, wchar_t** argv) \
{ \
diff --git a/Util/include/Poco/Util/ServerApplication.h b/Util/include/Poco/Util/ServerApplication.h
index 1b9bf82..6b94dc0 100644
--- a/Util/include/Poco/Util/ServerApplication.h
+++ b/Util/include/Poco/Util/ServerApplication.h
@@ -246,7 +246,7 @@ class Util_API ServerApplication: public Application
//
// Macro to implement main()
//
-#if defined(_WIN32) && defined(POCO_WIN32_UTF8)
+#if defined(_WIN32) && defined(POCO_WIN32_UTF8) && !defined(__MINGW32__)
#define POCO_SERVER_MAIN(App) \
int wmain(int argc, wchar_t** argv) \
{ \

View File

@@ -0,0 +1,15 @@
--- poco-1.10.1-all/Util/CMakeLists.txt.orig 2020-02-21 09:10:46.711376800 +0300
+++ poco-1.10.1-all/Util/CMakeLists.txt 2020-02-21 09:55:09.318313700 +0300
@@ -27,6 +27,12 @@
DEFINE_SYMBOL Util_EXPORTS
)
+if(MINGW)
+ add_definitions(-DUNICODE -D_UNICODE)
+ target_compile_options(Util PUBLIC -municode)
+ target_link_libraries(Util PUBLIC -municode)
+endif()
+
target_link_libraries(Util PUBLIC Poco::Foundation)
if(ENABLE_XML)
target_link_libraries(Util PUBLIC Poco::XML)

View File

@@ -1,59 +0,0 @@
From b3995878135b8b7bf4985d5591936b691780174e Mon Sep 17 00:00:00 2001
From: Luigi 'Comio' Mantellini <luigi.mantellini@gmail.com>
Date: Mon, 24 Mar 2014 13:43:03 +0100
Subject: [PATCH] Fix compilation on WIN64 target
---
Foundation/include/Poco/Foundation.h | 4 ++--
Net/include/Poco/Net/Net.h | 4 ++--
Net/src/NetworkInterface.cpp | 3 +++
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/Foundation/include/Poco/Foundation.h b/Foundation/include/Poco/Foundation.h
index d2fd0df..dbebf0d 100644
--- a/Foundation/include/Poco/Foundation.h
+++ b/Foundation/include/Poco/Foundation.h
@@ -66,7 +66,7 @@
// Foundation_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
//
-#if (defined(_WIN32) || defined(_WIN32_WCE)) && defined(POCO_DLL)
+#if (defined(_WIN32) || defined(_WIN64) || defined(_WIN32_WCE)) && defined(POCO_DLL)
#if defined(Foundation_EXPORTS)
#define Foundation_API __declspec(dllexport)
#else
@@ -118,7 +118,7 @@
// Include platform-specific definitions
//
#include "Poco/Platform.h"
-#if defined(_WIN32)
+#if defined(_WIN32) || defined(_WIN64)
#include "Poco/Platform_WIN32.h"
#elif defined(__VMS)
#include "Poco/Platform_VMS.h"
diff --git a/Net/include/Poco/Net/Net.h b/Net/include/Poco/Net/Net.h
index dcfad07..b7866fa 100644
--- a/Net/include/Poco/Net/Net.h
+++ b/Net/include/Poco/Net/Net.h
@@ -53,7 +53,7 @@
// Net_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
//
-#if defined(_WIN32) && defined(POCO_DLL)
+#if (defined(_WIN32) || defined(_WIN64)) && defined(POCO_DLL)
#if defined(Net_EXPORTS)
#define Net_API __declspec(dllexport)
#else
diff --git a/Net/src/NetworkInterface.cpp b/Net/src/NetworkInterface.cpp
index c84e2d6..c65fa8d 100644
--- a/Net/src/NetworkInterface.cpp
+++ b/Net/src/NetworkInterface.cpp
@@ -50,6 +50,8 @@
#include "Poco/UnicodeConverter.h"
#endif
#include "Poco/Error.h"
+ #include <winsock2.h>
+ #include <ws2ipdef.h>
#include <wincrypt.h>
#include <iphlpapi.h>
#include <ipifcons.h>

View File

@@ -12,7 +12,7 @@ diff --git a/Foundation/src/NumericString.cpp b/Foundation/src/NumericString.cpp
index 37ecf7f..e5dc939 100644
--- a/Foundation/src/NumericString.cpp
+++ b/Foundation/src/NumericString.cpp
@@ -63,6 +63,9 @@ void pad(std::string& str, int precision, int width, char prefix = ' ', char dec
@@ -48,6 +48,9 @@ void pad(std::string& str, int precision, int width, char prefix = ' ', char dec
poco_assert_dbg (precision > 0);
poco_assert_dbg (str.length());
@@ -22,7 +22,7 @@ index 37ecf7f..e5dc939 100644
std::string::size_type decSepPos = str.find(decSep);
if (decSepPos == std::string::npos)
{
@@ -81,17 +84,17 @@ void pad(std::string& str, int precision, int width, char prefix = ' ', char dec
@@ -66,15 +66,15 @@ void pad(std::string& str, int precision, int width, char prefix = ' ', char dec
str = str.substr(0, str.length() - eStr->length());
}
@@ -30,19 +30,32 @@ index 37ecf7f..e5dc939 100644
+ if (frac != _precision)
{
- if (frac < precision)
- str.append(precision - frac, '0');
- else if ((frac > precision) && (decSepPos != std::string::npos))
- str = str.substr(0, decSepPos + 1 + precision);
+ if (frac < _precision)
{
- str.append(precision - frac, '0');
+ str.append(_precision - frac, '0');
+ else if ((frac > _precision) && (decSepPos != std::string::npos))
}
- else if ((frac > precision) && (decSepPos != std::string::npos))
+ else if ((frac > _precision) && (decSepPos != std::string::npos))
{
- int pos = static_cast<int>(decSepPos) + 1 + precision;
+ int pos = static_cast<int>(decSepPos) + 1 + _precision;
if (str[pos] >= '5') // we must round up
{
char carry = 0;
@@ -107,13 +107,13 @@ void pad(std::string& str, int precision, int width, char prefix = ' ', char dec
}
if (carry) str.insert(str.begin(), 1, '1');
}
- str = str.substr(0, decSepPos + 1 + precision);
+ str = str.substr(0, decSepPos + 1 + _precision);
}
}
if (eStr.get()) str += *eStr;
- if (width && (str.length() < width)) str.insert(str.begin(), width - str.length(), prefix);
+ if (_width && (str.length() < _width)) str.insert(str.begin(), _width - str.length(), prefix);
+ if (width && (str.length() < width)) str.insert(str.begin(), _width - str.length(), prefix);
}

View File

@@ -1,27 +1,29 @@
--- poco-poco-1.7.7-release/cmake/DefinePlatformSpecifc.cmake.orig 2014-11-17 11:55:04.044400000 +0300
+++ poco-poco-1.7.7-release/cmake/DefinePlatformSpecifc.cmake 2014-11-17 11:55:44.370400000 +0300
@@ -108,7 +108,7 @@
if (CMAKE_COMPILER_IS_MINGW)
add_definitions(-DWC_NO_BEST_FIT_CHARS=0x400 -DPOCO_WIN32_UTF8)
- add_definitions(-D_WIN32 -DMINGW32 -DWINVER=0x500 -DODBCVER=0x0300 -DPOCO_THREAD_STACK_SIZE)
+ add_definitions(-D_WIN32 -DMINGW32 -DWINVER=0x501 -DPOCO_NO_FPENVIRONMENT -DODBCVER=0x0300 -DPOCO_THREAD_STACK_SIZE)
endif (CMAKE_COMPILER_IS_MINGW)
# SunPro C++
--- poco-poco-1.7.7-release/cmake/PocoMacros.cmake.orig 2014-11-17 12:31:47.705800000 +0300
+++ poco-poco-1.7.7-release/cmake/PocoMacros.cmake 2014-11-17 12:32:39.209200000 +0300
--- poco-poco-1.10.1-release/cmake/PocoMacros.cmake.orig 2014-11-17 12:31:47.705800000 +0300
+++ poco-poco-1.10.1-release/cmake/PocoMacros.cmake 2014-11-17 12:32:39.209200000 +0300
@@ -40,8 +40,13 @@
endforeach()
endif (X64)
endif ()
+ if(MINGW)
+ find_program(CMAKE_MC_COMPILER windmc.exe HINTS "${sdk_bindir}" "${kit_bindir}"
+ DOC "path to message compiler")
+ else()
find_program(CMAKE_MC_COMPILER mc.exe HINTS "${sdk_bindir}" "${kit_bindir}" "${kit81_bindir}" ${kit10_bindir}
DOC "path to message compiler")
+ endif()
if (NOT CMAKE_MC_COMPILER)
message(FATAL_ERROR "message compiler not found: required to build")
endif (NOT CMAKE_MC_COMPILER)
endforeach()
endif(X64)
endif()
+ if(MINGW)
+ find_program(CMAKE_MC_COMPILER windmc.exe HINTS "${sdk_bindir}" "${kit_bindir}"
+ DOC "path to message compiler")
+ else()
find_program(CMAKE_MC_COMPILER mc.exe HINTS "${sdk_bindir}" "${kit_bindir}" "${kit81_bindir}" ${kit10_bindir}
DOC "path to message compiler")
+ endif()
if(NOT CMAKE_MC_COMPILER)
message(FATAL_ERROR "message compiler not found: required to build")
endif(NOT CMAKE_MC_COMPILER)
--- poco-poco-1.10.1-release/Foundation/CMakeLists.txt.orig 2014-11-17 12:31:47.705800000 +0300
+++ poco-poco-1.10.1-release/Foundation/CMakeLists.txt 2014-11-17 12:32:39.209200000 +0300
@@ -187,7 +187,9 @@
POCO_WIN32_UTF8
_WIN32
MINGW32
- WINVER=0x500
+ WINVER=0x501
+ UNICODE
+ _UNICODE
ODBCVER=0x0300
POCO_THREAD_STACK_SIZE
)

View File

@@ -1,22 +0,0 @@
--- poco-poco-1.6.0-release/cmake/FindMySQL.cmake.orig 2015-03-02 09:27:14.895200000 +0300
+++ poco-poco-1.6.0-release/cmake/FindMySQL.cmake 2015-03-02 09:33:06.774600000 +0300
@@ -12,7 +12,9 @@
$ENV{MYSQL_DIR}/include
$ENV{ProgramFiles}/MySQL/*/include
${BINDIR32}/MySQL/include
- $ENV{SystemDrive}/MySQL/*/include)
+ $ENV{SystemDrive}/MySQL/*/include
+ PATH_SUFFIXES
+ include include/mysql include/mariadb)
if (WIN32)
if (CMAKE_BUILD_TYPE STREQUAL Debug)
@@ -20,7 +20,7 @@
add_definitions(-DDBUG_OFF)
endif (CMAKE_BUILD_TYPE STREQUAL Debug)
- find_library(MYSQL_LIB NAMES mysqlclient
+ find_library(MYSQL_LIB NAMES mysqlclient mariadbclient
PATHS
$ENV{MYSQL_DIR}/lib/${libsuffixDist}
$ENV{MYSQL_DIR}/libmysql/${libsuffixBuild}

View File

@@ -0,0 +1,12 @@
--- poco-1.10.1-all/Net/include/Poco/Net/ICMPv4PacketImpl.h.orig 2020-02-21 09:50:46.432846900 +0300
+++ poco-1.10.1-all/Net/include/Poco/Net/ICMPv4PacketImpl.h 2020-02-21 09:50:49.308908100 +0300
@@ -23,6 +23,9 @@
#include "Poco/Net/ICMPPacketImpl.h"
#include <cstddef>
+#ifdef __MINGW32__
+#undef TIMESTAMP_REQUEST
+#endif
namespace Poco {
namespace Net {

View File

@@ -1,11 +0,0 @@
--- poco-poco-1.6.0-release/Foundation/include/Poco/Config.h.orig 2015-03-02 09:52:02.328400000 +0300
+++ poco-poco-1.6.0-release/Foundation/include/Poco/Config.h 2015-03-02 09:53:15.274000000 +0300
@@ -23,7 +23,7 @@
// Define to enable Windows Unicode (UTF-8) support
// NOTE: As of POCO C++ Libraries release 1.6.0, compiling POCO
// without POCO_WIN32_UTF8 defined on Windows is deprecated.
-#define POCO_WIN32_UTF8
+// #define POCO_WIN32_UTF8
// Define to enable C++11 support

View File

@@ -1,6 +1,6 @@
--- poco-poco-1.4.7-release/build/config/MinGW.orig 2014-11-16 23:36:56.214400000 +0300
+++ poco-poco-1.4.7-release/build/config/MinGW 2014-11-16 23:37:56.180800000 +0300
@@ -66,9 +66,9 @@
--- poco-poco-1.10.1-release/build/config/MinGW.orig 2014-11-16 23:36:56.214400000 +0300
+++ poco-poco-1.10.1-release/build/config/MinGW 2014-11-16 23:37:56.180800000 +0300
@@ -65,9 +65,9 @@
#
# System Specific Flags
#

View File

@@ -3,7 +3,7 @@
_realname=poco
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.9.4
pkgver=1.10.1
pkgrel=1
pkgdesc="POrtable COmponents C++ Libraries (mingw-w64)"
arch=('any')
@@ -21,42 +21,33 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-zlib")
options=('staticlibs' 'strip')
source=(https://pocoproject.org/releases/${_realname}-${pkgver}/${_realname}-${pkgver}-all.tar.gz
003-check-for-WIN64-and-enable-LLP64-schema.patch
004-format-string-using-ostringstream.patch
005-dont-compare-signed-unsigned.patch
007-MinGW-doesnt-implement-wide-character-startup-module.patch
007-mingw-wide-character-startup-module.patch
008-Add-Mingw32-W64-configuration.patch
009-Fix-compilation-on-WIN64-target.patch
010-remove-warnings.patch
011-cmake-mingw.patch
012-find-mysql.patch
013-POCO_WIN32_UTF8-redefinition.patch
012-fix-mingw-redefinition.patch
100-fix-mingw-config.patch)
sha256sums=('eb34f257b11240a711ee505f1d80c754a80a990aeb48d8d93407884df288fd77'
'bcaa21c08aec0936a25fe387ecd93e354149a404a610b5a23870b047e5c1525f'
'a1b95fea2c4464f25a9ddee6f2c559d391a22ae0cddda3537adf22f1258ec482'
sha256sums=('7f5931e0bb06bc2880a0f3867053a2fddf6c0d3e5dd96342a665460301fc34ca'
'35d59c5880f82b154ca850e6a9c9627aa34a497ccc2fb1c8f93bea2616b15e2d'
'ac05804b1c90d682333cb18dbc4aedc9e12508779e93edbd59d9b82d353b0013'
'b51d192291b973185021431070654a3ac82e8f2b38780235aa5e71b44c5a0074'
'8c89571920fb5d0ecaae1b890854335fb5d310243baa4723233fe46544cf4f1b'
'61979c75b5577b9b0bf3fb96045b3c299a38c5dfc5048895ade73400831eb975'
'cc50e8875743277ebf731475621960b4a3f003472c4bae5c16192805622a6507'
'18ed83a120f1038644ac1e817c59b6d5a18e31bae2649299af7557726cf6c5df'
'7840f9ad79dc778e416fd4e7d9ffd1bd87b9a1afe72d0a6ff626c27f743e1b0d'
'23dfbc08e127cb8807e8f4407687fb8c91245e12cba1bf9281397e197730ba7a'
'57ca988afad8dfd73705f677a706518d635aea2936d4de8f35ad9943c9a4b1b0'
'27c2187dd829bca53d09f87731dca4e13eb632473e86cf6df5216f9108c1d506')
'6428620c4e24f4b1d7a81821e46b737a9dfc2ce7cfd4d57187243fb12f17a7ce'
'6ad0c5408b1a9a5ac118067475658b43c6d657aa36be9216602f32b94a384086'
'ea527ad21e3cf31140136a037add87610cd8cdbcdd96ba2aaf5d7b35d46786ce'
'c12fc09a0fa925bf3912fbc98e297104f09630212fd027b818290df7ef157a6f')
prepare() {
cd "${srcdir}"/${_realname}-${pkgver}-all
patch -p1 -i ${srcdir}/003-check-for-WIN64-and-enable-LLP64-schema.patch
patch -p1 -i ${srcdir}/004-format-string-using-ostringstream.patch
patch -p1 -i ${srcdir}/005-dont-compare-signed-unsigned.patch
patch -p1 -i ${srcdir}/007-MinGW-doesnt-implement-wide-character-startup-module.patch
patch -p1 -i ${srcdir}/007-mingw-wide-character-startup-module.patch
patch -p1 -i ${srcdir}/008-Add-Mingw32-W64-configuration.patch
patch -p1 -i ${srcdir}/009-Fix-compilation-on-WIN64-target.patch
patch -p1 -i ${srcdir}/010-remove-warnings.patch
patch -p1 -i ${srcdir}/011-cmake-mingw.patch
patch -p1 -i ${srcdir}/012-find-mysql.patch
patch -p1 -i ${srcdir}/013-POCO_WIN32_UTF8-redefinition.patch
patch -p1 -i ${srcdir}/012-fix-mingw-redefinition.patch
patch -p1 -i ${srcdir}/100-fix-mingw-config.patch
}