+
+ <!-- ~~~~~ 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>