8. Releasing a new version

To minimize trouble with distribution contents, web-page 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.

The following programs are required to follow this process: ncftpput (ncftp), scp (ssh), gmake (GNU's version of make), autoconf, cvs, ???.

Replace X, Y and Z with the actual version number (X = major, Y = minor, Z = point):

8.1. Before the Release

The following must be done by one of the developers prior to each new release.

8.2. Update the webserver

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 doc/webserver/* directory (or create new directories under doc/webserver), then do

  make webserver
	

This will do the upload to the webserver (www.privoxy.org).

Note that "make dok" (or "make redhat-dok") creates doc/webserver/user-manual, doc/webserver/developer-manual, doc/webserver/faq and doc/webserver/index.html automatically. (doc/webserver/man-page/privoxy-man-page.html is created by a separate Makefile target, "make man", due to dependencies on some obscure perl scripts. See comments in GNUmakefile.)

Someone should also commit these to CVS so that packagers without the ability to build docs locally, have access to them. This is a separate step, and should also be done before each official release.

Please do NOT use any other means of transferring files to the webserver. "make webserver" not only uploads, but will make sure that the appropriate permissions are preserved for shared group access.

8.3. SuSE or Red Hat

Ensure that you have the latest code version. Hence run:

  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 current
	

first.

  autoheader && autoconf && ./configure
	

Then do

  make suse-dist or make redhat-dist
	

To upload the package to Sourceforge, simply issue

  make suse-upload (or make redhat-upload)
	

Go to the displayed URL and release the file publicly on Sourceforge.

8.4. OS/2

Ensure that you have the latest code version. Hence run:

  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
	

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 autoheader, autoconf and sh tools. The packaging takes place with WarpIN, available from various sources, including its home page: xworkplace.

Change directory to the os2setup directory. Edit the os2build.cmd file to set the final executable filename. For example,
  installExeName='privoxyos2_setup_X.Y.Z.exe'
	
Next, edit the IJB.wis file so the release number matches in the PACKAGEID section:
  PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z"
	
You're now ready to build. Run:
  os2build
	
And in the ./files directory you will have the WarpIN-installable executable. Upload this anonymously to uploads.sourceforge.net/incoming, create a release for it, and you're done.

8.5. Solaris

Login to Sourceforge's compilefarm via ssh

  ssh cf.sourceforge.net
	

Choose the right operating system (not the Debian one). If you have downloaded Privoxy before,

  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 current
	

If not, please checkout Privoxy via CVS first. Run:

  autoheader && autoconf && ./configure
	

Then run

  gmake solaris-dist
	

which creates a gzip'ed tar archive. Sadly, you cannot use make solaris-upload on the Sourceforge machine (no ncftpput). You now have to manually upload the archive to Sourceforge's ftp server and release the file publicly.

8.6. Windows

You should ensure you have the latest version of Cygwin (from http://www.cygwin.com/). Run the following commands from within a Cygwin bash shell.

First check out a clean copy of the correct code version, by running:

        mkdir dist
        cd dist
        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 .
      

(Note: It is important that this is a clean copy of the code, do not re-use a working directory after you have manually compiled there).

Then you can build the package. This is fully automated, and is controlled by winsetup/GNUmakefile. All you need to do is:

        cd winsetup
        make
      

Now you can manually rename privoxy_setup.exe to privoxy_setup_X_Y_Z.exe, and upload it to SourceForge.

8.7. Debian

Ensure that you have the latest code version. Hence run:

  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 current
	

first. Run:

  autoheader && autoconf && ./configure
	

Then do FIXME.

8.8. Mac OSX

Ensure that you have the latest code version. Hence run:

  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
	

From the osxsetup directory, run:
  build
	

This will run autoheader, autoconf and configure as well as make. Finally, it will copy over the necessary files to the ./osxsetup/files directory for further processing by PackageMaker.

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:
zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg
	
You can then upload privoxyosx_setup_x.y.z.zip anonymously to uploads.sourceforge.net/incoming, create a release for it, and you're done.

8.9. FreeBSD

Change the version number of Privoxy in the configure.in file. Run:
  autoheader && autoconf && ./configure
	
Then ...

Login to Sourceforge's compilefarm via ssh:

  ssh cf.sourceforge.net
	

Choose the right operating system.

  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 current
	

Run:

  autoheader && autoconf && ./configure
	

Then run:

  gmake freebsd-dist
	

which creates a gzip'ed tar archive. Sadly, you cannot use make freebsd-upload on the Sourceforge machine (no ncftpput). You now have to manually upload the archive to Sourceforge's ftp server and release the file publicly.

8.10. Tarball

Ensure that you have the right code version. Hence run:

  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 current
	

first. Run:

  autoheader && autoconf && ./configure
	

Then do:

  make tarball-dist
	

To upload the package to Sourceforge, simply issue

  make tarball-upload
	

Goto the displayed URL and release the file publicly on Sourceforge.

8.11. HP-UX 11

Ensure that you have the latest code version. Hence run:

  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 current
	

first. Run:

  autoheader && autoconf && ./configure
	

Then do FIXME.

8.12. Amiga OS

Ensure that you have the latest code version. Hence run:

  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 current
	

first. Run:

  autoheader && autoconf && ./configure
	

Then do FIXME.

8.13. AIX

Login to Sourceforge's compilefarm via ssh:

  ssh cf.sourceforge.net
	

Choose the right operating system. If you have downloaded Privoxy before:

  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 current
	

If not, please checkout Privoxy via CVS first. Run:

  autoheader && autoconf && ./configure
	

Then run:

  make aix-dist
	

which creates a gzip'ed tar archive. Sadly, you cannot use make aix-upload on the Sourceforge machine (no ncftpput). You now have to manually upload the archive to Sourceforge's ftp server and release the file publicly.