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}</PRE
173 Then change the version info in doc/webserver/actions/index.php,
174 line: '$required_actions_file_version = "A.B";'
179 > If the HTML documentation is not in sync with the SGML sources
180 you need to regenerate it. (If in doubt, just do it.) See the
181 Section "Updating the webserver" in this manual for details.
188 >Commit all files that were changed in the above steps!</I
194 > Tag all files in CVS with the version number with
202 Don't use vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work) etc.
215 >8.2. Building and Releasing the Packages</A
218 > Now the individual packages can be built and released. Note that for
219 GPL reasons the first package to be released is always the source tarball.
225 > types of packages, including the source tarball,
228 >you must make sure that you build from clean sources by exporting
229 the right version from CVS into an empty directory:</I
240 CLASS="PROGRAMLISTING"
241 > mkdir dist # delete or choose different name if it already exists
243 cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
244 cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current</PRE
254 > a single bit, including, but not limited to
255 version information after export from CVS. This is to make sure that
256 all release packages, and with them, all future bug reports, are based
257 on exactly the same code.
260 > Please find additional instructions for the source tarball and the
261 individual platform dependent binary packages below.
268 NAME="NEWRELEASE-TARBALL"
269 >8.2.1. Source Tarball</A
274 >make sure that you have freshly exported the right
275 version into an empty directory</I
276 >. (See "Building and releasing
277 packages" above). Then run:
287 CLASS="PROGRAMLISTING"
289 autoheader && autoconf && ./configure</PRE
306 CLASS="PROGRAMLISTING"
307 > make tarball-dist</PRE
314 > To upload the package to Sourceforge, simply issue
324 CLASS="PROGRAMLISTING"
325 > make tarball-upload</PRE
332 > Go to the displayed URL and release the file publicly on Sourceforge.
333 For the change log field, use the relevant section of the
345 NAME="NEWRELEASE-RPM"
346 >8.2.2. SuSE or Red Hat</A
351 >make sure that you have freshly exported the right
352 version into an empty directory</I
353 >. (See "Building and releasing
354 packages" above). Then run:
364 CLASS="PROGRAMLISTING"
366 autoheader && autoconf && ./configure</PRE
383 CLASS="PROGRAMLISTING"
384 > make suse-dist (or make redhat-dist)</PRE
391 > To upload the package to Sourceforge, simply issue
401 CLASS="PROGRAMLISTING"
402 > make suse-upload (or make redhat-upload)</PRE
409 > Go to the displayed URL and release the file publicly on Sourceforge.
410 Use the release notes and çhange log from the source tarball package.
418 NAME="NEWRELEASE-OS2"
424 >make sure that you have freshly exported the right
425 version into an empty directory</I
426 >. (See "Building and releasing
427 packages" above). Then get the OS/2 Setup module:
437 CLASS="PROGRAMLISTING"
438 > cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup</PRE
445 > You will need a mix of development tools.
446 The main compilation takes place with IBM Visual Age C++.
447 Some ancillary work takes place with GNU tools, available from
448 various sources like hobbes.nmsu.edu.
449 Specificially, you will need <TT
460 The packaging takes place with WarpIN, available from various sources, including
462 HREF="http://www.xworkplace.org/"
468 > Change directory to the <TT
472 Edit the os2build.cmd file to set the final executable filename.
483 CLASS="PROGRAMLISTING"
484 > installExeName='privoxyos2_setup_X.Y.Z.exe'</PRE
494 > file so the release number matches
508 CLASS="PROGRAMLISTING"
509 > PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z"</PRE
516 > You're now ready to build. Run:
526 CLASS="PROGRAMLISTING"
534 > You will find the WarpIN-installable executable in the
538 > directory. Upload this anonymously to
541 >uploads.sourceforge.net/incoming</TT
543 for it, and you're done. Use the release notes and Change Log from the
544 source tarball package.
552 NAME="NEWRELEASE-SOLARIS"
556 > Login to Sourceforge's compilefarm via ssh:
566 CLASS="PROGRAMLISTING"
567 > ssh cf.sourceforge.net</PRE
574 > Choose the right operating system (not the Debian one).
577 >make sure that you have freshly exported the right
578 version into an empty directory</I
579 >. (See "Building and releasing
580 packages" above). Then run:
590 CLASS="PROGRAMLISTING"
592 autoheader && autoconf && ./configure</PRE
609 CLASS="PROGRAMLISTING"
610 > gmake solaris-dist</PRE
617 > which creates a gzip'ed tar archive. Sadly, you cannot use <B
621 > on the Sourceforge machine (no ncftpput). You now have
622 to manually upload the archive to Sourceforge's ftp server and release
623 the file publicly. Use the release notes and Change Log from the
624 source tarball package.
632 NAME="NEWRELEASE-WINDOWS"
636 > You should ensure you have the latest version of Cygwin (from
638 HREF="http://www.cygwin.com/"
640 >http://www.cygwin.com/</A
642 Run the following commands from within a Cygwin bash shell.
647 >make sure that you have freshly exported the right
648 version into an empty directory</I
649 >. (See "Building and releasing
650 packages" above). Then get the Windows setup module:
660 CLASS="PROGRAMLISTING"
661 > cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co winsetup</PRE
668 > Then you can build the package. This is fully automated, and is
671 >winsetup/GNUmakefile</TT
673 All you need to do is:
683 CLASS="PROGRAMLISTING"
692 > Now you can manually rename <TT
694 >privoxy_setup.exe</TT
698 >privoxy_setup_X_Y_Z.exe</TT
700 SourceForge. When releasing the package on SourceForge, use the release notes
701 and Change Log from the source tarball package.
709 NAME="NEWRELEASE-DEBIAN"
715 >make sure that you have freshly exported the right
716 version into an empty directory</I
717 >. (See "Building and releasing
718 packages" above). Then, run:
728 CLASS="PROGRAMLISTING"
730 autoheader && autoconf && ./configure</PRE
745 NAME="NEWRELEASE-MACOSX"
751 >make sure that you have freshly exported the right
752 version into an empty directory</I
753 >. (See "Building and releasing
754 packages" above). Then get the Mac OSX setup module:
764 CLASS="PROGRAMLISTING"
765 > cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co osxsetup</PRE
782 CLASS="PROGRAMLISTING"
805 Finally, it will copy over the necessary files to the ./osxsetup/files directory
806 for further processing by <TT
812 > Bring up PackageMaker with the PrivoxyPackage.pmsp definition file, modify the package
813 name to match the release, and hit the "Create package" button.
814 If you specify ./Privoxy.pkg as the output package name, you can then create
815 the distributable zip file with the command:
825 CLASS="PROGRAMLISTING"
826 >zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg</PRE
833 > You can then upload <TT
835 >privoxyosx_setup_x.y.z.zip</TT
839 >uploads.sourceforge.net/incoming</TT
841 create a release for it, and you're done. Use the release notes
842 and Change Log from the source tarball package.
850 NAME="NEWRELEASE-FREEBSD"
854 > Login to Sourceforge's compilefarm via ssh:
864 CLASS="PROGRAMLISTING"
865 > ssh cf.sourceforge.net</PRE
872 > Choose the right operating system.
875 >make sure that you have freshly exported the right
876 version into an empty directory</I
877 >. (See "Building and releasing
878 packages" above). Then run:
888 CLASS="PROGRAMLISTING"
890 autoheader && autoconf && ./configure</PRE
907 CLASS="PROGRAMLISTING"
908 > gmake freebsd-dist</PRE
915 > which creates a gzip'ed tar archive. Sadly, you cannot use <B
919 > on the Sourceforge machine (no ncftpput). You now have
920 to manually upload the archive to Sourceforge's ftp server and release
921 the file publicly. Use the release notes and Change Log from the
922 source tarball package.
930 NAME="NEWRELEASE-HPUX"
936 >make sure that you have freshly exported the right
937 version into an empty directory</I
938 >. (See "Building and releasing
939 packages" above). Then run:
949 CLASS="PROGRAMLISTING"
951 autoheader && autoconf && ./configure</PRE
966 NAME="NEWRELEASE-AMIGA"
972 >make sure that you have freshly exported the right
973 version into an empty directory</I
974 >. (See "Building and releasing
975 packages" above). Then run:
985 CLASS="PROGRAMLISTING"
987 autoheader && autoconf && ./configure</PRE
1002 NAME="NEWRELEASE-AIX"
1006 > Login to Sourceforge's compilefarm via ssh:
1016 CLASS="PROGRAMLISTING"
1017 > ssh cf.sourceforge.net</PRE
1024 > Choose the right operating system.
1027 >make sure that you have freshly exported the right
1028 version into an empty directory</I
1029 >. (See "Building and releasing
1030 packages" above). Then run:
1040 CLASS="PROGRAMLISTING"
1042 autoheader && autoconf && ./configure</PRE
1059 CLASS="PROGRAMLISTING"
1060 > make aix-dist</PRE
1067 > which creates a gzip'ed tar archive. Sadly, you cannot use <B
1071 > on the Sourceforge machine (no ncftpput). You now have
1072 to manually upload the archive to Sourceforge's ftp server and release
1073 the file publicly. Use the release notes and Change Log from the
1074 source tarball package.
1084 >8.3. After the Release</A
1087 > When all (or: most of the) packages have been uploaded and made available,
1088 send an email to the <A
1089 HREF="mailto:ijbswa-announce@lists.sourceforge.net"
1093 >, Subject: "Version X.Y.Z available for download". Be sure to
1096 HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
1100 >, the release notes and the change log.
1135 HREF="webserver-update.html"
1144 >Testing Guidelines</TD
1154 >Update the Webserver</TD