Clarify that the webserver target uploads to the SourceForge webserver
[privoxy.git] / doc / source / developer-manual.sgml
index 658b104..fc59c50 100644 (file)
@@ -5,10 +5,10 @@
 <!entity p-intro SYSTEM "privoxy.sgml">
 <!entity history SYSTEM "history.sgml">
 <!entity seealso SYSTEM "seealso.sgml">
-<!entity p-version "3.0.27">
-<!entity p-status "UNRELEASED">
-<!entity % p-not-stable "INCLUDE">
-<!entity % p-stable "IGNORE">
+<!entity p-version "3.0.29">
+<!entity p-status "stable">
+<!entity % p-not-stable "IGNORE">
+<!entity % p-stable "INCLUDE">
 <!entity % p-text "IGNORE">        <!-- define we are not a text only doc -->
 <!entity % p-doc "INCLUDE">        <!-- and we are a formal doc           -->
 <!entity % seealso-extra "INCLUDE"> <!-- extra stuff from seealso.sgml    -->
@@ -19,7 +19,7 @@
 
  Purpose     :  developer manual
 
- Copyright (C) 2001-2018 Privoxy Developers https://www.privoxy.org/
+ Copyright (C) 2001-2020 Privoxy Developers https://www.privoxy.org/
  See LICENSE.
 
  ========================================================================
@@ -39,7 +39,7 @@
     <!-- Completely the wrong markup, but very little is allowed  -->
     <!-- in this part of an article. FIXME -->
       <ulink url="https://www.privoxy.org/user-manual/copyright.html">Copyright</ulink>
-      &my-copy; 2001-2018 by
+      &my-copy; 2001-2020 by
       <ulink url="https://www.privoxy.org/">Privoxy Developers</ulink>
      </subscript>
     </pubdate>
@@ -128,13 +128,13 @@ Hal.
    <para>
     The first step is to join the <ulink
       url="https://lists.privoxy.org/mailman/listinfo/privoxy-devel">privoxy-devel mailing list</ulink>.
-    You can submit your ideas or, even better, patches. Patches are best
-    submitted to the Sourceforge tracker set up for this purpose, but
-    can be sent to the list for review too.
+    You can submit your ideas or, even better, patches.
+    Patches can also be submitted to the
+    <ulink url="https://sourceforge.net/p/ijbswa/patches/">Sourceforge patch tracker</ulink>.
    </para>
     <para>
-     You will also need to have a git package installed, which will
-     entail having ssh installed as well, in order to access the git repository.
+     You will also need to have a git package installed,
+     in order to access the git repository.
      Having the GNU build tools is also going to be important (particularly,
      autoconf and gmake).
     </para>
@@ -158,10 +158,16 @@ Hal.
     <sect2 id="gitaccess"><title>Access to Git</title>
       <para>
         The project's Git repository is hosted at the
