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.*.