diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | 0001-Fix-XML-compilation-due-to-new-methods-being-guarded.patch | 26 | ||||
| -rw-r--r-- | 0002-Disable-tests-that-fail-in-koji.patch | 78 | ||||
| -rw-r--r-- | 0003-Test-Use-12-byte-IV-for-aes-256-gcm.patch | 44 | ||||
| -rw-r--r-- | 100-poco-uos-add-sw_64-support.patch | 46 | ||||
| -rw-r--r-- | poco-deal-with-libsuffix.patch | 12 | ||||
| -rw-r--r-- | poco.spec | 494 | ||||
| -rw-r--r-- | sources | 1 |
8 files changed, 702 insertions, 0 deletions
@@ -0,0 +1 @@ +/poco-1.12.4.tar.gz diff --git a/0001-Fix-XML-compilation-due-to-new-methods-being-guarded.patch b/0001-Fix-XML-compilation-due-to-new-methods-being-guarded.patch new file mode 100644 index 0000000..1945f65 --- /dev/null +++ b/0001-Fix-XML-compilation-due-to-new-methods-being-guarded.patch @@ -0,0 +1,26 @@ +From 25136270c5d6b8fa6c2238df640c812465aae1f4 Mon Sep 17 00:00:00 2001 +From: Scott Talbert <swt@techie.net> +Date: Mon, 24 Oct 2022 21:21:31 -0500 +Subject: [PATCH 1/2] Fix XML compilation due to new methods being guarded by + XML_DTD + +--- + XML/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/XML/CMakeLists.txt b/XML/CMakeLists.txt +index 123657a0c..b99f4f376 100644 +--- a/XML/CMakeLists.txt ++++ b/XML/CMakeLists.txt +@@ -51,7 +51,7 @@ target_include_directories(XML + + if(POCO_UNBUNDLED) + target_link_libraries(XML PUBLIC EXPAT::EXPAT) +- target_compile_definitions(XML PUBLIC POCO_UNBUNDLED) ++ target_compile_definitions(XML PUBLIC POCO_UNBUNDLED XML_DTD) + else() + if(WIN32) + #TODO: Is XML_STATIC only required with Windows? What does it do? +-- +2.38.1 + diff --git a/0002-Disable-tests-that-fail-in-koji.patch b/0002-Disable-tests-that-fail-in-koji.patch new file mode 100644 index 0000000..39c665e --- /dev/null +++ b/0002-Disable-tests-that-fail-in-koji.patch @@ -0,0 +1,78 @@ +From c9f4f36dfbbfc205953a45db2a783f0bae85e173 Mon Sep 17 00:00:00 2001 +From: Robin Lee <cheeselee@fedoraproject.org> +Date: Sun, 21 Aug 2022 01:10:54 +0800 +Subject: [PATCH 2/2] Disable tests that fail in koji + +--- + Foundation/testsuite/src/FileTest.cpp | 1 - + Net/testsuite/src/DatagramSocketTest.cpp | 3 ++- + Net/testsuite/src/ICMPSocketTest.cpp | 1 - + Net/testsuite/src/RawSocketTest.cpp | 1 - + NetSSL_OpenSSL/testsuite/src/HTTPSClientSessionTest.cpp | 1 - + 5 files changed, 2 insertions(+), 5 deletions(-) + +diff --git a/Foundation/testsuite/src/FileTest.cpp b/Foundation/testsuite/src/FileTest.cpp +index df7d6f7c2..85d507332 100644 +--- a/Foundation/testsuite/src/FileTest.cpp ++++ b/Foundation/testsuite/src/FileTest.cpp +@@ -639,7 +639,6 @@ CppUnit::Test* FileTest::suite() + CppUnit_addTest(pSuite, FileTest, testCreateFile); + CppUnit_addTest(pSuite, FileTest, testFileAttributes1); + CppUnit_addTest(pSuite, FileTest, testFileAttributes2); +- CppUnit_addTest(pSuite, FileTest, testFileAttributes3); + CppUnit_addTest(pSuite, FileTest, testCompare); + CppUnit_addTest(pSuite, FileTest, testSwap); + CppUnit_addTest(pSuite, FileTest, testSize); +diff --git a/Net/testsuite/src/DatagramSocketTest.cpp b/Net/testsuite/src/DatagramSocketTest.cpp +index e765de29c..8407c8229 100644 +--- a/Net/testsuite/src/DatagramSocketTest.cpp ++++ b/Net/testsuite/src/DatagramSocketTest.cpp +@@ -827,7 +827,8 @@ CppUnit::Test* DatagramSocketTest::suite() + CppUnit_addTest(pSuite, DatagramSocketTest, testReuseAddressPortWildcard); + CppUnit_addTest(pSuite, DatagramSocketTest, testReuseAddressPortSpecific); + #if (POCO_OS != POCO_OS_FREE_BSD) // works only with local net bcast and very randomly +- CppUnit_addTest(pSuite, DatagramSocketTest, testBroadcast); ++ // Failed on ppc64le ++ //CppUnit_addTest(pSuite, DatagramSocketTest, testBroadcast); + #endif + CppUnit_addTest(pSuite, DatagramSocketTest, testGatherScatterFixed); + CppUnit_addTest(pSuite, DatagramSocketTest, testGatherScatterVariable); +diff --git a/Net/testsuite/src/ICMPSocketTest.cpp b/Net/testsuite/src/ICMPSocketTest.cpp +index 195b58f2a..ff1767b3e 100644 +--- a/Net/testsuite/src/ICMPSocketTest.cpp ++++ b/Net/testsuite/src/ICMPSocketTest.cpp +@@ -117,7 +117,6 @@ CppUnit::Test* ICMPSocketTest::suite() + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ICMPSocketTest"); + + CppUnit_addTest(pSuite, ICMPSocketTest, testSendToReceiveFrom); +- CppUnit_addTest(pSuite, ICMPSocketTest, testAssign); + CppUnit_addTest(pSuite, ICMPSocketTest, testMTU); + + return pSuite; +diff --git a/Net/testsuite/src/RawSocketTest.cpp b/Net/testsuite/src/RawSocketTest.cpp +index 036bf40a1..461f24d7a 100644 +--- a/Net/testsuite/src/RawSocketTest.cpp ++++ b/Net/testsuite/src/RawSocketTest.cpp +@@ -128,7 +128,6 @@ CppUnit::Test* RawSocketTest::suite() + + CppUnit_addTest(pSuite, RawSocketTest, testEchoIPv4); + CppUnit_addTest(pSuite, RawSocketTest, testSendToReceiveFromIPv4); +- CppUnit_addTest(pSuite, RawSocketTest, testEchoIPv4Move); + + return pSuite; + } +diff --git a/NetSSL_OpenSSL/testsuite/src/HTTPSClientSessionTest.cpp b/NetSSL_OpenSSL/testsuite/src/HTTPSClientSessionTest.cpp +index f487fb6e1..2cedbf402 100644 +--- a/NetSSL_OpenSSL/testsuite/src/HTTPSClientSessionTest.cpp ++++ b/NetSSL_OpenSSL/testsuite/src/HTTPSClientSessionTest.cpp +@@ -459,7 +459,6 @@ CppUnit::Test* HTTPSClientSessionTest::suite() + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testPostLargeChunked); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testPostLargeChunkedKeepAlive); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testKeepAlive); +- CppUnit_addTest(pSuite, HTTPSClientSessionTest, testInterop); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testProxy); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testCachedSession); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testUnknownContentLength); +-- +2.38.1 + diff --git a/0003-Test-Use-12-byte-IV-for-aes-256-gcm.patch b/0003-Test-Use-12-byte-IV-for-aes-256-gcm.patch new file mode 100644 index 0000000..501ffc2 --- /dev/null +++ b/0003-Test-Use-12-byte-IV-for-aes-256-gcm.patch @@ -0,0 +1,44 @@ +From b33e02d25316fdbef94da086b54541ce9e5fb699 Mon Sep 17 00:00:00 2001 +From: Matej Kenda <matejken@gmail.com> +Date: Wed, 3 Jan 2024 20:13:57 +0100 +Subject: [PATCH] fix(test): Use 96-bit IV with aes-256-gcm to fix (#4347): + I/O error: error:1C800066:Provider routines::cipher operation failed + +Backport of upstream commit b33e02d25316fdbef94da086b54541ce9e5fb699 +(included in pocoproject/poco release 1.13.1). + +Upstream commit also removed an earlier mitigation comment added in +commit 111fe90dd91ad6dcf2a487b69706e90132d97c44; that earlier comment +never landed in the 1.12.x line, so this backport only carries the +IV-size change and the new explanatory comment. + +The CI workflow change in the upstream commit is dropped: it removed +the macOS-only EXCLUDE_TESTS entry that was added in 111fe90d, but +neither change applies to the 1.12.x line. + +This change avoids the failing path entirely on OpenSSL 3 by using the +GCM-recommended 12-byte IV (matches EVP_CIPHER_iv_length for aes-256-gcm), +so the broken init order in CryptoTransformImpl is not exercised. +The underlying init-order issue in CipherImpl.cpp remains and is being +discussed with upstream separately. +--- + Crypto/testsuite/src/CryptoTest.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/Crypto/testsuite/src/CryptoTest.cpp b/Crypto/testsuite/src/CryptoTest.cpp +--- a/Crypto/testsuite/src/CryptoTest.cpp ++++ b/Crypto/testsuite/src/CryptoTest.cpp +@@ -213,7 +213,10 @@ void CryptoTest::testEncryptDecryptGCM() + { + CipherKey key("aes-256-gcm"); + +- CipherKey::ByteVec iv(20, 213); ++ // 96-bit (12 byte) IV is recommended for usage with GCM. ++ // https://crypto.stackexchange.com/questions/41601/aes-gcm-recommended-iv-size-why-12-bytes ++ ++ CipherKey::ByteVec iv(12, 213); + key.setIV(iv); + + Cipher::Ptr pCipher = CipherFactory::defaultFactory().createCipher(key); +-- +2.49.0 diff --git a/100-poco-uos-add-sw_64-support.patch b/100-poco-uos-add-sw_64-support.patch new file mode 100644 index 0000000..cbcf965 --- /dev/null +++ b/100-poco-uos-add-sw_64-support.patch @@ -0,0 +1,46 @@ +From aa9fd90d003bab1d37ef5613929bc71276e0decb Mon Sep 17 00:00:00 2001 +From: root <root@localhost.localdomain> +Date: Fri, 13 Dec 2024 14:42:26 +0800 +Subject: [PATCH] add sw_64 support + +--- + Foundation/include/Poco/Platform.h | 4 ++++ + Foundation/src/utils.h | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/Foundation/include/Poco/Platform.h b/Foundation/include/Poco/Platform.h +index 192d6c7..3dd37ef 100644 +--- a/Foundation/include/Poco/Platform.h ++++ b/Foundation/include/Poco/Platform.h +@@ -137,11 +137,15 @@ + #define POCO_ARCH_RISCV64 0x10 + #define POCO_ARCH_RISCV32 0x11 + #define POCO_ARCH_LOONGARCH64 0x12 ++#define POCO_ARCH_SW_64 0x12 + + + #if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA) + #define POCO_ARCH POCO_ARCH_ALPHA + #define POCO_ARCH_LITTLE_ENDIAN 1 ++#elif defined(__sw_64__) ++ #define POCO_ARCH POCO_ARCH_SW_64 ++ #define POCO_ARCH_LITTLE_ENDIAN 1 + #elif defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(EMSCRIPTEN) + #define POCO_ARCH POCO_ARCH_IA32 + #define POCO_ARCH_LITTLE_ENDIAN 1 +diff --git a/Foundation/src/utils.h b/Foundation/src/utils.h +index c9b6c00..5f567db 100644 +--- a/Foundation/src/utils.h ++++ b/Foundation/src/utils.h +@@ -137,7 +137,7 @@ int main(int argc, char** argv) { + defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \ + defined(_POWER) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \ + defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ +- defined(__SH4__) || defined(__alpha__) || \ ++ defined(__SH4__) || defined(__alpha__) || defined(__sw_64__) ||\ + defined(_MIPS_ARCH_MIPS32R2) || defined(__ARMEB__) ||\ + defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ + (defined(__riscv) && defined(__riscv_float_abi_double)) || defined(__e2k__) || \ +-- +2.33.0 + diff --git a/poco-deal-with-libsuffix.patch b/poco-deal-with-libsuffix.patch new file mode 100644 index 0000000..09540f7 --- /dev/null +++ b/poco-deal-with-libsuffix.patch @@ -0,0 +1,12 @@ +--- poco-poco-1.12.4-release/CMakeLists.txt.orig 2025-08-23 10:35:09.617111500 +0800 ++++ poco-poco-1.12.4-release/CMakeLists.txt 2025-08-23 10:38:06.806080300 +0800 +@@ -52,6 +52,9 @@ + + # Enable standard installation directories + include(GNUInstallDirs) ++if("${LIB_SUFFIX}" STREQUAL "" AND NOT ${CMAKE_INSTALL_LIBDIR} STREQUAL "lib") ++ STRING(REPLACE "lib" "" LIB_SUFFIX ${CMAKE_INSTALL_LIBDIR}) ++endif("${LIB_SUFFIX}" STREQUAL "" AND NOT ${CMAKE_INSTALL_LIBDIR} STREQUAL "lib") + + # Include some common macros to simpilfy the Poco CMake files + include(PocoMacros) diff --git a/poco.spec b/poco.spec new file mode 100644 index 0000000..4dcf06b --- /dev/null +++ b/poco.spec @@ -0,0 +1,494 @@ +%global _bundled_pcre2_version 10.40 +# read from libversion +%global libversion 94 + +%global cmake_build_dir cmake-build +%global cmake_debug_dir cmake-debug + +# build without tests on s390 (runs out of memory during linking due the 2 GB address space) +%ifnarch s390 +%bcond_without tests +%endif + +%bcond_without samples + +# mongodb still available only on little endian arches +%ifarch aarch64 %{arm} %{ix86} x86_64 ppc64le +%bcond_without mongodb +%endif + +Name: poco +Version: 1.12.4 +Release: 5 +Summary: C++ class libraries for network-centric applications + +License: BSL-1.0 +URL: https://pocoproject.org + +Source: https://github.com/pocoproject/poco/archive/poco-%{version}-release/poco-%{version}.tar.gz + +# Fix XML compilation due to new methods being guarded by XML_DTD +Patch: 0001-Fix-XML-compilation-due-to-new-methods-being-guarded.patch +# Disable the tests that will fail under Koji (mostly network) +Patch: 0002-Disable-tests-that-fail-in-koji.patch +# Backport upstream b33e02d2: use 96-bit IV in testEncryptDecryptGCM so it passes under OpenSSL 3 +Patch: 0003-Test-Use-12-byte-IV-for-aes-256-gcm.patch +# Deal with upcoming LIB_SUFFIX removal +Patch: poco-deal-with-libsuffix.patch +#add by uos +Patch100: 100-poco-uos-add-sw_64-support.patch +#end + +BuildRequires: make +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: openssl-devel +BuildRequires: libiodbc-devel +BuildRequires: mariadb-connector-c-devel +BuildRequires: zlib-devel +BuildRequires: pcre2-devel +BuildRequires: sqlite-devel +BuildRequires: expat-devel +BuildRequires: libtool-ltdl-devel + +# We build poco to unbundle as much as possible, but unfortunately, it uses +# some internal functions of pcre so there are a few files from pcre that are +# still bundled. See https://github.com/pocoproject/poco/issues/120. +Provides: bundled(pcre2) = %{_bundled_pcre2_version} + +%description +The POCO C++ Libraries (POCO stands for POrtable COmponents) +are open source C++ class libraries that simplify and accelerate the +development of network-centric, portable applications in C++. The +POCO C++ Libraries are built strictly on standard ANSI/ISO C++, +including the standard library. + +%prep +%autosetup -p1 -n %{name}-%{name}-%{version}-release + +# Fix libdir for Fedora +/bin/sed -i.orig -e 's|$(INSTALLDIR)/lib\b|$(INSTALLDIR)/%{_lib}|g' Makefile +# Disable rpath +/bin/sed -i.orig -e 's|SHAREDOPT_LINK = -Wl,-rpath,$(LIBPATH)|SHAREDOPT_LINK =|g' build/config/Linux +/bin/sed -i.orig -e 's|"Poco/zlib.h"|<zlib.h>|g' Zip/src/ZipStream.cpp +/bin/sed -i.orig -e 's|#endif|#define POCO_UNBUNDLED 1\n\n#endif|g' Foundation/include/Poco/Config.h +cmp build/config/Linux{,.orig} && exit 1 + +rm -v Foundation/src/MSG00001.bin +rm -v Foundation/include/Poco/zconf.h +rm -v Foundation/include/Poco/zlib.h +rm -v Foundation/src/adler32.c +rm -v Foundation/src/compress.c +rm -v Foundation/src/crc32.c +rm -v Foundation/src/crc32.h +rm -v Foundation/src/deflate.c +rm -v Foundation/src/deflate.h +rm -v Foundation/src/gzguts.h +rm -v PDF/src/gzio.c +rm -v Foundation/src/infback.c +rm -v Foundation/src/inffast.c +rm -v Foundation/src/inffast.h +rm -v Foundation/src/inffixed.h +rm -v Foundation/src/inflate.c +rm -v Foundation/src/inflate.h +rm -v Foundation/src/inftrees.c +rm -v Foundation/src/inftrees.h +rm -v Foundation/src/trees.c +rm -v Foundation/src/trees.h +rm -v Foundation/src/zconf.h +rm -v Foundation/src/zlib.h +rm -v Foundation/src/zutil.c +rm -v Foundation/src/zutil.h + +# PCRE files that can't be removed due to still being used in +# Foundation/src/Unicode.cpp: +mv -v Foundation/src/pcre2_{config.h,internal.h,ucp.h,intmodedep.h,ucptables.c,tables.c,ucd.c} . +rm -v Foundation/src/pcre2* +mv -v pcre2_* Foundation/src + +rm -v Data/SQLite/src/sqlite3.h +rm -v Data/SQLite/src/sqlite3.c +rm -v XML/include/Poco/XML/expat.h +rm -v XML/include/Poco/XML/expat_external.h +rm -v XML/src/ascii.h +rm -v XML/src/asciitab.h +rm -v XML/src/expat_config.h +rm -v XML/src/iasciitab.h +rm -v XML/src/internal.h +rm -v XML/src/latin1tab.h +rm -v XML/src/nametab.h +rm -v XML/src/utf8tab.h +rm -v XML/src/xmlparse.cpp +rm -v XML/src/xmlrole.c +rm -v XML/src/xmlrole.h +rm -v XML/src/xmltok.c +rm -v XML/src/xmltok.h +rm -v XML/src/xmltok_impl.c +rm -v XML/src/xmltok_impl.h +rm -v XML/src/xmltok_ns.c + +%build +%if %{with tests} + %global poco_tests -DENABLE_TESTS=ON +%endif +%if %{without samples} + %global poco_samples --no-samples +%endif +%if %{without mongodb} + %global poco_mongodb -DENABLE_MONGODB=OFF +%endif + +%define _vpath_builddir %{cmake_build_dir} +%cmake -DPOCO_UNBUNDLED=ON %{?poco_tests} %{?poco_mongodb} -DENABLE_REDIS=OFF -DODBC_INCLUDE_DIR=%{_includedir}/libiodbc +%cmake_build + +%define _vpath_builddir %{cmake_debug_dir} +%cmake -DPOCO_UNBUNDLED=ON %{?poco_tests} %{?poco_mongodb} -DENABLE_REDIS=OFF -DODBC_INCLUDE_DIR=%{_includedir}/libiodbc -DCMAKE_BUILD_TYPE=Debug +%cmake_build + +%install +%define _vpath_builddir %{cmake_build_dir} +%cmake_install + +%define _vpath_builddir %{cmake_debug_dir} +%cmake_install +# conflict with arc +rm -v %{buildroot}%{_bindir}/arc + +%check +%if %{with tests} +export POCO_BASE="$(pwd)" +%define _vpath_builddir %{cmake_build_dir} +%ifarch s390x +# NetSSL test timed out on s390x +%ctest -V %{?_smp_mflags} -E "MongoDB|Redis|DataMySQL|DataODBC|NetSSL" +%else +%ctest -V %{?_smp_mflags} -E "MongoDB|Redis|DataMySQL|DataODBC" +%endif +%endif + +# ----------------------------------------------------------------------------- +%package foundation +Summary: The Foundation POCO component + +%description foundation +This package contains the Foundation component of POCO. (POCO is a set +of C++ class libraries for network-centric applications.) +%files foundation +%license LICENSE +%{_libdir}/libPocoFoundation.so.%{libversion} + + +# ----------------------------------------------------------------------------- +%package xml +Summary: The XML POCO component + +%description xml +This package contains the XML component of POCO. (POCO is a set of C++ +class libraries for network-centric applications.) +%files xml +%{_libdir}/libPocoXML.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package util +Summary: The Util POCO component + +%description util +This package contains the Util component of POCO. (POCO is a set of C++ +class libraries for network-centric applications.) +%files util +%{_libdir}/libPocoUtil.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package net +Summary: The Net POCO component + +%description net +This package contains the Net component of POCO. (POCO is a set of C++ +class libraries for network-centric applications.) +%files net +%{_libdir}/libPocoNet.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package crypto +Summary: The Crypto POCO component + +%description crypto +This package contains the Crypto component of POCO. (POCO is a set of +C++ class libraries for network-centric applications.) +%files crypto +%{_libdir}/libPocoCrypto.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package netssl +Summary: The NetSSL POCO component + +%description netssl +This package contains the NetSSL component of POCO. (POCO is a set of +C++ class libraries for network-centric applications.) +%files netssl +%{_libdir}/libPocoNetSSL.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package data +Summary: The Data POCO component + +%description data +This package contains the Data component of POCO. (POCO is a set of +C++ class libraries for network-centric applications.) +%files data +%{_libdir}/libPocoData.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package sqlite +Summary: The Data/SQLite POCO component + +%description sqlite +This package contains the Data/SQLite component of POCO. (POCO is a set +of C++ class libraries for network-centric applications.) +%files sqlite +%{_libdir}/libPocoDataSQLite.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package odbc +Summary: The Data/ODBC POCO component + +%description odbc +This package contains the Data/ODBC component of POCO. (POCO is a set +of C++ class libraries for network-centric applications.) +%files odbc +%{_libdir}/libPocoDataODBC.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package mysql +Summary: The Data/MySQL POCO component + +%description mysql +This package contains the Data/MySQL component of POCO. (POCO is a set +of C++ class libraries for network-centric applications.) +%files mysql +%{_libdir}/libPocoDataMySQL.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package zip +Summary: The Zip POCO component + +%description zip +This package contains the Zip component of POCO. (POCO is a set of C++ +class libraries for network-centric applications.) +%files zip +%{_libdir}/libPocoZip.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package json +Summary: The JSON POCO component + +%description json +This package contains the JSON component of POCO. (POCO is a set of C++ +class libraries for network-centric applications.) +%files json +%{_libdir}/libPocoJSON.so.%{libversion} + +# ----------------------------------------------------------------------------- +%if %{with mongodb} +%package mongodb +Summary: The MongoDB POCO component + +%description mongodb +This package contains the MongoDB component of POCO. (POCO is a set of C++ +class libraries for network-centric applications.) +%files mongodb +%{_libdir}/libPocoMongoDB.so.%{libversion} +%endif + +# ----------------------------------------------------------------------------- +%package pagecompiler +Summary: The PageCompiler POCO component + +%description pagecompiler +This package contains the PageCompiler component of POCO. (POCO is a +set of C++ class libraries for network-centric applications.) +%files pagecompiler +%{_bindir}/cpspc +%{_bindir}/f2cpsp + +# ----------------------------------------------------------------------------- +%package encodings +Summary: The Encodings POCO component + +%description encodings +This package contains the Encodings component of POCO. (POCO is a set of C++ +class libraries for network-centric applications.) +%files encodings +%{_libdir}/libPocoEncodings.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package jwt +Summary: The JWT POCO component + +%description jwt +This package contains the JWT component of POCO. (POCO is a set of C++ +class libraries for network-centric applications.) +%files jwt +%{_libdir}/libPocoJWT.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package activerecord +Summary: The ActiveRecord POCO component + +%description activerecord +This package contains the ActiveRecord component of POCO. (POCO is a set of C++ +class libraries for network-centric applications.) +%files activerecord +%{_libdir}/libPocoActiveRecord.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package prometheus +Summary: The Prometheus POCO component + +%description prometheus +This package contains the Prometheus component of POCO. (POCO is a set of C++ +class libraries for network-centric applications.) + +%files prometheus +%{_libdir}/libPocoPrometheus.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package debug +Summary: Debug builds of the POCO libraries + +%description debug +This package contains the debug builds of the POCO libraries for +application testing purposes. +%files debug +%{_libdir}/libPocoFoundationd.so.%{libversion} +%{_libdir}/libPocoXMLd.so.%{libversion} +%{_libdir}/libPocoUtild.so.%{libversion} +%{_libdir}/libPocoNetd.so.%{libversion} +%{_libdir}/libPocoCryptod.so.%{libversion} +%{_libdir}/libPocoNetSSLd.so.%{libversion} +%{_libdir}/libPocoDatad.so.%{libversion} +%{_libdir}/libPocoDataSQLited.so.%{libversion} +%{_libdir}/libPocoDataODBCd.so.%{libversion} +%{_libdir}/libPocoDataMySQLd.so.%{libversion} +%{_libdir}/libPocoZipd.so.%{libversion} +%{_libdir}/libPocoJSONd.so.%{libversion} +%if %{with mongodb} +%{_libdir}/libPocoMongoDBd.so.%{libversion} +%endif +%{_libdir}/libPocoEncodingsd.so.%{libversion} +%{_libdir}/libPocoJWTd.so.%{libversion} +%{_libdir}/libPocoActiveRecordd.so.%{libversion} +%{_libdir}/libPocoPrometheusd.so.%{libversion} + +# ----------------------------------------------------------------------------- +%package devel +Summary: Headers for developing programs that will use POCO + +Requires: poco-debug%{?_isa} = %{version}-%{release} +Requires: poco-foundation%{?_isa} = %{version}-%{release} +Requires: poco-xml%{?_isa} = %{version}-%{release} +Requires: poco-util%{?_isa} = %{version}-%{release} +Requires: poco-net%{?_isa} = %{version}-%{release} +Requires: poco-crypto%{?_isa} = %{version}-%{release} +Requires: poco-netssl%{?_isa} = %{version}-%{release} +Requires: poco-data%{?_isa} = %{version}-%{release} +Requires: poco-sqlite%{?_isa} = %{version}-%{release} +Requires: poco-odbc%{?_isa} = %{version}-%{release} +Requires: poco-mysql%{?_isa} = %{version}-%{release} +Requires: poco-zip%{?_isa} = %{version}-%{release} +Requires: poco-json%{?_isa} = %{version}-%{release} +%if %{with mongodb} +Requires: poco-mongodb%{?_isa} = %{version}-%{release} +%endif +Requires: poco-pagecompiler%{?_isa} = %{version}-%{release} +Requires: poco-encodings%{?_isa} = %{version}-%{release} +Requires: poco-jwt%{?_isa} = %{version}-%{release} +Requires: poco-activerecord%{?_isa} = %{version}-%{release} + +Requires: zlib-devel +Requires: pcre2-devel +Requires: expat-devel +Requires: openssl-devel + +%description devel +The POCO C++ Libraries (POCO stands for POrtable COmponents) +are open source C++ class libraries that simplify and accelerate the +development of network-centric, portable applications in C++. The +POCO C++ Libraries are built strictly on standard ANSI/ISO C++, +including the standard library. + +This package contains the header files needed for developing +POCO applications. + +%files devel +%doc CHANGELOG CODE_OF_CONDUCT.md CONTRIBUTING.md CONTRIBUTORS README* +%{_includedir}/Poco +%{_libdir}/libPocoFoundation.so +%{_libdir}/libPocoFoundationd.so +%{_libdir}/libPocoXML.so +%{_libdir}/libPocoXMLd.so +%{_libdir}/libPocoUtil.so +%{_libdir}/libPocoUtild.so +%{_libdir}/libPocoNet.so +%{_libdir}/libPocoNetd.so +%{_libdir}/libPocoCrypto.so +%{_libdir}/libPocoCryptod.so +%{_libdir}/libPocoNetSSL.so +%{_libdir}/libPocoNetSSLd.so +%{_libdir}/libPocoData.so +%{_libdir}/libPocoDatad.so +%{_libdir}/libPocoDataSQLite.so +%{_libdir}/libPocoDataSQLited.so +%{_libdir}/libPocoDataODBC.so +%{_libdir}/libPocoDataODBCd.so +%{_libdir}/libPocoDataMySQL.so +%{_libdir}/libPocoDataMySQLd.so +%{_libdir}/libPocoZip.so +%{_libdir}/libPocoZipd.so +%{_libdir}/libPocoJSON.so +%{_libdir}/libPocoJSONd.so +%if %{with mongodb} +%{_libdir}/libPocoMongoDB.so +%{_libdir}/libPocoMongoDBd.so +%endif +%{_libdir}/libPocoEncodings.so +%{_libdir}/libPocoEncodingsd.so +%{_libdir}/libPocoJWT.so +%{_libdir}/libPocoJWTd.so +%{_libdir}/libPocoActiveRecord.so +%{_libdir}/libPocoActiveRecordd.so +%{_libdir}/libPocoPrometheus.so +%{_libdir}/libPocoPrometheusd.so +%{_libdir}/cmake/Poco + +# ----------------------------------------------------------------------------- +%package doc +Summary: The POCO API reference documentation + +%description doc +The POCO C++ Libraries (POCO stands for POrtable COmponents) +are open source C++ class libraries that simplify and accelerate the +development of network-centric, portable applications in C++. The +POCO C++ Libraries are built strictly on standard ANSI/ISO C++, +including the standard library. + +This is the complete POCO class library reference documentation in +HTML format. + +%files doc +%doc README NEWS LICENSE CONTRIBUTORS CHANGELOG doc/* + +%changelog +* Thu Aug 13 2026 kuyan_kubuds <kuyan@kubuds.cn> - 1.12.4-5 +- Backport upstream b33e02d2 (issue #4347): use 96-bit IV in testEncryptDecryptGCM + so it passes under OpenSSL 3 + +* Sun Oct 12 2025 Funda Wang <fundawang@yeah.net> - 1.12.4-4 +- fix build with ningja + +* Sat Aug 23 2025 Funda Wang <fundawang@yeah.net> - 1.12.4-3 +- deal with upcoming LIB_SUFFIX removal + +* Thu Feb 27 2025 zhangshaoning <zhangshaoning@uniontech.com> - 1.12.4-2 +- Add sw_64 support @@ -0,0 +1 @@ +0ca5d1e2f2a5e8ba2f0a83c2e6df374a poco-1.12.4.tar.gz |
