<!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.2: 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.2: Release Notes and Known Problems</h2>
                <div>
    <div class="sez">
        <h4>Download</h4>
        <p>
                    Rivet 2.2 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.2 works with the Apache Webserver version 2.x (running the 
                    <strong>prefork</strong>

 MPM) and requires Tcl &gt;= 8.5.11. Tcl &gt;= 8.6.1 is
                    recommended
                                    </p>
    </div>
    <div class="sez">
        <h4>Rivet 2.2.4 Release Notes</h4>
        <p>
		   			This release is meant to address bug 
		   			<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58008" target="_blank">#58008</a>


		   			that caused random segmentation faults when a child processes was shutting down.
		   			Also minor improvements were done to the core module and to resolve a few problems
		   			with the HTML manual DocBook output
		   		                    </p>
    </div>
    <div class="sez">
        <h4>Rivet 2.2.3 Release Notes</h4>
        <p>
		   			In this release further elaboration of bug 
		   			<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57501">#57501</a>


		   			lead to an improved error and abort_page handling and to consistent
		   			closing of said problem. 
		   		                    </p>
    </div>
    <div class="sez">
        <h4>Rivet 2.2.2 Release Notes</h4>
        <p>We recommend to upgrade to this version of Rivet as it delivers two important bug fixes</p>
        <ul>
            <li>bug <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57501">#57501</a>

 
		   					fixed: abort_page does not stop page execution after a call to ::rivet::parse                            </li>
            <li>bug <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57686">#57686</a>

 fixed:
		   			wrong handling of file not found condition                            </li>
        </ul>
    </div>
    <div class="sez">
        <h4>Rivet 2.2.1 Release Notes</h4>
        <p>New Tcl commands</p>
        <ul>
            <li>New command 
		   			<pre class="programlisting">::rivet::redirect URL ?permanent?</pre>


		   			was introduced. The command achieves the same
		   			function of <b>::rivet::headers redirect &lt;URL&gt;</b>

 but it extends its functionalities 
		   			by triggering the execution of the <em>AbortScript</em>

 when defined. The command
		   			builds a dictionary carrying 2 keys with the reason for the abort (error_code) and the URL 
		   			the browser is diverted to. This dictionary can be fetched with command <b>::rivet::abort_code</b>
            </li>
            <li>New command <b>::rivet::header sent</b>

 returns 1 if HTTP have been sent already
		   			because either the output buffer was filled or command <b>flush stdout</b>

 was
		   			executed                            </li>
            <li>New command <b>::rivet::headers get</b>

 returns the value of an HTTP output
		   			header                            </li>
        </ul>
        <p>mod_rivet internal changes and build system improvements</p>
        <ul>
            <li>Configuration of the package was extended by adding a new --with-apu-config macro
		  				that allows fine control over the location of apr-util include files (contributed by <em>
		  				Poor Yorick</em>

)                            </li>
            <li>New directive <em>SeparateChannels</em>

 allow finer control over Rivet internal channels.
						I/O handling is done in 
						mod_rivet by creating a single channel per child process. This is true also if
						<em>SeparateVirtualInterp</em>

 is set, thus reducing the amount of memory allocated
						for channel descriptors and buffers.This is good for most common usages of Rivet because
						it's unlikely that applications will tamper with the channel parameters. Anyway if
						you're deploying mod_rivet in an environment where different applications need to 
						have full control over channels setting the directive you restore previous
						mod_rivet policy. This option has effect only if <em>SeparateVirtualInterp</em>


						is set                            </li>
        </ul>
    </div>
    <div class="sez">
        <h4>Rivet 2.2.0 Release Notes</h4>
        <p>Tcl level new commands </p>
        <ul>
            <li>New '::rivet::inspect server' command returns a dictionary with informative fields taken 
                  from Apache server_rec object</li>
            <li>New '::rivet::inspect script' command returns the name of the script being executed</li>
        </ul>
        <p>mod_rivet internal changes and build system improvements</p>
        <ul>
            <li>Commands gaining access to the request_rec object are now checking this pointer and
                    in case it's NULL they fain with a Tcl error. This is done through the CHECK_REQUEST_REC.
                    Even though this is correct the new behaviour potentially can break existing code in
                    initialization and termination scripts. Thats the main reason for tagging this release as
                    2.2.0</li>
            <li>The code was further modularized and single components of the
                    module can be selected by configure. This should enable the development 
                    or refactoring of components in mod_rivet without branching the whole code 
                    tree. This new code selection is implemented through various macros in
                    configure.ac and various symbols in the Makefiles. See 
                    <pre class="programlisting">./configure --help</pre>


                    to have a list of the available switches implemented by those macros
                                              </li>
        </ul>
    </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%2d1.html">3 Mar 2014: Rivet 2.1.4 released</a>
        </li>
        <li class="navitem">
            <a href="rn%2d2%2d2.html">5 Dec 2015: Rivet 2.2.4 released</a>
        </li>
        <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">9 Feb 2018: Rivet 3.0.1 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>Rivet 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>

