Rivet 2.1: Release Notes and Known Problems


Rivet 2.1 is available for download from ASF mirror sites. Check the download page for information about downloading the source code, rpm files or packages for SuSE, Redhat, Debian and Ubuntu (packages for SuSE and Redhat are available thanks to Harald Oehlmann).

Code integrity for this release can be checked using the public keys in the KEYS file.

Rivet 2.1 works with the Apache Webserver version 2.x (running the prefork MPM) and requires Tcl >= 8.5.11

Rivet 2.1.4 Release Notes

New features

  • New subcommand script for command ::rivet::inspect returns the full path to the current Rivet template or URL referenced script. In case this command is invoked from outside a request processing the string value by [info script] is returned

Bug fixed and code reorganization

  • Changed value returned by command headers redirect that caused mod_rivet to fail with Tcl 8.6.1 (Fixes bug #55583)
  • Reorganized autotools build scripts
  • Redundant log message in ApacheRequest___parse() removed (fixes bug #55845)
  • Small optimization attained by moving allocation of a control structure process from the request processing scope into the process scope
  • Removed call to Tcl to coax the Tcl command info script into returning the current rivet template name. This feature was undocumented and the task has been devolved to the newly created ::rivet::inspect script command
  • Fixed some comments that were breaking Tcl 8.6 (comments cannot go into a Tcl switch command body)

Rivet 2.1.3 Release Notes

  • installation target 'make install' restored to its previous functionality (hence the whole module and packages are installed) by making it depend on two targets install-binaries and install-packages
  • New variant 'parse -string' to parse templates stored in strings
  • Improved safety of command ::rivet::parray by escaping SGML characters in the output
  • Improved detection of SELECT queries in ::DIO::Mysql
  • Various fixes in package Calendar
  • Changed names of deprecated variables in autotools scripts

Rivet 2.1.2 Release Notes

  • various bug fixes to form2.tcl
  • documentation improved for the form package and for the installation process
  • libtool/autotool scripts update
  • mod_rivet.c: fixed call to panic that refused to compile with Tcl8.6
  • apache request: relaxed restrictions on HTTP methods accepted
  • binary module/libraries and Tcl packages installations were split. Rivet installation is a two step process now. This should make possible to create arch independent archives/packages of code written in Tcl and shipped with Rivet

Rivet 2.1.1 Release Notes

Bug Fixes
  • Fixed bug #54162: mod_rivet is now coexisting with mod_websh
  • Checks on 'Content-Type' relaxed (Bug #53661). Rivet is now only checking if such fields is the headers table.
  • Rivet is now also handling PUT and DELETE requests (Bug #53661)
  • New command ::rivet::xml for XML fragments composition

Rivet 2.1.0 Release Notes

New commands and Directives

Starting with rivet version 2.1 the whole set of commands was moved into the ::rivet namespace. For compatibility with existing software commands are by default in the ::rivet namespace export list and automatically imported into the global namespace. You can change this behaviour in two ways:

  • By disabling the automatic import from the ::rivet namespace configuring the build system with the --disable-import-rivet-commands switch
  • By disabling the export of the commands, thus forcing scripts to use the fully qualified name of a command using configure's --disable-rivet-commands-export argument

A new RivetServerInit directives was introduced. RivetServerInit accepts as argument a Tcl script to be run during the initialization stage of the webserver. This phase takes places before the child processes are forked. More details are available in the manual.

A new AfterEveryScript directive specifies a new class of configuration scripts. An AfterEveryScript directive tells Rivet what code has to be executed at every request completion, either when a request processing was successful or an abort condition was handled by an AbortScript directive.

The new command ::rivet::inspect provides deeper introspection in the configuration of a module.

New switches for the configure script

Some Rivet configuration defaults can be changed running the configure script passing the following arguments.

  • --enable-virtual-interps-separation
  • --with-upload-dir=DIR
  • --with-post-max=BYTES
  • --disable-upload-var
Recent Bug Fixes

Test Suite

  • User and Group directives removed from the configuration file template to make test suite independent from the command 'id' output from which the values for this parameters were inferred (Bug #53396)


  • Add UploadDirectory to the list of handled options for RivetUserConf
  • The module returns now a HTTP_INTERNAL_SERVER_ERROR when a ::request namespace cannot be created

DIO Package bug fixes

  • Improved DIO support for Sqlite fixes several bugs.
  • Fixed secs computation made by dio_Mysql when handling timestamp fields.
  • Fixed wrong declaration of 'insert' subcommand in page manual (Bug #53670)
  • Fixed method makeDBFieldValue in class Oracle (Bug #53703)
  • Method 'count' failed when no keyfield was set.
  • Index riv_sess_cache_ix had a incomplete unique key definition that missed the 'package_' column (fixes bug #54063)

New package form 2.0 added with new methods and several fixes including:

  • Workaround to avoid wrong parsing of form data when parameter values have spaces in them
  • Fixed problem with variable clash in constructor. Also removed unneeded [expr ...] in conditions that prevented efficient code handling by the byte compiler (Closes bug #52650)

Design downloaded from free website templates.