Rivet 2.0: Release Notes and Known Problems


Rivet 2.0 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.0 has been tested on Apache 1.3 , 2.2 and 2.4 servers. Apache 2.2/2.4 servers must be running prefork as multiprocess module though. Rivet is incompatible with the 'worker' and 'event' MPMs.

Release Notes for Rivet 2.0.6 (30-Nov-2012)

Fixed Bugs

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)

Release Notes for Rivet 2.0.5 (26-Jun-2012)

Fixed Bugs
  • DIO: Mysql connection is now checked when connection reference is reused because it could have dropped (contributed by Cyril Shtumf, fixes #53221)
  • Fixed SQL syntax generated in delete method when multiple fields are used in the selection clause (contributed by Cyril Shtumf, fixes bug #53222)
New Features
  • New shorthand expression
    <?= ... ?>
    is transformed into
    <? puts -nonewline "..." ?>
    (contributed by Jeff Lawson, addresses #53217)
  • http_accept.tcl: new command parsing of Accept HTTP header lines (contributed by Harald Oehlmann)
  • rivet/packages/entities/entities.tcl: package RivetEntities (contributed by Harald Oehlmann)
  • tclconfig/ltmain.sh: updated from recent autotools installation
  • Support for HttpOnly flag improves security and reduces the risk of cross-site scripting attacks (contributed by Cyril Shtumf, fixes #53224)
  • form class objects create now automatic field ids if left undefined by the programmer
Manual Pages Expanded
  • New pages for package entities and for command http_accept
  • Improved manual entry for 'var list' (Fixes bug #52911)

Release Notes for Rivet 2.0.4 (23-Sep-2011)

Bugs fixed

An Tcl error in an AbortScript would trigger a message that erroneously printed that an ErrorScript was running.

Manual Pages Expanded

Manual pages have been expanded to include documentation for more commands implemented but not yet documented. Section documenting single commands has been reorganized to list commands in alphabetical order.

New Features

Commands load_env and load_headers accept an array name as argument. If not fully qualified the array was created in either the ::request namespace (.rvt templates) or the global namespace (.tcl scripts). Starting with 2.0.4 these commands, when invoked from within a procedure, create the array in the proc's local scope, unless the argument is a fully qualifed name scoping the array in a user defined namespace.

Command makeurl has been extended to be used in three forms

  • without argument
    ==> Current script's url
  • with an absolute path
    makeurl /a/b/c
    ==> http://<host>:<port>/a/b/c
  • with a relative path
    makeurl a/b/c
    ==> http://<host>:<port>/<current script>/a/b/c

Release Notes for Rivet 2.0.3 (19-Mar-2011)

New Features

Rivet 2.0.3 introduces 2 new configuration directives

  • New configuration directive AbortScript : Tcl script to be run if an abort_page is called in a request processing
  • New configuration directive AfterEveryScript : An abort_page command stops the page generation and skips also a configured AfterScript to run an AbortScript . This new configuration script is to be run anyway, as last script of a single request processing, whether an abort condition took place during the page generation or the procedure completed successfully.
  • Enhanced form for abort_page : page generation can be interrupted by calling abort_page . The new command accepts now an argument whose value can be checked to determine which condition forced to call the page generation off.
  • New command abort_code returns the value of the argument passed to abort_page . Useful in AbortScript or AfterEveryScript code.

Problems fixed

Code for command apache_table was ported to Rivet for Apache 1.3

Release Notes for Rivet 2.0.2 (25-Oct-2010)

Rivet 2.0.2 is a maintainance release with the main purpose to adjust the build process in a way that makes straightforward the generation of a Debian package.

Rivet (named libapache2-mod-rivet to follow the Debian Apache policy) is now in Debian. The package is sponsored by Sven Hoexter (Debian Developer).

Relase Notes for Rivet 2.0.1 (12-Jul-2010)

Fixed Bugs in Rivet 2.0.1
  • Several error messages printed during the installation phase have been fixed. The problems were harmless, but nonetheless annoying.
  • Fixed bug in installation of the rivetparser library.
  • Fixed tables creation for Postgres backend. The SQL script that creates the rivet_session_cache table misnamed 2 columns. Current DIO Postgres backend breaks Session package if the database was created with an old Rivet version . To fix the problem one has to rename the 'key' and 'package' columns as 'key_' and 'package_'
    ALTER TABLE rivet_session_cache RENAME COLUMN key to key_
    ALTER TABLE rivet_session_cache RENAME COLUMN package to package_
  • Fixed dio_Postgres.tcl method. A mistyped variable caused at least method 'store' to fail.
New Features
  • A new package Calendar has been added. Calendar provides 3 Itcl classes that print Calendar tables in ASCII, XML and XHTML forms (see examples and related manual page).

    Calendar requires Tcl8.5 or Tcl8.4 with package 'dict'

  • New page for package 'form' added to the manual

Installation Issues

Rivet is widely configurable to select custom directories where the module and its associated libraries have to reside.

  • Even though you can install Rivet to run pure Tcl scripts, some associated packages (namely 'Session' and 'DIO') are written in Itcl, an OO extension of the base language.In order to safely run those package, you have to check yourself if the Itcl extension installed on your system is compatible with the Tcl version for which you're building Rivet.

Known Problems

  • Rivet is reported to conflict with cgi scripts on some Linux machines. Symptom of the problem is when cgi scripts hang forever and don't send any content to the client
Design downloaded from free website templates.