+
+ <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_X.Y.Z.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\X\Y\Z"
+ </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 anonymously 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>
+ 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 osxsetup
+ </programlisting>
+ </para>
+ <para>
+ From the osxsetup directory, run:
+ <programlisting>
+ build
+ </programlisting>
+ </para>
+ <para>
+ This will run <filename>autoheader</filename>, <filename>autoconf</filename> and
+ <filename>configure</filename> as well as <filename>make</filename>.
+ Finally, it will copy over the necessary files to the ./osxsetup/files directory
+ for further processing by <filename>PackageMaker</filename>.
+ </para>
+ <para>
+ Bring up PackageMaker with the PrivoxyPackage.pmsp definition file, modify the package
+ name to match the release, and hit the "Create package" button.
+ If you specify ./Privoxy.pkg as the output package name, you can then create
+ the distributable zip file with the command:
+ <programlisting>
+zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg
+ </programlisting>
+ You can then upload <filename>privoxyosx_setup_x.y.z.zip</filename> anonymously to
+ <filename>uploads.sourceforge.net/incoming</filename>,
+ create a release for it, and you're done.
+ </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>Contacting the developers, Bug Reporting and Feature Requests</title>
+<!-- Include contacting.sgml -->
+ &contacting;
+<!-- end contacting -->