4 >Releasing a New Version</TITLE
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.64
10 TITLE="Privoxy Developer Manual"
11 HREF="index.html"><LINK
13 TITLE="Testing Guidelines"
14 HREF="testing.html"><LINK
16 TITLE="Update the Webserver"
17 HREF="webserver-update.html"><LINK
20 HREF="../p_doc.css"></HEAD
39 >Privoxy Developer Manual</TH
60 HREF="webserver-update.html"
74 >8. Releasing a New Version</A
77 > When we release versions of <SPAN
81 our work leaves our cozy secret lab and has to work in the cold
82 RealWorld[tm]. Once it is released, there is no way to call it
83 back, so it is very important that great care is taken to ensure
84 that everything runs fine, and not to introduce problems in the
88 > So when releasing a new version, please adhere exactly to the
89 procedure outlined in this chapter.
92 > The following programs are required to follow this process:
103 > (GNU's version of make), autoconf, cvs.
106 > In the following text, replace X, Y and Z with the actual version number
107 (X = major, Y = minor, Z = point):
115 >8.1. Before the Release</A
120 >must be done by one of the
122 > prior to each new release.
130 > Make sure that everybody who has worked on the code in the last
131 couple of days has had a chance to yell <SPAN
135 they have pending changes/fixes in their pipelines.
140 > Increment the version number and increase or reset the RPM release number
152 > has changed since last
153 release, bump up its version info in this line:
164 CLASS="PROGRAMLISTING"
165 > {+add-header{X-Actions-File-Version: A.B} -filter -no-popups}
174 Then change the version info in doc/webserver/actions/index.php,
175 line: '$required_actions_file_version = "A.B";'
180 > If the HTML documentation is not in sync with the SGML sources
181 you need to regenerate it. (If in doubt, just do it.) See the
182 Section "Updating the webserver" in this manual for details.
189 >Commit all files that were changed in the above steps!</I
195 > Tag all files in CVS with the version number with
203 Don't use vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work) etc.
216 >8.2. Building and Releasing the Packages</A
219 > Now the individual packages can be built and released. Note that for
220 GPL reasons the first package to be released is always the source tarball.
226 > types of packages, including the source tarball,
229 >you must make sure that you build from clean sources by exporting
230 the right version from CVS into an empty directory:</I
241 CLASS="PROGRAMLISTING"
242 > mkdir dist # delete or choose different name if it already exists
244 cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
245 cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current
256 > a single bit, including, but not limited to
257 version information after export from CVS. This is to make sure that
258 all release packages, and with them, all future bug reports, are based
259 on exactly the same code.
262 > Please find additional instructions for the source tarball and the
263 individual platform dependent binary packages below.
270 NAME="NEWRELEASE-TARBALL"
271 >8.2.1. Source Tarball</A
276 >make sure that you have freshly exported the right
277 version into an empty directory</I
278 >. (See "Building and releasing
279 packages" above). Then run:
289 CLASS="PROGRAMLISTING"
291 autoheader && autoconf && ./configure
309 CLASS="PROGRAMLISTING"
318 > To upload the package to Sourceforge, simply issue
328 CLASS="PROGRAMLISTING"
329 > make tarball-upload
337 > Go to the displayed URL and release the file publicly on Sourceforge.
338 For the change log field, use the relevant section of the
350 NAME="NEWRELEASE-RPM"
351 >8.2.2. SuSE or Red Hat</A
356 >make sure that you have freshly exported the right
357 version into an empty directory</I
358 >. (See "Building and releasing
359 packages" above). Then run:
369 CLASS="PROGRAMLISTING"
371 autoheader && autoconf && ./configure
389 CLASS="PROGRAMLISTING"
390 > make suse-dist (or make redhat-dist)
398 > To upload the package to Sourceforge, simply issue
408 CLASS="PROGRAMLISTING"
409 > make suse-upload (or make redhat-upload)
417 > Go to the displayed URL and release the file publicly on Sourceforge.
418 Use the release notes and çhange log from the source tarball package.
426 NAME="NEWRELEASE-OS2"
432 >make sure that you have freshly exported the right
433 version into an empty directory</I
434 >. (See "Building and releasing
435 packages" above). Then get the OS/2 Setup module:
445 CLASS="PROGRAMLISTING"
446 > cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup
454 > You will need a mix of development tools.
455 The main compilation takes place with IBM Visual Age C++.
456 Some ancillary work takes place with GNU tools, available from
457 various sources like hobbes.nmsu.edu.
458 Specificially, you will need <TT
469 The packaging takes place with WarpIN, available from various sources, including
471 HREF="http://www.xworkplace.org/"
477 > Change directory to the <TT
481 Edit the os2build.cmd file to set the final executable filename.
492 CLASS="PROGRAMLISTING"
493 > installExeName='privoxyos2_setup_X.Y.Z.exe'
504 > file so the release number matches
518 CLASS="PROGRAMLISTING"
519 > PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z"
527 > You're now ready to build. Run:
537 CLASS="PROGRAMLISTING"
546 > You will find the WarpIN-installable executable in the
550 > directory. Upload this anonymously to
553 >uploads.sourceforge.net/incoming</TT
555 for it, and you're done. Use the release notes and Change Log from the
556 source tarball package.
564 NAME="NEWRELEASE-SOLARIS"
568 > Login to Sourceforge's compilefarm via ssh:
578 CLASS="PROGRAMLISTING"
579 > ssh cf.sourceforge.net
587 > Choose the right operating system (not the Debian one).
590 >make sure that you have freshly exported the right
591 version into an empty directory</I
592 >. (See "Building and releasing
593 packages" above). Then run:
603 CLASS="PROGRAMLISTING"
605 autoheader && autoconf && ./configure
623 CLASS="PROGRAMLISTING"
632 > which creates a gzip'ed tar archive. Sadly, you cannot use <B
636 > on the Sourceforge machine (no ncftpput). You now have
637 to manually upload the archive to Sourceforge's ftp server and release
638 the file publicly. Use the release notes and Change Log from the
639 source tarball package.
647 NAME="NEWRELEASE-WINDOWS"
651 > You should ensure you have the latest version of Cygwin (from
653 HREF="http://www.cygwin.com/"
655 >http://www.cygwin.com/</A
657 Run the following commands from within a Cygwin bash shell.
662 >make sure that you have freshly exported the right
663 version into an empty directory</I
664 >. (See "Building and releasing
665 packages" above). Then get the Windows setup module:
675 CLASS="PROGRAMLISTING"
676 > cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co winsetup
684 > Then you can build the package. This is fully automated, and is
687 >winsetup/GNUmakefile</TT
689 All you need to do is:
699 CLASS="PROGRAMLISTING"
709 > Now you can manually rename <TT
711 >privoxy_setup.exe</TT
715 >privoxy_setup_X_Y_Z.exe</TT
717 SourceForge. When releasing the package on SourceForge, use the release notes
718 and Change Log from the source tarball package.
726 NAME="NEWRELEASE-DEBIAN"
732 >make sure that you have freshly exported the right
733 version into an empty directory</I
734 >. (See "Building and releasing
735 packages" above). Then, run:
745 CLASS="PROGRAMLISTING"
747 autoheader && autoconf && ./configure
763 NAME="NEWRELEASE-MACOSX"
769 >make sure that you have freshly exported the right
770 version into an empty directory</I
771 >. (See "Building and releasing
772 packages" above). Then get the Mac OSX setup module:
782 CLASS="PROGRAMLISTING"
783 > cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co osxsetup
801 CLASS="PROGRAMLISTING"
825 Finally, it will copy over the necessary files to the ./osxsetup/files directory
826 for further processing by <TT
832 > Bring up PackageMaker with the PrivoxyPackage.pmsp definition file, modify the package
833 name to match the release, and hit the "Create package" button.
834 If you specify ./Privoxy.pkg as the output package name, you can then create
835 the distributable zip file with the command:
845 CLASS="PROGRAMLISTING"
846 >zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg
854 > You can then upload <TT
856 >privoxyosx_setup_x.y.z.zip</TT
860 >uploads.sourceforge.net/incoming</TT
862 create a release for it, and you're done. Use the release notes
863 and Change Log from the source tarball package.
871 NAME="NEWRELEASE-FREEBSD"
875 > Login to Sourceforge's compilefarm via ssh:
885 CLASS="PROGRAMLISTING"
886 > ssh cf.sourceforge.net
894 > Choose the right operating system.
897 >make sure that you have freshly exported the right
898 version into an empty directory</I
899 >. (See "Building and releasing
900 packages" above). Then run:
910 CLASS="PROGRAMLISTING"
912 autoheader && autoconf && ./configure
930 CLASS="PROGRAMLISTING"
939 > which creates a gzip'ed tar archive. Sadly, you cannot use <B
943 > on the Sourceforge machine (no ncftpput). You now have
944 to manually upload the archive to Sourceforge's ftp server and release
945 the file publicly. Use the release notes and Change Log from the
946 source tarball package.
954 NAME="NEWRELEASE-HPUX"
960 >make sure that you have freshly exported the right
961 version into an empty directory</I
962 >. (See "Building and releasing
963 packages" above). Then run:
973 CLASS="PROGRAMLISTING"
975 autoheader && autoconf && ./configure
991 NAME="NEWRELEASE-AMIGA"
997 >make sure that you have freshly exported the right
998 version into an empty directory</I
999 >. (See "Building and releasing
1000 packages" above). Then run:
1010 CLASS="PROGRAMLISTING"
1012 autoheader && autoconf && ./configure
1028 NAME="NEWRELEASE-AIX"
1032 > Login to Sourceforge's compilefarm via ssh:
1042 CLASS="PROGRAMLISTING"
1043 > ssh cf.sourceforge.net
1051 > Choose the right operating system.
1054 >make sure that you have freshly exported the right
1055 version into an empty directory</I
1056 >. (See "Building and releasing
1057 packages" above). Then run:
1067 CLASS="PROGRAMLISTING"
1069 autoheader && autoconf && ./configure
1087 CLASS="PROGRAMLISTING"
1096 > which creates a gzip'ed tar archive. Sadly, you cannot use <B
1100 > on the Sourceforge machine (no ncftpput). You now have
1101 to manually upload the archive to Sourceforge's ftp server and release
1102 the file publicly. Use the release notes and Change Log from the
1103 source tarball package.
1113 >8.3. After the Release</A
1116 > When all (or: most of the) packages have been uploaded and made available,
1117 send an email to the <A
1118 HREF="mailto:ijbswa-announce@lists.sourceforge.net"
1122 >, Subject: "Version X.Y.Z available for download". Be sure to
1125 HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
1129 >, the release notes and the change log.
1164 HREF="webserver-update.html"
1173 >Testing Guidelines</TD
1183 >Update the Webserver</TD