Add OS/2 build section
[privoxy.git] / doc / source / developer-manual.sgml
index 198514f..8323f9f 100644 (file)
@@ -1,4 +1,9 @@
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
+<!entity % dummy "INCLUDE"> 
+<!entity supported SYSTEM "supported.sgml">
+<!entity newfeatures SYSTEM "newfeatures.sgml">
+<!entity p-intro SYSTEM "privoxy.sgml">
+]>
 <!--
  File        :  $Source: /cvsroot/ijbswa/current/doc/source/developer-manual.sgml,v $
 
                 This file belongs into
                 ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
                 
- $Id: developer-manual.sgml,v 1.9 2002/03/24 11:01:05 swa Exp $
+ $Id: developer-manual.sgml,v 1.18 2002/04/03 03:51:48 hal9 Exp $
 
  Written by and Copyright (C) 2001 the SourceForge
- Privoxy team.  http://ijbswa.sourceforge.net
+ Privoxy team. http://www.privoxy.org/
 
  Based on the Internet Junkbuster originally written
  by and Copyright (C) 1997 Anonymous Coders and 
@@ -20,7 +25,7 @@
   <artheader>
     <title>Privoxy Developer Manual</title>
 
-    <pubdate>$Id: developer-manual.sgml,v 1.9 2002/03/24 11:01:05 swa Exp $</pubdate>
+    <pubdate>$Id: developer-manual.sgml,v 1.18 2002/04/03 03:51:48 hal9 Exp $</pubdate>
 
     <authorgroup>
       <author>
     </authorgroup>
 
     <abstract>
-      <para>
-The developer manual gives the users information on how to help the developer
-team. It provides guidance on coding, testing, documentation and other
-issues. <application>Privoxy</application> is a web proxy with advanced
-filtering capabilities for protecting privacy, filtering web page content,
-managing cookies, controlling access, and removing ads, banners, pop-ups and
-other obnoxious Internet Junk. <application>Privoxy</application> has a very
-flexible configuration and can be customized to suit individual needs and
-tastes. <application>Privoxy</application> has application for both stand-alone
-systems and multi-user networks.
+<![%dummy;[
+ <para>
+ <comment>
+  This is here to keep vim syntax file from breaking :/
+  If I knew enough to fix it, I would.
+  PLEASE DO NOT REMOVE! HB: hal@foobox.net
+ </comment>
  </para>
-      <para>
-You can find the latest version of the user manual at <ulink
-url="http://ijbswa.sourceforge.net/developer-manual/">http://ijbswa.sourceforge.net/developer-manual/</ulink>.
-Please see the Contact section in the user-manual if you want to contact the developers.
+ ]]>
+<para>
+ The developer manual gives the users information on how to help the developer
+ team. It provides guidance on coding, testing, documentation and other
+ issues. 
  </para>
+<!--
+ Include privoxy.sgml:
+-->
+&p-intro;
+
+<para>
+ You can find the latest version of the this manual at <ulink
+ url="http://www.privoxy.org/developer-manual/">http://www.privoxy.org/developer-manual/</ulink>.
+ Please see the Contact section of the <ulink
+ url="../user-manual/contact.html">User Manual</ulink> on how to contact the
+ developers.
+</para>
 
 <!--        <para> -->
 <!--    Feel free to send a note to the developers at <email>ijbswa-developers@lists.sourceforge.net</email>. -->
@@ -57,17 +72,36 @@ Please see the Contact section in the user-manual if you want to contact the dev
 
   <!--   ~~~~~       New section      ~~~~~     -->
   <sect1 id="introduction"><title>Introduction</title>
