blob: 1bd2826e44438d8260637e9c30fcca9005ac8791 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Rivet 2.1: Release Notes and Known Problems</title>
<link rel="stylesheet" href="../templates/wondrous/styles.css" type="text/css" />
</head>
<body>
<div id="container">
<div id="header">
<h1><a href="../index.html">Rivet</a></h1>
<h2 id="slogan">Webscripting for Tcl'ers</h2>
<div class="clear"></div>
</div>
<div id="body">
<div id="content">
<h2>Rivet 2.1: Release Notes and Known Problems</h2>
<div>
<div class="sez">
<h4>Download</h4>
<p>
Rivet 2.1 is available for download from ASF mirror sites. Check the
<a href="download.html">download page</a>
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).
</p>
<p>
Code integrity for this release can be checked using the
public keys in the <a href="http://www.apache.org/dist/tcl/KEYS">KEYS</a>
file.
</p>
<p>
Rivet 2.1 works with the Apache Webserver version 2.x (running the
<strong>prefork</strong>
MPM) and requires Tcl &gt;= 8.5.11
</p>
</div>
<div class="sez">
<h4>Rivet 2.1.4 Release Notes</h4>
<p>New features</p>
<ul>
<li>New subcommand <tt>script</tt>
for command <strong>::rivet::inspect</strong>
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 </li>
</ul>
<p>Bug fixed and code reorganization</p>
<ul>
<li>Changed value returned by command <strong>headers redirect</strong>
that caused
mod_rivet to fail with Tcl 8.6.1 (Fixes bug #55583) </li>
<li>Reorganized autotools build scripts</li>
<li>Redundant log message in ApacheRequest___parse() removed (fixes bug #55845)</li>
<li>Small optimization attained by moving allocation of a control structure process
from the request processing scope into the process scope</li>
<li>Removed call to Tcl to coax the Tcl command <strong>info script</strong>
into
returning the current rivet template name. This feature was undocumented
and the task has been devolved to the newly created <strong>::rivet::inspect script</strong>
command </li>
<li>Fixed some comments that were breaking Tcl 8.6 (comments cannot go into a Tcl
<strong>switch</strong>
command body) </li>
</ul>
</div>
<div class="sez">
<h4>Rivet 2.1.3 Release Notes</h4>
<ul>
<li>installation target 'make install' restored to its previous
functionality (hence the whole module and packages are installed)
by making it depend on two targets <i>install-binaries</i>
and
<i>install-packages</i>
</li>
<li>New variant 'parse -string' to parse templates stored in strings</li>
<li>Improved safety of command <strong>::rivet::parray</strong>
by escaping SGML characters in the output </li>
<li>Improved detection of <b>SELECT</b>
queries in <strong>::DIO::Mysql</strong>
</li>
<li>Various fixes in package <b>Calendar</b>
</li>
<li>Changed names of deprecated variables in autotools scripts</li>
</ul>
</div>
<div class="sez">
<h4>Rivet 2.1.2 Release Notes</h4>
<ul>
<li>various bug fixes to form2.tcl</li>
<li>documentation improved for the form package and for the installation process</li>
<li>libtool/autotool scripts update</li>
<li>mod_rivet.c: fixed call to panic that refused to compile with Tcl8.6</li>
<li>apache request: relaxed restrictions on HTTP methods accepted</li>
<li>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
</li>
</ul>
</div>
<div class="sez">
<h4>Rivet 2.1.1 Release Notes</h4>
<h5>Bug Fixes</h5>
<ul>
<li>
Fixed bug #54162: mod_rivet is now coexisting with mod_websh
</li>
<li>
Checks on 'Content-Type' relaxed (Bug #53661). Rivet is now only
checking if such fields is the headers table.
</li>
<li>
Rivet is now also handling PUT and DELETE requests (Bug #53661)
</li>
<li>
New command ::rivet::xml for XML fragments composition
</li>
</ul>
</div>
<div class="sez">
<h4>Rivet 2.1.0 Release Notes</h4>
<h5>New commands and Directives</h5>
<p>
Starting with rivet version 2.1 the whole set of commands was moved into the
<strong>::rivet</strong>
namespace. For compatibility with existing software
commands are by default in the <strong>::rivet</strong>
namespace export list
and automatically imported into the global namespace.
You can change this behaviour in two ways:
</p>
<ul>
<li>
By disabling the automatic import from the <strong>::rivet</strong>
namespace configuring the build system with the
<em>--disable-import-rivet-commands</em>
switch
</li>
<li>
By disabling the export of the commands, thus forcing scripts to
use the fully qualified name of a command using configure's
<strong>--disable-rivet-commands-export</strong>
argument
</li>
</ul>
<p>
A new <strong>RivetServerInit</strong>
directives was introduced.
<strong>RivetServerInit</strong>
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.
</p>
<p>
A new <strong>AfterEveryScript</strong>
directive specifies a new class of
configuration scripts. An <strong>AfterEveryScript</strong>
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 <strong>AbortScript</strong>
directive.
</p>
<p>
The new command <strong>::rivet::inspect</strong>
provides deeper introspection
in the configuration of a module.
</p>
<h5>New switches for the <quote>configure</quote>
script </h5>
<p>
Some Rivet configuration defaults can be changed running the
<i>configure</i>
script passing the following arguments.
</p>
<ul>
<li>--enable-virtual-interps-separation</li>
<li>--with-upload-dir=DIR</li>
<li>--with-post-max=BYTES</li>
<li>--disable-upload-var</li>
</ul>
<h5>
Recent Bug Fixes
</h5>
<p>
Test Suite
<ul>
<li>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)</li>
</ul>
</p>
<p>
mod_rivet.c.
<ul>
<li>Add UploadDirectory to the list of handled options for RivetUserConf</li>
<li>The module returns now a HTTP_INTERNAL_SERVER_ERROR when a <b>::request</b>
namespace cannot be created </li>
</ul>
</p>
<p>
DIO Package bug fixes
<ul>
<li>
Improved DIO support for Sqlite fixes several bugs.
</li>
<li>
Fixed secs computation made by dio_Mysql when handling timestamp fields.
</li>
<li>
Fixed wrong declaration of 'insert' subcommand in page manual (Bug #53670)
</li>
<li>
Fixed method makeDBFieldValue in class Oracle (Bug #53703)
</li>
<li>
Method 'count' failed when no keyfield was set.
</li>
<li>
Index riv_sess_cache_ix had a incomplete unique key definition that missed the
'package_' column (fixes bug #54063)
</li>
</ul>
</p>
<p>
New package form 2.0 added with new methods and several fixes including:
<ul>
<li>
Workaround to avoid wrong parsing of form data when parameter
values have spaces in them
</li>
<li>
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)
</li>
</ul>
</p>
</div>
</div>
<div class="contentbottom">
</div>
</div>
<div class="sidebar">
<ul>
<li id="news">
<h4>News</h4>
<ul class="blocklist">
<li class="navitem">
<a href="rn%2d2%2d3.html">11 Nov 2017: Rivet 2.3.5 released</a>
</li>
<li class="navitem">
<a href="rn%2d3%2d0.html">7 Jul 2018: Rivet 3.0.2 released</a>
</li>
</ul>
</li>
</ul>
<ul>
<li id="home">
<h4>Rivet</h4>
<ul class="blocklist">
<li class="navitem">
<a title="A home for Rivet" href="../index.html">Rivet Homepage</a>
</li>
<li class="navitem">
<a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
</li>
<li class="navitem">
<a title="Getting Rivet" href="download.html">Getting Rivet</a>
</li>
<li class="navitem">
<a title="Hello World!" href="hello%5fworld.html">Examples</a>
</li>
<li class="navitem">
<a title="The Rivet development team" href="about.html">About Us - Contact</a>
</li>
</ul>
</li>
<li id="tcl">
<h4>Tcl/Tk</h4>
<ul class="blocklist">
<li class="navitem">
<a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">
The Tcl/Tk Language
</a>
</li>
<li class="navitem">
<a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
</li>
</ul>
</li>
<li id="manual">
<h4>Documentation</h4>
<ul class="blocklist">
<li class="navitem">
<a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
</li>
<li class="navitem">
<a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
</li>
<li class="navitem">
<a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
</li>
<li class="navitem">
<a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
</li>
</ul>
</li>
<li id="support">
<h4>Support</h4>
<ul class="blocklist">
<li class="navitem">
<a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
</li>
</ul>
</li>
</ul>
<ul>
</ul>
</div>
<div class="clear"></div>
</div>
</div>
<div id="footer">
<div class="footer-content">
<p><a href="http://www.apache.org/">Apache Software Foundation</a> | Design by <a href="http://www.spyka.net">Free CSS Templates</a> | <a href="http://www.justfreetemplates.com">Free Web Templates</a></p>
</div>
</div>
<div style="text-align: center; font-size: 0.75em;">Design downloaded from <a href="http://www.freewebtemplates.com/">free website templates</a>.</div></body>
</html>