<!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%2d3.html">11 Nov 2017: Rivet 2.3.5 released</a>
        </li>
        <li class="navitem">
            <a href="rn%2d3%2d0.html">18 Nov 2018: Rivet 3.0.3 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>

