From 6564238ad83fa643c458b75914a95e3d0809fcd8 Mon Sep 17 00:00:00 2001 From: zosrothko Date: Tue, 31 Oct 2017 09:09:02 +0100 Subject: [PATCH] Add packaging directory. --- packaging/Boost License.rtf | 34 + packaging/CHANGELOG | 2604 ++++++++++++ packaging/Linux/Fedora/.gitignore | 0 packaging/Linux/Ubuntu/debian/.gitignore | 0 packaging/Other/.gitignore | 0 packaging/Other/VMS/.gitignore | 0 packaging/README.md | 111 + packaging/README.txt | 24 + packaging/Unix/.gitignore | 0 packaging/Unix/HP/.gitignore | 0 packaging/Unix/Sun/.gitignore | 0 .../NuGet/Pocoproject.Poco.vs140.nuspec | 46 + .../Pocoproject.Poco.vs140.symbols.nuspec | 25 + .../NuGet/Pocoproject.Poco.vs140.targets | 13 + packaging/Windows/NuGet/api.key | 1 + packaging/Windows/WiX/Poco 128x410.bmp | Bin 0 -> 157494 bytes packaging/Windows/WiX/Poco 312x312.jpg | Bin 0 -> 20438 bytes packaging/Windows/WiX/Poco 64x64.ico | Bin 0 -> 99678 bytes packaging/Windows/WiX/Poco Layers.bmp | Bin 0 -> 195678 bytes packaging/Windows/WiX/Poco Layers.png | Bin 0 -> 8091 bytes packaging/Windows/WiX/Poco-1.6.1.wxs | 3627 +++++++++++++++++ packaging/Windows/WiX/Poco-1.7.3.wxs | 3618 ++++++++++++++++ packaging/Windows/WiX/Poco-1.7.8.4.wxs | 3576 ++++++++++++++++ packaging/Windows/WiX/Poco-1.7.8.wxs | 3573 ++++++++++++++++ packaging/Windows/WiX/Poco-2.0.0.wxs | 3561 ++++++++++++++++ packaging/Windows/WiX/VS2013/.gitignore | 0 packaging/Windows/WiX/VS2015/.gitignore | 0 27 files changed, 20813 insertions(+) create mode 100644 packaging/Boost License.rtf create mode 100644 packaging/CHANGELOG create mode 100644 packaging/Linux/Fedora/.gitignore create mode 100644 packaging/Linux/Ubuntu/debian/.gitignore create mode 100644 packaging/Other/.gitignore create mode 100644 packaging/Other/VMS/.gitignore create mode 100644 packaging/README.md create mode 100644 packaging/README.txt create mode 100644 packaging/Unix/.gitignore create mode 100644 packaging/Unix/HP/.gitignore create mode 100644 packaging/Unix/Sun/.gitignore create mode 100644 packaging/Windows/NuGet/Pocoproject.Poco.vs140.nuspec create mode 100644 packaging/Windows/NuGet/Pocoproject.Poco.vs140.symbols.nuspec create mode 100644 packaging/Windows/NuGet/Pocoproject.Poco.vs140.targets create mode 100644 packaging/Windows/NuGet/api.key create mode 100644 packaging/Windows/WiX/Poco 128x410.bmp create mode 100644 packaging/Windows/WiX/Poco 312x312.jpg create mode 100644 packaging/Windows/WiX/Poco 64x64.ico create mode 100644 packaging/Windows/WiX/Poco Layers.bmp create mode 100644 packaging/Windows/WiX/Poco Layers.png create mode 100644 packaging/Windows/WiX/Poco-1.6.1.wxs create mode 100644 packaging/Windows/WiX/Poco-1.7.3.wxs create mode 100644 packaging/Windows/WiX/Poco-1.7.8.4.wxs create mode 100644 packaging/Windows/WiX/Poco-1.7.8.wxs create mode 100644 packaging/Windows/WiX/Poco-2.0.0.wxs create mode 100644 packaging/Windows/WiX/VS2013/.gitignore create mode 100644 packaging/Windows/WiX/VS2015/.gitignore diff --git a/packaging/Boost License.rtf b/packaging/Boost License.rtf new file mode 100644 index 000000000..c3bd8caf1 --- /dev/null +++ b/packaging/Boost License.rtf @@ -0,0 +1,34 @@ +{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Courier New;}} +{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\lang1036\f0\fs22 Boost Software License - Version 1.0 - August 17th, 2003\par +\par +Permission is hereby granted, free of charge, to any person or organization\par +obtaining a copy of the software and accompanying documentation covered by\par +this license (the "Software") to use, reproduce, display, distribute,\par +execute, and transmit the Software, and to prepare derivative works of the\par +Software, and to permit third-parties to whom the Software is furnished to\par +do so, all subject to the following:\par +\par +The copyright notices in the Software and this entire statement, including\par +the above license grant, this restriction and the following disclaimer,\par +must be included in all copies of the Software, in whole or in part, and\par +all derivative works of the Software, unless such copies or derivative\par +works are solely in the form of machine-executable object code generated by\par +a source language processor.\par +\par +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\par +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\par +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT\par +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE\par +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,\par +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\par +DEALINGS IN THE SOFTWARE.\par +\par +---------------------------------------------------------------------------\par +Note:\par +Individual files contain the following tag instead of the full license text.\par +\par + SPDX-License-Identifier: BSL-1.0\par +\par +This enables machine processing of license information based on the SPDX\par +License Identifiers that are here available: http://spdx.org/licenses/\par +} \ No newline at end of file diff --git a/packaging/CHANGELOG b/packaging/CHANGELOG new file mode 100644 index 000000000..7b52f594e --- /dev/null +++ b/packaging/CHANGELOG @@ -0,0 +1,2604 @@ +This is the changelog file for the POCO C++ Libraries. + +Release 1.7.8p4 (2017-08-11) +============================ + +- fixed GH #1813: xmlparse.cpp doesn't compile in WinCE (poco 1.7.8p3) +- fixed GH #1834: Visual Studio 2008 cannot find stdint.h +- fixed GH #1842: Upgrade bundled expat to 2.2.3 +- fixed GH #1843: Use random salt for Poco::XML::NamePool + + +Release 1.7.8p3 (2017-06-22) +============================ + +- fixed GH #1760: Upgrade bundled expat to 2.2.1 which fixes some vulnerabilities: + http://seclists.org/oss-sec/2017/q2/499 + + +Release 1.7.8p2 (2017-04-18) +============================ + +- fixed GH #1655: CipherImpl memory leak with OpenSSL 1.1 + + +Release 1.7.8 (2017-02-21) +========================== + +- fixed GH #1212: Lost WebSocket Frames after Client Websocket Handshake is complete +- fixed GH #1260: URI encoding +- fixed GH #1501: Alpine 3.4 trouble with Foundation/src/Error.cpp +- fixed GH #1523: Long path names under Windows +- fixed GH #1536: Building with OS X 10.12 SDK and 10.7 deployment target without libc++ fails +- fixed GH #1537: Need to add multiple cflags parameters to configure +- fixed GH #1539: Allow overriding POCO_TARGET_OSARCH for iPhoneSimulator +- fixed GH #1546: Enable bitcode for iPhone build config +- fixed GH #1549: Latin2Encoding and 0xFF +- fixed GH #1551: Unable to use Poco on macOS 10.12 +- fixed GH #1552: IPv6 & operator throws an exception when scope = 0 +- fixed GH #1566: Poco/Zip issue with some CM_DEFLATE archives +- fixed GH #1567: Poco/ZIP issue with uncompressed archives +- fixed GH #1570: IPv6AddressImpl::toString() returns wrong output for IPv6 address "::" +- fixed GH #1571: ODBC Preparator memory leak +- fixed GH #1573: Poco::File::createDirectories() should not throw Poco::FileExistsException +- fixed GH #1580: Unable to unzip zip file created using non-seeking stream +- fixed GH #1581: Cannot find 'pcre.h' when using POCO_UNBUNDLED, a non-system PCRE, and CMake +- fixed GH #1588: Poco::Net::HTTPChunkedStreamBuf::readFromDevice(): restrict maximum + size of chunk length +- fixed GH #1589: Poco::Net::HTMLForm: restrict maximum field and value length +- fixed GH #1590: Poco::Net::DialogSocket: restrict maximum line length +- fixed GH #1591: Poco::Net::MultipartReader: restrict maximum boundary string length +- fixed GH #1597: adding empty file to zip leads to archive that can't be unzipped by windows +- fixed GH #1599: readFromDevice() in AutoDetectStream.cpp in Poco Zip cannot detect signature +- fixed GH #1534: Upgraded bundled zlib to 1.2.11 +- fixed GH #1558: Upgraded bundled SQLite to 3.16.2 +- fixed GH #1586: Upgraded bundled PCRE to 8.40 +- fixed GH #1538: Upgraded bundled double-conversion to 1.1.5 +- MongoDB: added support for authentication using "MONGODB-CR" and "SCRAM-SHA-1" + authentication schemes. +- MongoDB: additional documentation and fixes for style and consistency and minor + API improvements (e.g., Poco::MongoDB::Binary) + Note: some flag enumeration values have been renamed for better consistency + and readability; existing code using these will have to be updated. + + +Release 1.7.7 (2016-12-31) +========================== + +- fixed GH #865: FileChannel compress fails leaving empty .gz files +- fixed GH #990: Potential race condition in Poco::File on Windows +- fixed GH #1157: Fixing a bug in the NetSSL_Win module (Host name verification failed error) +- fixed GH #1351: Fix for android include pthread.h from /usr/include +- fixed GH #1436: ODBC Bug: Unicode text(NVARCHAT) read from DB is truncated to half +- fixed GH #1453: _clock_gettime Symbol not found on Mac 10.11 +- fixed GH #1460: POCO does not build with OpenSSL 1.1 +- fixed GH #1461: Poco::Data::SQLite::SQLiteStatementImpl::next() error +- fixed GH #1462: AbstractConfiguration::getUInt does not parse hex numbers +- fixed GH #1464: ODBCMetaColumn::init() always maps integer NUMERIC/DECIMAL to Int32 +- fixed GH #1465: Assertion violation in DateTime.cpp using ZipArchive +- fixed GH #1472: HTTP(S)StreamFactory should send a User-Agent header. +- fixed GH #1476: Fixed error with Poco::UTF8Encoding::isLegal() +- fixed GH #1484: ODBC: fix uninitialized variable +- fixed GH #1486: Support ODBC GUID data type as string +- fixed GH #1488: Poco::ObjectPool shrinks if returned object is not valid +- fixed GH #1515: Detection of closed websocket connection +- fixed GH #1521: bug in JSON ParseHandler.cpp (empty keys should be valid) +- fixed GH #1526: iOS app rejected, IPv6 not working +- fixed GH #1532: RecordSet and RowFilter: bad use of reference counter + + +Release 1.7.6 (2016-10-18) +========================== + +- fixed GH #1298: ZipFileInfo: Assertion violation when reading ods files +- fixed GH #1315: Redefine Poco assertions for static analysis +- fixed GH #1397: Fix issues reported by static source code analysis +- fixed GH #1403: Android compile with poco-1.7.5 no 'pthread_condattr_setclock' error +- fixed GH #1416: Assertion violation when unzipping +- fixed GH #1418: Poco::Delegate assignment operator fails to compile for some specializations +- fixed GH #1422: Can't build poco 1.7.4 or 1.7.5 on centos5 32 bit +- fixed GH #1429: exception thrown in MongoDB when using replicaset +- fixed GH #1431: Poco/FIFOBuffer.h copy issue +- fixed GH #1445: Use stable_sort to preserve order of IP addresses from DNS +- fixed GH #1456: better handle leap seconds in Poco::DateTime and Poco::LocalDateTime +- fixed GH #1458: Probably invalid epoll_create() usage inside Poco/Socket.cpp +- Poco::XML::NamePool: increased default size from 251 to 509. Default size can now + be changed by defining the POCO_XML_NAMEPOOL_DEFAULT_SIZE macro accordingly. +- Enchancements: Poco::XML::Document and Poco::XML::DOMParser have new constructors + taking a NamePool size. Poco::Util::XMLConfiguration::load() also has a new overload + for that purpose. +- Improved error handling in the Zip library (getting rid of some poco_assert macros + and did proper error handling instead). +- Added Poco::URISyntaxException (subclass of Poco::SyntaxException), which is now + thrown by Poco::URI. +- Improved error handling in Poco::URIStreamOpener::open(). +- Poco::Data::MySQL: Handle connection lost/server gone error when starting a transaction + and retry. +- XMLConfiguration default (and single-argument delimiter) constructor now loads an empty + XML document with "config" root element to make the configuration usable without an + additional call to load() or loadEmpty(). + + +Release 1.7.5 (2016-08-29) +========================== + +- fixed GH #1252: Unable to compile Poco::Data for Windows Compact Embedded 2013 +- fixed GH #1344: Poco::Event::wait(timeout) should use CLOCK_MONOTONIC on Linux +- fixed GH #1355: [JSON::Object] After copy-ctor, JSON::Object::_keys still points to + keys in map of copied object +- GH #1361: Shell expansion rules say that tilde must be replaced with $HOME before + calling getpwuid +- Poco::SingletonHolder: added reset() method +- prefer clock_getttime() over gettimeofday() if available +- Upgraded bundled SQLite to 3.14.1 + + +Release 1.7.4 (2016-07-20) +========================== + +- fixed GH #1300: Session constructor hangs +- fixed GH #1303: HTTPSClientSession::sendRequest() fails if server has wildcard cert +- fixed GH #1304: URI doesn't know "ws:/" or "wss://" schemes +- fixed GH #1307: Upgrade bundled expat to 2.2.0 +- fixed GH #1313: XML library compilation error +- fixed GH #1316: Empty SocketReactor never sleeps +- Upgraded bundled SQLite to 3.13.0 + + +Release 1.7.3 (2016-05-02) +========================== + +- fixed GH #993: Invalid zip format when opening a docx in word +- fixed GH #1235: Poco::Net::HTTPClientSession::sendRequest() should also handle HTTP_PATCH +- fixed GH #1236: Remove Poco::Data::Row::checkEmpty() as it prevents Row from being used + with all NULL rows +- fixed GH #1239: Poco::Zip::Compress with non-seekable stream fails for CM_STORE +- fixed GH #1242: Poco::Data::RowFormatter generate exception if the first column of first + row is null +- fixed GH #1253: ListMap does not maintain insertion order if key already exists +- Upgraded bundled SQLite to 3.12.2 + + +Release 1.7.2 (2016-03-21) +========================== + +- fixed GH #1197: Upgrade bundled expat to 2.1.1 + Expat 2.1.1 fixes a CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1283 +- fixed GH #1204: getdtablesize has been removed on Android 21 +- fixed GH #1203: Poco::Data::RecordSet should be reusable +- fixed GH #1198: Upgrade bundled SQLite to 3.12.1 + + +Release 1.7.1 (2016-03-14) +========================== + +- fixed GH #1187: Data/MySQL: Seeing frequent "MySQL server has gone away" errors +- fixed GH #1184: Attempting to connect via a proxy throws a DNS error "Host not found" +- fixed GH #1180: Possible deadlock when TaskManager::count() is called in onFinished +- NetSSL_OpenSSL: use TLS_*_method() instead of deprecated SSLv23_*_method() + if OpenSSL version is >= 1.1; initialize default/fallback client context to support + all TLS protocols, not just TLSv1 + + +Release 1.7.0 (2016-03-07) +========================== + +- POSSIBLE BREAKING CHANGE: removed automatic registration of Data connectors due to + issues with static initialization order. +- NetSSL_OpenSSL: added support for ECDH and DH ciphers; added support to disable + specific protocols (Poco::Net::Context::disableProtocols()); + new Poco::Net::Context constructor taking a Poco::Net::Context::Params structure that + allows specifying ECDH and DH parameters. +- Poco::Net::TCPServer: add additional try ... catch block around poll() to + gracefully deal with errors due to high system load (e.g., out of file descriptors). +- fixed GH #1171: Poco::Data::RecordSet: rowCount not reset after execute +- fixed GH #1167: CMake & POCO_UNBUNDLED: expat sources are compiled in libPocoXML +- fixed GH #1160: Poco::Net::NetException + "SSL Exception: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry" +- fixed GH #1152: Wrong TaskProgressNotification description +- fixed GH #1141: Poco::StringTokenizer::TOK_TRIM changes behavior between 1.4 and 1.6 +- fixed GH #1137: Missing 'longint' type in SQLite +- fixed GH #1135: Different package on github and official web site +- fixed GH #1030: tvOS / WatchOS bitcode enabled for simulators +- fixed GH #1114: World-write permissions on files created by daemon +- fixed GH #1087: prevent line breaks in base64-encoded creds +- fixed GH #1026: Fixes for producing the poco-1.6.2 release on a Cygwin x86 platform +- fixed GH #1022: Abbreviation in setThreadName can happen even if thread name is not too long +- fixed GH #1002: ActiveDispatcher saves reference to event context after event was + performed until it gets new event +- fixed GH #973: overwrite existing files on windows when moving files +- fixed GH #969: Poco::File::renameTo() behaviour differs on windows and linux +- fixed GH #967: Missing data types in SQLite +- fixed GH #966: Possible crash when processing a corrupted Zip file +- fixed GH #958: Bug while reading X509Certificate subjectName +- fixed GH #937: Missing build_vs140.cmd +- fixed GH #933: Change in JSON::Object::set(key,value) behavior in 1.6.1 +- fixed GH #931: make strToInt() more strict in what it accepts +- fixed GH #921: `BasicUnbufferedStreamBuf` needs to be marked for import/export +- fixed GH #848: MailMessage::_encoding is not set when retrieving plain/text message +- fixed GH #767: Inconsistency in getPath & getPathAndQuery returns +- fixed GH #724: Poco 1.6.0 is not compiled with openssl 1.0.0 +- fixed GH #713: Improved support for producing Canonical XML in XMLWriter +- fixed GH #696: bug in parsing name of attachment poco c++ 1.6.0 +- fixed GH #335: Compress with nonseekable +- upgraded bundled SQLite to 3.11.0 +- added Poco::Crypto::X509Certificate::equals() to compare two certificates +- support for detecting Win8/Win10 in Poco::Environment +- Poco::Net::HTTPServerRequestImpl: fixed an issue with DELETE in persistent connections +- NetSSL: added Context::preferServerCiphers() +- NetSSL: added support for ECDH, new Context constructor +- NetSSL: add support for disabling certain protocols +- SMTPClientSession: added support for XOAUTH2 authentication +- Poco::Data::SessionPool: re-added customizeSession() method from 1.4.x releases +- improved SSLManager to automatically set-up a reasonable client Context if + none is configured +- add brew OpenSSL search paths to Darwin configs +- add HTTP/1.1 version to HTTPRequest for client WebSocket, as this is required for + most servers +- remove GCC_DIAG_OFF as this caused more issues than it solved +- respect POCO_NO_FORK_EXEC in ServerApplication (tvOS) +- tvOS and WatchOS support +- fix: need an implementation of available() for WebSocketImpl +- HTTPSessionInstantiator: respect global proxy config +- added constant for HTTP PATCH method to Poco::Net::HTTPRequest +- NumberParser::parseHex[64](): allow 0x/0X prefix + + +Release 1.6.1 (2015-08-03) +========================== + +- added project and solution files for Visual Studio 2015 +- upgraded bundled SQLite to 3.8.11.1 +- fixed GH #782: Poco::JSON::PrintHandler not working for nested arrays +- fixed GH #819: JSON Stringifier fails with preserve insert order +- fixed GH #878: UUID tryParse +- fixed GH #869: FIFOBuffer::read(T*, std::size_t) documentation inaccurate +- fixed GH #861: Var BadCastException +- fixed GH #779: BUG in 1.6.0 Zip code +- fixed GH #769: Poco::Var operator== throws exception +- fixed GH #766: Poco::JSON::PrintHandler not working for objects in array +- fixed GH #763: Unable to build static with NetSSL_OpenSSL for OS X +- fixed GH #750: BsonWriter::write missing size ? +- fixed GH #741: Timestamp anomaly in Poco::Logger on WindowsCE +- fixed GH #735: WEC2013 build fails due to missing Poco::Path methods. +- fixed GH #722: poco-1.6.0: Unicode Converter Test confuses string and char types +- fixed GH #719: StreamSocket::receiveBytes and FIFOBuffer issue in 1.6 +- fixed GH #706: POCO1.6 Sample EchoServer BUG +- fixed GH #646: Prevent possible data race in access to Timer::_periodicInerval +- DeflatingStream: do not flush underlying stream on sync() as these can cause + corrupted files in Zip archives + + +Release 1.6.0 (2014-12-22) +========================== + +- fixed GH #625: MongoDB ensureIndex double insert? +- fixed GH #622: Crypto: RSATest::testSign() should verify with public key only +- fixed GH #620: Data documentation sample code outdated +- fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp +- fixed GH #616: Visual Studio warning C4244 +- fixed GH #612: OpenSSLInitializer calls OPENSSL_config but not CONF_modules_free +- fixed GH #608: (Parallel)SocketAcceptor ctor/dtor call virtual functions +- fixed GH #607: Idle Reactor high CPU usage +- fixed GH #606: HTMLForm constructor read application/x-www-form-urlencoded UTF-8 request + body first parameter with BOM in name +- fixed GH #596: For OpenSSL 1.0.1, include openssl/crypto.h not openssl/fips.h +- fixed GH #592: Incorrect format string in Poco::Dynamic::Struct +- fixed GH #590: Poco::Data::SQlite doesn't support URI filenames +- fixed GH #564: URI::encode +- fixed GH #560: DateTime class calculates a wrong day +- fixed GH #549: Memory allocation is not safe between fork() and execve() +- fixed GH #500: SSLManager causes a crash +- fixed GH #490: 2 byte frame with payload length of 0 throws "Incomplete Frame Received" exception +- fixed GH #483: multiple cases for sqlite_busy +- fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour +- fixed GH #478: HTTPCredentials not according to HTTP spec +- fixed GH #471: vs2010 release builds have optimization disabled ? +- fixed GH #468: HTTPClientSession/HTTPResponse not forwarding exceptions +- fixed GH #438: Poco::File::setLastModified() doesn't work +- fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are + not thread safe +- fixed GH #345: Linker warning LNK4221 in Foundation for SignalHandler.obj, String.obj + and ByteOrder.obj +- fixed GH #331: Poco::Zip does not support files with ".." in the name. +- fixed GH #318: Logger local time doesn't automatically account for DST +- fixed GH #294: Poco::Net::TCPServerParams::setMaxThreads(int count) will not accept count == 0. +- fixed GH #215: develop WinCE build broken +- fixed GH #63: Net::NameValueCollection::size() returns int +- Poco::Logger: formatting methods now support up to 10 arguments. +- added Poco::Timestamp::raw() +- Poco::DeflatingOutputStream and Poco::InflatingOutputStreams also flush underlying stream + on flush()/sync(). +- Poco::Util::Timer: prevent re-schedule of cancelled TimerTask +- enabled WinRegistryKey and WinRegistryConfiguration for WinCE +- Poco::BasicEvent improvements and preparations for future support of lambdas/std::function +- upgraded bundled sqlite to 3.8.7.2 +- Poco::Thread: added support for starting functors/lambdas +- Poco::Net::HTTPClientSession: added support for global proxy configuration +- added support for OAuth 1.0/2.0 via Poco::Net::OAuth10Credentials and + Poco::Net::OAuth20Credentials classes. +- Poco::Net::IPAddress: fixed IPv6 prefix handling issue on Windows +- added Poco::Timestamp::TIMEVAL_MIN and Poco::Timestamp::TIMEVAL_MAX +- added Poco::Clock::CLOCKVAL_MIN and Poco::Clock::CLOCKVAL_MAX +- added poco_assert_msg() and poco_assert_msg_dbg() macros +- Poco::Net::Context: fixed a memory leak if the CA file was not found while creating the + Context object (the underlying OpenSSL context would leak) +- Poco::URI: added new constructor to create URI from Path +- Various documentation and style fixes +- Removed support (project/solution files) for Visual Studio.NET 2003 and Visual Studio 2005. +- Improved CMake support + + +Release 1.5.4 (2014-10-14) +========================== + +- fixed GH #326: compile Net lib 1.5.2 without UTF8 support enabled +- fixed GH #518: NetworkInterface.cpp compile error w/ POCO_NO_WSTRING (1.5.3) +- Fixed MSVC 2010 warnings on large alignment +- make HTTPAuthenticationParams::parse() add value on end of string +- fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour +- fixed GH #508: Can't compile for arm64 architecture +- fixed GH #510: Incorrect RSAKey construction from istream +- fix SharedMemory for WinCE/WEC2013 +- Add NIOS2 double conversion detection, fixes compile errors +- added VS2013 project/solution files for Windows Embedded Compact 2013 +- added Process::isRunning() +- NetSSL: Fix typo in documentation +- NetSSL_OpenSSL: support for TLS 1.1 and 1.2 +- Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based + on file extension. Used to avoid double-compression of already compressed file + formats such as images. +- added %L modifier to PatternFormatter to switch to local time +- removed unnecessary explicit in some multi-arg constructors +- Allow SecureStreamSocket::attach() to be used in server connections +- added Var::isBoolean() and fixed JSON stringifier +- added poco_unexpected() macro invoking Bugcheck::unexpected() to deal + with unexpected exceptions in destructors +- fixed GH #538 prevent destructors from throwing exceptions +- improved HTTP server handling of errors while reading header +- fixed GH #545: use short for sign +- upgraded SQLite to 3.8.6 +- fixed GH #550 WebSocket fragmented message problem +- improved HTTPClientSession handling of network errors while sending the request +- updated bundled PCRE to 8.35.0 +- fixed GH #552: FIFOBuffer drain() problem +- fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are + not thread safe +- HTTPCookie: fix documentation for max age +- added Timestamp::raw() and Clock::raw() +- Poco::Buffer properly handles zero-sized buffers +- GH #512: Poco:Data:ODBC:Binder.h causes a crash +- Added Crypto_Win and NetSSL_Win libraries which are re-implementations of existing + Crypto and NetSSL_OpenSSL libraries based on WinCrypt/Schannel. The new libraries + can be used as an almost drop-in replacement for the OpenSSL based libraries on + Windows and Windows Embedded Compact platforms. Only available from GitHub for now. + + +Release 1.5.3 (2014-06-30) +========================== + +- fixed GH# 316: Poco::DateTimeFormatter::append() gives wrong result for + Poco::LocalDateTime +- Poco::Data::MySQL: added SQLite thread cleanup handler +- Poco::Net::X509Certificate: improved and fixed domain name verification for + wildcard domains +- added Poco::Clock class, which uses a system-provided monotonic clock + (if available) and is thus not affected by system realtime clock changes. + Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms + supporting clock_gettime() and CLOCK_MONOTONIC. +- Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer + have been changed to use Poco::Clock instead of Poco::Timestamp and are now + unaffected by system realtime clock changes. +- fixed GH# 350: Memory leak in Data/ODBC with BLOB +- Correctly set MySQL time_type for Poco::Data::Date. +- fixed GH #352: Removed redundant #includes and fixed spelling mistakes. +- fixed setting of MYSQL_BIND is_unsigned value. +- fixed GH #360: CMakeLists foundation: add Clock.cpp in the list of source files +- Add extern "C" around on HPUX platform. +- added runtests.sh +- fixed CPPUNIT_IGNORE parsing +- fixed Glob from start path, for platforms not alowing transverse from root (Android) +- added NTPClient (Rangel Reale) +- added PowerShell build script +- added SmartOS build support +- fix warnings in headers +- XMLWriter: removed unnecessary apostrophe escaping (&apos) +- MongoDB: use Int32 for messageLength +- fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours +- Improve RSADigestEngine, using Poco::Crypto::DigestEngine to calculate hash before signing +- added Poco::PBKDF2Engine +- Fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours +- added support for a 'Priority' attribute on cookies. +- GH #386: fixed bug in MailMessage without content-transfer-encoding header +- GH #384: ew hash algorithms support for RSADigestEngine +- fixed Clock overflow bug on Windows +- Poco::ByteOrder now uses intrinsics, if available +- CMake: added /bigobj option for msvc +- Fix typo to restore Net/TestSuite_x64_vs120 build +- correct path for CONFIGURE_FILE in CMakeLists.txt +- Building Poco 1.5.2 for Synology RS812+ (Intel Atom) (honor POCO_NO_INOTIFY) +- added WEC2013 support to buildwin.cmd and buildwin.ps1 +- HTMLForm: in URL encoding, percent-encode more characters +- Fixed #include conflict with other libraries +- Poco::Net::X509Certificate::verify() no longer uses DNS reverse lookups to validate host names +- cert hostname validation is case insensitive and stricter for wildcard certificates +- TCPServer: do not reduce the capacity of the default ThreadPool +- added POCO_LOG_DEBUG flag +- Zip: fixed a crash caused by an I/O error +- added runtest script for windows +- added SQlite Full Text Search support +- added Thread::trySleep() and Thread::wakeUp() +- fixed GH #410: Bug in JSON::Object.stringify() in 1.5.2 +- fixed GH #362: Defect in Var::parseString when there is no space between value and newline +- fixed GH #314: JSON parsing bug +- added GH #313: MetaColumn additions for Data::ODBC and Data::SQLite +- fixed GH #346: Make Poco::Data::Date and Poco::Data::Time compare functions const. +- fixed GH #341: Compiling poco-1.5.2 for Cygwin +- fixed GH #305: There are bugs in Buffer.h +- fixed GH #321: trivial build fixes (BB QNX build) +- fixed GH #440: MongoDB ObjectId string formatting +- added SevenZip library (Guenter Obiltschnig) +- fixed GH #442: Use correct prefix length field of Windows IP_ADAPTER_PREFIX structure +- improved GH #328: NetworkInterface on Windows XP +- fixed GH #154 Add support for MYSQL_TYPE_NEWDECIMAL to Poco::Data::MySQL +- fixed GH #290: Unicode support +- fixed GH #318: Logger local time doesn't automatically account for DST +- fixed GH #363: DateTimeParser tryParse/parse +- added HTMLForm Content-Length calculation (Rangel Reale) +- Make TemporaryFile append a slash to tempDir +- fixed GH #319 android build with cmake +- added hasDelegates() method to AbstractEvent +- fixed GH #230: Poco::Timer problem +- fixed GH #317: Poco::Zip does not support newer Zip file versions. +- fixed GH #176: Poco::JSON::Stringifier UTF encoding +- fixed GH #458: Broadcast address and subnet mask for IEEE802.11 network interface +- fixed GH #456: poco: library install dirs per RUNTIME/LIBRARY/ARCHIVE + + +Release 1.5.2 (2013-09-16) +========================== + +- added MongoDB library +- fixed GH #57: poco-1.5.1: Doesn't compile for Android +- added VoidEvent (Arturo Castro) +- fixed GH #80: NumberFormatter::append broken +- fixed GH #93: ParallelSocketAcceptor virtual functions +- optional small object optimization for IPAddress, SocketAddress, Any and Dynamic::Var +- SQLite events (insert, update, delete, commit, rollback) handlers +- merged GH #91: Improve SQLite multi-threaded use (Rangel Reale) +- merged GH #86: Invalid pointers to vector internals (Adrian Imboden) +- automatic library initialization macros +- fixed GH #110: WebSocket accept() fails when Connection header contains multiple tokens +- fixed GH #71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) +- fixed a warning in Poco/Crypto/OpenSSLInitializer.h +- fixed GH #109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain +- added clang libc++ build configurations for Darwin and iPhone (Andrea Bigagli) +- fixed GH #116: Wrong timezone parsing in DateTimeParse (Matej Knopp) +- fixed GH #118: JSON::Object::stringify endless loop +- added Recursive and SortedDirectoryIterator (Marian Krivos) +- added ListMap (map-like container with preserving insertion order) +- MailMessage: attachments saving support and consistent read/write +- fixed GH #124: Possible buffer overrun in Foundation/EventLogChannel +- fixed GH #119: JSON::Object holds values in ordered map +- added JSON::PrintHandler +- renamed JSON::DefaultHandler to ParseHandler (breaking change!) +- fixed GH #127: Eliminate -Wshadow warnings +- fixed GH #79: Poco::Thread leak on Linux +- fixed GH #61: static_md build configs for Crypto and NetSSL +- fixed GH #130: prefer sysconf over sysctlbyname +- fixed GH #131: no timezone global var on OpenBSD +- fixed GH #102: Some subprojects don't have x64 solutions for VS 2010 +- added GH #75: Poco::Uri addQueryParameter method +- Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 +- fixed GH #140: Poco::Runnable threading cleanup issue +- simplified default TCP/HTTPServer construction +- fixed GH #141: Application::run() documentation/implementation discrepancy +- changed RowFormatter to SharedPtr in Data::RecordSet interface (breaking change!) +- fixed GH #144: Poco::Dynamic emits invalid JSON +- removed naked pointers from Data interfaces +- fixed GH #82: name conflict in Data::Keywords::bind +- fixed GH #157: MySQL: cannot bind to 'long' data type on Windows/Visual C++ +- fixed GH #158: MySQL: MYSQL_BIND 'is_unsigned' member is not set +- fixed GH #160: MultipartReader ignores first part, if preamble is missing +- fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel +- XML: fixed an issue with parsing a memory buffer > 2 GB +- upgraded to expat 2.1.0 +- Data/ODBC: added support for setting query timeout (via setProperty + of "queryTimeout"). Timeout is int, given in seconds. +- fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() + and also removed unnecessary code. +- fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so + has been unloaded. +- fixed GH #155: MailOutputStream mangles consecutive newline sequences +- fixed GH #139: FileChannel::PROP_FLUSH is invalid (contains a tab character) +- fixed GH #173: HTTPClientSession::proxyConnect forces DNS lookup of host names +- fixed GH #194: MessageNotification constructor is inefficient. +- fixed GH #189: Poco::NumberParser::tryParse() documentation bug +- fixed GH #172: IPv6 Host field is stripped of Brackets in HTTPClientSession +- fixed GH #188: Net: SocketAddress operator < unusable for std::map key +- fixed GH #128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is + already specified +- fixed GH #65: Poco::format() misorders sign and padding specifiers +- upgraded bundled SQLite to 3.7.17 +- replaced JSON parser with Poco::Web::JSON parser (from sandbox) +- added JSON conversion to Dynamic Struct and Array +- added VarIterator +- modified behavior of empty Var (empty == empty) +- added Alignment.h header for C++03 alignment needs +- added Data/WebNotifier (DB, WebSocket) example +- fixed GH #209: Poco::NumberFormatter double length +- fixed GH #204: Upgrade zlib to 1.2.8 +- fixed GH #198: The "application.configDir" property is not always created. +- fixed GH #185: Poco::NumberFormatter::format(double value, int precision) + ignore precision == 0 +- fixed GH #138: FreeBSD JSON tests fail +- fixed GH #99: JSON::Query an JSON::Object +- limited allowed types for JSON::Query to Object, Array, Object::Ptr, + Array::Ptr and empty +- fixed GH #175: HTMLForm does not read URL parameters on POST or PUT +- added GH #187: MySQL: allow access to the underlying connection handle +- added GH #186: MySQL: support for MYSQL_SECURE_AUTH +- fixed GH #174: MySQL: 4GB allocated when reading any largetext or largeblob field +- fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused + (e.g., sendRequest() is sent two times in a row without an intermediate call to + receiveResponse(), or by calling receiveResponse() two times in a row without + an intermediate call to sendRequest()) - GH #217 +- removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession + that would provide inappropriate access to internal state +- merged GH #210: Don't call CloseHandle() twice on Windows; Ability to select the + threadpool that will be used to start an Activity(Patrice Tarabbia) +- fixed GH #212: JSONConfiguration was missing from the vs90 project(Patrice Tarabbia) +- fixed GH #220: add qualifiers for FPEnvironment in C99 (Lucas Clemente) +- fixed GH #222: HTTPCookie doesn't support expiry times in the past (Karl Reid) +- fixed GH #224: building 1.5.1 on Windows for x64 +- fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work +- fixed GH# 231: Compatibility issue with Poco::Net::NetworkInterface +- fixed GH# 236: Bug in RecursiveDirectoryIterator +- added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting + colorizing log messages +- fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll +- fixed GH# 254: UTF8::icompare unexpected behavior +- Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation + (links to specifications). +- added GH# 268: Method to get JSON object value using Poco::Nullable +- fixed GH# 267: JSON 'find' not returning empty result if object is expected but another value is found +- Added support for ARM64 architecture and iPhone 5s 64-bit builds + (POCO_TARGET_OSARCH=arm64). + + +Release 1.5.1 (2013-01-11) +========================== + +- using double-conversion library for floating-point numeric/string conversions +- added Poco::istring (case-insensitive string) and Poco::isubstr +- added SQLite sys.dual (in-memory system table) +- applied SF Patch #120: The ExpireLRUCache does not compile with a tuple as key on Visual Studio 2010 +- fixed SF Bug #599: JSON::Array and JSON::Object size() member can implicitly lose precision +- fixed SF Bug #602: iterating database table rows not correct if no data in table +- fixed SF Bug #603: count() is missing in HashMap +- fixed GH #23: JSON::Object::stringify throw BadCastException +- fixed GH #16: NetworkInterface::firstAddress() should not throw on unconfigured interfaces +- Android compile/build support (by Rangel Reale) +- TypeHandler::prepare() now takes const-reference +- fixed GH #27: Poco::URI::decode() doesn't properly handle '+' +- fixed GH #31: JSON implementation bug +- fixed SF #597: Configure script ignores cflags +- fixed SF #593: Poco 1.5.0 on FreeBSD: cannot find -ldl +- added SF #542: SocketAddress() needs port-only constructor +- fixed SF #215: Wrong return type in SocketConnector.h +- applied SF Patch #97: fix c++0x / clang++ bugs +- fixed GH32/SF596: Poco::JSON: Parsing long integer (int64) value fails. +- added Net ifconfig sample (contributed by Philip Prindeville) +- merged GH #34: add algorithm header (Roger Meier/Philip Prindeville) +- fixed GH #26: Cannot compile on gcc +- merged SF #111: FTP Client logging (Marian Krivos) +- fixed GH #30: Poco::Path::home() throws when called from Windows Service +- fixed GH #22: MySQL connection string lowercased +- added MySQL support for Date/Time +- upgraded SQLite to version 3.7.15.1 (2012-12-19) +- improved SQLite execute() return (affected rows) value and added tests +- added SQLite::Utility::isThreadSafe() function +- added SQLite::Utility::setThreadMode(int mode) function +- fixed GH #36: 'distclean' requires 3 traversals of project tree +- fixed GH #41: Buffer::resize crash +- fixed GH #42: Linux unbundled builds don't link +- fixed GH #44: Problems with win x64 build +- fixed GH #46: 1.5.1 build fails on OS X when using libc++ +- fixed GH #48: Need getArgs() accessor to Util::Application to retrieve start-up arguments +- fixed GH #49: NetworkInterface::list doesn't return MAC addresses +- fixed GH #51: Android should use isfinite, isinf, isnan and signbit from the std namespace +- fixed GH #53: JSON unicode fixes and running tests on invalid unicode JSON +- added ParallelAcceptor and ParallelReactor classes +- added EOF and error to FIFOBuffer + + +Release 1.5.0 (2012-10-14) +========================== + +- added JSON library +- added Util::JSONConfiguration +- added FIFOBuffer and FIFOBufferStream +- fixed SF# 3522906: Unregistering handlers from SocketReactor +- fixed SF# 3522084: AbstractConfiguration does not support 64-bit integers +- HTTPServer::stopAll(): close the socket instead of just shutting it down, as the latter won't wake up a select() on Windows +- added SMTPLogger +- added cmake support +- fixed SF#3538778: NetworkInterface enumeration uses deprecated API +- fixed SF#3538779: IPAddress lacks useful constructors: from prefix mask, native SOCKADDR +- fixed SF#3538780: SocketAddress needs operator < function +- fixed SF#3538775: Issues building on Fedora/Centos, etc. for AMD64 +- fixed SF#3538786: Use size_t for describing data-blocks in DigestEngine +- added IPAddress bitwise operators (&,|,^,~) +- added IPAddress BinaryReader/Writer << and >> operators +- modified IPAddress to force IPv6 to lowercase (RFC 5952) +- fixed SF#3538785: SMTPClientSession::sendMessage() should take recipient list +- added IPAddress::prefixLength() +- UTF portability improvements +- fixed SF#3556186: Linux shouldn't use in Net/SocketDefs.h +- added IPAddress RFC 4291 compatible site-local prefix support +- fixed SF#3012166: IPv6 patch +- added SF#3558085: Add formatter to MACAddress object +- fixed SF#3552774: Don't hide default target in subordinate makefile +- fixed SF#3534307: Building IPv6 for Linux by default +- fixed SF#3516844: poco missing symbols with external >=lipcre-8.13 +- added SF#3544720: AbstractConfigurator to support 64bit values +- fixed SF#3522081: WinRegistryConfiguration unable to read REG_QWORD values +- fixed SF#3563626: For Win32 set Up/Running flags on NetworkInterface +- fixed SF#3560807: Deprecate setPeerAddress() as this is now done in getifaddrs +- fixed SF#3560776: Fix byte-ordering issues with INADDR_* literals +- fixed SF#3563627: Set IP address on multicast socket from socket family +- fixed SF#3563999: Size BinaryWriter based on buffer's capacity(), not size() +- fixed SF#102 Fix building Poco on Debian GNU/kFreeBSD +- fixed SF#321 Binding DatTime or Timestamp +- fixed SF#307 Detect the SQL driver type at run time +- added VS 2012 Projects/Solutions +- enhanced and accelerated numeric parsing for integers and floats +- fixed SF#590 Segfault on FreeBSD when stack size not rounded +- added warn function and warnmsg macro in CppUnit +- fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x +- fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS +- fixed SF#3562244: Portability fix for AF_LINK +- fixed SF #3562400: DatagramSocketImpl comment is incorrect + + +Release 1.4.7p1 (2014-11-25) +============================ + +- Fixed Visual C++ 2010-2013 project files. Release builds now have optimization enabled. +- Poco::URI: added constructor to create URI from Path. +- fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp +- Poco::Net::HTTPClientSession: added support for global proxy configuration +- fixed GH #331: Poco::Zip does not support files with .. in the name. +- fixed a memory leak in Poco::Net::Context constructor when it fails to load the certificate + or private key files. +- upgraded bundled SQLite to 3.8.7.2 +- fixed GH #229: added missing value() function +- fixed GH #69: MySQL empty text/blob + + +Release 1.4.7 (2014-10-06) +========================== + +- fixed GH #398: PropertyFileConfiguration: input != output +- fixed GH #368: Build failure of Poco 1.4.6p2 on FreeBSD 9.2 +- fixed GH #318: Logger local time doesn't automatically account for DST +- fixed GH #317: Poco::Zip does not support newer Zip file versions. +- fixed GH #454: Fix: handle unhandled exceptions +- fixed GH #463: XML does not compile with XML_UNICODE_WCHAR_T +- fixed GH #282: Using Thread in a global can cause crash on Windows +- fixed GH #424: Poco::Timer deadlock +- fixed GH #465: Fix result enum type XML_Error -> XML_Status +- fixed GH #510: Incorrect RSAKey construction from istream +- fixed GH #332: POCO::ConsoleChannnel::initColors() assigns no color to + PRIO_TRACE and wrong color to PRIO_FATAL +- fixed GH #550: WebSocket fragmented message problem +- Poco::Data::MySQL: added SQLite thread cleanup handler +- Poco::Net::X509Certificate: improved and fixed domain name verification for + wildcard domains +- fixed a crash in Foundation testsuite with Visual C++ 2012 +- improved and fixed domain name verification for wildcard domains in + Poco::Net::X509Certificate +- updated TwitterClient sample to use new 1.1 API and OAuth +- added Poco::Clock class, which uses a system-provided monotonic clock + (if available) and is thus not affected by system realtime clock changes. + Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms + supporting clock_gettime() and CLOCK_MONOTONIC. +- Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer + have been changed to use Poco::Clock instead of Poco::Timestamp and are now + unaffected by system realtime clock changes. +- added Poco::PBKDF2Engine class template +- Poco::Net::HTTPCookie: added support for Priority attribute (backport from develop) +- fixed makedepend.* scripts to work in paths containing '.o*' + (contributed by Per-Erik Bjorkstad, Hakan Bengtsen) +- Upgraded bundled SQLite to 3.8.6 +- Support for Windows Embedded Compact 2013 (Visual Studio 2012) +- Project and solution files for Visual Studio 2013 +- Changes for C++11 compatibility. +- fixed an issue with receiving empty web socket frames (such as ping) +- improved error handling in secure socket classes +- Poco::ByteOrder now uses intrinsics if available +- added new text encoding classes: Latin2Encoding, Windows1250Encoding, Windows1251Encoding +- Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension. + Used to avoid double-compression of already compressed file formats such as images. + + +Release 1.4.6p4 (2014-04-18) +============================ + +- no longer use reverse DNS lookups for cert hostname validation +- cert hostname validation is case insensitive and more strict +- HTMLForm: in URL encoding, percent-encode more special characters +- fixed thread priority issues on POSIX platforms with non-standard scheduling policy +- XMLWriter no longer escapes apostrophe character +- fixed GH #316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime +- fixed GH #305 (memcpy in Poco::Buffer uses wrong size if type != char) +- Zip: fixed a crash caused by an I/O error (e.g., full disk) while creating a Zip archive + + +Release 1.4.6p3 (2014-04-02) +============================ + +- Fixed a potential security vulnerability in client-side X509 + certificate verification. + + +Release 1.4.6p2 (2013-09-16) +============================ + +- fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel +- XML: fixed an issue with parsing a memory buffer > 2 GB +- upgraded to expat 2.1.0 +- Data/ODBC: added support for setting query timeout (via setProperty + of "queryTimeout"). Timeout is int, given in seconds. +- fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() + and also removed unnecessary code. +- fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so + has been unloaded. +- fixed GH #155: MailOutputStream mangles consecutive newline sequences +- fixed GH# 139: FileChannel::PROP_FLUSH is invalid (contains a tab character) +- fixed GH# 173: HTTPClientSession::proxyConnect forces DNS lookup of host names +- fixed GH# 194: MessageNotification constructor is inefficient. +- fixed GH# 189: Poco::NumberParser::tryParse() documentation bug +- fixed GH# 172: IPv6 Host field is stripped of Brackets in HTTPClientSession +- fixed GH# 188: Net: SocketAddress operator < unusable for std::map key +- fixed GH# 128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is + already specified +- fixed GH# 65: Poco::format() misorders sign and padding specifiers +- upgraded bundled SQLite to 3.7.17 +- upgraded bundled zlib to 1.2.8 +- fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused + (e.g., sendRequest() is sent two times in a row without an intermediate call to + receiveResponse(), or by calling receiveResponse() two times in a row without + an intermediate call to sendRequest()) - GH #217 +- removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession + that would provide inappropriate access to internal state +- fixed GH# 223 (Poco::Net::HTTPCookie does not support expiry times in the past) +- fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) + does not work +- added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting + colorizing log messages +- fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll +- fixed GH# 254: UTF8::icompare unexpected behavior +- Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation + (links to specifications). +- Added support for ARM64 architecture and iPhone 5s 64-bit builds + (POCO_TARGET_OSARCH=arm64). + + +Release 1.4.6p1 (2013-03-06) +============================ + +- fixed GH# 71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) +- fixed an ambiguity error with VC++ 2010 in Data/MySQL testsuite +- Poco::Net::NetworkInterface now provides the interface index even for IPv4 +- added DNS::reload() as a wrapper for res_init(). +- On Linux, Poco::Environment::nodeId() first always tries to obtain the + MAC address of eth0, before looking for other interfaces. +- Poco::Net::HTTPSession now always resets the buffer in connect() to clear + any leftover data from a (failed) previous session +- fixed copysign namespace issue in FPEnvironment_DUMMY.h +- fixed a warning in Poco/Crypto/OpenSSLInitializer.h +- added a build configuration for BeagleBoard/Angstrom +- fixed GH# 109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain) +- fixed compile errors with clang -std=c++11 +- fixed GH# 116: Wrong timezone parsing in DateTimeParse (fix by Matej Knopp) +- updated bundled SQLite to 3.7.15.2 + + +Release 1.4.6 (2013-01-10) +========================== + +- changed FPEnvironment_DUMMY.h to include instead of +- updated bundled SQLite to 3.7.15.1 +- fixed GH# 30: Poco::Path::home() throws +- fixed SF Patch# 120 The ExpireLRUCache does not compile with a tuple as key on VS2010 +- fixed SF# 603 count() is missing in HashMap +- Crypto and NetSSL_OpenSSL project files now use OpenSSL *MD.lib library files for + static_md builds. Previously, the DLL import libs were used. +- Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 + + +Release 1.4.5 (2012-11-19) +========================== + +- added Visual Studio 2012 project files +- buildwin.cmd now support building with msbuild for VS2010 and 2012. +- added Poco::Optional class +- fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x +- fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS +- fixed SF# 3562244: Portability fix for AF_LINK +- fixed SF# 3562400: DatagramSocketImpl comment +- fixed SF# 594: Websocket fails with small masked payloads +- fixed SF# 588: Missing POCO_ARCH and POCO_ARCH_LITTLE_ENDIAN define for WinCE on SH4 +- fixed SF# 581: Out-of-bound array access in Unicode::properties() function. +- fixed SF# 590: Segfault on FreeBSD when stack size not rounded +- fixed SF# 586: Poco::DateTimeParser and ISO8601 issues when seconds fraction has more than 6 digits +- Poco::Net::HTTPSSessionInstantiator::registerInstantiator() now optionally accepts a + Poco::Net::Context object. +- added Poco::XML::XMLWriter::depth() member function. +- added Poco::XML::XMLWriter::uniquePrefix() and Poco::XML::XMLWriter::isNamespaceMapped(). +- Poco::FileChannel now supports a new rotateOnOpen property (true/false) which can be used + to force rotation of the log file when it's opened. +- fixed a bug in Poco::XML::XMLWriter::emptyElement(): need to pop namespace context +- OS X builds now use Clang as default compiler +- Updated SQLite to 3.7.14.1 +- POCO_SERVER_MAIN macro now has a try ... catch block for Poco::Exception and writes + the displayText to stderr. +- Poco/Platform.h now defines POCO_LOCAL_STATIC_INIT_IS_THREADSAFE macro if the compiler + generates thread-safe static local initialization code. + + +Release 1.4.4 (2012-09-03) +========================== + +- ZipStream now builds correctly in unbundled build. +- added proxy digest authentication support to Net library +- integrated MySQL BLOB fixes from Franky Braem. +- use standard OpenSSL import libraries (libeay32.lib, ssleay32.lib) for Crypto and + NetSSL_OpenSSL Visual Studio project files. +- fixed a potential buffer corruption issue in Poco::Net::SecureStreamSocket if lazy + handshake is enabled and the first attempt to complete the handshake fails +- Poco::DateTimeParser::tryParse() without format specifier now correctly parses ISO8601 + date/times with fractional seconds. +- Poco::Process::launch() now has additional overloads allowing to specify an initial + directory and/or environment. +- Poco::Net::FTPClientSession: timeout was not applied to data connection, only to + control connection. +- Fixed potential IPv6 issue with socket constructors if IPv6 SocketAddress is given + (contributed by ??????? ????????? ). +- Added an additional (optional) parameter to Poco::Thread::setOSPriority() allowing to + specify a scheduling policy. Currently this is only used on POSIX platforms and allows + specifying SCHED_OTHER (default), SCHED_FIFO or SCHED_RR, as well as other + platform-specific policy values. +- Added Poco::Crypto::DigestEngine class providing a Poco::DigestEngine interface to + the digest algorithms provided by OpenSSL. +- Fixed some potential compiler warnings in Crypto library +- In some cases, when an SSL exception was unexpectedly closed, a generic Poco::IOException + was thrown. This was fixed to throw a SSLConnectionUnexpectedlyClosedException instead. +- Added Poco::ObjectPool class template. +- Poco::Net::HTTPServer has a new stopAll() method allowing stopping/aborting of all + currently active client connections. +- The HTTP server framework now actively prevents sending a message body in the + response to a HEAD request, or in case of a 204 No Content or 304 Not Modified + response status. +- fixed a DOM parser performance bug (patch by Peter Klotz) +- fixed SF# 3559325: Util Windows broken in non-Unicode +- updated iOS build configuration to use xcode-select for finding toolchain +- Poco::Net::SecureSocketImpl::shutdown() now also shuts down the underlying socket. +- fixed SF# 3552597: Crypto des-ecb error +- fixed SF# 3550553: SecureSocketImpl::connect hangs +- fixed SF# 3543047: Poco::Timer bug for long startInterval/periodic interval +- fixed SF# 3539695: Thread attributes should be destroyed using the pthread_attr_destroy() +- fixed SF# 3532311: Not able to set socket option on ServerSocket before bind + Added Poco::Net::Socket::init(int af) which can be used to explicitely + initialize the underlying socket before calling bind(), connect(), etc. +- fixed SF# 3521347: Typo in UnWindows.h undef +- fixed SF# 3519474: WinRegistryConfiguration bug + Also added tests and fixed another potential issue with an empty root path passed to the constructor. +- fixed SF# 3516827: wrong return value of WinRegistryKey::exists() +- fixed SF# 3515284: RSA publickey format(X.509 SubjectPublicKeyInfo) +- fixed SF# 3503267: VxWorks OS prio is not set in standard constructor +- fixed SF# 3500438: HTTPResponse failure when reason is empty +- fixed SF# 3495656: numberformater, numberparser error in mingw +- fixed SF# 3496493: Reference counting broken in TaskManager postNotification +- fixed SF# 3483174: LogFile flushing behavior on Windows + Flushing is now configurable for FileChannel and SimpleFileChannel + using the "flush" property (true or false). +- fixed SF# 3479561: Subsequent IPs on a NIC is not enumerated +- fixed SF# 3478665: Permission checks in Poco::File not correct for root +- fixed SF# 3475050: Threading bug in initializeNetwork() on Windows +- fixed SF# 3552680: websocket small frames bug and proposed fix +- fixed a WebSocket interop issue with Firefox +- added Poco::Net::MessageHeader::hasToken() +- Poco::AtomicCounter now uses GCC 4.3 builtin atomics on more platforms +- fixed SF# 3555938: NetSSL: socket closed twice +- socket exceptions now include OS error code +- fixed SF# 3556975: Need to fix Shared Memory for memory map +- Poco::Net::SecureSocketImpl::close() now catches exceptions thrown by its call to shutdown(). +- fixed SF# 3535990: POCO_HAVE_IPv6 without POCO_WIN32_UTF8 conflict +- fixed SF# 3559665: Poco::InflatingInputStream may not always inflate completely +- added Poco::DirectoryWatcher class +- fixed SF# 3561464: Poco::File::isDevice() can throw due to sharing violation +- Poco::Zip::Compress::addRecursive() has a second variant that allows to specify the compression method. +- Upgraded internal SQLite to 3.7.14 + + +Release 1.4.3p1 (2012-01-23) +============================ + +- fixed SF# 3476926: RegDeleteKeyEx not available on Windows XP 32-bit + + +Release 1.4.3 (2012-01-16) +========================== + +- fixed a compilation error with Data/MySQL on QNX. +- fixed Util project files for WinCE (removed sources not compileable on CE) +- removed MD2 license text from Ackowledgements document +- fixed iPhone build config for Xcode 4.2 (compiler name changed to llvm-g++) +- Poco::Util::XMLConfiguration: delimiter char (default '.') is now configurable. + This allows for working with XML documents having element names with '.' in them. +- Poco::Util::OptionProcessor: Required option arguments can now be specified as + separate command line arguments, as in "--option value" in addition to the + "--option=value" format. +- Poco::Util::HelpFormatter: improved option help formatting if indentation has + been set explicitely. +- added Mail sample to NetSSL_OpenSSL, showing use of Poco::Net::SecureSMTPClientSession. +- added additional read() overloads to Poco::Net::HTMLForm. +- fixed SF# 3440769: Poco::Net::HTTPResponse doesn't like Amazon EC2 cookies. +- added support for requiring TLSv1 to Poco::Net::Context. +- added an additional constructor to Poco::Net::HTTPBasicCredentials, allowing + the object to be created from a string containing a base64-encoded, colon-separated + username and password. +- Poco::Zip::ZipStreamBuf: fixed a crash if CM_STORE was used. +- Added setContentLength64() and getContentLength64() to Poco::Net::HTTPMessage. +- added Poco::Environment::osDisplayName(). +- fixed SF# 3463096: WinService leaves dangling handles (open() now does not reopen the + service handle if it's already open) +- fixed SF# 3426537: WinRegistryConfiguration can't read virtualized keys +- added Poco::Buffer::resize() +- fixed SF# 3441822: thread safety issue in HTTPClientSession: + always use getaddrinfo() instead of gethostbyname() on all platforms supporting it +- added version resource to POCO DLLs +- fixed SF# 3440599: Dir Path in Quotes in PATH cause PathTest::testFind to fail. +- fixed SF# 3406030: Glob::collect problem +- added Poco::Util::AbstractConfiguration::enableEvents() +- Poco::AtomicCounter now uses GCC builtins with GCC 4.1 or newer + (contributed by Alexey Milovidov) +- made Poco::Logger::formatDump() public as it may be useful for others as well + (SF# 3453446) +- Poco::Net::DialogSocket now has a proper copy constructor (SF# 3414602) +- Poco::Net::MessageHeader and Poco::Net::HTMLForm now limit the maximum number of + fields parsed from a message to prevent certain kinds of denial-of-service + attacks. The field limit can be changed with the new method setFieldLimit(). + The default limit is 100. +- Poco::NumberFormatter, Poco::NumberParser and Poco::format() now always use the + classic ("C") locale to format and parse floating-point numbers. +- added Poco::StreamCopier::copyStream64(), Poco::StreamCopier::copyStreamUnbuffered64() + and Poco::StreamCopier::copyToString64(). These functions use a 64-bit integer + to count the number of bytes copied. +- upgraded internal zlib to 1.2.5 +- upgraded internal sqlite to 3.7.9 +- XML: integrated bugfix for Expat bug# 2958794 (memory leak in poolGrow) +- Added support for HTTP Digest authentication (based on a contribution by + Anton V. Yabchinskiy (arn at bestmx dot ru)). For information on how + to use this, see the Poco::Net::HTTPCredentials, Poco::Net::HTTPDigestCredentials + and Poco::Net::HTTPAuthenticationParams classes. +- Poco::Net::HTTPStreamFactory and Poco::Net::HTTPSStreamFactory now support Basic + and Digest authentication. Username and password must be provided in the URI. +- added Poco::Net::WebSocket, supporting the WebSocket protocol as described in RFC 6455 +- NetSSL_OpenSSL: added client-side support for Server Name Indication. + Poco::Net::SecureSocketImpl::connectSSL() now calls SSL_set_tlsext_host_name() + if its available (OpenSSL 9.8.6f and later). +- added Poco::Net::HTTPClientSession::proxyConnect() (factored out from + Poco::Net::HTTPSClientSession::connect()) +- added Poco::Process::kill(const Poco::ProcessHandle&) which is preferable to + kill(pid) on Windows, as process IDs on Windows may be reused. +- fixed SF# 3471463: Compiler warnings with -Wformat +- Poco::Util::Application::run() now catches and logs exceptions thrown in initialize() +- Fixed a WinCE-specific bug in Poco::Util::ServerApplication where uninitialize() would + be called twice. +- fixed SF# 3471957: WinRegistryKey::deleteKey() unable to delete alt views +- Added additional constructor to Poco::ScopedLock and Poco::ScopedLockWithUnlock + accepting a timeout as second argument. +- Added Poco::Logger::parseLevel() +- Poco::format(): an argument that does not match the format + specifier no longer results in a BadCastException. The string [ERRFMT] is + written to the result string instead. +- PageCompiler: added createSession page attribute. + + +Release 1.4.2p1 (2011-09-24) +============================ + +- On Linux, the RTLD_DEEPBIND option is no longer passed to dlopen(). + This change was introduced in 1.4.2 to solve a specific problem one customer + was having. Unfortunately, it leads to problems with RTTI. +- It's now possible to pass flags (SHLIB_GLOBAL, SHLIB_LOCAL) to + Poco::SharedLibrary::load() (and the constructor implicitly calling load()), + controlling the mode flags (RTLD_GLOBAL, RTLD_LOCAL) passed to dlopen(). + On platforms not using dlopen(), these flags are ignored. +- fixed SF# 3400267: Path_WIN32.cpp bug + + +Release 1.4.2 (2011-08-28) +========================== + +- added Poco::DateTimeFormat::ISO8601_FRAC_FORMAT +- added new Poco::DateTimeFormatter and Poco::DateTimeParser format specifier: + %s for seconds with optional fractions of a second +- fixed a problem with ioctl() on BSD platforms (including OS X) where the + second argument to ioctl() is unsigned long instead of int, causing bad + things on a OS X 64-bit kernel. +- fixed a potential endless loop when enumerating IPv6 network addresses + (reported by Laurent Carcagno) +- new compile-time config option on Windows to set thread names in + debugger. Enable with -DPOCO_WIN32_DEBUGGER_THREAD_NAMES. Available + only in debug builds. +- Cipher can now create Base64 and HexBinary encoded output without linefeeds + (suitable for use in cookies, etc.) +- added Poco::Path::popFrontDirectory() +- improved VxWorks support +- IPv6 fixes: added proper scope id handling in IPAddress, SocketAddress + and related classes. +- Added Poco::Net::ServerSocket::bind6() which allows control over the + IPPROTO_IPV6/IPV6_V6ONLY socket option. +- Removed Poco::MD2Engine class due to licensing issues (the + license for the MD2 code from RSA only allows non-commercial + use). Note that the MD4 and MD5 code from RSA does not have + this issue. +- fixed a Net HTTP client testsuite issue where some tests might + have failed due to prematurely aborted connections by + the HTTPTestServer. +- Poco::Net::SocketAddress: when there is more than one address + returned by a DNS lookup for a name, IPv4 addresses will be + preferred to IPv6 ones. +- NetworkInterface::list() now also returns IPv4 interfaces on Windows when + built with -DPOCO_HAVE_IPv6 +- XMLWriter: fixed a bug with attribute namespaces (no namespace prefix + written if attribute namespace is the same as element namespace) +- fixed SF# 3378588: Mismatched new[]/delete (in RSAEncryptImpl and RSADecryptImpl) +- fixed SF# 3212954 (OpenSSLInitializer::uninitialize() crash) and + SF# 3196862 (Static OpenSSLInitializer instance causes Windows deadlocks) by + removing the static Poco::Crypto::OpenSSLInitializer instance. Automatic OpenSSL + initialization is now done through Poco::Crypto::Cipher, Poco::Crypto::CipherKey, + Poco::Crypto::X509Certificate, Poco::Net::Context classes; however, it is still + recommended to call Poco::Crypto::initializeCrypto() and + Poco::Crypto::uninitializeCrypto() early at application startup, and late at + shutdown respectively (or Poco::Net::initializeSSL()/Poco::Net::uninitializeSSL() + if the NetSSL library is used) to avoid multiple full OpenSSL init/uninit cycles + during application runtime. +- Poco::Logger now also support a symbolic log level "none" + (for use with setLevel()) that disables logging completely + for that Logger (equivalent to setLevel(0)). +- Added experimental Android support, using the existing gmake-based + build system. +- fixed SF# 3288584: DateTimeFormatter link error +- fixed SF# 3187117: Typo in InflatingInputStream doc +- fixed SF# 3309731: _WIN32_WCE comparison should be with 0x600 not 600 +- fixed SF# 3393026: RegularExpression.h identical enum value +- fixed SF# 3274222: AtomicCounter's postfix operators aren't atomic on Windows +- fixed SF# 3317177: Handle leak on windows +- fixed SF# 3181882: Poco::URI::getPathEtc() double-encodes query +- fixed SF# 3379935: ThreadPool Start Bug +- fixed SF# 3354451: Poco::Format::parsePrec never sets the precision to zero +- fixed SF# 3387258: _MAX_PATH used but unknown in Path_WIN32 +- fixed a problem in RSAKeyImpl where direct access to the RSA in a EVP_PKEY + would no longer work in recent OpenSSL versions. Using EVP_PKEY_get1_RSA() + fixes the issue. +- added Poco::Crypto::EncryptingInputStream, Poco::Crypto::EncryptingOutputStream, + Poco::Crypto::DecryptingInputStream and Poco::Crypto::DecryptingOutputStream. +- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException +- fixed SF# 3178098: Add constructor to Poco::TemporaryFile to specify directory +- fixed SF# 3175310: Absolute path when device +- fixed SF# 3301207: Guided tour example contradicts apidoc (API doc was wrong) +- Poco::Net::HTTPMessage::setContentLength() and Poco::Net::HTTPMessage::getContentLength() now + use std::streamsize instead of int. This enables 64-bit Content-Length support at least + on 64-bit platforms. +- fixed SF# 3177530: TemporaryFile::tempName() + glob bug on xp +- fixed SF# 3177372: FileChannel documentation inconsistency +- added %E format specifier to Poco::PattermFormatter (epoch time in seconds + since midnight, January 1 1970) +- On Windows, Poco::Util::ServerApplication now supports a /description command + line argument for specifying a service description (together with /registerService) +- added Poco::Util::WinService::setDescription() and + Poco::Util::WinService::getDescription() +- fixed SF# 3155477: Incorrect URI path handling +- fixed SF# 3309736: Extended Exception macros to set default exception code + new macro is named POCO_DECLARE_EXCEPTION_CODE +- added getter functions for modulus and exponents to Poco::Crypto::RSAKey. +- added Poco::Net::SocketAddress::operator == () and + Poco::Net::SocketAddress::operator != () +- fixed SF# 3182746: IPAddress.cpp IPv6 bug on big-endian +- fixed SF# 3196961: Unix daemon fails to loadConfiguration() if started from cwd +- fixed SF# 3393700: NotificationCenter may call a removed observer and crash. +- Reworked implementation of the events framework (Poco::BasicEvent and friends). + The framework is now completely multithreading save (even in the case that + an event subscriber object unsubscribes and is deleted while an event is + being dispatched). Also, the restriction that any object can only register + one delegate for each event has been removed. For most cases, dispatching + events should be faster, as dispatching an event now needs less dynamic memory + allocations. +- fixed SF# 3178109: getNodeByPath() changes: + getNodeByPath() and getNodeByPathNS() have been moved to Poco::XML::Node. + Furthermore, when invoked on a Poco::XML::Document, the behavior has changed + so that the document element is now included when traversing the path (previously, + traversal would start at the document element, now it starts at the document). + The path expression can now start with a double-slash, which results in a recursive + search for the path's first element in the DOM tree. +- fixed SF# 3382935: String data being truncated using ODBC, and + SF# 2921813: Wrong implementation of the ODBC string binding + + +Release 1.4.1p1 (2011-02-08) +============================ + +- Poco::Mutex is now a recursive mutex again on Linux + (this was caused by an unfortunate feature test for + PTHREAD_MUTEX_RECURSIVE which did not work on Linux + as PTHREAD_MUTEX_RECURSIVE is an enum value and not + a macro) +- Poco::Net::SecureSocketImpl::abort() now only shuts + down the underlying socket connection and does not free + the SSL object, due to multithreading issues. + + +Release 1.4.1 (2011-01-29) +========================== + +- fixed SF# 3150223: Poco::BinaryReader cannot read std::vector correctly +- fixed SF# 3146326: SharedMemory issue +- made Poco::Net::HTTPSession::abort() virtual +- added Poco::Net::SecureStreamSocket::abort() to immediately close + a SSL/TLS connection without performing an orderly SSL/TLS shutdown. +- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException. + Added try/catch block to Poco::Net::SecureSocketImpl destructor. +- added additional constructor to Poco::Net::HTTPSClientSession, taking + both a socket and a session object. +- Poco::Net::HTTPSession::abort() now also can be used with a + Poco::Net::HTTPSClientSession. +- fixed SF# 3148045: make clean and distclean issues +- changed Data library names on Unix/Linux platforms to + match the names on Windows (PocoSQLite -> PocoDataSQLite, + PocoMySQL -> PocoDataMySQL, PocoODBC -> PocoDataODBC) +- added additional options to configure script +- added additional documentation to Poco::Net::HTTPClientSession +- Poco::Net::HTTPClientSession::receiveResponse() closes the connection + if an exception is thrown while reading the response header. + This ensures that a new connection will be set up for the next request + if persistent connections are used. +- improved Poco::Net::MultipartDecoder performance by reading directly from streambuf +- improved performance of Poco::Base64Encoder, Poco::Base64Decoder, + Poco::HexBinaryEncoder and Poco::HexBinaryDecoder by working directly with the + given stream's streambuf. +- improved performance of MessageHeader::read() by reading directly from streambuf + instead of istream. +- it is now possible to specify additional MIME part header fields + for a MIME part through the Poco::Net::PartSource class. +- upgraded SQLite to release 3.7.4 +- added experimental VxWorks support for VxWorks 5.5.1/Tornado 2.2 and + newer. Please see the VxWorks Platform Notes in the reference documentation + for more information. Currently, the VxWorks is untested; full support + will be available in release 1.4.2. +- fixed SF# 3165918: Poco::DynamicAny fails to convert from string to float +- fixed SF# 3165910: Poco::Net::MessageHeader does not accept HTTP conforming header +- made Poco::Task::cancel() virtual so that tasks can implement custom + cancellation behavior. +- added optional argument to Poco::Util::WinRegistryKey constructor + to specify additional flags (in addition to KEY_READ and KEY_WRITE) + for the samDesired argument of RegOpenKeyEx() or RegCreateKeyEx(). +- improved Poco::BasicEvent::notify() performance by avoiding an unnecessary heap + allocation. +- added additional well-known port numbers to Poco::URI: rtsp, sip, sips, xmpp. +- added Poco::Net::MediaType::matchesRange() +- improved invalid socket handling: a Poco::Net::InvalidSocketException is + now thrown instead of an assertion when an operation is attempted on a closed or + otherwise uninitialized socket. + + +Release 1.4.0 (2010-12-14) +========================== + +- SSLManager: documentation fixes, code cleanup +- SSLManager: renamed PrivateKeyPassPhrase event to PrivateKeyPassphraseRequired +- added HTTPServerRequestImpl::socket() to get access to the underlying socket +- added Socket::secure() to find out whether a given socket supports SSL/TLS +- added SecureStreamSocket::havePeerCertificate() +- NetSSL: added support for turning off extended certificate validation (hostname matching) +- fixed SF# 2941228: ICMPClient::ping() issues on Mac OS X +- fixed SF# 2941231: ICMPEventArgs out of bounds array access +- added PageCompiler sample +- added missing newline at end of xmlparse.c +- Poco::Glob can now be used with an empty pattern which will match nothing (patch from Kim Graesman) +- added support for HTTP proxy authentication (Basic authentication only) +- fixed SF# 2958959: XMLWriter must encode CR, LF and TAB in attribute values as character entities. +- HTMLForm now supports PUT requests as well (see ) +- fixed SF# #2970521: FileOutputStream and file permissions. + (also fixed in File class) +- removed an unused (and wrong) default parameter from EventImpl constructor for WIN32. +- added full support for session caching to NetSSL_OpenSSL +- fixed SF# 2984454: Poco::Util::Timer::scheduleAtFixedRate() works incorrectly +- fixed a bug in Poco::Util::Timer that could lead to high CPU load if + the system clock is moved forward. +- added system.nodeId to SystemConfiguration +- added a note to Poco::Util::ServerApplication documentation regarding + creation of threads +- added Poco::Net::IPAddress::broadcast() and Poco::Net::IPAddress::wildcard() to + create broadcast (255.255.255.255) and wildcard (0.0.0.0) addresses. +- fixed SF# 2916154: Poco::Net::IPAddress::isLoopback() only works for 127.0.0.1. +- added build configuration for iPhone Simulator +- GNU Make based build system provides new variables: POCO_HOST_BINDIR, POCO_HOST_BINPATH, + POCO_HOST_LIBDIR, POCO_HOST_LIBPATH and POCO_TARGET_* equivalents. +- Application::initialize() and Application::uninitialize() will now be called from within run(). + This solves various issues with uninitialize() not being called, or being called inappropriately + from the Application destructor. + Please note that this change will break applications that use the Application class, + but only call init() and not run(). +- added /startup option to specify startup mode for Windows services (automatic or manual) +- fixed SF# 2967354: SecureSocketImpl shutdown/close problem +- fixed SF# 3006340: LinearHashTable grows even if key already exists +- fixed a particularly nasty Windows error handling issue that manifested itself on WinCE: + WSAGetLastError() would be called after a std::string was created. The string creation could result + in a heap operation which called a Windows API to allocate memory. This would reset the + GetLastError() error code. Since WSAGetLastError() is just an alias for GetLastError(), the actual + error code from the socket operation would be lost. +- upgraded SQLite to 3.7.3 +- added --header-prefix option to PageCompiler +- fixed SF# 3003875: SQLite data binding is broken +- fixed SF# 2993988: Issue with multiple calls to open()/close() on File*Stream +- fixed SF# 2990256: HTMLForm and file uploads +- fixed SF# 2969227: DateTimeParser bug +- fixed SF# 2966698: Socket connect with timeout issue +- fixed SF# 2981041: Bind NULL to a query (patch supplied) +- fixed SF# 2961419: UTF8Encoding::convert() doesn't work properly in DEBUG mode +- fixed SF# 2957068: Timeout value not picked up by proxy in HTTPSClientSession +- fixed NetSSL_OpenSSL test runner for Poco::Util::Application class changes +- Poco::AbstractEvent, Poco::AbstractCache and related classes now accept a Mutex class as additional template argument. + Poco::NullMutex can be used if no synchronization is desired. +- Added Poco::AbstractEvent::empty() to check whether an event has registered delegates. +- Poco::URI now correctly handles IPv6 addresses. +- Added Poco::Nullable class template. +- Added Poco::NullMutex, a no-op mutex to be used as template argument for template classes + taking a mutex policy argument. +- Poco::XML::XMLWriter: fixed a namespace handling issue that occured with startPrefixMapping() and endPrefixMapping() +- Poco::Net::Context now allows for loading certificates and private keys from Poco::Crypto::X509Certificate objects + and Poco::Crypto::RSAKey objects. +- Poco::Crypto::RSAKey no longer uses temporary files for stream operations. Memory buffers are used instead. +- fixed SF# 2957865: added Poco::UUID::tryParse() +- All Zip classes now use Poco::File[Input|Output]Stream instead of std::[i|o]fstream. + UTF-8 filenames will now be handled correctly on Windows. +- fixed SF# 2902029: zlib flush support (Z_SYNC_FLUSH) +- added Poco::TextBufferIterator class +- fixed SF# 2977249: Use epoll instead select under Linux + Socket::select() and Socket::poll() will use epoll under Linux if the Net library is compiled + with -DPOCO_HAVE_FD_EPOLL. This is the default for the Linux build configuration (but not for + the various build configurations targeting embedded Linux platforms). +- fixed SF# 2941664: Memory leak in DeflatingStream with zero-length streams (also fixed some other potential, + but unlikely, memory leaks) +- fixed SF# 2946457: added RejectCertificateHandler +- fixed SF# 2946621: Poco::Path bug with POCO_WIN32_UTF8 +- fixed SF# 2929805: Environment::nodeId() does not work if no eth0 device exists +- Environment::nodeId() no longer throws if no hardware ethernet address can be determined. + It returns an all-zero address instead. +- Added additional classification functions to Poco::Unicode class; made classification functions inline. +- added Ascii class for ASCII character classification. + Methods of the Ascii class are now used instead of the + standard library functions (std::isspace(), etc.) due to + possible inconsistent results or assertions when the + standard library functions are used with character codes + outside the ASCII range. +- Poco::Net::MailMessage: fixed a bug in StringPartHandler that resulted in incorrect handling of non-ASCII data if + char is signed. +- Improved Poco::Net::SMTPClientSession compatibility with various mail servers when using AUTH_LOGIN authentication. +- Added CRAM-SHA1 support to Poco::Net::SMTPClientSession +- Poco::Net::SMTPClientSession now also supports login with AUTH PLAIN. +- Added Poco::Net::SecureSMTPClientSession class, supporting STARTTLS for secure SMTP connections. +- fixed an issue with SharedMemory on POSIX systems, where a shared memory region would be deleted + despite the server flag set to true (see http://pocoproject.org/forum/viewtopic.php?f=12&t=3494). +- PageCompiler: added a new page context directive, to allow passing custom context objects to the + request handler. +- fixed StreamSocketImpl::sendBytes() for non-blocking sockets +- added Poco::Net::DialogSocket::receiveRawBytes(), which should be used instead of receiveBytes() due to internal + buffering by DialogSocket. +- DOMParser: FEATURE_WHITESPACE has been renamed to FEATURE_FILTER_WHITESPACE (which now matches the underlying URI) + and is now handled correctly (previously we did the exact reverse thing) +- added Poco::Util::AbstractConfiguration::remove() to remove a configuration property; added removeRaw() implementations + to all implementations (contributions by Daniel Hobi and Alexey Shults). +- fixed NetSSL_OpenSSL compilation error on Windows with OpenSSL 1.0 +- Added optional FIPS mode support to NetSSL_OpenSSL (contributed by Lior Okman). + If OpenSSL has been configured and built with FIPS support, then FIPS support can + be enabled by calling Poco::Crypto::OpenSSLInitializer::enableFIPSMode(true); or + by setting the fips property in the OpenSSL configuration to true (see Poco::Net::SSLManager + for details). +- fixed SF# 3031530: Ping and possible no timeout +- added Poco::Net::SocketReactor::onBusy(), called whenever at least one notification will + be dispatched. +- fixed SF# 3034863: Compiler warning in net/IPAddress.h with poco 1.3.2 +- added support for CRAM-SHA1 authentication to SMTPClientSession +- Poco::format(): arguments can now be addressed by their index, e.g. %[2]d +- Poco::Util::Timer::cancel() now accepts an optional boolean argument. + If true is passed, cancel() waits until the task queue has been purged. + Otherwise, it returns immediately and works asynchronously, as before. +- Poco::Net::HTTPServerResponse::redirect() now accepts an optional additional + argument to specify the HTTP status code for the redirection. +- fixed a warning (BinaryReader.cpp) and error (ThreadLocal.cpp) in Foundation when compiling with Visual Studio 2010 +- fixed a wrong exception in Poco::Net::POP3ClientSession +- Poco::Net::FTPClientSession and Poco::Net::SMTPClientSession now set the error code in exceptions they throw +- fixed a potential race condition with terminating a Windows service based on Poco::Util::ServerApplication +- fixed a bug in global build configuration file: explicitly setting POCO_CONFIG did not work on Solaris platforms, + as it was always overridden by the automatically determined configuration. +- Added support for MinGW cross builds on Linux. +- Changed location of statically linked build products in the gmake-based build system. + Statically linked executables are now in bin/$(OSNAME)/$(OSARCH)/static and no longer + have the _s suffix +- The POCO_VERSION macro now is in its own header file, "Poco/Version.h". It is no longer + available through "Poco/Foundation.h". +- added Poco::Net::HTTPCookie::escape() and Poco::Net::HTTPCookie::unescape(). +- fixed SF# 3021173: Thread (POSIX) returns uninitialised value for OS priority +- fixed SF# 3040870: ThreadPool has no function to get assigned name +- fixed SF# 3044303: Can't use own config file on Solaris & OSARCH_64BITS ignored +- fixed SF# 2943896: AsyncChannel::log blocks +- fixed a bug in Poco::Util::WinRegistryKey::getInt(): + The size variable passed to RegQueryValueExW() should be initialized to the size + of the output buffer. +- Added rudimentary support for compiling with Clang 2.0 (Xcode 4) on Mac OS X. +- New build configurations for Mac OS X: Darwin32 and Darwin64 for explicit + 32-bit and 64-bit builds. Note that the default Darwin build configuration + will build 64-bit on Snow Leopard and 32-bit on Leopard, but will always place + build products in Darwin/i386. The new Darwin32 and Darwin64 configurations + will use the correct directories. +- fixed SF# 3051598: Bug in URL encoding +- Poco::ThreadPool::stopAll() (and thus also the destructor) will now wait for each + pooled thread to terminate before returning. This fixes an issue with creating + and orderly shutting down a thread pool in a plugin. Previously, a pooled thread + in a thread pool created by a dynamically loaded library might still be running + when the plugin's shared library was unloaded, resulting in Bad Things happening. + This can now no longer happen. As a downside, a pooled thread that fails to + finish will block stopAll() and the destructor forever. +- NetSSL_OpenSSL: for a SecureStreamSocket, available() now returns the number of bytes that + are pending in the SSL buffer (SSL_pending()), not the actual socket buffer. +- Added Poco::Net::HTTPClientSession::secure() to check for a secure connection. +- Poco::Net::HTTPRequest::setHost() now does not include the port number in the Host header + if it's either 80 or 443. +- log messages can now optionally include source file path and line number +- Poco::PatternFormatter can format source file path and line number (%U, %u) +- logging macros (poco_information(), etc.) now use __LINE__ and __FILE__ +- new logging macros that incorporate Poco::format(): poco_information_f1(logger, format, arg) with up to 4 arguments +- added Poco::Net::HTTPSession::attachSessionData() and Poco::Net::HTTPSession::sessionData() + to attach arbitrary data to a HTTP session. +- added additional constructors to zlib stream classes that allow passing + a windowBits parameter to the underlying zlib library. +- fixed a potential error handling issue in Poco::Net::SecureSocketImpl. +- fixed SF# 3110272: RSACipherImpl bug. +- fixed SF# 3081677: ConfigurationView's getRaw not retrieving xml attributes. +- added basic support for Canonical XML and better pretty-printing support to Poco::XML::XMLWriter. +- Poco::Util::AbstractConfiguration now supports events fired when changing or + removing properties. +- XML: added support for finding DOM nodes by XPath-like + expressions. Only a very minimal subset of XPath is supported. + See Poco::XML::Element::getNodeByPath(), Poco::XML::Element::getNodeByPathNS() + and the same methods in Poco::XML::Document. +- Poco::Timer: If the callback takes longer to execute than the + timer interval, the callback function will not be called until the next + proper interval. The number of skipped invocations since the last + invocation will be recorded and can be obtained by the callback + by calling skipped(). +- Poco::BinaryReader and Poco::BinaryWriter now support reading and + writing std::vectors of the supported basic types. Also, strings + can now be written in a different encoding (a Poco::TextEncoding + can be optionally passed to the constructor). +- Poco::UUID::nil() and Poco::UUID::isNil() have been renamed to + Poco::UUID::null() and Poco::UUID::isNull(), respectively, to avoid + issues with Objective-C++ projects on Mac OS X and iOS where nil is + a system-provided macro. +- Crypto bugfixes: RSACipherImpl now pads every block of data, not just the + last (or last two). +- Improved Crypto testsuite by adding new tests +- Added new Visual Studio project configurations: debug_static_mt and release_static_mt + (linking with static runtime libraries). The existing configurations debug_static + and release_static have been renamed to debug_static_md and release_static_md, respectively. + The suffixes of the static libraries have also changed. The static_md configurations + now build libraries with suffixes md[d], while the libraries built by the static_mt + configurations have mt[d] suffixes. +- Added Visual Studio project files for 64-bit builds. +- Added Visual Studio 2010 project files. +- Removed the use of local static objects in various methods due to + their construction not being threadsafe (and thus leading to + potential race conditions) on Windows/Visual C++. +- Fixed some warning on 64-bit Windows builds. +- The name of the Data connector libraries have changed. They are now + named PocoDataMySQL, PocoDataODBC and PocoDataSQLite. +- fixed SF# 3125498: Linux NetworkInterface::list() doesn't return IPv6 IPs +- fixed SF# 3125457: IPv6 IPAddress tests are wrong +- Added initialization functions for the NetSSL_OpenSSL and Crypto libraries. + These should be called instead of relying on automatic initialization, + implemented with static initializer objects, as this won't work with + statically linked executables (where the linker won't include the + static initializer object). + The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(), + Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL(). + Applications using Crypto and/or NetSSL should call these methods appropriately at + program startup and shutdown. + Note: In release 1.3.6, similar functions have been added to the Net library. + + +Release 1.3.6p2 (2010-01-15) +============================ + +- fixed an issue in the Windows implementation Poco::RWLock, where + tryReadLock() sometimes would return false even if no writers + were using the lock (fix contributed by Bjrn Carlsson) +- added Poco::Environment::libraryVersion(). +- fixed SF# 2919461: Context ignores parameter cypherList +- removed an unused enum from RSACipherImpl.cpp (Crypto) +- integrated a new expat patch for CVE-2009-3560. +- fixed SF# 2926458: SSL Context Problem. The Poco::Net::Context + class now makes sure that OpenSSL is properly initialized. +- updated iPhone build configuration (contributed by Martin York) +- fixed SF# 1815124 (reopened): XML Compile failed on VS7.1 with + XML_UNICODE_WCHAR_T +- fixed SF# 2932647: FTPClientSession::getWorkingDirectory() returns a bad result + + +Release 1.3.6p1 (2009-12-21) +============================ + +- added support for using external zlib, pcre, expat and sqlite3 instead of + bundled ones (-DPOCO_UNBUNDLED, configure --unbundled) +- fixed SF# 2911407: Add sh4 support +- fixed SF# 2912746: RSAKey::EXP_LARGE doesn't work +- fixed SF# 2904119: abstractstrategy uses std::set but do not includes it +- fixed SF# 2909946: localtime NULL pointer +- fixed SF# 2914986: potential expat DoS security issues (CVE-2009-3560 and CVE-2009-3720) +- fixed SF# 2916305: SSL Manager crashes +- fixed SF# 2903676: Tuple TypeHander does not handle composites. + + +Release 1.3.6 (2009-11-24) +========================== + +- added Environment::processorCount() +- added POCO_VERSION macro to Poco/Foundation.h +- fixed SF# 2807527: Poco::Timer bug for long startInterval/periodic interval +- fixed a bug similar to SF# 2807527 in Poco::Util::Timer. +- fixed SF# 2795395: Constructor doesn't treat the params "key" and "iv" +- fixed SF# 2804457: DateTime::checkLimit looks wrong +- fixed SF# 2804546: DateTimeParser requires explicit RFC1123 format +- added ReleaseArrayPolicy to Poco::SharedPtr +- upgraded to SQLite 3.6.20 +- fixed SF# 2782709: Missing semicolons in "Logger.h" convenience +- fixed SF# 2526407: DefaultStrategy.h ++it instead of it++ in a loop +- fixed SF# 2502235: Poco STLPort patch +- fixed SF# 2186643: Data::Statement::reset() not implemented in 1.3.3 +- fixed SF# 2164227: Allow File opened read only by FileInputSteam to be writable +- fixed SF# 2791934: use of char_traits::copy in BufferedStreamBuf::underflow +- fixed SF# 2807750: Support additional SQL types in SQLite +- fixed documentation bugs in Timed/PriorityNotificationQueue +- fixed SF# 2828401: Deadlock in SocketReactor/NotificationCenter (also fixes patch# 1956490) + NotificationCenter now uses a std::vector internally instead of a std::list, and the mutex is + no longer held while notifications are sent to observers. +- fixed SF# 2835206: File_WIN32 not checking aganist INVALID_HANDLE_VALUE +- fixed SF# 2841812: Posix ThreadImpl::sleepImpl throws exceptions on EINTR +- fixed SF# 2839579: simple DoS for SSL TCPServer, HTTPS server + No SSL handshake is performed during accept() - the handshake is delayed until + sendBytes(), receiveBytes() or completeHandshake() is called for the first time. + This also allows for better handshake and certificate validation when using + nonblocking connections. +- fixed SF# 2836049: Possible handle leak in FileStream + If sync() fails, close() now simply set's the stream's bad bit. + In any case, close() closes the file handle/descriptor. +- fixed SF# 2814451: NetSSL: receiveBytes crashes if socket is closed +- added a workaround for Vista service network initialization issue + (an Windows service using the Net library running under Vista will + crash in the call to WSAStartup() done in NetworkInitializer). + Workaround is to call WSAStartup() in the application's main(). + Automatic call to WSAStartup() in the Net library can now be disabled + by compiling Net with -DPOCO_NET_NO_AUTOMATIC_WSASTARTUP. Also + the new Poco::Net::initializeNetwork() and Poco::Net::uninitializeNetwork() + functions can be used to call WSAStartup() and WSACleanup(), respectively, + in a platform-independent way (on platforms other than Windows, these + functions will simply do nothing). +- added VCexpress build script support (contributed by Jolyon Wright) +- fixed SF# 2851052: Poco::DirectoryIterator copy constructor is broken +- fixed SF# 2851197: IPAddress ctor throw keyword missing +- added Poco::ProtocolException +- PageCompiler improvements: new tags, support for buffered output, etc. +- better error reporting in Data MySQL connector (patch #2881270 by Jan "HanzZ" Kaluza) +- fixed SF# 1892462: FTPClient:Choose explicitely between EPSV and PASV +- fixed SF# 2806365: Option for PageCompiler to write output to different dir +- fixed a documentation bug (wrong sample code) in Process::launch() documentation +- added --header-output-dir option to PageCompiler +- fixed SF# 2849144: Zip::Decompress notifications error +- SAXParser has a new feature: "http://www.appinf.com/features/enable-partial-reads". + See ParserEngine::setEnablePartialReads() for a description of what this does. +- fixed SF# 2876179: MySQL Signed/Unsigned value bug +- fixed SF# 2877970: possible bug in timer task +- fixed SF# 2874104: wrong parsing empty http headers +- fixed SF# 2860694: Incorrect return code from SecureStreamSocketImpl::sendBytes +- fixed SF# 2849750: Possible bug with XMLWriter? +- added MailMessage::encodeWord() to support RFC 2047 word encoded + mail header fields when sending out mail containing non-ASCII + characters. +- fixed SF# 2890975: SMTPClientSession bug with 7BIT encoding +- fixed an issue with retrieving the value of socket options on Windows 7. + Before obtaining the value of a socket, we now initialize the variable receiving the + socket option value to zero. +- fixed SF# 2836141: Documentation errors +- fixed SF# 2864232: Socket::select() does not detect closed sockets on windows +- fixed SF# 2812143: Socket::select() should check socket descriptors... +- fixed SF# 2801750: NetworkInterface forName returns wrong subnetMask +- fixed SF# 2816315: Problem with POSIX Thread::sleepImpl +- fixed SF# 2795646: IPv6 address parsing bug +- fixed #0000092: ServerApplication::waitForTerminationRequest(), SIGINT and GDB. + Poco::Util::ServerApplication::waitForTerminationRequest() no longer registers a + signal handler for SIGINT if the environment variable POCO_ENABLE_DEBUGGER + is defined. +- fixed SF# 2896070: Poco::Net::Context with non-ASCII paths +- added Unicode Surrogate support to Poco::UTF16Encoding. + See Poco::TextEncoding::queryConvert() and Poco::TextEncoding::sequenceLength() + for how this is implemented. Contributed by Philippe Cuvillier. +- fixed SF# 2897650: [branch 1.3.6] Net.SocketAddress won't compile for CYGWIN +- fixed SF# 2896161: Building on Windows fails when basedir has space in it +- fixed SF# 2864380: Memory leak when using secure sockets +- NetSSL_OpenSSL: the SSL/TLS session cache is now disabled by default and + can be enabled per Context using Poco::Net::Context::enableSessionCache(). +- fixed SF# 2899039: Wrong DST handling in LocalDateTime +- added RWLock::ScopedReadLock and RWLock::ScopedWriteLock (contributed by Marc Chevrier) +- added Thread::TID type, as well as Thread::tid() and Thread::currentTid() to obtain the native + thread handle/ID +- added Zip file comment support +- On Windows, Poco::SharedLibrary::load() now uses LoadLibraryEx instead of LoadLibrary + and uses the LOAD_WITH_ALTERED_SEARCH_PATH if an absolute path is specified. This will + add the directory containing the library to the search path for DLLs that the + loaded library depends upon. +- Mac OS X build settings now match those used by default Xcode projects, making linking the + POCO libs to Xcode projects easier +- Replaced use of std::valarray in Poco::Net::ICMPEventArgs with std::vector due to issues with + std::valarray together with STDCXX debug mode on OS X + + +Release 1.3.5 (2009-05-11) +========================== + +- fixed SF# 2779410: Poco::Data::ODBC::HandleException impovement +- fixed wrong exception text for Poco::UnhandledException +- Fixed a problem with SSL shutdown that causes clients (web browsers) + to hang when the server attempts to perform a clean SSL shutdown. We now call + SSL_shutdown() once, even if the shutdown is not complete after the first call. +- added Poco::Crypto::X509Certificate::save() +- fixed a bug in Poco::Zip::Decompress that results in wrong paths for extracted files +- fixed a bug in Poco::Zip::ZipManipulator where the Zip file was opened in text format + on Windows. +- added Poco::Crypto::X509Certificate::issuedBy() to verify certificate chain. +- fixed 0000089: Thread::sleep() on Linux is extremely inaccurate +- added methods to extract the contents of specific fields from the + subject and issuer distinguished names of a certificate. + + +Release 1.3.4 (2009-04-21) +========================== + +- fixed SF# 2611804: PropertyFileConfiguration continuation lines +- fixed SF# 2529788: ServerApplication::beDaemon() broken +- fixed SF# 2445467: Bug in Thread_WIN32.cpp +- Improved performance of HTTP Server by removing some + string copy operations +- fixed SF# 2310735: HTTPServer: Keep-Alive only works with send() +- fixed appinf.com IP address in Net testsuite +- fixed RFC-00188: NumberFormatter and float/double numbers +- added --pidfile option to ServerApplication on Unix +- fixed SF# 2499504: Bug in Win32_Thread when using from dll (fixed also for POSIX threads) +- fixed SF# 2465794: HTTPServerRequestImpl memory leak +- fixed SF# 2583934: Zip: No Unix permissions set +- the NetSSL_OpenSSL library has been heavily refactored +- added NumberFormatter::append*() and DateTimeFormatter::append() functions +- use NumberFormatter::append() and DateTimeFormatter::append() instead of format() where + it makes sense to gain some performance +- added system.dateTime and system.pid to Poco::Util::SystemConfiguration +- added %F format specifier (fractional seconds/microseconds) to DateTimeFormatter, + DateTimeParser and PatternFormatter. +- fixed SF# 2630476: Thread_POSIX::setStackSize() failure with g++ 4.3 +- fixed SF# 2679279: Handling of -- option broken +- added compile options to reduce memory footprint of statically linked applications + by excluding various classes from automatically being linked. + See the POCO_NO_* macros in Poco/Config.h. +- fixed SF# 2644940: on Windows the COMPUTER-NAME and the HOSTNAME can be different +- added DNS::hostName() function +- added build configuration for iPhone (using Apple's SDK) +- basic support for AIX 5.x/xlC 8 +- fixed a bug resulting in a badly formatted exception message with IOException + thrown due to a socket-related error +- fixed SF# 2644718: NetworkInterface name conflict in MinGW +- added a missing #include to CryptoTransform.h +- fixed SF# 2635377: HTTPServer::HTTPServer should take AutoPtr +- replaced plain pointers with smart pointers in some interfaces +- upgraded to sqlite 3.6.13 +- improved Data::SQLite error reporting +- Poco::Glob now works with UTF-8 encoded strings and supports case-insensitive comparison. + This also fixes SF# 1944831: Glob::glob on windows should be case insensitve +- added Twitter client sample to Net library +- Fixed SF# 2513643: Seg fault in Poco::UTF8::toLower on 64-bit Linux +- Poco::Data::SessionPool: the janitor can be disabled by specifying a zero idle time. +- added Poco::Data::SessionPool::customizeSession() +- added support for different SQLite transaction modes (DEFERRED, IMMEDIATE, EXCLUSIVE) +- fixed a few wrong #if POCO_HAVE_IPv6 in the Net library +- added support for creating an initialized, but unconnected StreamSocket. +- added File::isDevice() +- added family() member function to SocketAddress, +- Data::SQLite: added support for automatic retries if the database is locked +- XMLConfiguration is now writable +- fixed an IPv6 implementation for Windows bug in HostEntry +- Timer class improvement: interval between callback is no longer influenced by the + time needed to execute the callback. +- added PriorityNotificationQueue and TimedNotificationQueue classes to Foundation. + These are variants of the NotificationQueue class that support priority and + timestamp-tagged notifications. +- added Poco::Util::Timer class. This implements a timer that can schedule different + tasks at different times, using only one thread. +- the signatures of Poco::NotificationQueue and Poco::NotificationCenter member functions + have been changed to accept a Poco::Notification::Ptr instead of Poco::Notification* + to improve exception safety. This change should be transparent and fully backwards + compatible. The signature of the methods returning a Poco::Notification* have not been + changed for backwards compatibility. It is recommended, that any Notification* obtained + should be immediately assigned to a Notification::Ptr. +- SQLite::SessionImpl::isTransaction() now uses sqlite3_get_autocommit() to find out + about the transaction state. +- refactored Crypto library to make it independent from NetSSL_OpenSSL. +- added support for RSA-MD5 digital signatures to Crypto library. +- removed SSLInitializer from NetSSL library (now moved to Crypto library) +- added build configs for static libraries to Crypto library +- OpenSSL now depends on Crypto library (which makes more sense than + vice versa, as it was before). Poco::Net::X509Certificate is now + a subclass of Poco::Crypto::X509Certificate (adding the verify() + member function) and the Poco::Net::SSLInitializer class was + moved to Poco::Crypto::OpenSSLInitializer. +- added build configs for static libraries to Zip +- added batch mode to CppUnit::WinTestRunner. + WinTestRunnerApp supports a batch mode, which runs the + test using the standard text-based TestRunner from CppUnit. + To enable batch mode, start the application with the "/b" + or "/B" command line argument. Optionally, a path to a file + where the test output will be written to may be given: + "/b:" or "/B:". + When run in batch mode, the exit code of the application + will denote test success (0) or failure (1). +- testsuites now also work for static builds on Windows +- The IPv6 support for Windows now basically works (Net library compiled with POCO_HAVE_IPv6) +- fixed a potential error when shutting down openssl in a statically linked application +- added static build configs to Data library +- added Poco::AtomicCounter class, which uses OS-specific APIs for atomic (thread-safe) + manipulation of counter values. +- Poco::RefCountedObject and Poco::SharedPtr now use Poco::AtomicCounter for + reference counting +- fixed SF# 2765569: LoadConfiguration failing from current directory + + +Release 1.3.3p1 (2008-10-09) +============================ + +- Fixed SF# 2153031: 1.3.3 Crypto won't compile on 64-bit Linux +- Fixed a warning in MySQL connector +- Updated README +- The global Makefile in the Zip archive is no longer broken + + +Release 1.3.3 (2008-10-07) +========================== + +- Threads now have optional user-settable stack size (if the OS supports that feature) +- Events now support simplified delegate syntax based on delegate function template. + See Poco::AbstractEvent documentation for new syntax. +- Cache supports new access expire strategy. +- Upgraded to SQLite 3.6.2 +- Upgraded to PCRE 7.8 +- added HttpOnly support to Poco::Net::HTTPCookie +- NetworkInterface now has displayName() member (useful only on Windows) +- Poco::Util::WinRegistryKey now has a read-only mode +- Poco::Util::WinRegistryKey::deleteKey() can now recursively delete registry keys +- Poco::File::created() now returns 0 if the creation date/time is not known, as + it's the case on most Unix platforms (including Linux). + On FreeBSD and Mac OS X, it returns the real creation time. +- Time interval based log file rotation (Poco::FileChannel) now works + correctly. Since there's no reliable and portable way to find out the creation + date of a file (Windows has the tunneling "feature", most Unixes don't provide + the creation date), the creation/rotation date of the log file is written into + the log file as the first line. +- added Environment::nodeId() for obtaining the Ethernet address of the system + (this is now also used by UUIDGenerator - the corresponding code from UUIDGenerator + was moved into Environment) +- added a release policy argument to SharedPtr template +- Socket::select() will no longer throw an InvalidArgumentException + on Windows when called with no sockets at all. If all three socket + sets are empty, Socket::select() will return 0 immediately. +- SocketReactor::run() now catches exceptions and reports them via + the ErrorHandler. +- SocketReactor has a new IdleNotification, which will be posted when + the SocketReactor has no sockets to handle. +- added referenceCount() method to Poco::SharedPtr. +- POCO now builds with GCC 4.3 (but there are some stupid warnings: + "suggest parentheses around && within ||". +- Solution and project files for Visual Studio 2008 are included +- The Zip library is now officially part of the standard POCO release. +- The Crypto library (based on OpenSSL) has been added. The original code + was kindly contributed by Ferdinand Beyer. +- A Data Connector to MySQL, contributed by Sergey Kholodilov, is now part + of the POCO release. +- fixed SF# 1859738: AsyncChannel stall +- fixed SF# 1815124: XML Compile failed on VS7.1 with XML_UNICODE_WCHAR_T +- fixed SF# 1867340: Net and NetSSL additional dependency not set - ws2_32.lib +- fixed SF# 1871946: no exception thrown on error +- fixed SF# 1881113: LinearHashTable does not conform to stl iterators +- fixed SF# 1899808: HTMLForm.load() should call clear() first +- fixed SF# 2030074: Cookie problem with .NET server +- fixed SF# 2009707: small bug in Net/ICMPPacketImpl.cpp +- fixed SF# 1988579: Intel Warning: invalid multibyte character sequence +- fixed SF# 2007486: Please clarify license for Data/samples/* +- fixed SF# 1985180: Poco::Net::DNS multithreading issue +- fixed SF# 1968106: DigestOutputStream losing data +- fixed SF# 1980478: FileChannel loses messages with "archive"="timestamp" +- fixed SF# 1906481: mingw build WC_NO_BEST_FIT_CHARS is not defined +- fixed SF# 1916763: Bug in Activity? +- fixed SF# 1956300: HTTPServerConnection hanging +- fixed SF# 1963214: Typo in documentation for NumberParser::parseFloat +- fixed SF# 1981865: Cygwin Makefile lacks ThreadTarget.cpp +- fixed SF# 1981130: pointless comparison of unsigned integer with zero +- fixed SF# 1943728: POCO_APP_MAIN namespace issue +- fixed SF# 1981139: initial value of reference to non-const must be an lvalue +- fixed SF# 1995073: setupRegistry is broken if POCO_WIN32_UTF8 enabled +- fixed SF# 1981125: std::swap_ranges overloading resolution failed +- fixed SF# 2019857: Memory leak in Data::ODBC Extractor +- fixed SF# 1916761: Bug in Stopwatch? +- fixed SF# 1951443: NetworkInterface::list BSD/QNX no netmask and broadcast addr +- fixed SF# 1935310: Unhandled characters in Windows1252Encoding +- fixed SF# 1948361: a little bug for win32 +- fixed SF# 1896482: tryReadLock intermittent error +- workaround for SF# 1959059: Poco::SignalHandler deadlock + the SignalHandler can now be disabled globally by adding a + #define POCO_NO_SIGNAL_HANDLER to Poco/Config.h +- fixed SF# 2012050: Configuration key created on read access +- fixed SF# 1895483: PCRE - possible buffer overflow +- fixed SF# 2062835: Logfile _creationDate is wrong +- fixed SF# 2118943: out_of_bound access in Poco::Data::BLOB:rawContent +- fixed SF# 2121732: Prevent InvalidArgumentException in SocketReactor +- fixed SF# 1891132: Poco::Data::StatementImpl::executeWithLimit is not correct +- fixed SF# 1951604: POCO refuses to compile with g++ 4.3.0 +- fixed SF# 1954327: CYGWIN's pthread does not define PTHREAD_STACK_MIN +- fixed SF# 2124636: Discrepancy between FileWIN32(U)::handleLastError +- fixed SF# 1558300: MinGW/MSYS Builds +- fixed SF# 2123266: Memory leak under QNX6 with dinkum library +- fixed SF# 2140411: ScopedUnlock documentation bug +- fixed SF# 2036460: UUID regression tests are failing on Linux with g++ 4.3.1 +- fixed SF# 2150438: Tuple TypeHandler position increment size is wrong + + +Release 1.3.2 (2008-02-04) +========================== + +Foundation, XML, Net, Util: +- added POCO_NO_SHAREDMEMORY to Config.h +- POCO_NO_WSTRING now really disables all wide string related calls +- added template specialization for string hashfunction (performance) +- XML parser performance improvements (SAX parser is now up to 40 % faster +- added parseMemoryNP() to XMLReader and friends +- URIStreamOpener improvement: redirect logic is now in URIStreamOpener. + this enables support for redirects from http to https. +- added support for temporary redirects and useproxy return code +- added getBlocking() to Socket +- added File::isHidden() +- better WIN64 support (AMD64 and IA64 platforms are recognized) +- added support for timed lock operations to [Fast]Mutex +- SharedLibrary: dlopen() is called with RTLD_GLOBAL instead of RTLD_LOCAL + (see http://gcc.gnu.org/faq.html#dso) +- Poco::Timer threads can now run with a specified priority +- added testcase for SF# 1774351 +- fixed SF# 1784772: Message::swap omits _tid mem +- fixed SF# 1790894: IPAddress(addr,family) doesn't fail on invalid address +- fixed SF# 1804395: Constructor argument name wrong +- fixed SF# 1806807: XMLWriter::characters should ignore empty strings +- fixed SF# 1806994: property application.runAsService set too late +- fixed SF# 1828908: HTMLForm does not encode '+' +- fixed SF# 1831871: Windows configuration file line endings not correct. +- fixed SF# 1845545: TCP server hangs on shutdown +- fixed SF# 1846734: Option::validator() does not behave according to doc +- fixed SF# 1856567: Assertion in DateTimeParser::tryParse() +- fixed SF# 1864832: HTTP server sendFile() uses incorrect date +- HTTPServerResponseImpl now always sets the Date header automatically + in the constructor. +- fixed SF# 1787667: DateTimeFormatter and time related classes + (also SF# 1800031: The wrong behavior of time related classes) +- fixed SF# 1829700: TaskManager::_taskList contains tasks that never started +- fixed SF# 1834127: Anonymous enums in Tuple.h result in invalid C++ +- fixed SF# 1834130: RunnableAdapter::operator= not returning a value +- fixed SF# 1873924: Add exception code to NetException +- fixed SF# 1873929: SMTPClientSession support for name in sender field +- logging performance improvements (PatternFormatter) +- fixed SF# 1883871: TypeList operator < fails for tuples with duplicate values +- CYGWIN build works again (most things work but Foundation testsuite still fails) +- new build configuration for Digi Embedded Linux (ARM9, uclibc) +- new build configuration for PowerPC Linux + +Data: +- fixed SF# 1724388: ODBC Diagnostics +- fixed SF# 1804797: ODBC Statement multiple execution fails +- fixed SF# 1803435: SessionPool onJanitorTimer called too often? +- fixed SF# 1851997: Undefined Behavior in ODBC::Preparation +- updated SQlite to 3.5.5 + + +Release 1.3.1 (2007-08-08) +========================== + +Foundation, XML, Net, Util: +- DynamicAny fixes for char conversions +- fixed SF# 1733362: Strange timeout handling in SocketImpl::poll and Socket::select +- fixed SF patch# 1728912: crash in POCO on Solaris +- fixed SF# 1732138: Bug in WinRegistryConfiguration::getString +- fixed SF# 1730790: Reference counting breaks NetworkInterface::list() +- fixed SF# 1720733: Poco::SignalHandler bug +- fixed SF# 1718724: Poco::StreamCopier::copyStream loops forever +- fixed SF# 1718437: HashMap bug +- changed LinearHashTable iterator implementation. less templates -> good thing. +- fixed SF# 1733964: DynamicAny compile error +- UUIDGenerator: fixed infinite loop with non ethernet interfaces +- updated expat to 2.0.1 +- fixed SF# 1730566: HTTP server throws exception +- Glob supports symbolic links (additional flag to control behavior) +- fixed a problem with non blocking connect in NetSSL_OpenSSL + (see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=441&topics_threshold=0&topics_offset=29&topics_sort_mode=commentDate_desc&topics_find=&forumId=6) +- fixed a problem with SSL renegotiation in NetSSL_OpenSSL (thanks to Sanjay Chouksey for the fix) +- fixed SF# 1714753: NetSSL_OpenSSL: HTTPS connections fail with wildcard certs +- HTTPClientSession: set Host header only if it's not already set (proposed by EHL) +- NetworkInterface (Windows): Loopback interface now has correct netmask; + interfaces that do not have an IP address assigned are no longer reported. +- Fixes for VC++ W4 warnings from EHL +- SharedMemory: first constructor has an additional "server" parameter + Setting to true does not unlink the shared memory region when the SharedMemory object is destroyed. (Alessandro Oliveira Ungaro) +- fixed SF# 1768231: MemoryPool constructor + +Data: +- fixed SF# 1739989: Data::RecordSet::operator = () (in 1.3 branch) +- fixed SF# 1747525: SQLite, Transactions and Session Pooling (in 1.3 branch) +- upgraded to SQLite 3.4.1 + + +Release 1.3.0 (2007-05-07) +========================== + +- added HashMap, HashSet classes +- the HashFunction class template has been changed in an incompatible + way. The member function formerly named hash() is now the function + call operator. If you have defined your own HashFunction classes, + you have to update your code. Sorry for the inconvenience. +- added Poco::Tuple +- added AbstractCache::getAllKeys(), improved performance of the get operation +- fixed AbstractCache::size() to do cache replacement before returning the size +- added additional match() method to RegularExpression and documented the fact that the simple + match() method internally sets RE_ANCHORED and RE_NOTEMPTY. +- added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches +- added operator ! to AutoPtr and SharedPtr +- Buffer uses std::size_t instead of int +- Exception::what() now returns exception name instead of message +- added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds) +- added Environment::get(name, defaultValue); +- Foundation.h now includes Config.h at the very beginning. +- added replace() and replaceInPlace() to Poco/String.h +- added AutoPtr::assign() and SharedPtr::assign() +- added operator () to AbstractEvent +- gcc Makefiles now strip release builds +- Void now has a == and != operator +- Base64Encoder and HexBinaryEncoder now support an unlimited line length + (no newlines written), by specifying a line length of 0 +- NumberParser now has stricter syntax requirements: garbage following a number leads to a SyntaxException + (Thanks to phireis@gmail.com for the suggestion) +- fixed SF# 1676830: Don't use -rpath in libraries +- fixed SF# 1670279: AbstractConfiguration::unckeckedExpand crash +- fixed a warning in Hashtable +- HTTPClientSession now uses a keepAliveTimeout for better persistent connection handling +- added DateTime::makeUTC() and DateTime::makeLocal() +- added another constructor to LocalDateTime +- POCO_WIN32_UTF8 is ignored on non-Windows platforms +- fixed a timeout bug (with NetSSL) in HTTPSession +- AsyncChannel is automatically opened with first log() +- minor fix to NotificationQueue sample (reported by Laszlo Keresztfalvi) +- added File::canExecute() and File::setExecutable() +- added SharedMemory class to Foundation +- added FileStream, FileInputStream, FileOutputStream to Foundation +- added NodeAppender class to XML for faster DOM tree creation +- HTTPServerRequest and HTTPServerResponse are now abstract base classes, + actual functionality has moved into HTTPServerRequestImpl and + HTTPServerResponseImpl. This allows us to plug other HTTP servers + into POCO. +- added DynamicAny class to Foundation +- replaced std::fstream with Poco::FileStream across POCO. +- added Poco::Checksum class to Foundation. +- fixed SF# 1700811: conflict in threadpool +- bugfix: File::moveTo() does not work if the target is a directory +- File::copyTo() and File::moveTo() now copy/move directories recursively +- refactored NetworkInterface (now using pimpl idiom); + added broadcast address and netmask support +- fixed SF# 1688982: POP3ClientSession fails when retrieving mails with attachment +- fixed SF# 1655104: Enhance Poco::TextEncoding functionality +- added Poco::Condition class, implementing a POSIX-style condition variable +- fixed a bug in File::create() for Windows +- added poco_static_assert (imported from boost) +- added Thread::join(timeout) and Thread::tryJoin() +- ClassLoader support for named manifests (see ClassLibrary.h - POCO_EXPORT_NAMED_MANIFEST) +- POCO_WIN32_UTF8: UNICODE #define is no longer required (and no longer + automatically defined in POCO_WIN32_UTF8 is defined) +- PCRE: upgraded to PCRE version 7.1 +- fixed SF# 1682162: Suggestion on thread priority +- fixed SF# 1613460: MSVC/STLPort warnings +- fixed SF# 1709358: Format double percent std::String bug +- added WindowsConsoleChannel class to Foundation +- added AutoPtr::unsafeCast<>() and SharedPtr::unsafeCast<>() +- fixed SF# 1708552: Failed to build on arm and powerpc +- fixed SF$ 1708529: Failed to build using GCC 4.3: missing #includes +- fixed SF# 1710053: LogStream proposal +- fixed a bug involving empty root directories in Windows DirectoryIterator implementation + (see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=343&forumId=6) +- robustness improvements to ActiveMethod - removed the opportunity for memory leaks in + case something goes while invoking the method +- made C library usage more C++-like - use C++ headers (e.g. ) instead of + C ones (). Also, use C library functions in std namespace. +- added Unicode and UTF8String for improved Unicode support. + The Unicode class can be used to obtain the Unicode properties of a character. + The UTF8 class provides case insensitive comparison and case conversion + for UTF-8 encoded strings. +- added UnWindows.h header file, replaced all #include with #include "Poco/UnWindows.h". + See the Poco/UnWindows.h header file for a rationale and explanations. +- fixed SF# 1713820: StreamSocketImpl::sendBytes sends too many bytes +- File::copyTo(): on Windows, the copy now always has the read-only flag reset, to be consistent + with other platforms. +- With Microsoft Visual C++, the necessary POCO libraries are now implicitly linked when + the corresponding header files are included (#pragma comment(lib, "PocoXYZ.lib") is used). + To disable this, compile POCO with the preprocessor symbol POCO_NO_AUTOMATIC_LIBS #define'd + (see Poco/Foundation.h and Poco/Config.h). +- The Visual Studio project files for the POCO libraries now include configurations + for building static libraries. + + +Release 1.2.9 (2007-02-26) +========================== + +- fixed a formatting problem in Util::HelpFormatter +- HTTPClientSession::sendRequest() now attempts to send the complete request in one network packet. +- improved network performance of ChunkedOutputStream: chunk size and chunk data + are sent in one network packet if possible +- fixed SF# 1655035: Wrong expires field calculation in HTTPCookie + (thanks to Sergey N. Yatskevich for this and other fixes) +- fixed SF# 1655049: Fix discrepancy of a code to the description +- fixed SF# 1655170: Poco::Timezone::standardName() problem on WIN32 +- fixed SF# 1629095: POCO_WIN32_UTF8 problem + There is a new function Path::transcode() that can be used to convert a path (or any other string) + from UTF-8 to the current Windows code page. This string can the be passed as a filename + to an fstream or fopen(). This function only does the conversion on Windows, + and only, if POCO_WIN32_UTF8 is defined. Otherwise, it simply returns the unmodified argument. +- fixed SF# 1659607: Probably a bug in Poco::Net::DialogSocket +- HTTPServer network performance improvement: responses that fit into a single network packet + sent with HTTPServerResponse::sendFile() or the new HTTPServerResponse::sendBuffer() are + sent in only one packet. +- added HTTPServerResponse::sendBuffer() +- HTTPServer now sends a Bad Request response if it fails to parse the HTTP request header. +- HTTPServer now sends an Internal Server Error response if the request handler throws an + exception prior to sending a response.- enabled TCP_NODELAY per default on TCPServer/HTTPServer +- fixed a bug in HTTP persistent connection handling + (server does not send Connection: close when it reaches connection maximum) +- HTMLForm - POST submission of URL encoded form no longer uses chunked transfer encoding + (thus improving interoperability with certain web servers) +- integrated Environment.cpp from Main (missing get(var, default)) +- added missing AutoPtr include to Util/Application + (and using Poco::AutoPtr is no longer necessary for POCO_APP_MAIN macro) +- fixed SF# 1635420: Per Regents of the University of Calfornia letter, + remove advertising from BSD licensed parts +- fixed SF# 1633133: MultipartWriter writes superluous CR-LF at beginning + + +Release 1.2.8 (2007-01-04) +========================== + +- fixed SF# 1613906: Util/Application.h and GCC 3.3 +- fixed a byte order issue (failed test) in IPv6 address formatting +- fixed SF# 1626640: Poco::Net::SocketReactor bug +- fixed client side chunked transfer encoding handling +- fixed client side persistent connection handling +- fixed SF# 1623536: HTTP Server Chunked Transfer Encoding Bug +- improved HTTP server exception text +- fixed SF# 1616294: KeepAlive HTTPServerSession patch +- fixed SF# 1616296: Trivial Poco::TaskCustomNotification patch +- fixed SF# 1619282: PurgeStrategy bug fix +- fixed SF# 1620855: Format problem + there is a new format specifier %z for std::size_t, as well as a new + flag ? for %d, %i, %o, %x meaning any signed or unsigned integer + + +Release 1.2.7 (2006-12-07) +========================== + +- Poco::File: fixed root directory handling +- fixed UUIDGenerator documentation +- clarified Application::setUnixOptions() documentation +- fixes for issue [SOAPLite Transport 0000023]: SOAP Transport Listener should be able to use existing HTTPServer instance +- fixing mantis issues 13, 14, 15, 16, 17, 18, 19, 21 +- fixed SF# 1597022: Signed/unsigned warning in StringTokenizer::operator[] +- fixed SF# 1598601: Message::op= leaks +- fixed SF# 1605960: PatternFormatter crashes on custom property +- fixed SF# 1605950: Memory leak in Logger sample code +- fixed SF# 1591635: Copy Paste Error in sample code +- fixed SF# 1591512: SMTPClientSession response stream +- fixed SF #1592776: LayeredConfiguration: getRaw should enumerate in reverse order +- SF Patch # 1599848 ] VS 2005 Util build fails +- Logger::dump() now uses std::size_t instead of int for buffer size +- LayeredConfiguration now supports a priority value for each configuration. + Also, it's possible to specify for each configuration added whether it + should be writeable. +- ServerApplication: cd to root directory only if running as a daemon +- added Message::swap() +- improvements to build system: + global Makefile has correct dependencies for samples + on Windows, samples build after libraries are ready + configure supports --no-wstring and --no-fpenvironment flags + build system supports POCO_FLAGS environment variable for compiler flags +- RemoteGen: fixed error handling for write protected files (SystemException) + fixing integral constant overflow messages with large cache expiration, m_ support for type serializers, + case-insensitive comparison added + + +Release 1.2.6 (2006-11-19) +========================== + +- added additional match() method to RegularExpression and documented the fact that the simple + match() method internally sets RE_ANCHORED and RE_NOTEMPTY. +- added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches +- added operator ! to AutoPtr and SharedPtr +- Buffer uses std::size_t instead of int +- added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds) +- Foundation.h now includes Config.h at the very beginning. +- added AutoPtr::assign() and SharedPtr::assign() +- added operator () to AbstractEvent +- gcc Makefiles now strip release builds +- documentation improvements + + +Release 1.2.5 (2006-10-23) +========================== + +- Improved LoggingConfigurator: channel creation and configuration is now a two-step process. + This means that the previous problems with PropertyFileConfiguration and IniFileConfiguration when referencing other channels are solved. +- improved options handling: better handling of (non) ambiguities. + If both an option named "help" and one named "helper" is specified, this no longer causes ambiguity errors. +- added check for duplicate option definition +- ThreadPool bugfix: fixed a crash that occurs on Linux multiprocessor machines + (caused by an thread unsafe string assignment corrupting the heap...) + (SF# 1575315) +- improved ThreadPool performance +- XML now compiles with -DXML_UNICODE_WCHAR_T (SF# 1575174) +- fixed SF# 1572757: HTML forms can have more than one key/value pair with the same name +- got rid of the dynamic casts in Events, Events/Cache: simpler/faster Delegate < operator, + prevents some rare dynamic casts error from occuring when using StrategyCollection with Caches +- improvements to Logger and LoggingConfigurator: + * added Logger::unsafeGet() + * added Logger::setProperty(loggerName, propertyName, value) + * LoggingConfigurator now correctly (re)configures existing Loggers + (prior to this change, if a Logger named "a.b.c" existed before + the LoggingConfigurator started its work, and the LoggingConfigurator + configured a Logger named "a.b", then "a.b.c" would not inherit + the new configuration). +- improvements to SplitterChannel and EventLogChannel configuration +- improved LoggingRegistry exception messages +- MessageHeader::read() is more liberal with malformed message headers. + This fixes problems with certain network cameras sending malformed HTTP headers. + + +Release 1.2.4 (2006-10-02) +========================== + +- some code beautifying and improvements to comments +- DOMParser now automatically sets FEATURE_NAMESPACE_PREFIXES +- fixed SF #1567051: DOMBuilder/DOMParser/NamespaceStrategy bug +- fixed SF #1567364: POCO_APP_MAIN +- added Document::getElementById() (two-argument) and getElementByIdNS() +- added another test for DOMParser +- added AutoPtr::isNull() (to be consistent with SharedPtr) +- this release again compiles on PA-RISC HP-UX systems with aCC +- added CMAKE support files contributed by Andrew J. P. Maclean + + +Release 1.2.3 (2006-09-14) +========================== + +- configure script now checks if (auto)selected configuration is supported +- fixed SF #1552904: NamedEvent bug? +- fixed SF #1552787: POCO not handling EINTR +- fixed SF #1552846: Random::~Random uses scalar delete +- fixed SF #1552987: TLSSlot should explicitly default-construct _value +- IPAddress no longer accepts an empty address string +- split up Observer.h into AbstractObserver.h and Observer.h +- added NObserver class template which supports an AutoPtr + argument for the notification callback +- changed EchoServer sample to use NObserver +- some Windows-specific files were missing in the tarballs + + +Release 1.2.2 (2006-09-01) +========================== + +- fixed SF # 1549973: NotificationCenter::hasObservers() returns wrong result +- fixed a memory leak in EchoServer sample +- fixed SocketReactor TimeoutNotification bug (SF #1549365, SocketNotifier::addObserver() incorrect behavior) +- fixed SF# 1549513: MultipartReader does not work with Unix-style linefeeds +- MailMessage and HTMLForm: processing of multipart messages will no longer fail if a PartHandler does not read all data from the part stream. +- added additional test case (Unix-style line ends) to MultipartReaderTest + + +Release 1.2.1 (2006-08-29) +========================== + +- fixed Config.h header (no more #undefs) + +Release 1.2.0 (2006-08-29) +========================== + +- DateTime fixes: Julian Day is no longer stored internally. + Times (hours, minutes, seconds, ...) are now always taken from an utcValue (if available) and not from the Julian day. + The Julian day is only used for calculating year, month and day (except when the Julian day is the only thing we have) + This helps us get rid of rounding errors that the Julian Day arithmetic introduced.- on Windows, UUIDGenerator no longer uses Netbios, but GetAdaptersInfo instead +- The main Makefile now has correct dependencies +- updated poco-doc.pl with latest version by Caleb Epstein +- fixed SF #1542722: InflatingInputStream: buffer error +- improved Windows UTF-8 support +- added Logger::names() +- added configure script and make install target +- XMLWriter bugfix: pretty-print bug with characters() and rawCharacters() +- improvements to build system: support builds outside of source tree +- added header doc conversion tool contributed by Caleb Epstein +- fixed SF #1542618 (build/config/Linux patch) +- bugfix: BinaryReader/BinaryWriter BOM is now 16 bits, as documented +- fixed SF #1542247 (Compiler warning from OptionCallback) +- fixed SF #1542253 (ServerApplication::handleOption doesn't call Application::handleOption) +- added Application::stopOptionsProcessing() +- updated samples +- Util::Application command line handling now supports: + * argument validation (Option::validator(); see Validator, IntValidator, RegExpValidator) + * binding of argument values to config properties (Option::binding()) + * callbacks for arguments (Option::callback()) + * checking of required parameters +- changed header file locations: + Foundation headers are now in Poco (#include "Poco/Foundation.h") + XML headers are now in Poco/XML, Poco/SAX and Poco/DOM (#include "Poco/XML/XML.h") + Util headers are now in Poco/Util (#include "Poco/Util/Util.h") + etc. + Unfortunately, this change will break existing code. However, fixing the code is + a matter of a few global search/replace operations and can be done quickly. + On the plus side, POCO is now a much better citizen when used with other + libraries. +- changed namespaces: + Foundation is now Poco + XML is now Poco::XML + Util is now Poco::Util + Net is now Poco::Net +- removed namespace macros +- fixed some warnings reported by gcc -Wall -Wextra +- fixed AutoPtr and LayeredConfiguration documentation +- improved StreamSocket::receiveBytes() doc +- added Pipe and PipeStream classes +- added support for I/O redirection (pipes) to Process::launch() +- added LogStream class (ostream interface to Logger) +- improved Makefiles (no more double-building if clean all is specified) +- added CppUnit and DateTime testsuite contributions by Andrew Marlow +- improved Cygwin and minimal MinGW support +- FileChannel: gzip compression if archived files now runs in a background thread (SF #1537481) +- POCO now compiles with large (64-bit) file support on Linux (SF #1536634) +- added format() function, which provides typesafe sprintf-like functionality (SF #1327621) +- added File::isLink() +- bugfix: dangling symbolic links in a directory no longer cause recursive remove to fail with file not found error +- added Void class (useful as argument to ActiveMethod) +- ActiveResult now supports exceptions +- bugfix: Timezone::utcOffset() and Timezone::dst() returned wrong values on Unix platforms (SF #1535428) +- added ActiveDispatcher class +- added ActiveStarter class, which is a policy used by ActiveMethod for starting methods +- ActiveRunnable moved to its own header file +- ThreadPool: added startWithPriority(), which allows for running threads with a different priority +- added error handling to dir sample +- added additional test case to HTTPServer test suite- HTMLForm: should now work with request methods other than POST and GET (all non-POST requests are treated the same as GET) +- clarified HTMLForm documentation +- HTMLForm bugfix: uploaded files no longer end up in value; PartHandler is called instead +- NameValueCollection: added get(name, defaultValue) +- added HTTPFormServer sample +- added Foundation::HashTable and SimpleHashTable +- added Net::HTTPSessionFactory +- improvements to AutoPtr and SharedPtr +- improvements to namespaces handling in XMLWriter +- Foundation Cache: fixed add implementation to match the docu: a 2nd add will now simply overwrite existing entries +- added DateTime::isValid() +- added Exception::rethrow() (virtual, must be overridden by all subclasses) +- Timer can now use a user-supplied ThreadPool +- added rethrow() to exception classes +- Net: made some constructors explicit +- Net: added SocketAddress constructor to HTTPClientSession +- Net: added HTTPSession::networkException() to check for exceptions swallowed by stream classes +- Net: added single string argument constructor to SocketAddress. +- Net: improved HTTPClientSession error handling (no more "Invalid HTTP version string" exceptions when the server prematurely closes the connection due to too much load) +- Net: improved HTTPSession error handling. Exceptions while sending and receiving data are stored for later retrieval and no longer get lost since streambufs swallow them. +- Net: added HTTPLoadTest sample +- fixed a bug when opening logfiles on Unix platforms causing an existing logfile to be truncated +- bugfix: log file purge intervals given in months did not work, due to a stupid typo +- added RawSocket and ICMP classes +- UUID: fixed a doc formatting bug +- NetworkInterface::list() now includes loopback interface on Windows (SF #1460309) +- made Exception::message() and Exception::nested() inline +- added Net::UnsupportedRedirectException +- HTTPStreamFactory throws an UnsupportedRedirectException if it encounters a redirect to https +- HTTP: fixed bad 100 Continue handling in client and server code +- added CONTRIBUTORS file + + +Release 1.1.2 (2006-07-07) +========================== + +- Changed license to Boost license +- DBlite and NetSSL have been removed from the Boost-licensed release. + Please contact Applied Informatics (info@appinf.com) if you're interested in them. + + +Release 1.1.1 (2006-04-03) +========================== + +- NetSSL_OpenSSL now supports separate certificate verification + settings for client and server. +- fixed SF #1460309 (enumerating network interfaces failed on 64bit Linux) +- TCPServer no longer crashes if accept() fails + + +Release 1.1.0 (2006-03-23) +========================== + +- events no longer require awkward += new syntax +- source code and documentation cleanups +- basic support for new compilers and platforms + + +Release 1.1b2 (2006-03-04) +========================== + +- made NetSSL threadsafe (added locking callbacks for OpenSSL) +- improved OpenSSL initialization (random generator seeding) +- various changes to improve compatibility with various platforms + + +Release 1.1b1 (2006-03-03) +========================== + +- New Events package in Foundation. The package supports C#-style event handling +- New Cache package in Foundation: a templates-based caching framework +- added Any class to Foundation +- added DBLite library +- fixed a memory leak with layered configurations in the application +- made POCO_DLL the default (unless POCO_STATIC is #defined) + It is no longer necessary to specify POCO_DLL in projects that use Poco + (SourceForge Patch #1408231 and Feature Request #1407575). +- added Buffer template class to Foundation +- added the UnicodeConverter utility class. This is mainly used for Windows Unicode support and probably of little use for anything else. +- added Path::resolve() +- added Windows Unicode support. This calls the Unicode variant of the Windows API functions. + For this to work, all strings must be UTF-8 encoded and POCO_WIN32_UTF8 must be defined in all compilation units. +- added StreamCopier::copyToString() +- added URIStreamOpener::unregisterStreamFactory() and new variants of URIStreamOpener::open() that also work with filesystem paths. + This fixes SourceForge Bug #1409064 and Feature Request #1409062. +- added NodeIterator::currentNodeNP() to XML library +- added some sanity checks to UTF8Encoding::convert() +- added NetSSL - SSL support for Net library, based on OpenSSL +- console output of processes launched with Process::launch() is now visible + + +Release 1.0.0 (2006-01-19) +========================== + +- removed unnecessary console output from ProcessTest +- documentation fixes + + +Release 1.0b2 (2006-01-16) +========================== + +- added ProcessHandle class +- Process::launch() now returns a ProcessHandle instead of a process ID. + This fixes a potential problem on Windows with Process::wait() when + the process terminates before wait() is called. +- added SplitterChannel::close() +- added Logger::destroy() +- added POP3ClientSession::deleteMessage() +- added test for Process::launch() +- documentation fixes + + +Release 1.0b1 (2006-01-09) +========================== + +- improved recognition of Windows paths in Path::parseGuess() +- added setCurrentLineNumber()/getCurrentLineNumber() to CountingStreamBuf +- improvememts to StreamTokenizer and Token; fixed documentation +- added a workaround for some strange istream behaviour with VS 2005 and FTPClientSessionTest +- improved exception/error reporting in cppunit +- added POP3ClientSession +- added Process::launch() and Process::wait() +- added Mail sample +- added MailStream and SMTPClientSession classes +- renamed some methods in DialogSocket to make them more general +- NullPartHandler has moved out of HTMLForm.cpp into a separate file +- Base64Encoder now always writes \r\n line ends +- MessageHeader::quote has an optional addition arg controlling the treatment of whitespace +- bugfix: MultipartReader had a problem with empty lines (\r\n sequences) in a part +- added MailMessage and MailRecipient classes +- added text encoding support for Windows-1252 codepage + + +Release 1.0a1 (2006-01-03) [internal] +===================================== + +- mediaType is used consistently to refer to a MIME media type (some occurences of contentType and mimeType have been replaced) +- moved MediaType::quote() to MessageHeader and made it public +- added MultipartWriter::stream() +- Renamed AttachmentSource to PartSource and AttachmentHandler to PartHandler +- SIGPIPE is always blocked in main thread on Unix systems +- added EchoServer sample +- fixed a bug in SocketImpl::setBlocking() - did exactly the opposite (value to ioctl was wrong) +- fixed a memory leak in NotificationQueue sample +- added comparison operators to Socket so that Sockets can be used as keys in maps +- added Socket::setBlocking() +- added StreamSocket::connectNB() (non-blocking connect) +- added Observer::accepts() +- added SocketReactor, SocketConnector and SocketAcceptor classes to support event-based socket programming +- NamespacePrefixesStrategy now uses expat's XML_SetReturnNSTriplet(). + The previously used separate namespace handling code has been removed. + This improves performance if NamespacePrefixesStrategy is used (both the n + amespaces and namespace-prefixes SAX2 features are used) +- upgraded expat to 2.0 pre-release (2005-12-27) snapshot +- added TeeInputStream and TeeOutputStream classes +- added download sample for URIStreamOpener +- renamed registerOpener() to registerFactory() in HTTPStreamFactory and FTPStreamFactory +- added LineEndingConverter streams +- added FTPClientSession +- code and documentation clean-up +- added DialogSocket class +- reorganized HTTP test suites +- added FTPClientSession and FTPStreamFactory +- added DialogSocket class + + +Release 0.96.1 (2005-12-28) +=========================== + +- fixed a memory leak caused by a bug in Microsoft's stream implementation (see the comment in Foundation/StreamUtil.h for an explanation) +- added samples for Net library +- added uptime() and startTime() to Util::Application +- added DateTimeFormatter::format() for Timespan +- added ErrorHandler class and better exception handling for threads +- added poco_debugger() and poco_debugger_msg() macros +- added project and solution files for Visual Studio 2005 (due to some bugs/leaks in Microsofts standard library - see + http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=e08bd793-3fef-40ff-adda-ed313e0eafcc + we do not recommend using this for production purposes) +- fixed two problems with out-of-range string iterator in Path (the testsuite triggered an assertion in VC++ 8.0) +- fixed mac line endings in a few files +- added a workaround to the class loader that fixes strange behavior with VC++ 8.0. There seems to be a problem with typeid() not returning a valid typeinfo under certain circumstances. +- added buffer allocator argument to buffered stream buffer templates +- added buffer pools to HTTP to reduce memory fragmentation and to improve performance +- added Net to Windows build.cmd script +- added swap() to various classes that already support assignment +- added a null pointer check in DOMWriter::writeNode() +- fixed documentation in BinaryWriter.h and BinaryReader.h +- added explicit support for network byte order to BinaryReader and BinaryWriter +- added basic support for FreeBSD (needs more testing) +- BinaryReader: renamed readRawData() to readRaw() to be consistent with BinaryWriter::writeRaw() +- added support for uppercase output to HexBinaryEncoder. +- added MediaType class +- added QuotedPrintableEncoder and QuotedPrintableDecoder classes +- renamed ObjectFactory to Instantiator. This should prevent the confusion caused by DynamicFactory and ObjectFactory. Sorry for the inconvenience if you are already using this. +- AttachmentSource::filename() now returns const string& +- added StringAttachmentSource +- replaced old-style C casts with C++ casts in NetworkInterface.cpp +- MutexImpl (WIN32): replaced InitializeCriticalSection with InitializeCriticalSectionAndSpinCount, which should increase performance on multiprocessor or multicore systems when many locks are used. +- fixed a problem with STLport 5.0 when compiling StreamTokenizer +- HTTPStreamOpener now also works with no-path URIs (like http://www.appinf.com) +- fixed wrong delete usage (plain delete instead of delete [] was used in a few cases) +- fixed a handle leak in WinTestRunner + + +Release 0.95.4 (2005-11-07) +=========================== + +- fixed #1348006 and #1348005 + + +Release 0.95.3 (2005-10-28) [internal] +====================================== + +- updated build scripts (patch #1339015) +- added support for AMD64 platforms (patch #1339015) +- MultipartWriter creates its own boundary if an empty string is passed in as boundary +- made MultipartWriter::createBoundary() public +- fixed wrong documentation for DateTimeFormat::HTTP_FORMAT +- added support for HTTP Basic authentication +- added support for HTTP Cookies +- added support for HTML forms + + +Release 0.95.2 (2005-10-22) [internal] +====================================== + +- fixed a potential problems with streams when close in destructor fails (added try..catch block around close in destructors) +- added HTTPServer & friends +- added hasIdleThreads() method to NotificationQueue +- added TCPServer and friend +- added support for HTTP proxies to HTTPClientSession and HTTPStreamOpener +- fixed documentation bugs (Mutex.h, ClassLoader.h) + + +Relesae 0.95.1 (2005-10-15) [internal] +====================================== + +- Tasks can now throw custom notifications (contributed by Alex Fabijanic) +- renamed URIFileStreamFactory to FileStreamFactory +- added a few methods to URI (setPathEtc(), getPathEtc(), getPathAndQuery()) +- added new exception classes +- fixed some documentation +- added basic checks when reading a MessageHeader from a stream +- added HTTP classes (testsuite still incomplete) +- added MessageHeader, NameValueCollection, MultipartReader and MultipartWriter classes +- added Timespan::useconds() +- added ClassLoader::isLibraryLoaded() +- Socket classes use Timespan::useconds() to fill struct timeval +- added DatagramSocket, MulticastSocket and NetworkInterface classes +- added socket classes and related basic stuff +- added additonal constructor/assign to Timespan- added BasicBufferedBidirectionalStreamBuf +- fixed a potential MT issue in Base64Decoder +- code beautifying in [Un]BufferedStreamBuf +- more improvements to ClassLoader +- code cleanup and naming convention fixes (changed all *Imp classes to *Impl for consistency) + + +Release 0.94.1 (2005-09-30) [internal] +====================================== + +- added MetaSingleton (based on a contribution by Alex Fabijanic) +- added ClassLoader::create() +- added ClassLoader::instance() +- code clean-ups in FileChannel and related classes +- added SimpleFileChannel +- RotateAtTimeStrategy: + ::getNextRollover() rewritten (buggy) +- DateTime + microseconds assert corrected + asserts in computeGregorian() (except for year - see comment in computeGregorian()) + milliseconds calculation modified in computeGregorian() + microseconds assigned in computeGregorian() + normalize() and checkLimit() private functions to correct cases of overflow for milli/microseconds +- LocalDateTime: added timestamp() method +- FileChannel: + added "times" property (used to determine whether to use UTC or local time with RotateAtTimeStrategy) + ::setProperty() modified (whenever "times" property is set, methods setRotation and setArchive are + reinvoked to reflect the change) +- FileChannel: added support for archived file compression and archived file purging +- FileChannel tests modified +- FileChannel: put LogFile, RotateStrategy and ArchiveStrategy into their own files +- Message: added thread id field +- PatternFormatter: added %I specifier for thread id +- ThreadPool: PooledThread can be assigned a name +- TaskManager: task name is reflected in thread name +- fixed LocalDateTime::operator - (const Timespan&) [#0000004] +- upon startup all loggers' channels are set to a console channel +- improved search for application configuration files (see loadConfiguration()). +- added Glob class (fixes #1249700) +- upgraded to zlib 1.2.3 (fixes #1261712) +- added Logger::dump() +- fixed a wrong condition in Logger::log(const Message&) +- Path::find() now also works with relative paths in addition to plain file names +- added Path(const Path&, const Path&) constructor +- added SharedPtr template +- added Path::tryParse() +- SAXParser::parse()/EntityResolverImpl now works for both URIs and local filesystem paths (fixes #1254812) + + +Release 0.93.1 (2005-08-01) +=========================== + +This release contains various new features, improvements and bugfixes: +- bugfix: UUIDGenerator throws an exception if no connected ethernet adapter can + be found (and thus no MAC address can be obtained) +- added UUIDGenerator::createOne() method +- added error handling to UUID sample application +- added relational (==, !=, <, <=, >, >=) and arithmetic operators (+, -, +=, -=) to DateTime +- added LocalDateTime class +- added support for LocalDateTime to DateTimeParser and DateTimeFormatter +- added enqueueUrgentNotification() to NotificationQueue +- added support for timezone specifiers (%z, %Z) to PatternFormatter +- added [] operator and count() to StringTokenizer +- added elapsed() and isElapsed() to Timestamp +- added tzd() to Timezone +- added WinRegistryKey and WinService classes (Windows only) +- added index operator and count() to StringTokenizer +- added day/time-based log rotation (thanks to Alex Fabijanic), minor improvements to DateTimeParser +- support for Mac OS X 10.4/gcc 4.0.0 +- added NamedMutex and NamedEvent +- added Process::kill() +- added NoPermissionException +- added Task and TaskManager classes +- added ServerApplication class +- bugfix: EventLogChannel - _logFile was not properly initialized in one constructor +- bugfix: File::createDirectories did not work for hierarchies deeper than three +- added Util::FilesystemConfiguration +- documented logging policy: log() must open channel if it hasn't been opened yet +- FileChannel::log() opens channel if necessary +- the application reference passed to initialize() and reinitialize() is no longer const +- improved application logging initialization +- fixed a problem with configuration view and property placeholders +- fixed Util build configuration for Visual Studio +- improved application samples +- fixed documentation for Semaphore class + + +Release 0.92.1 (2005-05-09) +=========================== + +This release introduces the Util library that provides support for +configuration file parsing (different file formats), command line +argument processing, logging configuration and a framework for +command line/server applications. +There have also been various changes to the Foundation library: +- a new RefCountedObject class that acts as a base class for + various classes that use reference counting +- some missing members have been added to the AutoPtr template +- various improvements and bugfixes to the Logging framework, as well as + new LoggingFactory and LoggingRegistry classses, and a NullChannel class +- the SignalHandler class (Unix platforms only) +- ObjectFactory and DynamicFactory template classes +- the Path::find method for searching a file in a list of directories +- various new Exception classes + + +Release 0.91.4 (2005-04-11) +=========================== + +This is mainly a maintenance release that adds support for QNX Neutrino +and OpenVMS. There are also minor bugfixes and improvements. + +The Unix build system has been modified to work on QNX Neutrino. +The OpenVMS build system has been fixed and works now. +Some missing #include's have been added for QNX Neutrino. +Foundation/String.h: icompare now supports comparison with const char*; +the classic C version of isspace() has been used in a few places instead of the +C++ version, this has been fixed. +Foundation/Exception.h: IllegalStateException added. + + +Release 0.91.3 (2005-03-19) +=========================== + +This is a maintenance release that adds support for Solaris/Sun Forte C++. +No new features have been added. + +An implementation of FPEnvironment for Solaris has been included. +All stream classes have been modified to work around an initialization +problem that surfaced with Sun's C++ compiler when using STLport. +Source-code compatibility with the previous release is not affected. Various +minor changes, mostly adding missing #include's for Solaris. + + +Release 0.91.2 (2005-02-27) +=========================== + +Minor improvements to the Unix build system. No actual changes in the +libraries. + + +Release 0.91.1 (2005-02-21) +=========================== + +This is the first public release of the C++ Portable Components. +The release does not contain all features planned for the later 1.0 release +(the NET library is missing, for example), but is already quite usable. +Please refer to the README file for more information and instructions for +building the libraries. + + +-- +$Id: //poco/1.4/dist/CHANGELOG#59 $ diff --git a/packaging/Linux/Fedora/.gitignore b/packaging/Linux/Fedora/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/packaging/Linux/Ubuntu/debian/.gitignore b/packaging/Linux/Ubuntu/debian/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/packaging/Other/.gitignore b/packaging/Other/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/packaging/Other/VMS/.gitignore b/packaging/Other/VMS/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/packaging/README.md b/packaging/README.md new file mode 100644 index 000000000..4b3613357 --- /dev/null +++ b/packaging/README.md @@ -0,0 +1,111 @@ +POCO C++ Distribution +===================== + +This repository contains packaged Poco releases for various platforms and +successive versions of Poco starting from release Poco-1.6.1. + +CHANGELOG contains all changes for the following releases + +- Release 1.7.8p4 (2017-08-11) +- Release 1.7.8p3 (2017-06-22) +- Release 1.7.8p2 (2017-04-18) +- Release 1.7.7 (2016-12-31) +- Release 1.7.6 (2016-10-18) +- Release 1.7.5 (2016-08-29) +- Release 1.7.4 (2016-07-20) +- Release 1.7.3 (2016-05-02) +- Release 1.7.2 (2016-03-21) +- Release 1.7.1 (2016-03-14) +- Release 1.7.0 (2016-03-07) +- Release 1.6.1 (2015-08-03) +- Release 1.6.0 (2014-12-22) +- Release 1.5.4 (2014-10-14) +- Release 1.5.3 (2014-06-30) +- Release 1.5.2 (2013-09-16) +- Release 1.5.1 (2013-01-11) +- Release 1.5.0 (2012-10-14) +- Release 1.4.7p1 (2014-11-25) +- Release 1.4.7 (2014-10-06) +- Release 1.4.6p4 (2014-04-18) +- Release 1.4.6p3 (2014-04-02) +- Release 1.4.6p2 (2013-09-16) +- Release 1.4.6p1 (2013-03-06) +- Release 1.4.6 (2013-01-10) +- Release 1.4.5 (2012-11-19) +- Release 1.4.4 (2012-09-03) +- Release 1.4.3p1 (2012-01-23) +- Release 1.4.3 (2012-01-16) +- Release 1.4.2p1 (2011-09-24) +- Release 1.4.2 (2011-08-28) +- Release 1.4.1p1 (2011-02-08) +- Release 1.4.1 (2011-01-29) +- Release 1.4.0 (2010-12-14) +- Release 1.3.6p2 (2010-01-15) +- Release 1.3.6p1 (2009-12-21) +- Release 1.3.6 (2009-11-24) +- Release 1.3.5 (2009-05-11) +- Release 1.3.4 (2009-04-21) +- Release 1.3.3p1 (2008-10-09) +- Release 1.3.3 (2008-10-07) +- Release 1.3.2 (2008-02-04) +- Release 1.3.1 (2007-08-08) +- Release 1.3.0 (2007-05-07) +- Release 1.2.9 (2007-02-26) +- Release 1.2.8 (2007-01-04) +- Release 1.2.7 (2006-12-07) +- Release 1.2.6 (2006-11-19) +- Release 1.2.5 (2006-10-23) +- Release 1.2.4 (2006-10-02) +- Release 1.2.3 (2006-09-14) +- Release 1.2.2 (2006-09-01) +- Release 1.2.1 (2006-08-29) +- Release 1.2.0 (2006-08-29) +- Release 1.1.2 (2006-07-07) +- Release 1.1.1 (2006-04-03) +- Release 1.1.0 (2006-03-23) +- Release 1.1b2 (2006-03-04) +- Release 1.1b1 (2006-03-03) +- Release 1.0.0 (2006-01-19) +- Release 1.0b2 (2006-01-16) +- Release 1.0b1 (2006-01-09) +- Release 1.0a1 (2006-01-03) [internal] +- Release 0.96.1 (2005-12-28) +- Release 0.95.4 (2005-11-07) +- Release 0.95.3 (2005-10-28) [internal] +- Release 0.95.2 (2005-10-22) [internal] +- Release 0.94.1 (2005-09-30) [internal] +- Release 0.93.1 (2005-08-01) +- Release 0.92.1 (2005-05-09) +- Release 0.91.4 (2005-04-11) +- Release 0.91.3 (2005-03-19) +- Release 0.91.2 (2005-02-27) +- Release 0.91.1 (2005-02-21) + + + POCO C++ Libraries +================== + +POrtable COmponents C++ Libraries are: +-------------------------------------- +- A collection of C++ class libraries, conceptually similar to the Java Class Library, the .NET Framework or Apple’s Cocoa. +- Focused on solutions to frequently-encountered practical problems. +- Focused on ‘internet-age’ network-centric applications. +- Written in efficient, modern, 100% ANSI/ISO Standard C++. +- Based on and complementing the C++ Standard Library/STL. +- Highly portable and available on many different platforms. +- Open Source, licensed under the [Boost Software License](https://spdx.org/licenses/BSL-1.0). + +---- +To start using POCO, see the [Guided Tour](http://pocoproject.org/docs-1.5.3/00100-GuidedTour.html) and [Getting Started](http://pocoproject.org/docs-1.5.3/00200-GettingStarted.html) documents. + +---- +POCO has an active user and contributing community, please visit our [web site](http://pocoproject.org), [forum](http://pocoproject.org/forum) and [blog](http://pocoproject.org/blog). +Answers to POCO-related questions can also be found on [Stack Overflow](http://stackoverflow.com/questions/tagged/poco-libraries). + +---- +In regards to Boost, in spite of some functional overlapping, +POCO is best thought of as a Boost complement (rather than replacement). +Side-by-side use of Boost and POCO is a very common occurrence. + + + diff --git a/packaging/README.txt b/packaging/README.txt new file mode 100644 index 000000000..6c061835e --- /dev/null +++ b/packaging/README.txt @@ -0,0 +1,24 @@ + POCO C++ Libraries +================== + +POrtable COmponents C++ Libraries are: +-------------------------------------- +- A collection of C++ class libraries, conceptually similar to the Java Class Library, the .NET Framework or Apple’s Cocoa. +- Focused on solutions to frequently-encountered practical problems. +- Focused on ‘internet-age’ network-centric applications. +- Written in efficient, modern, 100% ANSI/ISO Standard C++. +- Based on and complementing the C++ Standard Library/STL. +- Highly portable and available on many different platforms. +- Open Source, licensed under the [Boost Software License](https://spdx.org/licenses/BSL-1.0). + +---- +To start using POCO, see the [Guided Tour](http://pocoproject.org/docs-1.5.3/00100-GuidedTour.html) and [Getting Started](http://pocoproject.org/docs-1.5.3/00200-GettingStarted.html) documents. + +---- +POCO has an active user and contributing community, please visit our [web site](http://pocoproject.org), [forum](http://pocoproject.org/forum) and [blog](http://pocoproject.org/blog). +Answers to POCO-related questions can also be found on [Stack Overflow](http://stackoverflow.com/questions/tagged/poco-libraries). + +---- +In regards to Boost, in spite of some functional overlapping, +POCO is best thought of as a Boost complement (rather than replacement). +Side-by-side use of Boost and POCO is a very common occurrence. diff --git a/packaging/Unix/.gitignore b/packaging/Unix/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/packaging/Unix/HP/.gitignore b/packaging/Unix/HP/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/packaging/Unix/Sun/.gitignore b/packaging/Unix/Sun/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/packaging/Windows/NuGet/Pocoproject.Poco.vs140.nuspec b/packaging/Windows/NuGet/Pocoproject.Poco.vs140.nuspec new file mode 100644 index 000000000..346766445 --- /dev/null +++ b/packaging/Windows/NuGet/Pocoproject.Poco.vs140.nuspec @@ -0,0 +1,46 @@ + + + + Pocoproject.Poco.vs140 + $version$ + Poco $version$ + Applied Informatics & Contributors + Günter Obiltschnig & Aleksandar Fabijanic + https://pocoproject.org/license.html + https://pocoproject.org/ + https://avatars1.githubusercontent.com/u/201918?v=4&s=200 + false + Modern, powerful open source C++ class libraries for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. + + + Copyright 2017 + string filesystem thread date log event regex uri uuid cache native nativepackage sockets mime http ftp mail pop3 smtp html sax sax2 dom xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packaging/Windows/NuGet/Pocoproject.Poco.vs140.symbols.nuspec b/packaging/Windows/NuGet/Pocoproject.Poco.vs140.symbols.nuspec new file mode 100644 index 000000000..536370b0c --- /dev/null +++ b/packaging/Windows/NuGet/Pocoproject.Poco.vs140.symbols.nuspec @@ -0,0 +1,25 @@ + + + + Pocoproject.Poco.vs140 + $version$ + Poco $version$ + Applied Informatics & Contributors + Günter Obiltschnig & Aleksandar Fabijanic + https://pocoproject.org/license.html + https://pocoproject.org/ + https://avatars1.githubusercontent.com/u/201918?v=4&s=200 + false + Modern, powerful open source C++ class libraries for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. + + + Copyright 2017 + string filesystem thread date log event regex uri uuid cache native nativepackage sockets mime http ftp mail pop3 smtp html sax sax2 dom xml + + + + + + + \ No newline at end of file diff --git a/packaging/Windows/NuGet/Pocoproject.Poco.vs140.targets b/packaging/Windows/NuGet/Pocoproject.Poco.vs140.targets new file mode 100644 index 000000000..13b3e5ebe --- /dev/null +++ b/packaging/Windows/NuGet/Pocoproject.Poco.vs140.targets @@ -0,0 +1,13 @@ + + + + $(MSBuildThisFileDirectory)inc;%(AdditionalIncludeDirectories) + + + $(MSBuildThisFileDirectory)lib;%(AdditionalLibraryDirectories) + + + $(MSBuildThisFileDirectory)lib64;%(AdditionalLibraryDirectories) + + + \ No newline at end of file diff --git a/packaging/Windows/NuGet/api.key b/packaging/Windows/NuGet/api.key new file mode 100644 index 000000000..3a263b7b3 --- /dev/null +++ b/packaging/Windows/NuGet/api.key @@ -0,0 +1 @@ +e5709aaf-9638-45e8-a8b9-0de8a7cec41e \ No newline at end of file diff --git a/packaging/Windows/WiX/Poco 128x410.bmp b/packaging/Windows/WiX/Poco 128x410.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d77e39dc7d66bab9267a37f52950d7176c27b3a7 GIT binary patch literal 157494 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 WB)i-B_@{ntc*<8NIc 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 literal 0 HcmV?d00001 diff --git a/packaging/Windows/WiX/Poco 312x312.jpg b/packaging/Windows/WiX/Poco 312x312.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70f784bdc6a7912de50bf8ad8a1bd0d6d204eaaf GIT binary patch literal 20438 zcmb4qWq4dW&)|fanW153Y8WQW%*@P84Kp*eVP;MmW@cti(I|wkqe*+je02&4s5(*9i1SS9jf&Wh^ z000IK4FL%S^LGP)2m*kkLZE`)?e-Pjc|AAy-&E`F)Hu1As4cS;f5S{?psFZeX330A zwaJt>r34gL1Zj<{!c~xF4~H%pb1G)V2;sF+>()s8b57s2$*nz-FqT`L7`DN}Lf#R2xK{ zXoZietF1859uW)q3aB&TyepcfASRNEgm(Hpvit@3bO$lC7(`ggtA*-(sepXqX=Tp~ zn9Oa*CIFWHECW!3;aA(8?>U^pfO|X=1;~-HWS8aew8BsC&U)do!uA%s*fV0xdjPY% zkAOz7--Ls~k)d>5B_#zArkx{nBf(UoHr@Dq$3<@avL=3tBnAP3&=605$^q0$ke}2zyA+haw zMs1)J2uLa%3;=`0l;1|-cHD8FKUr3%Bsw2fhiJR`OdRS>-Q>!8LbhOMvscBbSutG; zKqja5KXJd21RpvK4za`PM!zND6tQ1sdTPNU$TY*I{^@)TV;J?@3Q`Vcg?(}>e@6e< z0~W9>OKB*3ncBx0<=d#9CXilY=rIs+R?kRLW|5yceRtmR>bZ;)L94dZKzb0(%8@qM#lVklb1fK!naa_m<>;kX9n)7 z>vL+q()sF!6+K=zmu}K*Rv`>8u^1U|nb~3Cs&!(4GVmok=f8Y(j{~~b52gxlR_DJD zWOSAMNXYaV6(ZJ3;PU@8dEG0UTq%QH;h{9b8gfOh;tikPmI?hq_T~uVdGw@^UyV0HZ zn~{(uxK-!DRtl39-9LJ>eaegz7*IF`P^MYSBvYZumpSFADrNFzPVc(83w#hskd^+-Jc*QE z+@#4om{t0v%kSOPDaN=_}3!! zD)~(=fA-Vf^M3RCW|Y6}CsDr4sRFA`sc7QmA@E$bwf8)J@F)H4bQ@YR?nqRH!Y$5md|87?eDOnR8z-9kCSq=1(Z%^HE71w13t?~iS&Ex+mp zmC!u9C^Zin9jWu44ZLbMNLx-OH5X)0b0dRniYr2wrO1FFK~jZKdvCw-L6Ep5Tpqhb z4F-q&XJR3=KkG3fx2OqojtujQ zO)+Y5sG((qt-B4kK*YZ16P*%hO#+8RhAgOj+kwtpr+eiFWXh|8U!1m{n}7n(*?awkl_ z6(zhF-2?E_iqHYiE+TbRwJFP#jyHz5f?jZVFx-DgHD@+jtNSdITtVl5&);#QY1$bZ z1o(%Jux=Nt)O=%KY%&$@Oe;f|Whri+wLgEI3kHEnc~C!*E4jaB-t~IQiPgd&mX+$cGz@3aa zCAB6r^h6mkn}9td3WKSTSX4G~Jg;+bkdRxRUKvYZA_t9HXl8Js2G#E7il3}**~&f_ zLL3~{y(w5qq@c>HeF5=nMfnOFfP9&)tXU^VAl6Kb&@3Ky9103V(@L9S%%(r_axySl z_z6hyJg{BM$<@)?DOn5O&m902cD8%*34CP#BB`{Ik_cVqRIHD^PtY`8G`7{SQai>{ zQ5({UrKMS6TEw%b9||g5vh($4lL0O7)k*2rC%0D{T}reBe2-#*`50;gACs>(ko-Yz z|5z7$s#*&?B-3g5Nf{9Ds8iy`z^!4ncJB*=FX`##;eJW`GpzoUJgqmAwyA3sozxHl z<7gEG7dkIRrUo(%N-@+)iDKF8nOZH;i0hBzj4QB<)IXR(?LtP^kkJi4yl{W(Y!2o_ z=xnr`@)o*m?fQyOSNn6Gl@YLuKQNFl8A~gH7~350k_$0D%c5R^GYB$`Qw}JDfCp%# zwfDPAG}4I(@hueoM@E)z9EA!zSJugkEC)k8-M-j>Nn@bdfQ%GKxkoD?=ERj(m0-?Hbux`=C8e515U6`8wV}mkN~z+Tx0~!eB1ai zV#(N6XjpspbKzj`Ool~(LBxU0)in+)d|xwY|12L%Iy{t>rf zi?V5_Mdh(s<0UrKAXG4LNN@nDu+gAbs}nR*v#=a>a@SpLrxUCMJv2i{m#)P)9GXZU zKolN8h)mDPCW&a1sqzfeZW*LaJOYEIK?RJ7I7x;%T^j2V7_y+*d^JYwV(lsjd42_P zo7zNPG9ClZ@q>zTC|K|iWS`R@UfWF!tcpygVoPkzj6k6oxRDW>V3tf$0=HUbBxV}C ztkBJ~?~mEtoA4WvGglir8>#=0oi6zs$ZC}al7AR5&<)0%_*5YK7qm!$Bt{NhD<~r{ z!g4A5ErQzi!nEcpAZz`6&9Q9s=V_cO$Q(%q>7ftCT}q6BD>P=|j8R(x4Fk;v#1a@1 zq+u#>H~Sgf)^6NoNh{-zTtXnjoEcDun*tHspXeJDOwL&5OvHu9293f%zr(Mm$C z`^rrE@}=e5D$V~HXVYqx|F393^8*LXg==e_YLDrOuRDEoYrb`=I!$XWE=BsY4r%Io zxpR}!poMYx)F4t;IKuk1%z{dvR)t`kKjCQ<_RkI-rh#O=X*;VS^pYwB8M|hhbt{p^ zxe)ULD0?ZL`RN$U_SE^;6c--5{lZsl{)VEHEqe7_BT+nc`!0@DsVJ%>Z#GuMqm3=> z%}7tf%t0~U?39q!ED1@MK&qO^r|=u4`2AvMhZZIGxGaa%@jzMyy%b1_g44pZi2VK( z&adMlqOFm!CyJu2S)s`$&30{wkbxEY_Va~^zr9J9zc9IlZnOU)bR_*JQe}-8H2g{} zu`)6C8T1Jiu5l>|MktpPqGCEbD@iEc`02=V=zU5s%d->Q&+%0!pZGd1m5L7-c8%v0 zpvCY*Q%k^2!?`I%!JP83LML@aV5}($rLTjgh}L39VULzy!k8ebr7rB!37?BhUEQe- z4O5wtAt&+Av{SZ?rpM3FSDeS3SFNxK2!vywGW!7Mks6Jg>a^>^(c_CejGlwZ8YlKr zWi12QW!=#vOP(sch5oq_kWz+7i3yyd=WW@rx0jXTYuo`RR8I)#Cs zzZ@hQc6gX?Ynh&gc8TIP+YPr-ZX%;98`Jfx4+Kv4Tnbc7X@1TqiapR98TR09J$G0*?qjN<<^gVE-+03$j-I(H0_YyY15%sLkHf>ELMd+NwSW(y6pYlNMf6KeBc5R zO<`+LiU{E*OXpZt``NLEfyoMAL0DQ;O1$^|@NJN8rGaazc;R>b+2GK=_c%J&Y>j&Y zh#(kkETEpgo}9fq)Eqmz6HcFT<~d|{;W!}0w2lmKnwnhJ%L;DGU1qgfgk#mf%f5Rw zV&pA_-0_9V-RL7T5d0~K$oYS1oG#Ac>7OhJHamY_4?^Jb5--%@mO zfj0uLNGG>oqF*P3%!U6XBd*1Uw2z9a^!V}j zqwt#rf>|j?0aAPFvXmOiUY^AKl$1Jl*32mjcD&dTQ`XGcq&(Is%WzXZSDle|S2d$# zT5J4;kTFhTk#D#6A&VO*idF&w|7PK|?uSG6JqdM8|tyKEnDACHTP*iBNna?4`Td}3owuCI9Z zi^^@B%-HbM%#{UfA%eRtW+TKskv36I)jnrzm| zQQZBWQe5P#Fb`JP1j6+jP~mg6Tw%t|^l=4x_UQXt3o}{!hPK}6g<63$noTu2m9}Yi z_gT)(Gti4X1af=Wr@GpyFOnQ1C#DB%`$52b+grL4G>4~y+8tLKeb*+1DDiy(3Xe-$ zoy;wRk+x%ni%bE97>P zZ)a=;OTR7+7}owFd%pDV@4*w?AL%_oC^HsX)bm~H8@bUo|UH?`_MvSetGN4GFA*5eqiVPK>h+Elf%YMJv~oBxUBoC=(Za<=crTgqN~6q#wSrtPD0Tj#lE#z`ZRc!V~z zN+Woi$M`MsIs8m8=JpW33?P>(6+Y$8Z#hsqd!t($IAI1^!Oe7pEC&V8=?!@PxX^3WJ%3S(CIy9qligs2Xnkpjac# zEXo4Xi%u= zq%5o$SY&MM$|}YjBAD3Z!b+ylpF~am(ew~tU_xN3t+8-a?LFGn#ovhD z#wz!*QkJz7Ixd)FZ`?ZUg)-30>g??3CREhsNR&n{eZM4vCn3^d7?5wZ2rG(lkNCuV5r6TG?tbWwiuTDh#L6sx~#M5g!c|j8s@B-&g|k3N=a5 z9qckLWTe-qxQ4@!au0g(7A!cP<}na$GT?<3wk(+z1DHSL=TV5X!t9R2dl!*F9t-MU ztvp`nnd|T?t7kH#zd*>CcmaQftZN26T*6bPfo;;P$Z2@ED~6un6Sn%fB2y1U-k`4B zbF|OVbB$PmQ>d+Qc3I2G3}o69mf1Z_em-OkWc>i#5*(h@ztFqh8J;Ej_#0wuG8hJ*3nSP&YB7Iy zR%Ziw(E6*|^D{=GNe7wfJX|P-RAhc;qQf^*=RY{@w*0~}hPS|hr?oMnxK)Wo%&>aw zSASOgo^rFxp2E1MGJFpIu`eksJT&Yi7QJ$t?h^S zS8ga^(Ftu7cn#mDTuVC5CkEgaKHR5q&|Jh_Y2YmGI(UW0HggNoTNQ9avM{$GS;D8@ zK%tB#X^XzmeC-wQU_0+c^`;QVh7T3Gmdoae>YbyXvaIrkf3;g|rdcWWD$Jo4 znBAp-2)k429KhLd`Ylmc88__v|G*O!-{+N!uDK}UWx z&Y!;=|H)sTJQk?RnDEtPPQ9-+q`edcss&Ei;`RfNz9tO$L$B*@RU1Ox&&Jv|43|~{ zof~pO^E;cG?2-BwmwA?s|Lu(+>kF*1KGHJ0%DkOO*vmJOP4SMJZMoUS+XjK-la2_9 zPu6(Kq8&f|arhkz^PA=700Bejn6&M4T{7kss3=Pv<+plEK1?e{XJuW5!Z0KqvE&O^;Bb&aZ`&ix} zkr?=IYVg5IbWpNC3c({_uG~pB;)UsgN=u&xLQt;U4L1`Zp@giF+T&0$aWbHA^6L}Pw>$>Z5(M||>}X5w4MsGcAoR-t`(y=ds0x*@xaLpmctwL?gphIV) zN>s0rdc>v@6pjl^eK@MYoCfy81`tAVV3|-wG1PInrkRmzRb38Dh%l{?L(fU}$p)F| z5CsXW-G-`pgO??n4p?s2c{3G%BRNna>ko^Cu6YK6)Cvn4X!8gL1p@)~-_0XP&HSrY zKC}u88@mdoun32evat!d=%;^l3iyXkK_eAl_zM_|GvgRXt5Ql|h!gB9MsGn`pYA9v z6qo$;mEfB=ucI*{OXS(W*G9eteR)jEQJyO$ZM0TK6Sl*2`4W5~2tl$J`(ctt_~v7h zH{2bz*C|K501NKWUUq^3!>qV{=BWXDY1*YBUu!Bi&mbEy#nN*ApE^qFN&ze80)%4e zMdyNqFm)+MrmNC_Sbr8j;odFy#rpgZ1PZu){RG>*qfn5eT;l#4PDevsL02TN$o&ac z0dnDvCRv@;O6Q!NYXe>-t&TQ|X;fW>Y(_ja$?rIY5-ll8RPB^R`<>VMgs(rGg6vkU zk&!2cvcU?Ec)aPP{!gY;dJ?**SxaP{`%-hP40>^`=;Mv4lq#}Xh(gJd3B%&o+w0W& zgK67gUpb!Zc}Rl#mBPOOnQvP{Yahw*KPh0syRgC;-_SyOtt0fdXC=k(b&|phxknw! z7sM5(Df@(w#x)a)ATf*B&zm|E?)HNI}w zvP{@Xpb+Y`KsiaM+Htl0Q^tLL{k8FIu= z7V{L+7nz3Iy9hrP$1~PHFD`xZkY#Mz?HResY%b%)`2ziv@l0@Hc;=WDSkOZm5dN6< zOmLui_L=vgW!wU|QHS@#Eq*-gF7J0wZU@^7wU1Az!?<~?@59>my!~AU-Di0J0cq6u z0n@fHZmIvPq4KzOhSt%57lKZc&7VwiRti!=b8&cRi=sV}|Ly+FNB2oU-H(5}7jheV zG^mO~nmOCLiu>nh?ra+wa_#gFUXzy9&vF@+ID}6nYIrbSJf7>dCN{Y_5>t!|x9+G` z8acwh?$pW9#1RzuhygAAAW@W6C4@kUr^c5cMbK*~0URKxM7Ed>v zuZ!@^#Ht*NM{84#1pMmAewKKn=u?k@_*eL3T<95IC*7StQG30xtk%}B8-)6_JW4_g z!-O`?gnWNG0!v1N5(ljG1C+FVkIa>!8YZfqZ^c(6Y-V0Zkz7IoMhxXuO%X*YI?FXn zORYkXW|-8W{)D=Rsmd;7cBG-d^yOmY9r~xx*tX>pLG@q2Cl8V%hr!plwZOz2UZ`?0 zq_zV8X@?Rr#jG=~7~B=sYEz|=f;ch!a85)USnY#SQx;p?ShZof|0K;+3nJgWj>w-A zB}#a!8-l0(uFA`aGeI*w^TWpSB6$k8#mnEQfJ5OQaSRlvK4LI=M3QB42<*238XDTk zL_b<@EIBfYUzPNFytjrrev( zq!g4`aVw&uGt29mv{(63RG`%!CNxLXs?apaQ-8x1OVdWto_4~M}tHq`!M9$on0`<**Ha%jf0b+ zFh6l56;Oz(n7Hl>D}BK-J@}9F4q6CYJ@dHhwz+};6)7^8ExYnL@Y_Uu+O;y9N5lX! zFT=0~#CY#*`=N8@ZC;3KS>Djn$xoe?mKs~oPn~3qTYAfaJ|!sC@utUop0siXgBwAy zjzR_Wik~IcohcsO%o<~P;8g)~nZ9Iq_CWjvAXI(3WvUIC>+D1k zJzo<*sM;g>9WQPl5mqr<-?jtz<#Ke%`p0qF4JEY|2Hg6fai(j?Il8^PCjI)FGrSTw zH@{!#=GuhLC#I9Mr!lFA>_`TCvQS(e4%8de=HnB{Lcxzwo1fVILNw(WZb`H4HU-j6 zy5zh%+3??%i?b&`vt|B{%bQQHk8a*2%ErcNf1u)`G8>cR`C-b5=}O1@6u`L>hYQbkuGZ*2 z*YZG(BldJ7a<~lPs98u=G-<{gjbjer+HXBB2)8rc(gjAObKsa3s!>hn^*J%tqY6WZ z_P2zidp0<)H4wTpDcv&T`@?C=HGf0jD%90Vw9AzJedHGXG^I3-^AzoAPewY*%r;U! zFd12EsW9ccp4!WoCX}t}!@mHn9*<=2gioRq7_&u=8KG6CuJD4IP0n-u7@Wu8g$eC? zYPVPLlSAM3a5jZf&+J}Jo_N&TCRvJ({e0tt*g&K!)9o$**lrWyFUI}pz8VJ$lNWFa z?$`E8B?N!5{F8_DHP(ANfTOA{oa5Q2GFzqS|)~l?f0E-^Egxa52#PP$zX|x z>Tk^Nnzy|rZ_GdZa5oMQI=J2mHFXJNPSX~;9tg)sw$zihuMwVXT+JxX%$s?8k*fQ4 zKX+xSmm0hdB&1zm@!5o#kF63K*Y;?cj@y^!j`9)+l=3${XR_#|msHs3q$5>YHL)jK zXiy1fS;oRIV)!LE51&#)>hFAzd$j$>+kiDK#G-V#35AB-Ex0Qzgdm>+&a(^!v=#GeJ`^d!IL z7zF;vm-?fJ780NQqCu2-{#iLfnXU3F(7_;5NwYG&;#@m`0e|nQ$nYFgF z(zIA4SKn|Car+99l`lHwIwap2Lj>rL*MAr?&B{D^_-IZxE%fN;r_CX5q50=#IBK)C zMu;VETc^y*PiE5=HJ==@1$P&h)^p&*Zxf4cfGJKE#DCwg5;(B9TG((Uz);mCusSy_ z@l)X{;iHE4w3Nj0LBv_HJgN)r)0n+#4RoJ-srkBX_x{uJL071A{cW*;aU2=Mei5<0 z%oR(Gxci^V>k~f8HT|bt9yY;>TrHYV7yFLZj=Oc)iy`6z1H+&0 zSGxJ^lU>qF2*{KC!IHR%nLzW`GSh~+9!qe1g0MfI?<)*=CoI1$u7&GiE18{W#y-Gzaf1^gkn}31N$`_PdLLtuE}#|6 z4!k^wAssQv+j%M0e!Y!f{WSSXR4Px&ExCfH4%vEKU>}w;a0Eh@GJcZw*jGxOs*F8_ z??>haNravT4CM|zqH7DItjbb}inE1FQZ_Feg1XDgvZo@QLC3N#r}$4y%Nt#qHkbNUEgoe!fQ1maq0vjuZPxClxc>t3 zWFIIMX#3#eXMVn85UBpvDOYSzfvJs7cTDLStd6-Iu^vSpDPM7;XS+*_Kv7hI^(~t> zf16^Hf=!~yca>w<=ZE%v)U0s{m&bz^5mmLzl^%ge!}Uc~%LHkBVQA(T$S892_DID^ z?P5VGl{`((R;Bt5xB06aiK9%V_>newydvw*9#UDq7=x*0%KVu=&uHr#P}%qEF~Zg4 zIjlt@VA@R+Y#EHFNUCetrJjCbEuFCnn`-jVJk@UVGOP;zGDJO8#1(L@90>B?$VMYejcT%KRDORlAS+;l>Bf>;ga<7UV&|W@WeL63? z0!8!LbyOH>6Z0`k7K6)PPd;if20!Iu)N|17t4}HrDij3O3--Y0+@V5cumYN3Ul-{r zswTaW%j8;N4Li36#Vmy_9o}JjlQ!}8tXm!qKHBEXYI?0(1?dL9Xriy8Y1LcWh;u`T z47nVL$k!@vQfCp)(oSjn7(W78wl^5WY1arg!BSJs#`3=4E4kY!M0d&)4{)Th z#5O9WRY7*5pUr#<$`I9u0}gesko0Rd=e` ztQFDfhM~YQsBde;kiSvn9ql8t9L56Au3 zmxLI@{7Tt<{mza12prii*)161Kpo|x0?wo^MCmT$t73p|(oyl4qWmYfq+D@_DB0kv z!7dtKyAGes9OvMP5DzSQ2ZuYf9L*OB;cw{IZiDAb{qTS=AJ#B zQ2x_!24%0xV!!uVE@vUHn;~u^0Ywly#v;rnptDVS?kv+ZAm7OQvANq@&O)ltNi319 z-?`INb|e0~(Tux}eXL9wy(NBW+?xL!I2%W&5sf`qX}kv&(N;}tjFqQ2CcPX%0s~y% z>&?w%;7Ne@)9Gn?@6_vc0ZnI%W|Wym1;+}2V&WbKwoyHEvGW~eT8JX>iTWtUXx5Bp zvB09QIT~wQt()kIo9t>Q-5sSqt&uJVI3rjsF7}A%cAcr|K_F{rmPNRgH8c5dn)n8bjBbdB$E;RpxKmq6<)R5*&s2_?N9}V5%Mc)G&7O zNn_V^0=Z(&A(St9P6K<%U@-Wea(QjfKVH%_Y3;~^mncep(GbFgVxWCHbsa3J)x4RR zT>DEs!tkJ6Q@Kq29!1Y#LjB$a$qCO3GV)*yD9h6YGvK#p!uG>ae4ch#Uo9^(OswO# z(>)_Bc=Y``@o zW3lM1mba=E)9*VKaYXT>)lZ(c^-_11Du3|W5n96aaO$5YO$IPQ+Wwz=^Z$4OP=jxE zijeGuyEW(^(S!P-%djB9_uOICfA+g&a`CPOc6S%mk7)>1m)VGd&W_laVWlac?k+Hsr9xC1X(Frl3QB4Lfj342WxX!?ovXr0z zDpf(hhK?8o{Nm+_0OEW_<;00>$+jE6iIw!==Fa=A%z}9w^2q@L_K|^mKf@_#VY^hx za3P|{fWjbW#l#p~?izj{_DG~qvNUN1*%vd2X(I^|LV!ct6jwO{So8hwKSXY#A^IX! zeuKAZhq?8zIeFsfXKDPNzBG9>)<%9++#!m5k3XdHj6R$nj)g-gpQ;%iXBb&PA0SAA ziRG1DLTNq^S}b>3;z5QI8iF>>&585#FZ<2Tv{z>GnKZay#C;Hqx)PSnMM`t?!q@=O zF`Cc1`f4Kb+OeWKH}GvHTv%OP;NPfi1$UnYL!#p$2ncZD7OGS9I7b;Hhr6aZ;vL76d{~&E zFF8P8mOwy)PJI7kVuGQfk+B++iYPlL74!!;T(ivo{@23%I21-@!0SaYVU>Q=Bt#D_ zEr69Oz@&u3R3i^9ATOYiL1%*1lgjqNCM1c#G5BpzgmKwqj!9vK){hWmz#g0rHlS@M zB_%3~-d;eDJ0XcT@`+|MS2LaV0iB0NO3|M~rAy1CdsvomUQ_~w7Sk`qi)pwQ+^^|( zAk91LtLfwD@6gn*qTFPM67f`;$p!RiqI3kk5EN%v;;)G*AXnrQ%nix`$pit;64^jE zYUfHwHhvwsQYwGxkBn)Y#8m3SO>6^?#PIae=yOMdmj{w;K6>KAlrmA?Q9EbD0St~x0xphPQe$)xsQfabAf{qIf_8Yw9$ zSw!78GVx2EY&wIp-dn?GroVt^#y9w1@56FQa5jNAg{;sl1tm4I*7WQGj|lvJ@h}}j z4?M&NzXe8V-bE`NLki?onZ=3wK7g4fg~PGI=}eaNTSFn-0`J<8pF@<7W|4&chBtuVl?T>NHOc~6edoPvyFf|ILG*NUS9b;NsLIhs}V@wBl zHVZa-HZxHTs{%5IFMk2`sk_gggJd8FOa_cg$U}R{lqsWn9@%Z^X!MX4Um#QpK|?W; zlEG$+Z3)+(^@ASu7m~KM(uh{srYEqse#r(E+l_kLzmP$Xj&@1{4iz8~!9E)7p3nXT zpxS1Fx(O_@JP7o%C6|CL2bDn&4W)0)45GMSeWzzk*aTvuhepSy3s%lsdVQalQUU5V z(8%o5$bf{6OU(*CR2zKl`ylZs%`ss?lL(a>*%jh=6sA%tc`epJLu`XHOJ;j+eP)Ll zC6)vnCWR9mE0vZU#UwU8T`MK61e{h0JFd=L{J=HJP}rU%KF|C}JbM%&xZMJN878F! z$a$}gPTn&LBaBI-S;UB`6rF}>S3@q%=w@1m*1T32ZGJAQ!nzorxBtXsl3(&P*YpgDp*(VPrFQIE>GDa9>`fhR-Xrda8zD;yG?^$>c;^rnw z)*^o-kxCO~QHk#u*#xH1X$S>mxaJ<%#p?x+@R(#;d3F^C8Z(D9CGc3}1^Ezb(Kw>$ z(V>Mc_~sxbEvgh+fd9<#JPe1A2;&=Ps*NTpDgi zZf9~U)Zgw>|4{r#@y5ej|iu1?3r=&#&`WDn5^2C#Q!7~jrLqR9W(DG=Zsoz?) z>L80H9&!CDmB|G$b2g(^5@TQy`Ve{E2*WMik5RE~YKYp=Z>dVT6jnASLj5~h>5!E0 z$(hTk{DEOn^^#uqB^&7B=d{h0Uq#j7L<1Da1IYs^zejzK`eR6bN9!#hSqY+70as|c zazMOT<`FNlX|ANnQUWEMsF;_mp)HNE1cx&wr9P(lKxi18s8SMWHa-SS9-SHrnV7wO z&=vD1oND|X;@l}oRJmQMFbqyYRMMp|v`9h}2nB~j)-!zb$py8qf*})R0klH6=6;hNWwtS%BHJKaq)1+r2mp9 z7#wIvZL6CSb?Dak^vc+qnBT#+-rr( z$*Wr3pJG0DGCp_6LUb(Ym?zU!1TH;8uf8PwB3TeB z4%CwR3uqXxTe2mNIjD9~iBhS78emUn@1$^s8pdDkg(Leaa%O&*YY@WLKRZyMP+*-i z=p|0fND#Tl-X&(=`TnUq4uPr0`XC-T3gz-{^PupvC<3!Q_4k6Pu498QDQhGLSg$1K zSg$CGkA%(PIg%Ly{{?@*;OGU(HQ|U~_~yh5?7qlb$}i%8 zrEaACRKHxjIvmSOY+i}`0E}`V-T58C@XJ*9lfSXRp_n4Q1|UH(3WikMezycR`(fwGWE2GV}x zF9e3i*%#F%R?RE;}8i zA`)=ZcazaQL{lavT4!gcNL@+%Srf>#QvQ&snK3R#{68rUWX`R41r0w*dilSKG<;WX zisfTXD734H?IQjQz%m<3mKY%*rte1KUPQF>B_Jk&z>{%~QRsvAKa5ZeVTm|6Fa#$c z7@iiu+slXDqxVP3Ktc32^+a^OiOlpbx**#pMmt1VBnJDrrT1-ZR~>hU<~7xaX1y?j z!x0Cwgzm@@JJrq}3k&Ha1JRszEUuZLE2o2hH1{Uob;cWo^t_3f;C9di9lf0Z^oij~ z|53ka;aR(#-H~|_X%+g9m8VCa0^kgAh!KAqqtsX+qr=)+hAmEE_^f;t*fbcl7v@}tS6kC zWi9_^?TFy4HgVli%o8brF&BpEGeYoT`?}NbOs@+U9P>ec`aN&{@5+roakNU9Q0Ou3 zx{+=Pk=l0*MGxyoCiL3Ee@})?@67}C+LpN1+ock|sTL9Bp&)&CjXxwTZCr1PZHuP# zzyP3)0_e!uISDnmV7{UM_x?30%YS{*s1u82 z2ZWeb;|fwS>p>p6=;e1K;@iX~Y1mn%4vfWmLabPkC7M(EUh#Sok&8xK3E_lJ`#W!A%r1x_9h$q7^o7r z>$v2IG5VYu^ny}e&mlry6o60jC%U;x>?qZqG6i2^gHhuBfQg+2Yh1*4$cGGeapCxJ zxJKZcc!)ZQDw7{`d1*fP(&Y25>ieg2N^PBxbNqC+l+WVOC6IXa?Hg|rvcGUD50mw#I5BdNUL@G!>%DknT_bfOY}*g!i;dDW<*#`r%h+Zt2KiT|tQk(UryibixO$9* z=)yBr^p^C_HyE40p*drYG|0P!wb)qAO3$qq~j9VQ>~kTME(=|fNSM(`Az120zyag+~L4ug=j0pO*jO9b8m(8 zSL$;mD4n+FXihLZK~lUWSpkl5%uk3dW2Go18S@p^x)m0J)Y{n<-_84Vx+F}Px<2b+ z3V!iU<@^&+0^IdnlG^_D97oc7hkE2?A?JG?@Oeq`$0HTtR{8g1!kaeB$9;E*A5e3|4T zk(}m8Y-6Y-_**9R4TI`Xqek(Xaf=uw7%ecpU@hLK+bwb~2fpIY8Y&mB-HiGM7_b8} zFBDW5F#Nr1n!Rh(>4-=@bo2S{QvVhUc*Lf%Z=|%8dzBEEkxnN#Y&V%jl?HEa!YSzkA!Iy zEUa_ygJ$Q73N<_uK)%BjT!52jv7V=ILf@>XiUS3w6q!SENwp}mVIV~jxeWb2&ynI0(tqB0s%2_i6T3PlR$`{%Gs*BA_DmM_@H0dwJ^p@?e`KxW zk<%@GMMrD$uBdj1RL79cFC6~Sck=GSsf%~H&8=6TK$571zknhA(ree+Pf|_qh>{vl z`F{bds(~7El1xa2C=EPDSD8xuNrQsofftfROV>SOb_AxPxvpW{bBV6Q*^J? z&-xG#h;7oKy$?r5Qp`!SkY%p5);Vq^DE`L}LwS8@TNf1MX0$&ULeoSL`e-j4{)+t(L)sh1kQ~| zCi#xIaTZsZhB){V-S0P_)Z~XfR?e=wc`_bC|f!lLj=1 zZVJTLS#yO>0XA^n({q?)*PU5ywlONKF^y^@-DyonioWE+eqtcVtGOL*uek!d?L~m1 zq>wrq;xe(dBsXhUHk(5&<|!Xh7OEDuxwyFLJ0q5J9*!dZ-{BqL(shkLnYlASUIPQV2c_T64pL69p>*d+y3G` z?TGbJ8|-l??;SGSMOKp9)s(ojWz1Tu%xv2hEeX6{u?PsN1=>p2lW!qeFa!yrfAhi% zmr2HY6$2X4+qGP=$}PIZ&FwZej!jjG1HL{cs-_EdUzmZDgYgzLYgn|~yjsCLSgrJy?WAyv#84$`5F&sxO=}kZu8z#C2Cr(z#HM>bC$r*vJ}0x{dp?`IAg*t#9AYl5p#MHzz*2D_?k^1YOi=%ra~$Z;Tu6Ft@eyx zsxV*08lQ>~&5p3HNkOb(;yaP6Y)VGgcV+Vxyi3Gf@f@)iF?XoA(&ElbkGbzT2vV*S zRYOb+b(T8fJjShJ4znXn#;r+#oJWwUfwC?%-Yyv7FE+8ztIS;ISYdb(;{3+0e9Rqv z6EX%%xN_m`YREZyk1j|jeFrZB~52LPh(VBOU;&Fn}7 zgvFlU?6W~H=_%afk|phL6t{1fVq(am?=e`L%f#MetZNhEeq`zm#Rrxy zVw8?0pwV)JPW1NaM`69AZilo>SKoQr?AGaL&QU671}>z+YF7y#NN!dB8vWEP}~rd zy>nAha_g?K-LzFYMdMiWYl%p*m&8o3SZYS0)uYx4k+sX{;lx};>xko|UUL^0w;aVT zd_~T4(kXdrFNnFB&>BNpa3j*d@Wv$Dj)b#sh~>)_@7`T*Me7w}`^By0=UD#5aC*#} z+wnJ+c18h*7y>O@yjya`*p8Q^TmrusxJ`3#t+Yo;wdUchN2-n@++0PNBGH%HFSK7V zY3movRxYG{X;5K<7B7gf#@Nzl!}^l9_WVq7>86n`yv58|ud_6}eIuyr zEZd2OY+v&Pq;1VjRf^PHUa@Pd7kyZ*$5J?RH|8vOMRzmoA=$ht@fbCg<1uKLjK?in zi+GDhXZS_U%=$l?BHq~coBClheq)w2i)Rt%IE;Uek<}Fm^M9B)v5OZt_lg)Y#a1rF zT4mmZy12I%<+~GP&Y{v9Lsy}c>%?0)JqEqF#78>3MAg0Fqr56j2QXbq zmyAWm7`<^X8DiV6BH@Y^7LH=_)OTJcfnwKJcqnNUTW2?=k{Q|x1h_1E$}TSvq|z)> zq1n4ladQyu`1Dka1qMomTh1cIxqA&~h<0TVFE}E~8ea1CRIf^)-5euK6ykU|i;^pB zMRkjvaTcQQ5etio(=ltS7MhvZGs7ht?R$D4yGxHJY7}Rgb_t|fvM-3bhof%MY-UE? zW$^%%5W%-w=d`{^Y9Q3O(mNE|tkVoyi(1DHB9)18c$;ygV&qDmWwuC*0Gf$%)FoLe zbAnxp1!dH73d=@mm%e4!joX#$^1;=w9KA8tfJMd_yAhCRF;bk=FE#|oQ_hfSvOb4Q z4pQi3kq3CCCAiCe#5X&WYaaBsB&bs^*=2z+xIxS%5!7m?b1l2xYQ#k_2Q(t;pts&E zSgK|&G>vN@9LgOqH+mUnPM(Tk#^pk;{dTo3e{9gco?~zCj{g9jf7h5j60TW|PKHe; z5dd}=;i%oUPmMhW`Ma zAM}$Ye9510x@ze6Onbf4{=#JasI^gytB8|F{bDZS-9@H3t@5ky9aOYyby!!fz!q7f z9Eud@qm;$_lFzX}>?i#k7~Srb;GC)$th6Q_CF_-I&$3H|jyIM%#l&6NkCdGWOgcX> zTv0Kkyz4|!4kEOJZ~}_P*nPPL#2`|#fSA8VCG>uvO)c3U^Kz#?57c%%NRKCP)NRLu zEAcrRCD!MvWyPbcR{F*pv9wLbqi@iku?R0cMEyhRRmOkC$NZds%1+DM^&IlKM9+j$ z3mpZm{t1EA_iifcE^01qiWzZi=|V99a6ur;sGvujf@bl;E_zFD;^EuT(Ydv;wvJ_n zCE~9!YCZE88pXj(Uq!C*ux2iB#R$Uni+I{DT;eSsh~?HIvxvFZv|2p}s-oOlro84| z7|c{#Dc^XL7}Y{R4>4P#LIW{D33*t<>(WI?_f{AYan>weV&*QfXzL$y647GfqPl4p z(Q$@bQFwDUio=FtQY=t<#odc+TVjy9vAc_R6})0Dq|$3x5aOoay@OyWd4pt|-t+(2 Dq3>4C literal 0 HcmV?d00001 diff --git a/packaging/Windows/WiX/Poco 64x64.ico b/packaging/Windows/WiX/Poco 64x64.ico new file mode 100644 index 0000000000000000000000000000000000000000..7a678fa98fff2a7e3a971191e9c399d8ba286101 GIT binary patch literal 99678 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%0ATSQrUcD%Icd%oXzaWH0T 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

2xyW%UJ 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%0A@VbhX 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 literal 0 HcmV?d00001 diff --git a/packaging/Windows/WiX/Poco Layers.png b/packaging/Windows/WiX/Poco Layers.png new file mode 100644 index 0000000000000000000000000000000000000000..db3844cfc0d22d05bd1bc2d8400965e1b590d0e9 GIT binary patch literal 8091 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + APPLICATIONFOLDER="" + + + + + + + + + + + + + NOT UPGRADINGPRODUCTCODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packaging/Windows/WiX/Poco-1.7.3.wxs b/packaging/Windows/WiX/Poco-1.7.3.wxs new file mode 100644 index 000000000..7fa79657b --- /dev/null +++ b/packaging/Windows/WiX/Poco-1.7.3.wxs @@ -0,0 +1,3618 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + APPLICATIONFOLDER="" + + + + + + + + + + + + + NOT UPGRADINGPRODUCTCODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packaging/Windows/WiX/Poco-1.7.8.4.wxs b/packaging/Windows/WiX/Poco-1.7.8.4.wxs new file mode 100644 index 000000000..4c1a845da --- /dev/null +++ b/packaging/Windows/WiX/Poco-1.7.8.4.wxs @@ -0,0 +1,3576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + APPLICATIONFOLDER="" + + + + + + + + + + + + + NOT UPGRADINGPRODUCTCODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packaging/Windows/WiX/Poco-1.7.8.wxs b/packaging/Windows/WiX/Poco-1.7.8.wxs new file mode 100644 index 000000000..dbade2d7c --- /dev/null +++ b/packaging/Windows/WiX/Poco-1.7.8.wxs @@ -0,0 +1,3573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + APPLICATIONFOLDER="" + + + + + + + + + + + + + NOT UPGRADINGPRODUCTCODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packaging/Windows/WiX/Poco-2.0.0.wxs b/packaging/Windows/WiX/Poco-2.0.0.wxs new file mode 100644 index 000000000..aa0807fe1 --- /dev/null +++ b/packaging/Windows/WiX/Poco-2.0.0.wxs @@ -0,0 +1,3561 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + APPLICATIONFOLDER="" + + + + + + + + + + + + + NOT UPGRADINGPRODUCTCODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packaging/Windows/WiX/VS2013/.gitignore b/packaging/Windows/WiX/VS2013/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/packaging/Windows/WiX/VS2015/.gitignore b/packaging/Windows/WiX/VS2015/.gitignore new file mode 100644 index 000000000..e69de29bb