changeset 2449:0160ef60c4c8 octave-forge

Added more web pages
author hauberg
date Sun, 10 Sep 2006 17:53:09 +0000
parents ad73b847c69e
children 2cf0c49a36a3
files www/FAQ.in www/archive.in www/bugs.in www/developers.in www/docs.in www/index.in www/links.in www/octave-forge.css www/packages.in
diffstat 9 files changed, 910 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/FAQ.in	Sun Sep 10 17:53:09 2006 +0000
@@ -0,0 +1,99 @@
+__HEADER__(`Frequently Asked Questions')
+
+<p>
+The following page contains some questions often asked by users and developers along
+with the answers. You'll find the following topics covered by this page
+<ul>
+  <li><a href="#packages">Using the packages</a></li>
+  <li><a href="#about">About Octave-Forge</a></li>
+  <li><a href="#compatibility">Matlab Compatibility</a></li>
+</ul>
+</p>
+
+<h2 id="packages">Using the packages</h2>
+ <h3 class="question" id="install">How do I install a package?</h3>
+   <p>First you need to download the package, by going to the package 
+      web page and clicking <em>download</em>. Then start Octave and go
+      to the directory where you placed the downloaded package using
+      the <em>cd</em> command. Then type
+   </p><p>
+      <code>pkg install package_file_name.tar.gz</code>
+   </p><p>
+      where <em>package_file_name.tar.gz</em> is the file name of the 
+      package you downloaded.
+   </p>
+   
+ <h3 class="question">What's with the dependencies?</h3>
+   <p>Some packages depend on functionality provided by other packages 
+     in order to function properly. So if package A depends on package
+     B, you need to install package B either before or at the same time
+     you install package A.
+   </p>
+   <p>If you don't want to install the dependencies of a package, you
+     can use the <em>-no-deps</em> flag for the <em>pkg</em> command
+   </p><p>
+     <code>pkg install -no-deps package_file_name.tar.gz</code>
+   </p><p>
+     If you choose to do this, you might experience problems with
+     the package. So in general the <em>-no-deps</em> is not recommended.
+   </p>
+   
+ <h3 class="question">How do I uninstall a package?</h3>
+   <p>You simply type</p>
+   <p><code>pkg uninstall package_name</code</p>
+   <p>where <em>package_name</em> is the name of the package you want to uninstall
+     (e.g. <em>image</em>).</p>
+   
+ <h3 class="question">How do I use the functions in a package?</h3>
+   <p>You simply type</p>
+   <p><code>pkg load package_name</code></p>
+   <p>where <em>package_name</em> is the name of the package you wish to use.
+     If you need to use all you packages, you can simply type</p>
+   <p><code>pkg load all</code></p>
+   <p>Often you simply add the above line to your .octaverc. That way your packages
+     are all loaded when Octave is started.</p>
+   
+ <h3 class="question">I get a lot of weird errors during installation. What should I do?</h3>
+   <p>If you get alot of weird errors during installation, it is often because you don't
+     have the needed system packages installed. You should verify that you have the needed
+     packages installed, by checking the package web page. If you are using GNU/Linux you often
+     need to install developer packages. These are often called something that ends with <em>-dev</em>.
+   </p>
+   
+<h2 id="about">About Octave-Forge</h2>
+ <h3 class="question">What is Octave-Forge?</h3>
+   <p>Octave-Forge is a collection of packages for <a href="http://www.octave.org">GNU Octave</a>.
+     It also serves as a testbed for code, that eventually will end up in Octave.
+   </p>
+   
+ <h3 class="question">How do i submit packages to Octave-Forge?</h3>
+   <p>Currently we don't have a certain system for including packages, so you
+     should just send a message to the <a href="archive.html">mailing list</a>
+     describing your package.
+   </p>
+   
+ <h3 class="question">I think I've found a bug in a package. What should I do?</h3>
+   <p>You should report it the developers. See <a href="bugs.html">this page</a>
+     for details.
+   </p>
+   
+ <h3 class="question">Where can I get more help?</h3>
+   <p>You can always ask questions on either the <a href="archive.html"Octave-Forge mailing list</a>,
+     or you can ask on the <a href="http://www.gnu.org/software/octave/archive.html">Octave help mailing list</a>.
+   </p>
+    
+<h2 id="compatibility">Matlab Compatibility</h2>
+ <h3 class="question">I'm using a certain Matlab toolbox. Is there an equivalent one for Octave?</h3>
+   <p>Very often you can find a package that provides something quite similar to the Matlab toolboxes.
+     Simply browse the <a href="packages.html">list of package</a> and see if something fits
+     your needs. If you can't find anything you should feel free to ask on the
+     <a href="archive.html">mailing list</a>.
+   </p>
+   
+ <h3 class="question">Does Octave support feature XXX?</h3>
+   <p>Octave supports most of the Matlab language, so in general the answer is Yes.
+     The easiest way to check if your needs are supported by octave, is to install
+     octave. 
+   </p>
+
+__TRAILER__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/archive.in	Sun Sep 10 17:53:09 2006 +0000
@@ -0,0 +1,12 @@
+__HEADER__(`Mailing list')
+
+<p>Bugs, enhancements, and other stuff are debated on the Octave-Forge
+  mailing list. It's a fairly low-trafic list, and you are most welcome
+  to join. You can subscribe to the by going to 
+  <a href="https://lists.sourceforge.net/lists/listinfo/octave-dev">this page</a>.
+  On the same page you can also find archives of the mailing list. A lot
+  of the people on the Octave-Forge mailing list are also subscribed to the
+  <a href="http://www.gnu.org/software/octave/archive.html">Octave mailing lists</a>,
+  so you might want to joing those lists as well.</p>
+
+__TRAILER__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/bugs.in	Sun Sep 10 17:53:09 2006 +0000
@@ -0,0 +1,10 @@
+__HEADER__(`Bugs')
+
+<p>If you think you have found a bug in one of the Octave-Forge packages,
+  please report it, by sending a message to the 
+  <a href="archive.html">mailing list</a>. Please report all the facts
+  relevant to reproducing the bug, so developers can fix the problem.
+  If you have a fix for the problem yourself, please send it along
+  with your message.</p>
+
+__TRAILER__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/developers.in	Sun Sep 10 17:53:09 2006 +0000
@@ -0,0 +1,387 @@
+__HEADER__(`Developer's Notes')
+
+<h2>Contributing Code to the Gnu Octave Repository</h2>
+
+
+<h3>Requirements</h3>
+<p>
+To contribute your .m files, C++, C, or Fortran code to the GNU Octave
+Repository (octave-forge) you need to
+<ul>
+    <li> have an account on SourceForge,
+    <li> be registered as an octave-forge developer,
+    <li> have <a href="http://www.cvshome.org/">CVS</a>
+        installed on the computer from which you
+        will submit contributions, and
+    <li> have the secure shell,
+         <a href="http://www.openssh.com/"><tt>ssh</tt></a>, installed
+         on your computer.
+</ul>
+The first two requirements are easy but may take a few days.  
+If you don't already have one, request a SourceForge (SF) account
+<a href="http://sourceforge.net/account/register.php"> here</a>.
+To register as a developer send a request 
+to the octave-forge mailing list 
+<a href="mailto:octave-dev@lists.sf.net">octave-dev@lists.sf.net</a>.
+Include a bit of information about the code
+you plan to submit. 
+Finally, if your computer runs linux or
+FreeBSD, chances are good that both <tt>ssh</tt> and CVS are already 
+installed on your system. 
+If they aren't, 
+you will need to find prebuilt packages for them or download their
+source codes and build them.
+
+<h3>Create a SF home directory</h3>
+<p>
+If you've never submitted code to a SourceForge project before,
+create your home directory by
+logging onto the octave-forge account with <tt>ssh</tt>:
+<pre>
+   $ ssh -l <FONT COLOR="#800000"><i>sflogin</i></FONT>  octave.cvs.sourceforge.net
+   Password:  <FONT COLOR="#800000"><i>your SF password</i></FONT>
+</pre>
+Although SF will only show you a message-of-the-day screen then log
+you out, this process has the useful side effect of creating a home
+directory for you if one doesn't already exist.  Some CVS commands will fail
+if you do not have a home directory on SF.
+
+<h3>Download the latest octave-forge distribution</h3>
+CVS expects the 
+code you plan to submit to reside in a directory within the existing
+octave-forge directory structure.
+You will therefore need to download a copy of the latest octave-forge
+distribution to work in.  Change directories to a place you want
+to put the code, then issue the CVS <i>checkout</i>
+(abreviated as 'co') command:
+<pre>
+   $ cd <FONT COLOR="#800000"><i>working_directory</i></FONT>
+   $ export CVS_RSH=ssh
+   $ cvs -d:ext:<FONT COLOR="#800000"><i>sflogin</i></FONT>@cvs.sourceforge.net:/cvsroot/octave co octave-forge
+</pre>
+
+<h3>Where does your code belong?</h3>
+
+Put your file(s) in a subdirectory under the <tt>octave-forge/</tt>
+directory.  Here are some guidelines to help you decide where your
+code belongs:
+<ul>
+	<li> <b><tt>admin/</tt></b><br>
+	Contains files and scripts used to administer the octave-forge
+	website and build the release files.  Nothing in here is needed
+	by octave-forge users.
+
+	<li> <b><tt>doc/</tt></b><br>
+	Documentation for octave in general.  Documentation for specific
+	packages goes into the <tt>doc/</tt> subdirectory of the individual package 
+	directories.  There are no standards for documentation at this
+	time.
+
+	<li> <b><tt>extra/</tt></b><br>
+	Packages which:
+	<ul>     <li> are too narrow in scope for <tt>main/</tt>, or
+	    <li> act as alternatives for functions in <tt>main/</tt>, or
+	    <li> do not follow octave conventions (because they want
+	     to retain compatibility with matlab for example), or
+	    <li> are primarily developed elsewhere, or
+	    <li> require patches to Octave, or
+	    <li> are designed for older versions of Octave, or
+	    <li> haven't been tested enough.
+</ul>
+	<li> <b><tt>extra/patches/</tt></b><br>
+	Small patches to Octave. Patches should be labelled as
+	name-version.patch, with version being the Octave version 
+	number on which the patch was based.  The start of the 
+	patch file should contain a description of what it does.  
+	Patches should be generated with diff -c or diff -cp.
+
+	<li> <b><tt>main/</tt></b><br>
+	Packages which may eventually be included in the main octave 
+	distribution.  As such, they should follow Octave conventions.  
+	The octave-forge CVS tree should be the primary development/release 
+	site.  All functions should work with the latest Octave 
+	interpreter without any special compilation switches or patches
+	applied.
+
+	<li> <b><tt>nonfree/</tt></b><br>
+	Packages which are not freely modifiable and redistributable 
+	with modifications, or which depend on code which is not 
+	free.  This includes functions which only permit non-commercial 
+	use and functions which must be kept together as a package.  
+	Functions in all other directories must be freely redistributable 
+	with modifications.  Functions in non-free must be freely 
+	redistributable for non-commercial use.  Functions of unknown
+	license should not be included anywhere, since no license implies
+	default license implies no rights to redistribute.
+
+</ul>
+
+<h3>Add a copyright notice</h3>
+<p>
+Each file in octave-forge must contain a copyright notice.  
+If you wish to release your
+code under the 
+GNU <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>
+, insert the following text at the top of your file:
+<pre>
+## Copyright (C) <FONT COLOR="#800000"><i>year</i></FONT>   <FONT COLOR="#800000"><i>Your Name</i></FONT>   &lt;<FONT COLOR="#800000"><i>your@preferred.email</i></FONT>&gt;
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+</pre>
+
+Here are other popular open source licenses:
+<ul>
+    <li> <a href="http://www.gnu.org/licenses/lgpl.html">GNU Lesser GPL</a>
+    <li> <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License</a>
+    <li> <a href="http://www.opensource.org/licenses/artistic-license.html">Artistic License</a>
+    <li> <a href="http://www.opensource.org/licenses/bsd-license.html">BSD License</a>
+</ul>
+Consult 
+<a href="http://www.opensource.org/licenses/index.html">opensource.org</a>.
+for a comprehensive list of Open Source licenses.
+
+<h3>Package structure</h3>
+<dl>
+<dt>package/NOINSTALL
+<dd>	don't install this package; the user can rename or delete this
+	file if they want the package installed anyway.
+<dt>package/*.m 
+<dd>	m-files for the package; these will be installed in
+	site/mfiles/octave-forge/package
+<dt>package/data/*
+<dd>	datafiles to be installed with the mfiles.  You can accesses
+	them from your m-files with x = file_in_load_path("a").
+<dt>package/Makefile 
+<dd>	Makefile with a default target to build anything that needs
+	building, an optional "install" target in case you need to
+	install something other than m-files, oct-files, data files or
+	octave binaries, and a "clean" target to remove everything that
+	has been built.  See below for details.
+<dt>package/configure.add, package/Makeconf.add
+<dd>	Additional configuration-time commands to run in order to 
+	find all the components that your package requires.  You 
+	can look for anything you want in configure.add and note 
+	what you need in Makeconf.add.  The definitions in 
+	Makeconf.add will be available when you include ../../Makeconf 
+	in your Makefile.  See main/symbolic for an example.
+<dt>package/*.oct
+<dd>	oct-files built by Makefile. These will be installed all 
+	together in site-oct-files/octave-forge.  You may assume that
+	HAVE_OCTAVE_20 is defined for 2.0.x series mkoctfile, and
+	HAVE_OCTAVE_21 is defined for 2.1.x series mkoctfile.
+<dt>package/bin/*
+<dd>	executable files built by Makefile.  These will be 
+	installed in Octave's EXEC_PATH, so they will be available 
+	from Octave but not from the shell. You have two options
+	regarding this directory.  The better one would be to make
+	sure that the directory exists before you try building the
+	binary.  The other option is to have a hidden bin/.keepdir
+	so that CVS won't delete it for you automatically.
+</dl>
+
+<h3>Adding a Makefile</h3>
+
+If your package has something other than m-files you will need a 
+Makefile in your directory.  This could be as short as three lines:
+<pre>
+include ../../Makeconf
+all: f1.oct
+clean: ; -$(RM) *.o core octave-core *.oct *~
+</pre><p>
+
+If you define multiple DEFUN_DLD's in a file, you may need to
+use symbolic links in order for Octave to find them:
+<pre>
+include ../../Makeconf
+
+# extra functions defined in fn.oct
+fn_LINKS=fn2.oct fn3.oct
+
+# all compiled functions
+PROGS=fn.oct $(fn_LINKS) gn.oct
+
+all: $(PROGS)
+
+$(PROGS): Makefile
+
+$(fn_LINKS):
+	-$(RM) $@
+	$(LN_S) fn.oct $@
+
+clean: ; -$(RM) *.o core octave-core *.oct *~
+</pre><p>
+
+The "include ../../Makeconf" line above includes all of the definitions 
+that were created during configuration.  This includes things like MKOCTFILE,
+as well as implicit rules for compiling oct-files.  See Makeconf.base 
+for a list of predefined variables and rules.  Sometimes you will see
+"sinclude ../../Makeconf".  This is for packages which can be compiled
+independently of Octave-forge.  If Octave-forge is configured, then the
+variable OCTAVE_FORGE will be defined.<p>
+
+Even more complicated makefiles are sometimes necessary, particularly when
+the package depends on external libraries.  See main/symbolic/Makefile
+for an example.  The external libraries must be found during configure
+so main/symbolic/configure.add provides detection rules.  The results 
+are posted in main/symbolic/Makeconf.add, and will be available during make.<p>
+
+Please try to keep compatibility with older versions of Octave.  The main
+configure script tests for features that have changed since octave-2.1.36.
+The tests are done in such a way that conditions are only defined if you
+are using an older version of octave.  That way if the tests are not performed
+and the conditions are not defined, support defaults to the newer version
+of octave.  The following conditions are defined in configure.base:
+<dl>
+<dt>HAVE_SLLIST_H
+<dd>subsref changed from using SLList to using std::list.
+To support older versions of octave, use:<pre><code>
+#ifdef HAVE_SLLIST_H
+#define LIST SLList
+#define LISTSIZE length
+#define SUBSREF_STRREF
+#else
+#include &lt;list&gt;
+#define LIST std::list
+#define LISTSIZE size
+#define SUBSREF_STRREF &amp;
+#endif
+...
+  octave_value subsref (const std::string SUBSREF_STRREF type,
+                        const LIST&lt;octave_value_list&gt;&amp; idx) {
+	...
+  }
+  octave_value_list subsref (const std::string SUBSREF_STRREF type,
+                             const LIST&lt;octave_value_list&gt;&amp; idx,
+                             int nargout) {
+        ...
+
+     if (idx.LISTSIZE () > 1)
+        ...
+  }
+</code></pre>
+<dt>NEED_OCTAVE_QUIT
+<dd>signal handling changed from longjump to C++ exceptions. To support 
+older versions of octave, use:<pre><code>
+#ifdef NEED_OCTAVE_QUIT
+#define OCTAVE_QUIT do {} while (0)
+#define BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE
+#define END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE
+#define octave_throw_bad_alloc() \
+   do { jump_to_top_level(); panic_impossible(); } while (0)
+#else
+#include &lt;octave/quit.h&gt;
+#endif
+</code></pre>
+<dt>USE_OCTAVE_NAN
+<dd>octave_NaN and octave_Inf constants were converted to functions.  
+To support older versions of octave, use:<pre><code>
+#ifdef USE_OCTAVE_NAN
+#define lo_ieee_nan_value() octave_NaN
+#define lo_ieee_inf_value() octave_Inf
+#endif
+</code></pre>
+</dl>
+<p>m-file support across multiple versions
+is tricky.  Sometimes try/catch will help, but for syntax
+changes you will need some sort of preprocessor, such as
+awk or sed.
+</p>
+
+<h3>Submit your code!</h3>
+You are now ready to upload your code to the Gnu Octave Repository.
+Do this with two CVS commands--one to add a new
+entry for your file in the octave-forge catalog, and a second command
+to actually upload the file:
+<pre>
+   $ cvs add <FONT COLOR="#800000"><i>files</i></FONT>
+   $ cvs commit <FONT COLOR="#800000"><i>files</i></FONT>
+</pre>
+
+After hitting the carriage return at the end of the commit command,
+CVS will open your default editor so that you can enter comments about
+the commit. The first time you commit a file the comment might be
+something as simple as `Initial commit into CVS.' However, for all
+subsequent commits please add meaningful comments that explain why
+changes were made to the file since all comments will appear in the
+changelog.  Try to gather related changes into one commit command.
+<p>
+Aside:  the default editor can be defined like so:
+<pre>
+   $ export EDITOR=<FONT COLOR="#800000">vim</FONT>
+</pre>
+<p>
+
+If you are uploading an entire package, then put your directory into the
+octave-forge tree and do the following:
+<pre>
+   $ cd octave-forge/main
+   $ cvs add <FONT COLOR="#800000"><i>package</i></FONT>
+   $ cvs commit <FONT COLOR="#800000"><i>package</i></FONT>
+   $ cd <FONT COLOR="#800000"><i>package</i></FONT>
+   $ cvs add *
+   $ cvs commit *
+</pre>
+
+You may find it easier to use the import command, especially if your
+package contains subdirectories.  In this case, you should not put
+your directory into the octave-forge tree.  Instead, change to the
+root of your package tree and enter the following:
+<pre>
+   $ cd <FONT COLOR="#800000"><i>package</i></FONT>
+   $ cvs -d:ext:<FONT COLOR="#800000"><i>sflogin</i></FONT>@octave.cvs.sourceforge.net:/cvsroot/octave import -m "<FONT COLOR="#800000"><i>package name</i></FONT>" octave-forge/<FONT COLOR="#800000"><i>main/package</i></FONT> <FONT COLOR="#800000"><i>sflogin</i></FONT> start
+</pre>
+
+You can then fetch the new package from octave-forge as follows:
+<pre>
+   $ cd octave-forge
+   $ cvs -q update -d
+</pre>
+
+<p>
+From time to time, you will need to synchronize with CVS:
+<pre>
+   $ cd octave-forge
+   $ cvs -q update -d
+</pre>
+Each file will be listed with one of the following codes:
+<ul>
+<li> `?' for files you created didn't add and commit.
+<li> `M' for files you modified but didn't commit.
+<li> `C' for files which have unresolvable conflicts.  Look inside the file to
+see what it was that couldn't be resolved.  It will be clearly marked, or you
+can do a cvs diff on the file to highlight the conflict.
+<li> `U' for files you haven't touched but are modified on the server.
+<li> `P' for files you have modified in a way consistent with the modifications
+on the server (?), e.g., because you submitted a patch for someone else to apply.
+</ul>
+
+<h3>Learn more about CVS</h3>
+The few CVS commands shown here just scratch the surface of this
+powerful versioning package.  If you become an active contributor
+you will benefit from learning more CVS commands and understanding 
+how CVS works.
+The
+<a href="http://cvsbook.red-bean.com/cvsbook.html">
+CVS Book</a> is a great place to begin your exploration.
+
+<h3>Join the developers' mailing list</h3>
+Finally, consider joining the octave-forge developer's 
+<a href="http://lists.sourceforge.net/lists/listinfo/octave-dev">
+mailing list</a>.  It is very low traffic.  It is used to announce
+pending releases of octave-forge and discuss issues related to
+working with octave-forge.  Discussion of the functions in
+octave-forge mostly occurs on the primary octave mailing lists.
+
+__TRAILER__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/docs.in	Sun Sep 10 17:53:09 2006 +0000
@@ -0,0 +1,25 @@
+__HEADER__(`Documentation')
+
+<p>On this page you'll find various kinds of documentation. If you need documentation
+on individual packages, see the package page.</p>
+
+<h2>User Questions</h2>
+<p>Most questions asked by users are answers in the <a href="FAQ.html">FAQ</a>.</p>
+
+<h2>Developers Documents</h2>
+<ul>
+<li>
+<a href="coda/index.html">Da Coda Al Fine: Pushing Octave's Limits</a> 
+[<a href="coda/coda.pdf">pdf</a>, <a href="coda/coda-sgml.tar.gz">source</a>, <a href="coda-www.tar.gz">all</a>] (using C++ with Octave).
+</li>
+<li><a href="new_developer.html">Octave-forge developer's guide</a></li>
+<li><a href="translation.html">Octave translator guide</a></li>
+<li>
+<a href="texmacs.pdf">TeXmacs Interface</a> - Information on using <a href="http://www.texmacs.org/">TeXmaxs</a> with octave.
+</li>
+<li><a href="octave_embed.tar.gz">Sample code for embedding octave</a></li>
+<li><a href="MIP73-isoheaders.tar.gz">Headers for compiling octave with SGI MIPSpro 7.3 compiler</a></li>
+</ul>
+
+
+__TRAILER__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/index.in	Sun Sep 10 17:53:09 2006 +0000
@@ -0,0 +1,33 @@
+__HEADER__(`Octave-Forge')
+
+  <p>
+   Octave-Forge is a central location for the collaborative
+   development of packages for <a href="http://www.octave.org">GNU Octave</a>.
+  </p>
+  <p>
+    The Octave-forge packages contains the source for all the functions and are
+    designed to work with the Octave package system. In general the packages are
+    designed to work with the latest development version of Octave, but it should
+    be possible to use most packages with earlier versions.
+  </p>
+  <p>
+    You can find the list of packages by clicking on the <em>Packages</em> link to the left.
+    To install a package, download the package file, and install it from the Octave prompt
+    by typing
+  </p>
+  <p>
+    <code>
+    pkg install package_file_name.tar.gz
+    </code>
+  </p>
+  <p>
+    where <em>package_file_name.tar.gz</em> is the name of the file you downloaded.
+  </p>
+  <p>
+    If you have code to contribute, send a message to the 
+    <a href="http://lists.sourceforge.net/mailman/listinfo/octave-dev">repository mailing list</a>
+    or <a href="developers.html">join the development team</a>.
+  </p>
+
+
+__TRAILER__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/links.in	Sun Sep 10 17:53:09 2006 +0000
@@ -0,0 +1,18 @@
+__HEADER__(`Links')
+
+<p>This page contains a list of links that are somehow interesting for Octave users.</p>
+
+<p><a href="http://www.octave.org">http://www.octave.org</a>: The GNU Octave web page.</p>
+<p><a href="http://wiki.octave.org/">http://wiki.octave.org</a>: The GNU Octave wiki. 
+  This page contains a lot of information about the use and development of Octave.</p>
+<p><a href="http://octaviz.sourceforge.net/">http://octaviz.sourceforge.net</a>: The Octaviz web page.
+  Octaviz is a visualization system for Octave. It is a wrapper that makes all VTK classes accessible
+  from within Octave using the same object-oriented syntax as in C++ or Python.</p>
+<p><a href="http://octplot.sourceforge.net/">http://octplot.sourceforge.net</a>: The Octplot web page.
+  OctPlot is a handle graphics package for Octave. OctPlot provides quality postscript(TM) 
+  and screen graphics.</p>
+<p><a href="http://www.math.mcgill.ca/loisel/octave-workshop/">http://www.math.mcgill.ca/loisel/octave-workshop</a>:
+ The Octave Workshop web page. A GUI implementation for Octave that has the goal of being completely
+ cross platform.</p>
+
+__TRAILER__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/octave-forge.css	Sun Sep 10 17:53:09 2006 +0000
@@ -0,0 +1,177 @@
+/* Regular elements */
+body {
+  background: white;
+  color: black;
+  font-family: sans-serif;
+  font-weight: normal;
+  font-size: medium;
+  min-width: 500px;
+  max-width: 950px;
+  margin-left: 3%;
+  margin-right: 15%;
+}
+
+a:link {
+  color: #3465a4;
+}
+
+a:visited {
+  color: #204a87;
+}
+
+
+/* the navigation choices at the bottom of the page. */
+
+div#nav {
+  color: black;
+  float: left;
+  font-family: sans-serif;
+  font-size: 0.8em;
+  margin: 1em 0 0 1em;
+  padding: 0;
+  position: fixed;
+  text-align: left;
+  width: 10em;
+}
+
+div#nav a {
+  background-color: #729fcf;
+  border: 1px solid;
+  border-color: #3465a4;
+  display: block;
+  padding: 0.2em 0.5em 0.2em 0.5em ;
+  text-decoration: none;
+  color: black;
+  //font-weight: bold;
+}
+
+div#nav a:hover {
+  background-color: #204a87;
+}
+
+/* the page content */
+
+div#content {
+display: block;
+margin-left: 11em;
+}
+
+div.section {
+//  display: block;
+}
+
+/* the title bar */
+
+div#title {
+  width: 100%;
+  clear: both;
+}
+
+div#title h1 {
+  background-color: #ffffff;
+  border-bottom: 4px solid #729fcf;
+  font-size: xx-large;
+  color: #729fcf;
+  padding: 0;
+  margin: 0;
+}
+
+/* The blue title bar on non-main pages */
+
+/*
+.header {
+color: #ffffff;
+background-color: #10a0ff;
+font-family: arial,sans-serif;
+padding: 0;
+font-size: medium;
+font-weight: bold;
+border: 3px solid #10a0ff;
+}
+*/
+
+/* Changes for Octave Wiki */
+
+h1 {
+background-color: #3465a4;
+color: #ffffff;
+font-size: xx-large;
+padding: 2em;
+margin: 8em;
+}
+
+h2 {
+/*
+background-color: #3465a4;
+color: #ffffff;
+font-size: 1.2em;
+padding: 2px;
+margin-top: 5px;
+*/
+}
+
+h3.question {
+  font-size: small;
+}
+
+h3 {
+/*
+background-color: #3465a4;
+color: #ffffff;
+font-size: 1.1em;
+padding: 2px;
+margin-top: 5px;
+*/
+}
+
+h4,h5,h6 {
+color: #3465a4;
+font-size: large;
+padding: 2px;
+margin-top: 5px;
+}
+
+code {
+  padding: 5px;
+  margin-left: 1em;
+  border: 1px solid;
+  border-color: #babdb6;
+  background-color: #d3d7cf;
+  color: black;
+}
+
+table#main_package_table {
+  margin-top: 1em;
+  background-color: #d3d7cf;
+  border: 1px solid;
+  border-color: #babdb6;
+  margin: 1em 0 0 0;
+  padding: 0.2em 0.5em 0.2em 0.2em;
+  text-decoration: none;
+}
+
+div#description_box {
+  padding-top: 1em;
+}
+
+div.package {
+  margin-top: 0.5em;
+  background-color: #d3d7cf;
+  border: 1px solid;
+  border-color: #babdb6;
+  margin: 1em 5em 0 1em;
+  padding: 0.2em 0.2em 0em 0.2em;
+  text-decoration: none;
+  color: black;
+}
+
+p.package_link {
+  margin: 0.2em;
+  font-weight: bold;
+  font-size: 80%;
+}
+
+p.package_link a {
+  color: black;
+  text-decoration: none;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/packages.in	Sun Sep 10 17:53:09 2006 +0000
@@ -0,0 +1,149 @@
+__HEADER__(`Packages')<p>The following packages are currently available in the repository.
+If you don't know how to install the packages please read the
+relevant part of the <a href="FAQ.html#install">FAQ</a>.
+</p><div class="package">
+  <b>Audio</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./audio/index.html">details</a> | <a href="./audio/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Combinatorics</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./combinatorics/index.html">details</a> | <a href="./combinatorics/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Communications</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./comm/index.html">details</a> | <a href="./comm/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Control</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./control/index.html">details</a> | <a href="./control/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Econometrics</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./econometrics/index.html">details</a> | <a href="./econometrics/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Fixed</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./fixed/index.html">details</a> | <a href="./fixed/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>General</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./general/index.html">details</a> | <a href="./general/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Geometry</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./geometry/index.html">details</a> | <a href="./geometry/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>GSL</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./gsl/index.html">details</a> | <a href="./gsl/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Ident</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./ident/index.html">details</a> | <a href="./ident/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Image</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./image/index.html">details</a> | <a href="./image/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>io</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./io/index.html">details</a> | <a href="./io/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>IRSA</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./irsa/index.html">details</a> | <a href="./irsa/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Linear-Algebra</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./linear-algebra/index.html">details</a> | <a href="./linear-algebra/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Miscellaneous</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./miscellaneous/index.html">details</a> | <a href="./miscellaneous/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>octcdf</b>
+<p>A NetCDF interface for octave...</p>
+<p class="package_link">&raquo; <a href="./octcdf/index.html">details</a> | <a href="./octcdf/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Optim</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./optim/index.html">details</a> | <a href="./optim/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Parallel</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./parallel/index.html">details</a> | <a href="./parallel/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Plot</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./plot/index.html">details</a> | <a href="./plot/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Signal</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./signal/index.html">details</a> | <a href="./signal/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Specfun</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./specfun/index.html">details</a> | <a href="./specfun/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>special-matrix</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./special-matrix/index.html">details</a> | <a href="./special-matrix/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>splines</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./splines/index.html">details</a> | <a href="./splines/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Statistics</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./statistics/index.html">details</a> | <a href="./statistics/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>strings</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./strings/index.html">details</a> | <a href="./strings/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Struct</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./struct/index.html">details</a> | <a href="./struct/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Symbolic</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./symbolic/index.html">details</a> | <a href="./symbolic/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>time</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./time/index.html">details</a> | <a href="./time/index.html">download</a></p>
+</div>
+<div class="package">
+  <b>Vrml</b>
+<p>Add a description to this package!...</p>
+<p class="package_link">&raquo; <a href="./vrml/index.html">details</a> | <a href="./vrml/index.html">download</a></p>
+</div>
+__TRAILER__