CppCMS 0.0.7 and 0.99.3-beta3 released
This release is security fix release for stable branch of CppCMS and both security and feature release for CppCMS 1.x.x branch.
All users are encouraged to update to latest version.
If it is not possible to upgrade don't use "hmac" session backend, switch to "aes" or server side session storage backend.
Changedlog 0.0.7
- Bugfix of hmac backend: generation of signature with too small block size
Changedlog 0.99.3
Security:
- Bugfix of hmac backend: generation of signature with too small block size
Features:
- New version of Boost.Locale
Added support of multiple hmac cookie signatures:
Built in: hmac-md5, hmac-sha1
With libgcrypt: hmac-sha224, hmac-sha256, hmac-sha384, hmac-sha512
By default hmac now uses sha1 instead of less secure md5
Bugs:
- Fixed memory leak in aes session encryptor
- Fixed incorrect validation of UTF-8 encoding that could cause some illegal sequences to pass through.
- Fixed missing attributes of some form widgets
- Fixed incorrect code generation in templates in
foreachloop - Fixed race condition when dispatch and context assignment may happen not simultaneously
Boost.Locale v3 preview version is released
I want to announce a preview of the third version of Boost.Locale:
- Tutorial: http://cppcms.sourceforge.net/boost_locale/html/tutorial.html
- Reference: http://cppcms.sourceforge.net/boost_locale/html/index.html
- Downloads: https://sourceforge.net/projects/cppcms/files/boost_locale/
There are following significant changes:
- Implemented multiple localization backends:
- icu - the default and recommended backend, based on ICU library
- std - based on C++ standard library localizations support,
- posix - based on POSIX 2008 API (newlocale, strftime_l,...)
- winapi - based on Windows API functions
- Significantly simplified locale generation.
- Improvements in UTF-8 handling by ICU where possible
- Thread safety fixes when using ICU library
- Fixed std::codecvt facet support to handle UTF-16 instead of UCS-2 only.
- Removed support of compilers missing wide character support, gcc-3.4 on windows is not supported any more, latest gcc-4.x required with support of wide streams and strings, for example gcc-4.5
Tested Platforms:
- Compilers: GCC (3.4, 4.2, 4.3, 4.5, 4.5/c++0x), Intel 11.0, MSVC 2008, SunStudio/stlport
- Operating Systems: Linux, FreeBSD, OpenSolaris, Windows XP, Cygwin 1.7, (TODO Mac OS X)
- ICU version: 3.6 to 4.4
It would be soon integrated into CppCMS 1.x.x.
CppCMS 0.99.2 - Beta 2 is released
Update: Please take version 0.99.2.1
The second beta is availible for download:
Changes from Beta 1.
- Significant performance improvements in Booster.Aio
- Significant performance improvment in FastCGI backend.
- Important bug fixes in file upload handling.
- Fixed response/status handling in synchronous and asynchronous API.
- Fixed incorrect numbers handling in JSON.
- Added more examples
- Various platform related fixes.
First beta version of CppCMS 1.x.x is officially out!
Hello all CppCMS users.
The first beta version of CppCMS 1.x.x is available for download from the Sourceforge. The build instructions can be found here.
This version very different from CppCMS 0.0.x branch - it fixes many design flaws that had been done the previous version, it is almost 90% rewrite of the original code according to new design.
It also includes many important features
Most significant ones:
Full CppCMS core rewrite that introduced:
- Asynchronous programming support
- Removal of 3rd part libraries from the core api.
- Stable API and ABI through all major releases.
- Improved Ajax support with introduction of JSON-RPC
- Powerful i18n and l10n
- Native Windows support including support of MSVC.
- And much more...
So now CppCMS beta is ready.
Hopefully first release candidate version will be ready withing about a 3 month. And the first stable release is expected at the end of 2010 beginning of 2011.
Surviving Windows Development
One of the issues that had bothered my in CppCMS on Windows, was actually absence of full support of Unicode file-names.
It is known, that standard library functions like fopen or std::fstream are not capable of
using UTF-8 encoded file names, like they are on all "normal" operating systems.
So in order to deal with such issues in transparent way, I added booster::nowide library
that makes this conversion transparent. All functions in booster::nowide use UTF-8 encoded
strings and convert then internally to wide strings for brain-damaged Win32 Wide API.
I also had created an implementation of std::fstream over stdio,
especially for thous windows compilers that do not "extend" their standard libraries
with non-standard wide-crap.
So, now CppCMS in fully Unicode capable over Win32. So if you use CppCMS with Windows, please note that all pathes are represented as UTF-8 strings and not "ANSI" one.
When Windows will finally enable UTF-8 locales? Maybe in Windows 15 (if it survive till then).
If you interested why do I hate "wide" API so much, read this.
You can download independent version of "nowide" library there:
http://art-blog.no-ip.info/files/nowide.zip