-    <para>To be filled.
-</para>
+<!--
+
+ I don't like seeing blank space :) So added *something* here.
+
+ --> 
+    <para>
+     <application>Privoxy</application>, as an heir to
+     <application>Junkbuster</application>, is an Open Source project 
+     and licensed under the GPL. As such, <application>Privoxy</application>
+     development is potentially open to anyone who has the time, knowledge,
+     and desire to contribute in any capacity. Our goals are simply to
+     continue the mission, to improve <application>Privoxy</application>, and
+     to make it available to as wide an audience as possible. 
+    </para>
+    <para>
+     One does not have to be a programmer to contribute. Packaging, testing,
+     and porting, are all important jobs as well.
+    </para>
   </sect1>
 
   <!--   ~~~~~       New section      ~~~~~     -->
   <sect1 id="quickstart"><title>Quickstart to Privoxy Development</title>
     <para>
-You'll need an account on Sourceforge to support our development. Mail you ID
-to the list and wait until a project manager has added you.
+You'll need an account on <ulink
+url="http://sourceforge.net">Sourceforge</ulink> to support our development.
+Mail your ID to the list and wait until a project manager has added you.
+</para>
 
-For the time beeing (read, this section is under construction), please note the
+<para>
+For the time being (read, this section is under construction), please note the
 following guidelines for changing stuff in the code. If it is
        <orderedlist numeration="arabic">
                        <listitem><para>
@@ -86,21 +120,58 @@ following guidelines for changing stuff in the code. If it is
                A major redesign of some part of the code: ask the list
                 </para></listitem>
         </orderedlist> 
-</para>                
-  </sect1>     
+ </para>               
+</sect1>       
        
   <!--   ~~~~~       New section      ~~~~~     -->
   <sect1 id="documentation"><title>Documentation Guidelines</title>
     <para>
-        All docs are in SGML format and located in the <computeroutput>doc/source</computeroutput> directory.
+        All formal documents are maintained in docbook SGML and located
+        in the <computeroutput>doc/source</computeroutput> directory. You will
+        need <ulink url="http://www.docbook.org">docbook</ulink> and the
+        docbook stylesheets (or comparable alternatives), and either 
+        <application>jade</application> or <application>openjade</application> 
+        installed in order to build docs from source. Currently there is 
+        <ulink
+        url="../user-manual/index.html"><citetitle>user-manual</citetitle></ulink>,
+        <ulink
+        url="../faq/index.html"><citetitle>FAQ</citetitle></ulink>,
+        and, of course this, the <citetitle>developer-manual</citetitle> in
+        this format.
+        </para>
+        <para>
+         Other, less formal documents (e.g. README, LICENSE) are 
+         maintained as plain text files in the toplevel source 
+         directory.
+        </para>
+        <para>
+         Packagers are encouraged to include this documentation. For those
+         without the ability to build the docs locally, text versions of 
+         each are kept in CVS. Or HTML versions can be downloaded from the <ulink
+         url="http://www.privoxy.org">www.privoxy.org</ulink> website, which
+         should be fairly current.
+        </para>
+        <para>
+          Formal documents are built with the Makefile targets of 
+          <computeroutput>make dok</computeroutput>, or alternately
+          <computeroutput>make redhat-dok</computeroutput>. If you 
+          have problems, try both. The build process uses the document 
+          SGML sources in <computeroutput>doc/source</computeroutput> to
+          update all text files in <computeroutput>doc/text</computeroutput>
+          and to update all HTML documents in
+          <computeroutput>doc/webserver</computeroutput>.
+        </para>
+        <para>
+         Documentation writers should please make sure documents build 
+         successfully before committing to CVS.
         </para>
         <para>
-        How do you update the webserver (i.e. the pages on sourceforge)?
+        How do you update the webserver (i.e. the pages on privoxy.org)?
         <orderedlist numeration="arabic">
                 <listitem><para>
