<!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>Download Apache Rivet</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>Download Apache Rivet</h2>
                <div>
    <div class="sez">
        <h4>Source Code</h4>
        <p>
		      The latest stable <b>Rivet</b>

 release may be downloaded from one the links pointing to ASF mirror sites 
		      <p>
                <code>
                    <a href="http://www.apache.org/dyn/closer.lua/tcl/rivet">http://www.apache.org/dyn/closer.lua/tcl/rivet</a>
                </code>
            </p>
        </p>
    </div>
    <div class="sez">
        <h4>SuSE</h4>
        <p>
				Thanks to the efforts of Harald Oehlmann, Apache Rivet is available from
				<a href="http://software.opensuse.org/search?q=apache2-mod_rivet">OpenSUSE</a>

 
				for many flavours of Linux 
		                        </p>
    </div>
    <div class="sez">
        <h4>RPM</h4>
        <p>
		    Jeff Lawson prepared a 
		    <a href="https://github.com/repoforge/rpms/tree/master/specs/mod_rivet/">.spec file</a>


		    for RPMforge that can be used to build an .rpm out of the source code. 
            <a href="http://repoforge.org/use/">Installation instructions</a>

 are available at Repoforge.
		                      </p>
    </div>
    <div class="sez">
        <h4>Debian and Ubuntu</h4>
        <p>
			Rivet was kindly sponsored by Sven Hoexter, Debian Developer. You
			can download it from from Debian as
			<a href="https://tracker.debian.org/pkg/libapache2-mod-rivet">libapache2-mod-rivet</a>

.
		                      </p>
        <p>
			Rivet is also available on 
			<a href="https://launchpad.net/ubuntu/+source/libapache2-mod-rivet">launchpad.net</a>

 for the Ubuntu series of Linux
		                      </p>
    </div>
    <div class="sez">
        <h4>FreeBSD</h4>
        <p>
                Peter Lai is maintaining a <a href="http://www.freebsd.org/">FreeBSD</a>

 port available as <b>www/mod_rivet</b>
        </p>
    </div>
    <div class="sez">
        <h4>Development code on GitBox or GitHub</h4>
        <p>
            <b>Apache Rivet</b>

 is actively developed - you can always get the full git repository from either GitBox.
		                      </p>
        <p>
            <code>git clone https://gitbox.apache.org/repos/asf/tcl-rivet.git rivet</code>
        </p>
        <p>or from GitHub</p>
        <p>
            <code>git clone https://github.com/apache/tcl-rivet.git rivet</code>
        </p>
        <!-- p>
			In addition, for your convenience, snapshots of the SVN tree are available here: 
			<a href="http://cvs.apache.org/snapshots/tcl-rivet/">http://cvs.apache.org/snapshots/tcl-rivet/</a>
		  </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">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>
                    <li id="acknowledgments">
    <h4>Acknowledgments</h4>
    <ul class="blocklist">
        <li class="navitem">
            <a href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
        </li>
    </ul>
</li>
 
                </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>

