From 0f71e6c9e960bbb4d08d6246c0e25931ad72bafb Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Thu, 28 Nov 2024 15:11:42 +0100 Subject: [PATCH] Version 1.14: Updated release files (#4747) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Version 1.14: Updated list of contributors * chore(doc): Update required CMake version. * chore(changelog): Updates for release 1.14.0 --------- Co-authored-by: Günter Obiltschnig --- CHANGELOG | 172 ++++++++++++++++++++++++++++++++++ CONTRIBUTORS | 24 ++++- doc/00200-GettingStarted.page | 2 +- doc/99100-ReleaseNotes.page | 171 +++++++++++++++++++++++++++++++++ 4 files changed, 365 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index d390d946d..c59fb9b3e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,178 @@ This is the changelog file for the POCO C++ Libraries. +Release 1.14.0 (2024-MM-DD) +=========================== + +Summary of Changes: + +This release marks many functions and classes as deprecated with C++ [[deprecated]] +attribute. Warnings can be silenced by defining POCO_SILENCE_DEPRECATED. + +Deprecated functionality will be removed in one of the next releases. + +Minimal supported standard is C++17 since version 1.13. Decent part of the +source code is modernised in this release. + +Bundled software libraries are updated to latest versions: + +- zlib 1.3.1 +- expat 2.6.4 +- pcre2 10.44 +- libpng 1.6.43 +- SQLite 3.47.1 + +Poco::Foundation: + +- Support for Version 6 and Version 7 UUIDs + +Poco::MongoDB: + +- Obsolete wire-protocol (pre 3.6) that was removed from MongoDB in version 5.1 +is obsolete in this version of Poco. It will be removed in one of next versions. Update code to use +OpMsg-based interface. + +Poco::Data: + +- Full Nullable support (including bulk inserts) +- ODBC SQL Server big strings support + + +Breaking Changes: + +- GH #4426 Mark deprecated code for removal + +Security Fixes: + +- GH #4760 Upgrade libexpat to release 2.6.4 +- GH #4690 Net: stack-buffer-overflow if HTTP request contains a header with invalid UTF32 sequence +- GH #4687 Net::MailMessage: Double free if Content-Disposition header is empty +- GH #4629 XML: fuzzing stack overflow +- GH #4123 DoS vulnerability in XML/src/xmlparse.cpp +- GH #4478 Upgrade bundled PCRE2 to 10.44 +- PR #4677 libpng version 1.6.43 + +Features, Enhancements and Third Party Updates: + +- PR #4787 NetSSL_OpenSSL and NetSSL_Win: non-blocking support, shutdown behavior fix +- PR #4681 zlib: Version 1.3.1 in module PDF (#4582) +- PR #4788 Update bundled SQLite to version 3.47.1 (released 2024-11-25) +- GH #4669 Upgrade JSON parser +- GH #4580 Poco::UUID/UUIDGenerator: add support for Version 6 and Version 7 UUIDs +- PR #4724 Hide zlib and expat libs from the user of Poco libraries (replaces #4579) +- GH #4766 ProcessRunner sync +- GH #4750 DBLogger sample +- GH #4712 Error code for pthread_mutex_lock failure +- GH #4710 UTF8::normalize() +- GH #4680 Poco::Path::forDirectory("C:") throws if the path is disk-letter only +- GH #4556 Overriding SocketReactor::run() is not reasonably possible +- GH #4553 Poco::Logger can not output __FILE__ and __LINE__ +- GH #4544 The load balancing issue in Poco::ActiveThreadPool +- GH #4502 Optional and Nullable Improvements +- GH #4431 Consolidate LogFile implementation to use FileOutputStream +- GH #4423 `Dynamic::Var` silently loses precision on int->float conversion +- GH #4230 Poco::Data fixes and improvements +- GH #3997 operator<<() for SocketAddress doesn't work with ADL +- GH #3801 ODBC: DataFormatException getting Time value from SQL Server +- GH #3656 Parse json into specified descendant class +- GH #2808 Failed to insert Poco::Nullable< Poco::Data::Date> data into MSSQL using ODBC +- GH #1540 Poco::DateTime uses assertions for validation +- GH #4769 pocoNetworkInitializer - change fixed path (Windows Platform related) +- GH #4716 Logging: JSONFormatter +- GH #4692 Stacktrace +- GH #4643 `ServerApplication` callbacks +- GH #4632 Add `prebuild` action to make build +- GH #4630 Make `Util::Application::getApplicationPath()` and `findAppConfigFile()` protected +- GH #4559 ServerApplication has no pidfile option on windows +- GH #4536 Serializable Isolation level for SQLite Databases +- GH #4529 SQLChannel stops logging on LoggingSubsystem shutdown +- GH #4493 PocoDoc: search support +- GH #4447 Add checkers for Any holding nullptr +- GH #4414 Improve NotificationCenter speed and usability +- GH #4413 StreamCopier range support +- GH #4409 Add string_view format type spec +- GH #4365 `Poco::Data::Statement`: unified '?' placeholder support +- GH #4341 1.12.4 version Json set enum value failed +- GH #4324 Poco:Data::ODBC - MSSQL (n)varchar(max) length issue +- GH #4001 Insert NULL using BULK +- GH #3281 DTLS 1.2 support +- PR #4777 enh(ODBC): ODBC: DataFormatException getting Time value from SQL Serv… +- PR #4774 Non-blocking sockets support (TLS, WebSocket) +- PR #4770 feat(WindowsBuild): customizable path to include for pocoNetworkInitializer #4769 +- PR #4755 Insert NULL using BULK #4001 +- PR #4748 Activity now sets _running flag to false when it finishes or throws. +- PR #4721 fix(Data::ODBC): use connection and login timeouts in ODBC session implementation +- PR #4714 Add missing relational operators to VarIterator +- PR #4699 Apply patches from Debian packaging +- PR #4693 Serializable Isolation level for SQLite Databases +- PR #4663 Fixed incorrect SSL_CTX_set0_tmp_dh_pkey() usage +- PR #4624 enh(Poco::ActiveThreadPool): make it easy to use correctly +- PR #4621 enh(FileStream): Add FileStreamBuf::resizeBuffer +- PR #4617 enh(CI): Add unbundled build on Linux. +- PR #4616 Cppunit and data test enhancements +- PR #4569 Allow ADL for swapping Optional values +- PR #4563 enh(MongoDB): Document::get returns value by const reference +- PR #3040 HTTPS proxy support +- PR #4734 File lock +- PR #4424 Allow using Poco::FileStream to wrap arbitrary file handles/descriptors as C++ streams +- PR #4685 CMake: Remove possibility to build with internal OpenSSL + +Bug Fixes and Improvements: + +- GH #4773 Non-blocking sockets support (TLS, WebSocket) +- GH #4768 Data: warning: 'isNull' overrides a member function but is not marked 'override' +- GH #4742 Poco does not build on AIX +- GH #4722 libcxx: error: implicit instantiation of undefined template 'std::char_traits' +- GH #4713 replaceInPlace std::wstring +- GH #4711 Poco::Placeholder initialization uses wrong size +- GH #4703 File Channel Logs in UTC Despite ‘times = local’ +- GH #4695 Build error with GCC-15 (class Poco::PriorityDelegate’ has no member named ‘_pTarget’) +- GH #4689 SMTPClientSession: replace bare newlines in message content with CRLF. +- GH #4668 Cross-module exception issue with pre-compiler define _HAS_EXCEPTIONS=0 used in an application +- GH #4664 HTTPCookie Constructor Fails to Handle Discard Attribute Properly +- GH #4648 ProcessRunner erases its PID file name +- GH #4644 TryParse scoped ipv6 addressess for addresses enclosed in [ ] +- GH #4634 Poco::ActiveThreadPool _targetCompleted event never reset +- GH #4610 Incorrect setting of ciphersuites for TLSv1.3 +- GH #4592 Significant performance degradation of Poco::DateTimeParser +- GH #4586 MacOS ARM64 build error: symbol `fdopen` is duplicated defined +- GH #4585 MacOS ARM64 build warning: 'OS_CODE' macro redefined +- GH #4557 NestedDiagnosticContext should be thread local +- GH #4540 Postgres CMakeList.txt +- GH #4535 decodeWord adds spaces at folding borders, when there are special characters encoded +- GH #4525 RecordSet issue since 1.10.0 +- GH #4503 GitHub runner: Linux thread sanitizer tests fail with "unexpected memory mapping" +- GH #4482 ProcessRunner does not detect launch errors +- GH #4395 There is no way to resolve host in advance and connect to HTTPS server with SNI. +- GH #4368 fix Oracle failing ODBC tests +- GH #3913 Missing sources in release package - buildwin.ps1 and NetSSL_Win +- GH #3896 TryParse scoped ipv6 addressess +- GH #3180 Poco::Environment::osDisplayName +- GH #2971 Poco::NamedEvent does not release System V semaphore on Linux +- GH #2439 Issue with log purging when FileChannel compression is enabled +- PR #4762 Properly define POCO_DLL and POCO_STATIC based on BUILD_SHARED_LIBS +- PR #4753 Openssl DH key size +- PR #4737 fix(cmake): fix Data::PostgreSQL target include, remove unnecessary cmake modules. +- PR #4727 GitHub runner ubuntu 24.04 and resolve some issues +- PR #4726 Explicitly define conditional LOB constructors for const (w)string & +- PR #4725 Exception (VS): static assert to make sure that _HAS_EXCEPTIONS is set +- PR #4702 SimpleRowFormatter.h: fix the build on `gcc-15` (unsatisfied `noexcept`) +- PR #4688 Fix double free in Net::MailMessage if Content-Disposition header is empty +- PR #4657 LibPNG Unbundled +- PR #4652 enh(ScopedLockWithUnlock): make it more alike std::unique_lock +- PR #4647 Use Int64 for TcpServerDispatcher::totalConnections() +- PR #4635 fix(Poco::Zip::ZipLocalFileHeader) Fix const-correctness +- PR #4622 fix(SimpleFileChannel): unify default "flush" to be false as it is in FileChannel +- PR #4613 Usage modern C++ features on JSON modules (enhanced) +- PR #4597 Fix MinGW build error +- PR #4593 DateTimeParser Validation and Performance Improvements +- PR #4550 enh: resolve unit test and few other warnings. +- PR #4545 Add CACHE PATH to multi-config output directory variables +- PR #4542 Decode word +- PR #4417 fix(logs): synchronise log file rotation and compression. +- PR #4085 Usage modern C++ features on JSON modules + + Release 1.13.3 (2024-04-04) =========================== diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a23469b1c..cabe9f6b2 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -45,7 +45,6 @@ Scott Davis Kristin Cowalcijk Yuval Kashtan Christopher Baker -Scott Davis Jeff Adams Martin Osborne Björn Schramke @@ -65,6 +64,25 @@ Andrew Auclair Jochen Sprickerhof Jesse Hoogervorst Aron Budea -zhuzeitou +Tou Zhu Daniel Grunwald - +Dan Rosser +Eric Eichhorn +Jeremy Rifkin +Jouke Witteveen +Marc Schlatter +Marco Rebhan +Mert Övün +Mikhail Khachayants +Nicolau Leal Werneck +Sergei Trofimovich +Seyyed Soroosh Hosseinalipour +Felix Wang +Thomas Beutlich +Étienne Dupuis +lanthora +siren186 +Lara Dzivdzanovic +Milan Tepic +Peter Klotz +nitram96 diff --git a/doc/00200-GettingStarted.page b/doc/00200-GettingStarted.page index fba509ff6..ca9e3e798 100644 --- a/doc/00200-GettingStarted.page +++ b/doc/00200-GettingStarted.page @@ -250,7 +250,7 @@ to do build POCO C++ Libraries on any platform with any compiler. CMake is a met generate native makefiles and workspaces that can be used in the compiler environment of your choice. For a quick overview see http://cgold.readthedocs.io/en/latest/overview/cmake-can.html -POCO C++ Libraries requires CMake 3.2 or higher. Static binaries for many platforms can be downloaded from http://www.cmake.org/ +POCO C++ Libraries requires CMake 3.15 or higher. Static binaries for many platforms can be downloaded from http://www.cmake.org/ CMake supports out of source builds and this is the recommended way to build POCO C++ Libraries using CMake. diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index 516b5ddc5..6a647d7ac 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -1,6 +1,177 @@ POCO C++ Libraries Release Notes AAAIntroduction +!!!Release 1.14.0 + +!!Summary of Changes: + +This release marks many functions and classes as deprecated with C++ [[deprecated]] +attribute. Warnings can be silenced by defining POCO_SILENCE_DEPRECATED. + +Deprecated functionality will be removed in one of the next releases. + +Minimal supported standard is C++17 since version 1.13. Decent part of the +source code is modernised in this release. + +Bundled software libraries are updated to latest versions: + + - zlib 1.3.1 + - expat 2.6.4 + - pcre2 10.44 + - libpng 1.6.43 + - SQLite 3.47.1 + +Poco::Foundation: + + - Support for Version 6 and Version 7 UUIDs + +Poco::MongoDB: + + - Obsolete wire-protocol (pre 3.6) that was removed from MongoDB in version 5.1 +is obsolete in this version of Poco. It will be removed in one of next versions. Update code to use +OpMsg-based interface. + +Poco::Data: + + - Full Nullable support (including bulk inserts) + - ODBC SQL Server big strings support + + +!!Breaking Changes: + + - GH #4426 Mark deprecated code for removal + +!!Security Fixes: + + - GH #4760 Upgrade libexpat to release 2.6.4 + - GH #4690 Net: stack-buffer-overflow if HTTP request contains a header with invalid UTF32 sequence + - GH #4687 Net::MailMessage: Double free if Content-Disposition header is empty + - GH #4629 XML: fuzzing stack overflow + - GH #4123 DoS vulnerability in XML/src/xmlparse.cpp + - GH #4478 Upgrade bundled PCRE2 to 10.44 + - PR #4677 libpng version 1.6.43 + +!!Features, Enhancements and Third Party Updates: + + - PR #4787 NetSSL_OpenSSL and NetSSL_Win: non-blocking support, shutdown behavior fix + - PR #4681 zlib: Version 1.3.1 in module PDF (#4582) + - PR #4788 Update bundled SQLite to version 3.47.1 (released 2024-11-25) + - GH #4669 Upgrade JSON parser + - GH #4580 Poco::UUID/UUIDGenerator: add support for Version 6 and Version 7 UUIDs + - PR #4724 Hide zlib and expat libs from the user of Poco libraries (replaces #4579) + - GH #4766 ProcessRunner sync + - GH #4750 DBLogger sample + - GH #4712 Error code for pthread_mutex_lock failure + - GH #4710 UTF8::normalize() + - GH #4680 Poco::Path::forDirectory("C:") throws if the path is disk-letter only + - GH #4556 Overriding SocketReactor::run() is not reasonably possible + - GH #4553 Poco::Logger can not output __FILE__ and __LINE__ + - GH #4544 The load balancing issue in Poco::ActiveThreadPool + - GH #4502 Optional and Nullable Improvements + - GH #4431 Consolidate LogFile implementation to use FileOutputStream + - GH #4423 `Dynamic::Var` silently loses precision on int->float conversion + - GH #4230 Poco::Data fixes and improvements + - GH #3997 operator<<() for SocketAddress doesn't work with ADL + - GH #3801 ODBC: DataFormatException getting Time value from SQL Server + - GH #3656 Parse json into specified descendant class + - GH #2808 Failed to insert Poco::Nullable< Poco::Data::Date> data into MSSQL using ODBC + - GH #1540 Poco::DateTime uses assertions for validation + - GH #4769 pocoNetworkInitializer - change fixed path (Windows Platform related) + - GH #4716 Logging: JSONFormatter + - GH #4692 Stacktrace + - GH #4643 `ServerApplication` callbacks + - GH #4632 Add `prebuild` action to make build + - GH #4630 Make `Util::Application::getApplicationPath()` and `findAppConfigFile()` protected + - GH #4559 ServerApplication has no pidfile option on windows + - GH #4536 Serializable Isolation level for SQLite Databases + - GH #4529 SQLChannel stops logging on LoggingSubsystem shutdown + - GH #4493 PocoDoc: search support + - GH #4447 Add checkers for Any holding nullptr + - GH #4414 Improve NotificationCenter speed and usability + - GH #4413 StreamCopier range support + - GH #4409 Add string_view format type spec + - GH #4365 `Poco::Data::Statement`: unified '?' placeholder support + - GH #4341 1.12.4 version Json set enum value failed + - GH #4324 Poco:Data::ODBC - MSSQL (n)varchar(max) length issue + - GH #4001 Insert NULL using BULK + - GH #3281 DTLS 1.2 support + - PR #4777 enh(ODBC): ODBC: DataFormatException getting Time value from SQL Serv… + - PR #4774 Non-blocking sockets support (TLS, WebSocket) + - PR #4770 feat(WindowsBuild): customizable path to include for pocoNetworkInitializer #4769 + - PR #4755 Insert NULL using BULK #4001 + - PR #4748 Activity now sets _running flag to false when it finishes or throws. + - PR #4721 fix(Data::ODBC): use connection and login timeouts in ODBC session implementation + - PR #4714 Add missing relational operators to VarIterator + - PR #4699 Apply patches from Debian packaging + - PR #4693 Serializable Isolation level for SQLite Databases + - PR #4663 Fixed incorrect SSL_CTX_set0_tmp_dh_pkey() usage + - PR #4624 enh(Poco::ActiveThreadPool): make it easy to use correctly + - PR #4621 enh(FileStream): Add FileStreamBuf::resizeBuffer + - PR #4617 enh(CI): Add unbundled build on Linux. + - PR #4616 Cppunit and data test enhancements + - PR #4569 Allow ADL for swapping Optional values + - PR #4563 enh(MongoDB): Document::get returns value by const reference + - PR #3040 HTTPS proxy support + - PR #4734 File lock + - PR #4424 Allow using Poco::FileStream to wrap arbitrary file handles/descriptors as C++ streams + - PR #4685 CMake: Remove possibility to build with internal OpenSSL + +!!Bug Fixes and Improvements: + + - GH #4773 Non-blocking sockets support (TLS, WebSocket) + - GH #4768 Data: warning: 'isNull' overrides a member function but is not marked 'override' + - GH #4742 Poco does not build on AIX + - GH #4722 libcxx: error: implicit instantiation of undefined template 'std::char_traits' + - GH #4713 replaceInPlace std::wstring + - GH #4711 Poco::Placeholder initialization uses wrong size + - GH #4703 File Channel Logs in UTC Despite ‘times = local’ + - GH #4695 Build error with GCC-15 (class Poco::PriorityDelegate’ has no member named ‘_pTarget’) + - GH #4689 SMTPClientSession: replace bare newlines in message content with CRLF. + - GH #4668 Cross-module exception issue with pre-compiler define _HAS_EXCEPTIONS=0 used in an application + - GH #4664 HTTPCookie Constructor Fails to Handle Discard Attribute Properly + - GH #4648 ProcessRunner erases its PID file name + - GH #4644 TryParse scoped ipv6 addressess for addresses enclosed in [ ] + - GH #4634 Poco::ActiveThreadPool _targetCompleted event never reset + - GH #4610 Incorrect setting of ciphersuites for TLSv1.3 + - GH #4592 Significant performance degradation of Poco::DateTimeParser + - GH #4586 MacOS ARM64 build error: symbol `fdopen` is duplicated defined + - GH #4585 MacOS ARM64 build warning: 'OS_CODE' macro redefined + - GH #4557 NestedDiagnosticContext should be thread local + - GH #4540 Postgres CMakeList.txt + - GH #4535 decodeWord adds spaces at folding borders, when there are special characters encoded + - GH #4525 RecordSet issue since 1.10.0 + - GH #4503 GitHub runner: Linux thread sanitizer tests fail with "unexpected memory mapping" + - GH #4482 ProcessRunner does not detect launch errors + - GH #4395 There is no way to resolve host in advance and connect to HTTPS server with SNI. + - GH #4368 fix Oracle failing ODBC tests + - GH #3913 Missing sources in release package - buildwin.ps1 and NetSSL_Win + - GH #3896 TryParse scoped ipv6 addressess + - GH #3180 Poco::Environment::osDisplayName + - GH #2971 Poco::NamedEvent does not release System V semaphore on Linux + - GH #2439 Issue with log purging when FileChannel compression is enabled + - PR #4762 Properly define POCO_DLL and POCO_STATIC based on BUILD_SHARED_LIBS + - PR #4753 Openssl DH key size + - PR #4737 fix(cmake): fix Data::PostgreSQL target include, remove unnecessary cmake modules. + - PR #4727 GitHub runner ubuntu 24.04 and resolve some issues + - PR #4726 Explicitly define conditional LOB constructors for const (w)string & + - PR #4725 Exception (VS): static assert to make sure that _HAS_EXCEPTIONS is set + - PR #4702 SimpleRowFormatter.h: fix the build on `gcc-15` (unsatisfied `noexcept`) + - PR #4688 Fix double free in Net::MailMessage if Content-Disposition header is empty + - PR #4657 LibPNG Unbundled + - PR #4652 enh(ScopedLockWithUnlock): make it more alike std::unique_lock + - PR #4647 Use Int64 for TcpServerDispatcher::totalConnections() + - PR #4635 fix(Poco::Zip::ZipLocalFileHeader) Fix const-correctness + - PR #4622 fix(SimpleFileChannel): unify default "flush" to be false as it is in FileChannel + - PR #4613 Usage modern C++ features on JSON modules (enhanced) + - PR #4597 Fix MinGW build error + - PR #4593 DateTimeParser Validation and Performance Improvements + - PR #4550 enh: resolve unit test and few other warnings. + - PR #4545 Add CACHE PATH to multi-config output directory variables + - PR #4542 Decode word + - PR #4417 fix(logs): synchronise log file rotation and compression. + - PR #4085 Usage modern C++ features on JSON modules + + !!!Release 1.13.3 !!Summary of Changes