Forum OpenACS Development: [ANNOUNCE] NaviServer 4.99.32 and 5.0.1 Bug-Fix Releases
Posted by
Gustaf Neumann
on 09/24/25 11:41 AM
Dear all,
We are pleased to announce the availability of two new bug-fix releases of NaviServer: NaviServer 4.99.32 and NaviServer 5.0.1.
Both releases contain backported fixes only. No new features have been added; all ongoing development continues on the main branch. These releases are intended for users who prefer to stay with the 4.99 or 5.0 lines for stability, while benefiting from selected improvements and fixes.
Contributors:
- Gustaf Neumann
- Hector Romojaro
- Nicky Johnstone
- Oleg Oleinick
- GitHub: https://github.com/naviserver-project/naviserver
- Tags: naviserver-5.0.1, naviserver-4.99.32
- https://sourceforge.net/projects/naviserver/files/naviserver/4.99.32/
- https://sourceforge.net/projects/naviserver/files/naviserver/5.0.1/
- https://hub.docker.com/repository/docker/gustafn/naviserver
- https://hub.docker.com/repository/docker/gustafn/openacs/general
======================================= NaviServer 5.0.1, released 2025-09-23 ======================================= 33 files changed, 463 insertions(+), 129 deletions(-) Bug Fixes: ---------- - Prevented tail truncation of disk-spooled file uploads under certain boundary conditions. - Fixed potentially harmful negative timeout calculation in driver thread by ensuring safe default and assertions - Fixed incorrect return type in TLS context initialization error path (TCL_ERROR instead of NS_ERROR). - connchan: Fixed potential NULL dereferences with debug mode. - Strengthened UTF-8 validation in Ns_Valid_UTF8(): * Added stricter checks for continuation bytes * Prevented overlong encodings and surrogate ranges * Improved diagnostic messages and error reporting - Corrected Windows/MSVC build issues: * Adjusted 'nargs' type in SetCreateObjCmd() to avoid stack corruption warnings * Fixed buffer size in _mktemp_s() usage * Made ns_mkdtemp() visible in Windows builds * Corrected Ns_SockConnectUnix() mistype in Windows build * Updated ns/interps/CGIinterps for Windows compatibility * Provided TCLSH_PROG for Makefile generation * Improved handling of EXEEXT and MINGW-specific defines - Fixed build system bugs: * Corrected use of tabs in Makefiles to avoid GNU make errors * Fixed cross-compilation test execution failures * Updated MSVC Makefiles for modern builds - Fixed test suite issues: * Skipped new tests requiring "lmap" when running under Tcl 8.5 * Added comprehensive regression tests for UTF-8 validator * Adapted "ns_strcoll" tests for macOS Sequoia collation order changes Documentation and Configuration: -------------------------------- - Clarified default values and meaning of "schedsperthread" and related scheduling parameters in sample configs and docs. - Minor corrections in comments and error messages for platform-specific builds (e.g., MINGW). Notes: ------ - This is a bug-fix only release for the 5.0 branch. - It contains selected backports from the head branch that improve robustness, portability (especially Windows/MSVC), and test coverage, but introduces o new features.
======================================= NaviServer 4.99.32, released 2025-09-23 ======================================= 7 files changed, 80 insertions(+), 17 deletions(-) Bug Fixes: ---------- - Fixed multipart/form-data parsing in 'ns_parseformfile': correct boundary/end calculations and copied byte count to prevent truncated or misaligned part reads under spooling. - Adjust OpenACS sample configuration file: set 'nslog.checkforproxy' based on '$reverseproxymode' (was '$proxy_mode') to match revised reverse proxy naming. This bug affected mostly users which were using the example configution file without local adaptions. - Return correct Tcl error code in TLS context setup: Ns_TLS_CtxServerInit() now returns TCL_ERROR when the certificate parameter is missing (was NS_ERROR), aligning with Tcl conventions. - Make driver poll timeout robust: handle "no deadline" (TIME_T_MAX) with a safe default, round up sub-millisecond waits, and assert against negative timeouts to avoid indefinite waits. Documentation Updates: ---------------------- - Refresh README build instructions and man pages to reflect actual version numbers - Clarify 'ns_return' manpage: document that the headers argument accepts a setid and defaults to 'ns_conn outputheaders' when omitted. - Correct 'ns_set' examples to use 'ns_set create' (was 'ns_set new'). - Revise 'ns_issmallint' description to reflect unsigned 16-bit range semantics instead of digit-count based description. Tests: ------ - Add multipart upload tests validating spooling behavior and file part sizes for small (2 KB) and larger (~16 KB) uploads. - Make 'ns_http.test' portable across platforms by introducing '$devnull' and '$contentfile' helpers. - Relax 'ns_strcoll' expectations (glob match) to accommodate macOS Sequoia 15.4 collation order changes, while preserving deterministic sorting under specified locales. Notes: ------ This is a bug-fix release for the 4.99 line (no new features) and includes select backports from 5.0 that improve robustness, documentation accuracy, and test portability. For Tcl9 compatibility please use NaviServer 5.*.