From 913dff4b0e85d4757ce497e5ff6611cbe637e6b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Thu, 9 Oct 2025 14:13:59 +0300 Subject: [PATCH] poco: Update to 1.14.2 (#25763) * poco: Update to 1.14.2 * Rework patch for templated classes export --- mingw-w64-poco/001-fix-build-on-mingw.patch | 27 +- mingw-w64-poco/011-cmake-mingw.patch | 14 +- mingw-w64-poco/012-dll-resources.patch | 180 +++++++++++++ mingw-w64-poco/013-templates-export.patch | 280 ++++++++++++++++++++ mingw-w64-poco/PKGBUILD | 19 +- 5 files changed, 490 insertions(+), 30 deletions(-) create mode 100644 mingw-w64-poco/012-dll-resources.patch create mode 100644 mingw-w64-poco/013-templates-export.patch diff --git a/mingw-w64-poco/001-fix-build-on-mingw.patch b/mingw-w64-poco/001-fix-build-on-mingw.patch index 96e18bb5f1..b9ae741b3c 100644 --- a/mingw-w64-poco/001-fix-build-on-mingw.patch +++ b/mingw-w64-poco/001-fix-build-on-mingw.patch @@ -1,6 +1,7 @@ ---- a/Foundation/include/Poco/Platform.h -+++ b/Foundation/include/Poco/Platform.h -@@ -240,6 +240,10 @@ +diff -Naur poco-1.14.2-all-orig/Foundation/include/Poco/Platform.h poco-1.14.2-all/Foundation/include/Poco/Platform.h +--- poco-1.14.2-all-orig/Foundation/include/Poco/Platform.h 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/Foundation/include/Poco/Platform.h 2025-10-09 12:52:37.445370900 +0300 +@@ -245,6 +245,10 @@ #endif @@ -10,11 +11,11 @@ + #if defined(__clang__) #define POCO_COMPILER_CLANG - #define POCO_HAVE_CXXABI_H -@@ -248,11 +252,6 @@ - #elif defined (__GNUC__) - #define POCO_COMPILER_GCC - #define POCO_HAVE_CXXABI_H + #if __has_include() +@@ -257,11 +261,6 @@ + #if __has_include() + #define POCO_HAVE_CXXABI_H + #endif - #if defined (__MINGW32__) || defined (__MINGW64__) - #define POCO_COMPILER_MINGW - #endif @@ -23,13 +24,3 @@ #elif defined (__INTEL_COMPILER) || defined(__ICC) || defined(__ECC) || defined(__ICL) #define POCO_COMPILER_INTEL #elif defined (__SUNPRO_CC) ---- a/Foundation/src/Environment_WIN32U.cpp -+++ b/Foundation/src/Environment_WIN32U.cpp -@@ -18,6 +18,7 @@ - #include "Poco/Buffer.h" - #include - #include -+#include - #include "Poco/UnWindows.h" - #include - #include diff --git a/mingw-w64-poco/011-cmake-mingw.patch b/mingw-w64-poco/011-cmake-mingw.patch index 071a86a0d8..e7c654ba16 100644 --- a/mingw-w64-poco/011-cmake-mingw.patch +++ b/mingw-w64-poco/011-cmake-mingw.patch @@ -1,6 +1,7 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -513,7 +513,7 @@ +diff -Naur poco-1.14.2-all-orig/CMakeLists.txt poco-1.14.2-all/CMakeLists.txt +--- poco-1.14.2-all-orig/CMakeLists.txt 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/CMakeLists.txt 2025-10-09 12:55:04.853903100 +0300 +@@ -545,7 +545,7 @@ # Set config script install location in a location that find_package() will # look for, which is different on MS Windows than for UNIX # Note: also set in POCO_GENERATE_PACKAGE macro in cmake/PocoMacros.cmake @@ -9,8 +10,9 @@ set(PocoConfigPackageLocation "cmake") else() set(PocoConfigPackageLocation "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") ---- a/cmake/PocoMacros.cmake -+++ b/cmake/PocoMacros.cmake +diff -Naur poco-1.14.2-all-orig/cmake/PocoMacros.cmake poco-1.14.2-all/cmake/PocoMacros.cmake +--- poco-1.14.2-all-orig/cmake/PocoMacros.cmake 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/cmake/PocoMacros.cmake 2025-10-09 12:55:04.855904900 +0300 @@ -40,8 +40,13 @@ endforeach() endif(X64) @@ -25,7 +27,7 @@ if(NOT CMAKE_MC_COMPILER) message(FATAL_ERROR "message compiler not found: required to build") endif(NOT CMAKE_MC_COMPILER) -@@ -237,7 +237,7 @@ +@@ -244,7 +249,7 @@ # Set config script install location in a location that find_package() will # look for, which is different on MS Windows than for UNIX # Note: also set in root CMakeLists.txt diff --git a/mingw-w64-poco/012-dll-resources.patch b/mingw-w64-poco/012-dll-resources.patch new file mode 100644 index 0000000000..139dd4b8d6 --- /dev/null +++ b/mingw-w64-poco/012-dll-resources.patch @@ -0,0 +1,180 @@ +diff -Naur poco-1.14.2-all-orig/ActiveRecord/CMakeLists.txt poco-1.14.2-all/ActiveRecord/CMakeLists.txt +--- poco-1.14.2-all-orig/ActiveRecord/CMakeLists.txt 2025-05-12 12:00:13.000000000 +0300 ++++ poco-1.14.2-all/ActiveRecord/CMakeLists.txt 2025-10-02 11:51:54.927730300 +0300 +@@ -7,7 +7,7 @@ + POCO_HEADERS_AUTO(SRCS ${HDRS_G}) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/Crypto/CMakeLists.txt poco-1.14.2-all/Crypto/CMakeLists.txt +--- poco-1.14.2-all-orig/Crypto/CMakeLists.txt 2025-05-12 12:00:12.000000000 +0300 ++++ poco-1.14.2-all/Crypto/CMakeLists.txt 2025-10-02 11:51:14.279862600 +0300 +@@ -7,7 +7,7 @@ + POCO_HEADERS_AUTO(SRCS ${HDRS_G}) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/Encodings/CMakeLists.txt poco-1.14.2-all/Encodings/CMakeLists.txt +--- poco-1.14.2-all-orig/Encodings/CMakeLists.txt 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/Encodings/CMakeLists.txt 2025-10-02 11:52:21.713363600 +0300 +@@ -7,7 +7,7 @@ + POCO_HEADERS(SRCS Encodings ${HDRS_G}) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/Foundation/CMakeLists.txt poco-1.14.2-all/Foundation/CMakeLists.txt +--- poco-1.14.2-all-orig/Foundation/CMakeLists.txt 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/Foundation/CMakeLists.txt 2025-10-02 11:24:38.192259500 +0300 +@@ -16,7 +16,7 @@ + ) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/JSON/CMakeLists.txt poco-1.14.2-all/JSON/CMakeLists.txt +--- poco-1.14.2-all-orig/JSON/CMakeLists.txt 2025-05-12 12:00:12.000000000 +0300 ++++ poco-1.14.2-all/JSON/CMakeLists.txt 2025-10-02 11:24:23.533259000 +0300 +@@ -8,7 +8,7 @@ + POCO_SOURCES(SRCS pdjson src/pdjson.c) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/JWT/CMakeLists.txt poco-1.14.2-all/JWT/CMakeLists.txt +--- poco-1.14.2-all-orig/JWT/CMakeLists.txt 2025-05-12 12:00:12.000000000 +0300 ++++ poco-1.14.2-all/JWT/CMakeLists.txt 2025-10-02 11:52:37.752773200 +0300 +@@ -7,7 +7,7 @@ + POCO_HEADERS_AUTO(SRCS ${HDRS_G}) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/MongoDB/CMakeLists.txt poco-1.14.2-all/MongoDB/CMakeLists.txt +--- poco-1.14.2-all-orig/MongoDB/CMakeLists.txt 2025-05-12 12:00:13.000000000 +0300 ++++ poco-1.14.2-all/MongoDB/CMakeLists.txt 2025-10-02 11:52:48.504174900 +0300 +@@ -7,7 +7,7 @@ + POCO_HEADERS_AUTO(SRCS ${HDRS_G}) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/Net/CMakeLists.txt poco-1.14.2-all/Net/CMakeLists.txt +--- poco-1.14.2-all-orig/Net/CMakeLists.txt 2025-05-12 12:00:12.000000000 +0300 ++++ poco-1.14.2-all/Net/CMakeLists.txt 2025-10-02 11:53:03.797302900 +0300 +@@ -33,7 +33,7 @@ + endif() + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/NetSSL_OpenSSL/CMakeLists.txt poco-1.14.2-all/NetSSL_OpenSSL/CMakeLists.txt +--- poco-1.14.2-all-orig/NetSSL_OpenSSL/CMakeLists.txt 2025-05-12 12:00:12.000000000 +0300 ++++ poco-1.14.2-all/NetSSL_OpenSSL/CMakeLists.txt 2025-10-02 11:53:15.092100300 +0300 +@@ -7,7 +7,7 @@ + POCO_HEADERS_AUTO(SRCS ${HDRS_G}) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/PageCompiler/CMakeLists.txt poco-1.14.2-all/PageCompiler/CMakeLists.txt +--- poco-1.14.2-all-orig/PageCompiler/CMakeLists.txt 2025-05-12 12:00:13.000000000 +0300 ++++ poco-1.14.2-all/PageCompiler/CMakeLists.txt 2025-10-02 11:53:26.090749300 +0300 +@@ -5,7 +5,7 @@ + POCO_SOURCES_AUTO(SRCS ${SRCS_G}) + + # Version Resource +-if(MSVC) ++if(WIN32) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/Prometheus/CMakeLists.txt poco-1.14.2-all/Prometheus/CMakeLists.txt +--- poco-1.14.2-all-orig/Prometheus/CMakeLists.txt 2025-05-12 12:00:13.000000000 +0300 ++++ poco-1.14.2-all/Prometheus/CMakeLists.txt 2025-10-02 11:53:38.940083100 +0300 +@@ -7,7 +7,7 @@ + POCO_HEADERS_AUTO(SRCS ${HDRS_G}) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/Redis/CMakeLists.txt poco-1.14.2-all/Redis/CMakeLists.txt +--- poco-1.14.2-all-orig/Redis/CMakeLists.txt 2025-05-12 12:00:13.000000000 +0300 ++++ poco-1.14.2-all/Redis/CMakeLists.txt 2025-10-02 11:53:49.590925600 +0300 +@@ -7,7 +7,7 @@ + POCO_HEADERS_AUTO(SRCS ${HDRS_G}) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/Util/CMakeLists.txt poco-1.14.2-all/Util/CMakeLists.txt +--- poco-1.14.2-all-orig/Util/CMakeLists.txt 2025-05-12 12:00:12.000000000 +0300 ++++ poco-1.14.2-all/Util/CMakeLists.txt 2025-10-02 11:54:00.662186000 +0300 +@@ -7,7 +7,7 @@ + POCO_HEADERS_AUTO(SRCS ${HDRS_G}) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/XML/CMakeLists.txt poco-1.14.2-all/XML/CMakeLists.txt +--- poco-1.14.2-all-orig/XML/CMakeLists.txt 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/XML/CMakeLists.txt 2025-10-02 11:54:11.762542600 +0300 +@@ -12,7 +12,7 @@ + POCO_HEADERS_AUTO(SRCS ${HDRS_G}) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() +diff -Naur poco-1.14.2-all-orig/Zip/CMakeLists.txt poco-1.14.2-all/Zip/CMakeLists.txt +--- poco-1.14.2-all-orig/Zip/CMakeLists.txt 2025-05-12 12:00:13.000000000 +0300 ++++ poco-1.14.2-all/Zip/CMakeLists.txt 2025-10-02 11:54:23.058987700 +0300 +@@ -7,7 +7,7 @@ + POCO_HEADERS_AUTO(SRCS ${HDRS_G}) + + # Version Resource +-if(MSVC AND BUILD_SHARED_LIBS) ++if(WIN32 AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + endif() diff --git a/mingw-w64-poco/013-templates-export.patch b/mingw-w64-poco/013-templates-export.patch new file mode 100644 index 0000000000..171ad91e3c --- /dev/null +++ b/mingw-w64-poco/013-templates-export.patch @@ -0,0 +1,280 @@ +diff -Naur poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h +--- poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h 2025-05-12 12:00:13.000000000 +0300 ++++ poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h 2025-10-09 12:58:53.032306200 +0300 +@@ -38,7 +38,7 @@ + + + template +-class Diagnostics ++class ODBC_API Diagnostics + /// Utility class providing functionality for retrieving ODBC diagnostic + /// records. Diagnostics object must be created with corresponding handle + /// as constructor argument. During construction, diagnostic records fields +@@ -245,6 +245,7 @@ + // explicit instantiation definition + #ifndef POCO_DOC + ++#if !defined(POCO_COMPILER_MINGW) + #if defined(POCO_OS_FAMILY_WINDOWS) + extern template class Diagnostics; + extern template class Diagnostics; +@@ -256,6 +257,7 @@ + extern template class ODBC_API Diagnostics; + extern template class ODBC_API Diagnostics; + #endif ++#endif + + #endif + +diff -Naur poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/Error.h poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/Error.h +--- poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/Error.h 2025-05-12 12:00:13.000000000 +0300 ++++ poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/Error.h 2025-10-09 12:49:53.193458200 +0300 +@@ -35,7 +35,7 @@ + + + template +-class Error ++class ODBC_API Error + /// Class encapsulating ODBC diagnostic record collection. Collection is generated + /// during construction. Class provides access and string generation for the collection + /// as well as individual diagnostic records. +@@ -127,6 +127,7 @@ + // explicit instantiation definition + #ifndef POCO_DOC + ++#if !defined(POCO_COMPILER_MINGW) + #if defined(POCO_OS_FAMILY_WINDOWS) + extern template class Error; + extern template class Error; +@@ -140,6 +141,7 @@ + #endif + + #endif ++#endif + + using EnvironmentError = Error; + using ConnectionError = Error; +diff -Naur poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h +--- poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h 2025-05-12 12:00:13.000000000 +0300 ++++ poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h 2025-10-09 12:58:27.817217400 +0300 +@@ -38,7 +38,7 @@ + + + template +-class HandleException: public ODBCException ++class ODBC_API HandleException: public ODBCException + { + public: + HandleException(const H& handle): _error(handle) +@@ -141,6 +141,7 @@ + // explicit instantiation definition + #ifndef POCO_DOC + ++#if !defined(POCO_COMPILER_MINGW) + #if defined(POCO_OS_FAMILY_WINDOWS) + extern template class HandleException; + extern template class HandleException; +@@ -154,6 +155,7 @@ + #endif + + #endif ++#endif + + + using EnvironmentException = HandleException; +diff -Naur poco-1.14.2-all-orig/Foundation/include/Poco/BufferedBidirectionalStreamBuf.h poco-1.14.2-all/Foundation/include/Poco/BufferedBidirectionalStreamBuf.h +--- poco-1.14.2-all-orig/Foundation/include/Poco/BufferedBidirectionalStreamBuf.h 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/Foundation/include/Poco/BufferedBidirectionalStreamBuf.h 2025-10-09 13:00:20.183118200 +0300 +@@ -30,7 +30,7 @@ + + + template > +-class BasicBufferedBidirectionalStreamBuf: public std::basic_streambuf ++class Foundation_API BasicBufferedBidirectionalStreamBuf: public std::basic_streambuf + /// This is an implementation of a buffered bidirectional + /// streambuf that greatly simplifies the implementation of + /// custom streambufs of various kinds. +@@ -182,11 +182,13 @@ + // We provide an instantiation for char. + // + ++#if !defined(POCO_COMPILER_MINGW) + #if defined(POCO_OS_FAMILY_WINDOWS) + extern template class BasicBufferedBidirectionalStreamBuf>; + #else + extern template class Foundation_API BasicBufferedBidirectionalStreamBuf>; + #endif ++#endif + + using BufferedBidirectionalStreamBuf = BasicBufferedBidirectionalStreamBuf>; + +diff -Naur poco-1.14.2-all-orig/Foundation/include/Poco/BufferedStreamBuf.h poco-1.14.2-all/Foundation/include/Poco/BufferedStreamBuf.h +--- poco-1.14.2-all-orig/Foundation/include/Poco/BufferedStreamBuf.h 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/Foundation/include/Poco/BufferedStreamBuf.h 2025-10-09 13:00:33.583045100 +0300 +@@ -30,7 +30,7 @@ + + + template > +-class BasicBufferedStreamBuf: public std::basic_streambuf ++class Foundation_API BasicBufferedStreamBuf: public std::basic_streambuf + /// This is an implementation of a buffered streambuf + /// that greatly simplifies the implementation of + /// custom streambufs of various kinds. +@@ -164,11 +164,13 @@ + // We provide an instantiation for char. + // + ++#if !defined(POCO_COMPILER_MINGW) + #if defined(POCO_OS_FAMILY_WINDOWS) + extern template class BasicBufferedStreamBuf>; + #else + extern template class Foundation_API BasicBufferedStreamBuf>; + #endif ++#endif + + using BufferedStreamBuf = BasicBufferedStreamBuf>; + +diff -Naur poco-1.14.2-all-orig/Foundation/include/Poco/Dynamic/Struct.h poco-1.14.2-all/Foundation/include/Poco/Dynamic/Struct.h +--- poco-1.14.2-all-orig/Foundation/include/Poco/Dynamic/Struct.h 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/Foundation/include/Poco/Dynamic/Struct.h 2025-10-09 12:50:47.372765800 +0300 +@@ -64,7 +64,7 @@ + + + template , typename S = std::set> +-class Struct ++class Foundation_API Struct + /// Struct allows to define a named collection of Var objects. + { + public: +@@ -288,6 +288,7 @@ + }; + + ++#if !defined(POCO_COMPILER_MINGW) + #if defined(POCO_OS_FAMILY_WINDOWS) + + extern template class Struct; +@@ -305,6 +306,7 @@ + extern template class Foundation_API Struct, OrderedSet>; + + #endif ++#endif + + + template <> +diff -Naur poco-1.14.2-all-orig/Foundation/include/Poco/UTFString.h poco-1.14.2-all/Foundation/include/Poco/UTFString.h +--- poco-1.14.2-all-orig/Foundation/include/Poco/UTFString.h 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/Foundation/include/Poco/UTFString.h 2025-10-09 13:03:10.754291400 +0300 +@@ -307,6 +307,7 @@ + } // namespace Poco + + ++#if !defined(POCO_COMPILER_MINGW) + #if defined(POCO_USE_STRING16) + extern template class Foundation_API std::basic_string; + #endif +@@ -314,6 +315,7 @@ + #if defined(POCO_USE_STRING32) + extern template class Foundation_API std::basic_string; + #endif ++#endif + + + #endif // Foundation_UTFString_INCLUDED +diff -Naur poco-1.14.2-all-orig/Foundation/include/Poco/UnbufferedStreamBuf.h poco-1.14.2-all/Foundation/include/Poco/UnbufferedStreamBuf.h +--- poco-1.14.2-all-orig/Foundation/include/Poco/UnbufferedStreamBuf.h 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/Foundation/include/Poco/UnbufferedStreamBuf.h 2025-10-09 12:30:04.853968200 +0300 +@@ -29,7 +29,7 @@ + + + template +-class BasicUnbufferedStreamBuf: public std::basic_streambuf ++class Foundation_API BasicUnbufferedStreamBuf: public std::basic_streambuf + /// This is an implementation of an unbuffered streambuf + /// that greatly simplifies the implementation of + /// custom streambufs of various kinds. +@@ -164,11 +164,13 @@ + // We provide an instantiation for char. + // + ++#if !defined(POCO_COMPILER_MINGW) + #if defined(POCO_OS_FAMILY_WINDOWS) + extern template class BasicUnbufferedStreamBuf>; + #else + extern template class Foundation_API BasicUnbufferedStreamBuf>; + #endif ++#endif + + using UnbufferedStreamBuf = BasicUnbufferedStreamBuf>; + +diff -Naur poco-1.14.2-all-orig/Foundation/src/UnbufferedStreamBuf.cpp poco-1.14.2-all/Foundation/src/UnbufferedStreamBuf.cpp +--- poco-1.14.2-all-orig/Foundation/src/UnbufferedStreamBuf.cpp 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/Foundation/src/UnbufferedStreamBuf.cpp 2025-10-09 12:28:42.424996200 +0300 +@@ -21,5 +21,4 @@ + #else + template class BasicUnbufferedStreamBuf>; + #endif +- + } +diff -Naur poco-1.14.2-all-orig/Foundation/src/VarHolder.cpp poco-1.14.2-all/Foundation/src/VarHolder.cpp +--- poco-1.14.2-all-orig/Foundation/src/VarHolder.cpp 2025-05-12 12:00:11.000000000 +0300 ++++ poco-1.14.2-all/Foundation/src/VarHolder.cpp 2025-10-09 12:46:07.757064700 +0300 +@@ -21,7 +21,6 @@ + namespace Poco { + namespace Dynamic { + +- + #if defined(POCO_OS_FAMILY_WINDOWS) + + template class Foundation_API Struct; +diff -Naur poco-1.14.2-all-orig/JSON/include/Poco/JSON/Array.h poco-1.14.2-all/JSON/include/Poco/JSON/Array.h +--- poco-1.14.2-all-orig/JSON/include/Poco/JSON/Array.h 2025-05-12 12:00:12.000000000 +0300 ++++ poco-1.14.2-all/JSON/include/Poco/JSON/Array.h 2025-10-09 12:50:12.424222700 +0300 +@@ -34,6 +34,7 @@ + } + + ++#if !defined(POCO_COMPILER_MINGW) + #if defined(POCO_OS_FAMILY_WINDOWS) + // Explicitly instantiated shared pointer in JSON library + extern template class Poco::SharedPtr; +@@ -41,6 +42,7 @@ + // Explicitly instantiated shared pointer in JSON library + extern template class JSON_API Poco::SharedPtr; + #endif ++#endif + + namespace JSON { + +diff -Naur poco-1.14.2-all-orig/JSON/include/Poco/JSON/Object.h poco-1.14.2-all/JSON/include/Poco/JSON/Object.h +--- poco-1.14.2-all-orig/JSON/include/Poco/JSON/Object.h 2025-05-12 12:00:12.000000000 +0300 ++++ poco-1.14.2-all/JSON/include/Poco/JSON/Object.h 2025-10-09 12:50:20.315701500 +0300 +@@ -41,6 +41,7 @@ + + } + ++#if !defined(POCO_COMPILER_MINGW) + #if defined(POCO_OS_FAMILY_WINDOWS) + // Explicitly instatiated shared pointer in JSON library + extern template class Poco::SharedPtr; +@@ -48,6 +49,7 @@ + // Explicitly instatiated shared pointer in JSON library + extern template class JSON_API Poco::SharedPtr; + #endif ++#endif + + namespace JSON { + +diff -Naur poco-1.14.2-all-orig/Net/include/Poco/Net/HTTPBasicStreamBuf.h poco-1.14.2-all/Net/include/Poco/Net/HTTPBasicStreamBuf.h +--- poco-1.14.2-all-orig/Net/include/Poco/Net/HTTPBasicStreamBuf.h 2025-05-12 12:00:12.000000000 +0300 ++++ poco-1.14.2-all/Net/include/Poco/Net/HTTPBasicStreamBuf.h 2025-10-09 12:50:03.048356900 +0300 +@@ -24,6 +24,9 @@ + + + namespace Poco { ++ ++template class Net_API BasicBufferedStreamBuf, Net::HTTPBufferAllocator>; ++ + namespace Net { + + diff --git a/mingw-w64-poco/PKGBUILD b/mingw-w64-poco/PKGBUILD index 0d649a1c8e..b9304c11bd 100644 --- a/mingw-w64-poco/PKGBUILD +++ b/mingw-w64-poco/PKGBUILD @@ -3,7 +3,7 @@ _realname=poco pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.13.0 +pkgver=1.14.2 pkgrel=1 pkgdesc="POrtable COmponents C++ Libraries (mingw-w64)" arch=('any') @@ -24,6 +24,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-cc-libs" #"${MINGW_PACKAGE_PREFIX}-apr-util" "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-libmariadbclient" + "${MINGW_PACKAGE_PREFIX}-libutf8proc" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-pcre2" "${MINGW_PACKAGE_PREFIX}-postgresql" @@ -31,10 +32,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-cc-libs" "${MINGW_PACKAGE_PREFIX}-zlib") source=(https://pocoproject.org/releases/${_realname}-${pkgver}/${_realname}-${pkgver}-all.tar.bz2 001-fix-build-on-mingw.patch - 011-cmake-mingw.patch) -sha256sums=('93d3a810064c25f1e8b24452602e42bc528474258458f388f9de2f787d5170ab' - 'daf531ab8ed72a86a02ddfcb916e113155b7a872b65116907f4d3be6e4997afe' - '8b4c1abc1fc635229333632a36c3f7850f2de70b9ba91db06d7c9aebcecc5ef1') + 011-cmake-mingw.patch + 012-dll-resources.patch + 013-templates-export.patch) +sha256sums=('7738a4c880f08e89318fc53915f86be5a0e70f14eb1e7f0e1767c8781c40d794' + '2b2a4ccc48061874a8c8d36d96ac6f2d40b01130a5c10816232cba1988a6c97a' + 'c5084394e28bf9bcfaaa3491ff28ca963efd57a79fb20aea6368f0a2490fb1ea' + '8059fc9bb6b158f7705323358d38c9d952061b546d6ae8fbd3c4ac2493677a0a' + '6d67531c0c11f6fd3892a899230c746ad0dc7d7c6e11146e4b81b3b1031b1a9f') _apply_patch_with_msg() { for _patch in "$@" @@ -48,7 +53,9 @@ prepare() { cd "${srcdir}"/${_realname}-${pkgver}-all _apply_patch_with_msg \ 001-fix-build-on-mingw.patch \ - 011-cmake-mingw.patch + 011-cmake-mingw.patch \ + 012-dll-resources.patch \ + 013-templates-export.patch } build() {