-        <ulink url="https://privoxy.org/">Privoxy site.</ulink>
-        The Git repository URL is
-        <literal>ssh://git@git.privoxy.org:23/git/privoxy.git</literal>,
-        the central repository is called <literal>privoxy</literal>, and the
+        <ulink url="https://privoxy.org/">Privoxy website</ulink>.
+        For Privoxy team members with push privileges the Git repository URL is
+        <literal>ssh://git@git.privoxy.org:23/git/privoxy.git</literal>.
+      </para>
+      <para>
+       Contributors without push privileges can
+       <quote>git clone https://www.privoxy.org/git/privoxy.git</quote>.
+      </para>
+      <para>
+        The central repository is called <literal>privoxy</literal>, and the
         source branch is called <literal>master</literal>. Subfolders exist
         within the project for target-dependent build and  packaging tools, each
         including the name of the target operating system in their name (e.g.
@@ -259,7 +265,7 @@ Hal.
            <para>
             Note that near a major public release, we get more cautious.
             There is always the possibility to submit a patch to the <ulink
-            url="https://sourceforge.net/tracker/?atid=311118&amp;group_id=11118&amp;func=browse">patch
+            url="https://sourceforge.net/p/ijbswa/patches/">patch
             tracker</ulink> instead.
           </para>
          </listitem>
@@ -295,8 +301,8 @@ Hal.
           Alternately, proposed changes can be submitted as patches output by
           <literal>git format-patch</literal> to the privoxy-devel mailing list
           or alternatively to the patch tracker on Sourceforge:
-          <ulink url="https://sourceforge.net/tracker/?group_id=11118&#38;atid=311118">
-                      https://sourceforge.net/tracker/?group_id=11118&#38;atid=311118</ulink>.
+          <ulink url="https://sourceforge.net/p/ijbswa/patches/">
+                      https://sourceforge.net/p/ijbswa/patches/</ulink>.
           Then ask for peer review.
         </para>
        </listitem>
@@ -318,7 +324,7 @@ Hal.
   <para>
     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>, the Docbook
+    <ulink url="https://www.docbook.org/">Docbook</ulink>, the Docbook
     DTD's and the Docbook modular stylesheets (or comparable alternatives),
     and either <application>jade</application> or
     <application>openjade</application> (recommended) installed in order to
@@ -344,10 +350,6 @@ Hal.
      process requires going from SGML to HTML to text to special formatting
      required for the embedded comments. Some of this does not survive so
      well. Especially some of the examples that are longer than 80 characters.
-     The build process for this file outputs to <filename>config.new</filename>,
-     which should be reviewed for errors and mis-formatting. Once satisfied
-     that it is correct, then it should be hand copied to
-     <filename>config</filename>.
     </para>
     <para>
      Other, less formal documents (e.g. <filename>LICENSE</filename>) are
@@ -383,7 +385,7 @@ Hal.
       <listitem><para>
         Run <computeroutput>make webserver</computeroutput> which copies all
         files from <computeroutput>doc/webserver</computeroutput> to the
-        sourceforge webserver via scp.
+        sourceforge webserver via ssh.
       </para></listitem>
      </orderedlist>
 
@@ -2046,8 +2048,9 @@ $ afl-fuzz -i input/ -o output/ -f bla.filter -m none privoxy --fuzz filter bla.
 
     <para>
         The following programs are required to follow this process:
-        <filename>ncftpput</filename> (ncftp), <filename>scp, ssh</filename> (ssh),
-        <filename>gmake</filename> (GNU's version of make), autoconf, cvs.
+        <filename>ssh</filename>,
+        <filename>gmake</filename> (GNU's version of make), autoconf, git,
+        a web browser.
     </para>
 
     <sect2 id="versionnumbers">
@@ -2064,7 +2067,7 @@ $ afl-fuzz -i input/ -o output/ -f bla.filter -m none privoxy --fuzz filter bla.
               X, the version major, is rarely ever changed. It is increased by one if
               turning a development branch into stable substantially changes the functionality,
               user interface or configuration syntax. Majors 1 and 2 were
-              <application>Junkbuster</application>, and 3 will be the first stable
+              <application>Junkbuster</application>, and 3 is the first stable
               <application>Privoxy</application> release.
             </para>
           </listitem>
@@ -2139,7 +2142,7 @@ $ afl-fuzz -i input/ -o output/ -f bla.filter -m none privoxy --fuzz filter bla.
     </sect2>
 
     <sect2 id="beforerelease">
-    <title>Before the Release: Freeze</title>
+    <title>Before the Release</title>
      <para>
        The following <emphasis>must be done by one of the
        developers</emphasis> prior to each new release.
@@ -2233,9 +2236,10 @@ for-privoxy-version=3.0.11
        <para>
         All documentation should be rebuilt:
        <programlisting>
+  $ make man
   $ make dok
+  $ make dok-man
   $ make dok-tidy
-  $ make man
   $ make config-file
 </programlisting>
         Finished docs should be then be committed to Git (for those
@@ -2263,7 +2267,7 @@ for-privoxy-version=3.0.11
          (this is in addition to the main <citetitle>User Manual</citetitle>
          link from the main page since we need to keep manuals for various
          versions available). The CGI pages will link to something like
-         <literal>http://privoxy.org/$(VERSION)/user-manual/</literal>. This
+         <literal>https://www.privoxy.org/$(VERSION)/user-manual/</literal>. This
          will need to be updated for each new release. There is no Makefile
          target for this at this time!!! It needs to be done manually.
        </para>
@@ -2271,7 +2275,7 @@ for-privoxy-version=3.0.11
       <listitem>
        <para>
         Tag all files in Git with the version number with
-        <quote><command>cvs tag v_X_Y_Z</command></quote>.
+        <quote><command>git tag v_X_Y_Z</command></quote>.
         Don't use vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work) etc.
        </para>
       </listitem>
@@ -2305,8 +2309,9 @@ for-privoxy-version=3.0.11
       <programlisting>
   mkdir dist # delete or choose different name if it already exists
   cd dist
-  cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login
-  cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current
+  git clone https://www.privoxy.org/git/privoxy.git
+  cd privoxy
+  git checkout v_X_Y_Z
 </programlisting>
 
     <para>
@@ -2497,7 +2502,7 @@ for-privoxy-version=3.0.11
         be reset to one if this is the first RPM for
         <replaceable class="parameter">dist</replaceable> which is built from version
         X.Y.Z. Check the
-        <ulink url="https://sourceforge.net/project/showfiles.php?group_id=11118">file
+        <ulink url="https://sourceforge.net/projects/ijbswa/files/">file
         list</ulink> if unsure. Else, it must be set to the highest already available RPM
         release number for that version plus one.
       </para>
@@ -2528,55 +2533,6 @@ for-privoxy-version=3.0.11
       </para>
     </sect3>
 
-    <sect3 id="newrelease-os2"><title>OS/2</title>
-      <para>
-        First, <emphasis>make sure that you have freshly exported the right
-        version into an empty directory</emphasis>. (See "Building and releasing
-        packages" above). Then get the OS/2 Setup module:
-      </para>
-        <programlisting>
-  cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co os2setup
-</programlisting>
-      <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,
-      </para>
-        <programlisting>
-  installExeName='privoxyos2_setup_X.Y.Z.exe'
-</programlisting>
-      <para>
-        Next, edit the <filename>IJB.wis</filename> file so the release number matches
-        in the <filename>PACKAGEID</filename> section:
-      </para>
-        <programlisting>
-  PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z"
-</programlisting>
-      <para>
-        You're now ready to build.  Run:
-      </para>
-        <programlisting>
-  os2build
-</programlisting>
-      <para>
-         You will find the  WarpIN-installable executable in the
-        <filename>./files</filename> directory. Upload this anonymously to
-         <filename>uploads.sourceforge.net/incoming</filename>, create a release
-         for it, and you're done. Use the release notes and Change Log from the
-         source tarball package.
-      </para>
-    </sect3>
-
     <sect3 id="newrelease-solaris"><title>Solaris</title>
       <para>
         Login to Sourceforge's compilefarm via ssh:
@@ -2692,15 +2648,15 @@ for-privoxy-version=3.0.11
         packages" above).
       </para>
       <para>
-        There are three modules available in the Git repository for use on Mac
+        There are three modules available in the CVS repository backups for use on Mac
         OS X, though technically only two of them generate a release (the other
         can be used to install from source).
       </para>
       <sect4 id="OS-X-OSXPackageBuilder-module">
-      <title>OSXPackageBuilder module</title>
+      <title>OSXPackageBuilder module (Documentation out of date)</title>
         <para>
           The OSXPackageBuilder module generates OS X installer packages
-          supporting all Macs running OS X 10.4 and above. Obtain it from Git as
+          supporting all Macs running OS X 10.4 and above. Obtain it from CVS as
           follows into a folder parallel to the exported privoxy source:
         </para>
           <programlisting>
@@ -2720,14 +2676,14 @@ for-privoxy-version=3.0.11
         </para>
       </sect4>
       <sect4 id="OS-X-osxsetup-module">
-      <title>osxsetup module (DEPRECATED)</title>
+      <title>osxsetup module (DEPRECATED) (Documentation out of date)</title>
         <para>
           <emphasis>This module is deprecated since the installer it generates
           places all Privoxy files in one folder in a non-standard location, and
           supports only Intel Macs running OS X 10.6 or higher.</emphasis>
         </para>
         <para>
-          Check out the module from Git as follows into a folder parallel to the
+          Check out the module from CVS as follows into a folder parallel to the
           exported privoxy source:
         </para>
           <programlisting>
@@ -2765,13 +2721,13 @@ for-privoxy-version=3.0.11
         </para>
       </sect4>
       <sect4 id="OS-X-macsetup-module">
-      <title>macsetup module</title>
+      <title>macsetup module (Documentation out of date)</title>
         <para>
           The macsetup module is ideal if you wish to build and install Privoxy
           from source on a single machine.
         </para>
         <para>
-          Check out the module from Git as follows into a folder parallel to the
+          Check out the module from CVS as follows into a folder parallel to the
           exported privoxy source:
         </para>
           <programlisting>
@@ -2857,7 +2813,7 @@ for-privoxy-version=3.0.11
       <ulink url="mailto:privoxy-announce@lists.privoxy.org">announce mailing
       list</ulink>, Subject: "Version X.Y.Z available for download". Be sure to
       include the
-      <ulink url="https://sourceforge.net/project/showfiles.php?group_id=11118">
+      <ulink url="https://sourceforge.net/projects/ijbswa/files/">
       download location</ulink>, the release notes and the Changelog. Also, post an
       updated News item on the project page Sourceforge, and update the Home
       page and docs linked from the Home page (see below). Other news sites
@@ -2936,9 +2892,9 @@ for-privoxy-version=3.0.11
   make webserver
 </programlisting>
    <para>
-    This will do the upload to <ulink url="https://www.privoxy.org/">the
-    webserver</ulink> (www.privoxy.org) and ensure all files and directories
-    there are group writable.
+    This will do the upload to the SourceForge webserver (which is manually
+    syncronized with <ulink url="https://www.privoxy.org/">www.privoxy.org</ulink>)
+    and ensure all files and directories there are group writable.
    </para>
    <para>
     Please do <emphasis>NOT</emphasis> use any other means of transferring