-        Run <computeroutput>make dok</computeroutput> (which uses the documents in <computeroutput>doc/source</computeroutput> to update all
-        text files in <computeroutput>doc/text</computeroutput> and to update
-all web documents in <computeroutput>doc/webserver</computeroutput>.
+        First, build the docs by running <computeroutput>make
+        dok</computeroutput> (or alternately <computeroutput>make
+        redhat-dok</computeroutput>).                 
                 </para></listitem>
                 <listitem><para>
         Run <computeroutput>make webserver</computeroutput> which copies all files from
@@ -1241,7 +1312,7 @@ static void unload_re_filterfile( void *f ) { ... }</programlisting>
 
     <para><emphasis>Example for file comments:</emphasis></para>
 <programlisting>
-const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.9 2002/03/24 11:01:05 swa Exp $";
+const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.18 2002/04/03 03:51:48 hal9 Exp $";
 /*********************************************************************
  *
  * File        :  $S<!-- Break CVS Substitution -->ource$
@@ -1249,7 +1320,7 @@ const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.9 2002/03/24 11:01:0
  * Purpose     :  (Fill me in with a good description!)
  *
  * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
- *                PRIVOXY team.  http://ijbswa.sourceforge.net
+ *                Privoxy team. http://www.privoxy.org/
  *
  *                Based on the Internet Junkbuster originally written
  *                by and Copyright (C) 1997 Anonymous Coders and
@@ -1301,7 +1372,7 @@ const char FILENAME_h_rcs[] = FILENAME_H_VERSION;
 <programlisting>
 #ifndef _FILENAME_H
 #define _FILENAME_H
-#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.9 2002/03/24 11:01:05 swa Exp $"
+#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.18 2002/04/03 03:51:48 hal9 Exp $"
 /*********************************************************************
  *
  * File        :  $S<!-- Break CVS Substitution -->ource$
@@ -1309,7 +1380,7 @@ const char FILENAME_h_rcs[] = FILENAME_H_VERSION;
  * Purpose     :  (Fill me in with a good description!)
  *
  * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
- *                PRIVOXY team.  http://ijbswa.sourceforge.net
+ *                Privoxy team. http://www.privoxy.org/
  *
  *                Based on the Internet Junkbuster originally written
  *                by and Copyright (C) 1997 Anonymous Coders and
@@ -1399,8 +1470,8 @@ int FUNCTION_NAME( void *param1, const char *x )
 
   <!--   ~~~~~       New section      ~~~~~     -->
   <sect1 id="cvs"><title>Version Control Guidelines</title>
-    <para>To be filled. note on cvs comments. don't comment what you did, comment
-why you did it.
+    <para>To be filled. note on cvs comments. Don't only comment what you did,
+    but also why you did it!
 </para>
   </sect1>
 
@@ -1412,7 +1483,7 @@ why you did it.
     <!--   ~~~~~       New section      ~~~~~     -->
     <sect2 id="testing-plan"><title>Testplan for releases</title>
       <para>
-Explain release numbers. major, minor. developer releases. etc.
+       Explain release numbers. major, minor. developer releases. etc.
 
 <orderedlist numeration="arabic">
           <listitem><para>
@@ -1458,22 +1529,550 @@ at sourceforge. Three simple steps:
     </sect2>
     
   </sect1>
+
+  <!--   ~~~~~       New section      ~~~~~     -->
+  <sect1 id="newrelease"><title>Releasing a new version</title>
+    <para>
+       To minimize trouble with distribution contents, webpage
+       errors and the like, we strongly encourage you
+       to follow this section if you prepare a new release of
+       code or new pages on the webserver.
+    </para>
+    <para>
+       The following programs are required to follow this process:
+       <filename>ncftpput</filename> (ncftp), <filename>scp</filename> (ssh),
+<filename>gmake</filename> (GNU's version of make), autoconf, cvs, ???.
+    </para>
+     
+    <sect2 id="beforerelease">
+    <title>Before the Release</title>
+     <para>
+       The following <emphasis>must be done by one of the
+       developers</emphasis> prior to each new release:
+     </para>
+     <para>
+      <itemizedlist>
+       <listitem>
+        <para>
+         Make sure that everybody who has worked on the code in the last
+         couple of days has had a chance to yell <quote>no!</quote> in case
+         they have pending changes/fixes in their pipelines.
+        </para>
+      </listitem> 
+      <listitem>
+       <para>
+         Increment the version number in <filename>configure.in</filename> in
+         CVS. Also, the RPM release number in
+         <filename>configure.in</filename>. Do NOT touch version information
+         after export from CVS. <emphasis>All packages</emphasis> will use the
+         version and release data from <filename>configure.in</filename>.
+         Local files should not be changed, except prior to a CVS commit!!!
+         This way we are all on the same page!
+       </para>
+      </listitem> 
+      <listitem>
+       <para>
+        If the default actionsfile has changed since last release,
+        bump up its version info in this line:
+       </para>
+       <para> 
+        <programlisting>
+  {+add-header{X-Actions-File-Version: A.B} -filter -no-popups}
+        </programlisting>
+       </para>
+       <para> 
+        Then change the version info in doc/webserver/actions/index.php,
+        line: '$required_actions_file_version = "A.B";'
+       </para>
+      </listitem> 
+      <listitem>
+       <para>
+        Tag all files in CVS with the version number with
+        <quote><command>cvs tag v_X_Y_Z</command></quote> (where X = major, Y
+        = minor, Z = point). Don't use vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work)
+        etc.
+       </para>
+      </listitem> 
+      <listitem>
+       <para>
+        The first package uploaded should be the official
+        <quote>tarball</quote> release. This is built with the
+        <quote><command>make tarball-dist</command></quote> Makefile 
+        target, and then can be uploaded with 
+        <quote><command>make tarball-upload</command></quote> (see below).
+       </para>
+      </listitem> 
+      </itemizedlist>
+     </para> 
+    </sect2>
+    
+    <sect2 id="newrelease-web"><title>Update the webserver</title>
+      <para>
+       All files must be group-readable and group-writable (or no one else
+       will be able to change them). To update the webserver, create any
+       pages locally in the <filename>doc/webserver</filename> directory (or
+       create new directories under <filename>doc/webserver</filename>), then do
+       </para>
+       <para>
+       <programlisting>
+  make webserver
+       </programlisting>
+       </para>
+       <para>
+       Note that <quote><command>make dok</command></quote> 
+     (or <quote><command>make redhat-dok</command></quote>) creates
+       <filename>doc/webserver/user-manual</filename>,
+       <filename>doc/webserver/developer-manual</filename>,
+       <filename>doc/webserver/faq</filename> and
+       <filename>doc/webserver/man-page</filename> automatically.
+      </para>
+      <para>
+      Please do NOT use any other means of transferring files to the
+      webserver. <quote><command>make webserver</command></quote> not only
+      uploads, but will make sure that the appropriate permissions are 
+      preserved for shared group access.
+      </para>
+    </sect2>
+
+    <sect2 id="newrelease-rpm"><title>SuSE or Red Hat</title>
+      <para>
+       Ensure that you have the latest code version. Hence run:
+       </para>
+       <para>
+       <programlisting>
+  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </programlisting>
+       </para>
+       <para>
+        first. 
+       </para>
+       <para>
+       <programlisting>
+  autoheader && autoconf && ./configure
+       </programlisting>
+       </para>
+       <para>
+       Then do
+       </para>
+       <para>
+       <programlisting>
+  make suse-dist or make redhat-dist
+       </programlisting>
+       </para>
+       <para>
+       To upload the package to Sourceforge, simply issue
+       </para>
+       <para>
+       <programlisting>
+  make suse-upload or make redhat-upload
+       </programlisting>
+       </para>
+       <para>
+       Go to the displayed URL and release the file publicly on Sourceforge.
+      </para>
+    </sect2>
+
+    <sect2 id="newrelease-os2"><title>OS/2</title>
+      <para>
+       Ensure that you have the latest code version. Hence run:
+       </para>
+       <para>
+       <programlisting>
+  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+  cd ..
+  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup
+       </programlisting>
+       </para>
+       <para>
+       You will need a mix of development tools.
+       The main compilation takes place with IBM Visual Age C++.
+       Some ancillary work takes place with GNU tools, available from
+       various sources like hobbes.nmsu.edu.
+       Specificially, you will need <filename>autoheader</filename>,
+       <filename>autoconf</filename> and <filename>sh</filename> tools.
+       The packaging takes place with WarpIN, available from various sources, including
+       its home page: <ulink url="http://www.xworkplace.org/">xworkplace</ulink>.
+       </para>
+       <para>
+       Change directory to the <filename>os2setup</filename> directory.
+       Edit the os2build.cmd file to set the final executable filename.
+       For example, 
+       <programlisting>
+  installExeName='privoxyos2_setup_2.9.13_beta.exe'
+       </programlisting>
+       Next, edit the <filename>IJB.wis</filename> file so the release number matches
+       in the <filename>PACKAGEID</filename> section:
+       <programlisting>
+  PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\2\9\13"
+       </programlisting>
+       You're now ready to build.  Run:
+       <programlisting>
+  os2build
+       </programlisting>
+       And in the <filename>./files</filename> directory you will have the WarpIN-installable executable.
+       Upload this to <filename>uploads.sourceforge.net/incoming<filename>, create a release for it, and
+       you're done.
+       </para>
+    </sect2>
+
+    <sect2 id="newrelease-solaris"><title>Solaris</title>
+      <para>
+       Login to Sourceforge's compilefarm via ssh
+       </para>
+       <para>
+       <programlisting>
+  ssh cf.sourceforge.net
+       </programlisting>
+       </para>
+       <para>
+       Choose the right operating system (not the Debian one). If you have
+       downloaded <application>Privoxy</application> before,
+       </para>
+       <para>
+       <programlisting>
+  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </programlisting>
+       </para>
+       <para>
+       If not, please <ulink
+       url="http://www.privoxy.org/user-manual/user-manual/installation.html#INSTALLATION-SOURCE">checkout
+       Privoxy via CVS first</ulink>. Run:
+       </para>
+       <para>
+       <programlisting>
+  autoheader && autoconf && ./configure
+       </programlisting>
+       </para>
+       <para>
+       Then run
+       </para>
+       <para>
+       <programlisting>
+  gmake solaris-dist
+       </programlisting>
+       </para>
+       <para>
+       which creates a gzip'ed tar archive. Sadly, you cannot use <command>make
+       solaris-upload</command> on the Sourceforge machine (no ncftpput). You now have
+       to manually upload the archive to Sourceforge's ftp server and release
+       the file publicly.
+       </para>
+    </sect2>
+
+    <sect2 id="newrelease-windows"><title>Windows</title>
+      <para>
+       Ensure that you have the latest code version. Hence run
+       </para>
+       <para>
+       <programlisting>
+  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </programlisting>
+       </para>
+       <para>
+        Run:
+       </para>
+       <para>
+       <programlisting>
+  autoheader && autoconf && ./configure
+       </programlisting>
+       </para>
+       <para>
+       Then do FIXME.
+       </para>
+    </sect2>
+
+    <sect2 id="newrelease-debian"><title>Debian</title>
+      <para>
+       Ensure that you have the latest code version. Hence run:
+       </para>
+       <para>
+       <programlisting>
+  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </programlisting>
+       </para>
+       <para>
+       first. Run:
+       </para>
+       <para>
+       <programlisting>
+  autoheader && autoconf && ./configure
+       </programlisting>
+       </para>
+       <para>
+       Then do FIXME.
+       </para>
+    </sect2>
+
+    <sect2 id="newrelease-macosx"><title>Mac OSX</title>
+      <para>
+       Login to Sourceforge's compilefarm via ssh
+       </para>
+       <para>
+       <programlisting>
+  ssh cf.sourceforge.net
+       </programlisting>
+       </para>
+       <para>
+       Choose the right operating system. If you have downloaded Privoxy
+       before,
+       </para>
+       <para>
+       <programlisting>
+  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </programlisting>
+       </para>
+       <para>
+       If not, please <ulink
+       url="http://www.privoxy.org/user-manual/user-manual/installation.html#INSTALLATION-SOURCE">checkout
+       Privoxy via CVS first</ulink>. Run:
+       </para>
+       <para>
+       <programlisting>
+ autoheader && autoconf && ./configure
+       </programlisting>
+       </para>
+       <para>
+       Then run:
+       </para>
+       <para>
+       <programlisting>
+  make macosx-dist
+       </programlisting>
+       </para>
+       <para>
+       which creates a gzip'ed tar archive. Sadly, you cannot use <command>make
+       macosx-upload</command> on the Sourceforge machine (no ncftpput). You now have
+       to manually upload the archive to Sourceforge's ftp server and release
+       the file publicly.
+       </para>
+    </sect2>
+
+    <sect2 id="newrelease-freebsd"><title>FreeBSD</title>
+      <para>
+       Change the version number of <application>Privoxy</application> in the
+       configure.in file. Run:
+       <programlisting>
+  autoheader && autoconf && ./configure
+       </programlisting>
+       Then ...
+      </para>
+      <para>
+       Login to Sourceforge's compilefarm via ssh:
+       </para>
+       <para>
+       <programlisting>
+  ssh cf.sourceforge.net
+       </programlisting>
+       </para>
+       <para>
+       Choose the right operating system. If you have downloaded Privoxy
+       before,
+       </para>
+       <para>
+       <programlisting>
+  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </programlisting>
+       </para>
+       <para>
+       If not, please <ulink
+       url="http://www.privoxy.org/user-manual/user-manual/installation.html#INSTALLATION-SOURCE">checkout
+       Privoxy via CVS first</ulink>. Run:
+       </para>
+       <para>
+       <programlisting>
+  autoheader && autoconf && ./configure
+       </programlisting>
+       </para>
+       <para>
+       Then run:
+       </para>
+       <para>
+       <programlisting>
+  gmake freebsd-dist
+       </programlisting>
+       </para>
+       <para>
+       which creates a gzip'ed tar archive. Sadly, you cannot use <command>make
+       freebsd-upload</command> on the Sourceforge machine (no ncftpput). You now have
+       to manually upload the archive to Sourceforge's ftp server and release
+       the file publicly.
+       </para>
+    </sect2>
+
+    <sect2 id="newrelease-tarball"><title>Tarball</title>
+      <para>
+       Ensure that you have the latest code version. Hence run:
+       </para>
+       <para>
+       <programlisting>
+  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </programlisting>
+       </para>
+       <para>
+       first. Run:
+       </para>
+       <para>
+       <programlisting>
+  make clobber
+  autoheader && autoconf && ./configure
+       </programlisting>
+       </para>
+       <para>
+       Then do:
+       </para>
+       <para>
+       <programlisting>
+  make tarball-dist
+       </programlisting>
+       </para>
+       <para>
+       To upload the package to Sourceforge, simply issue
+       </para>
+       <para>
+       <programlisting>
+  make tarball-upload
+       </programlisting>
+       </para>
+       <para>
+       Goto the displayed URL and release the file publicly on Sourceforge.
+      </para>
+    </sect2>
+
+    <sect2 id="newrelease-hpux"><title>HP-UX 11</title>
+      <para>
+       Ensure that you have the latest code version. Hence run:
+       </para>
+       <para>
+       <programlisting>
+  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </programlisting>
+       </para>
+       <para>
+       first. Run:
+       </para>
+       <para>
+       <programlisting>
+  autoheader && autoconf && ./configure
+       </programlisting>
+       </para>
+       <para>
+       Then do FIXME.
+       </para>
+    </sect2>
+
+    <sect2 id="newrelease-amiga"><title>Amiga OS</title>
+      <para>
+       Ensure that you have the latest code version. Hence run:
+       </para>
+       <para>
+       <programlisting>
+  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </programlisting>
+       </para>
+       <para>
+       first. Run:
+       </para>
+       <para>
+       <programlisting>
+  autoheader && autoconf && ./configure
+       </programlisting>
+       </para>
+       <para>
+       Then do FIXME.
+       </para>
+    </sect2>
+
+    <sect2 id="newrelease-aix"><title>AIX</title>
+      <para>
+       Login to Sourceforge's compilefarm via ssh:
+       </para>
+       <para>
+       <programlisting>
+  ssh cf.sourceforge.net
+       </programlisting>
+       </para>
+       <para>
+       Choose the right operating system. If you have downloaded Privoxy
+       before:
+       </para>
+       <para>
+       <programlisting>
+  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </programlisting>
+       </para>
+       <para>
+       If not, please <ulink
+       url="http://www.privoxy.org/user-manual/user-manual/installation.html#INSTALLATION-SOURCE">checkout
+       Privoxy via CVS first</ulink>. Run:
+       </para>
+       <para>
+       <programlisting>
+  autoheader && autoconf && ./configure
+       </programlisting>
+       </para>
+       <para>
+       Then run:
+       </para>
+       <para>
+       <programlisting>
+  make aix-dist
+       </programlisting>
+       </para>
+       <para>
+       which creates a gzip'ed tar archive. Sadly, you cannot use <command>make
+       aix-upload</command> on the Sourceforge machine (no ncftpput). You now have
+       to manually upload the archive to Sourceforge's ftp server and release
+       the file publicly.
+       </para>
+    </sect2>
+
+  </sect1>
   
   <!--   ~~~~~       New section      ~~~~~     -->
   <sect1 id="contact"><title>Contact the developers</title>
-    <para>Please see the user manual for information on how to contact the developers.
+    <para>
+     Please see the contact page in the <ulink
+     url="../user-manual/contact.html">user-manual</ulink> for details.
     </para>
   </sect1>
   
   <!--   ~~~~~       New section      ~~~~~     -->
   <sect1 id="copyright"><title>Copyright and History</title>
-    <para>Please see the user manual for information on Copyright and History.
-    </para>
+    <para>
+     Please see the <ulink
+     url="../user-manual/copyright.html#HISTORY">user-manual</ulink> for
+     information on Copyright and History.
+  </para>
   </sect1>
   
   <!--   ~~~~~       New section      ~~~~~     -->
   <sect1 id="seealso"><title>See also</title>
-    <para>Please see the user manual for information on references.
+    <para>
+      Please see the <ulink
+      url="../user-manual/seealso.html">user-manual</ulink> for others
+      references.
     </para>
   </sect1>
 
@@ -1498,6 +2097,35 @@ at sourceforge. Three simple steps:
   Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
   $Log: developer-manual.sgml,v $
+  Revision 1.18  2002/04/03 03:51:48  hal9
+  Touch ups.
+
+  Revision 1.17  2002/04/03 01:21:17  hal9
+  Implementing Andreas's suggestions for Release sections.
+
+  Revision 1.16  2002/03/31 23:04:40  hal9
+  Fleshed out the doc section, and added something for an intro so it was not
+  blank.
+
+  Revision 1.15  2002/03/30 22:29:47  swa
+  wrong make flavour
+
+  Revision 1.14  2002/03/30 19:04:08  swa
+  people release differently. no good.
+  I want to make parts of the docs only.
+
+  Revision 1.13  2002/03/27 01:16:41  hal9
+  ditto
+
+  Revision 1.12  2002/03/27 01:02:51  hal9
+  Touch up on name change...
+
+  Revision 1.11  2002/03/26 22:29:55  swa
+  we have a new homepage!
+
+  Revision 1.10  2002/03/24 12:33:01  swa
+  more additions.
+
   Revision 1.9  2002/03/24 11:01:05  swa
   name change