- cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login
- cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Do NOT change</I
-></SPAN
-> a single bit, including, but not limited to
- version information after export from CVS. This is to make sure that
- all release packages, and with them, all future bug reports, are based
- on exactly the same code.
- </P
-><DIV
-CLASS="WARNING"
-><P
-></P
-><TABLE
-CLASS="WARNING"
-BORDER="1"
-WIDTH="100%"
-><TR
-><TD
-ALIGN="CENTER"
-><B
->Warning</B
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-><P
-> Every significant release of Privoxy has included at least one
- package that either had incorrect versions of files, missing files,
- or incidental leftovers from a previous build process that gave
- unknown numbers of users headaches to try to figure out what was
- wrong. PLEASE, make sure you are using pristene sources, and are
- following the prescribed process!
- </P
-></TD
-></TR
-></TABLE
-></DIV
-><P
-> Please find additional instructions for the source tarball and the
- individual platform dependent binary packages below. And details
- on the Sourceforge release process below that.
- </P
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="PACK-GUIDELINES"
->6.3.1. Note on Privoxy Packaging</A
-></H3
-><P
-> Please keep these general guidelines in mind when putting together
- your package. These apply to <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->all</I
-></SPAN
-> platforms!
- </P
-><P
-> <P
-></P
-><UL
-><LI
-><P
-> <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->requires</I
-></SPAN
->
- write access to: all <TT
-CLASS="FILENAME"
->*.action</TT
-> files, all
- logfiles, and the <TT
-CLASS="FILENAME"
->trust</TT
-> file. You will
- need to determine the best way to do this for your platform.
- </P
-></LI
-><LI
-><P
-> Please include up to date documentation. At a bare minimum:
- </P
-><P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
-> <TT
-CLASS="FILENAME"
->LICENSE</TT
-> (top-level directory)
- </TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
-><P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
-> <TT
-CLASS="FILENAME"
->README</TT
-> (top-level directory)
- </TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
-><P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
-> <TT
-CLASS="FILENAME"
->AUTHORS</TT
-> (top-level directory)
- </TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
-><P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
-> <TT
-CLASS="FILENAME"
->man page</TT
-> (top-level directory, Unix-like
- platforms only)
- </TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
-><P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
-> <TT
-CLASS="FILENAME"
->The User Manual</TT
-> (doc/webserver/user-manual/)
- </TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
-><P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
-> <TT
-CLASS="FILENAME"
->FAQ</TT
-> (doc/webserver/faq/)
- </TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
-><P
-> Also suggested: <TT
-CLASS="FILENAME"
->Developer Manual</TT
->
- (doc/webserver/developer-manual) and <TT
-CLASS="FILENAME"
->ChangeLog</TT
->
- (top-level directory). <TT
-CLASS="FILENAME"
->FAQ</TT
-> and the manuals are
- HTML docs. There are also text versions in
- <TT
-CLASS="FILENAME"
->doc/text/</TT
-> which could conceivably also be
- included.
- </P
-><P
-> The documentation has been designed such that the manuals are linked
- to each other from parallel directories, and should be packaged
- that way. <TT
-CLASS="FILENAME"
->privoxy-index.html</TT
-> can also be
- included and can serve as a focal point for docs and other links of
- interest (and possibly renamed to <TT
-CLASS="FILENAME"
->index.html</TT
->).
- This should be one level up from the manuals. There is a link also
- on this page to an HTMLized version of the man page. To avoid 404 for
- this, it is in CVS as
- <TT
-CLASS="FILENAME"
->doc/webserver/man-page/privoxy-man-page.html</TT
->,
- and should be included along with the manuals. There is also a
- css stylesheets that can be included for better presentation:
- <TT
-CLASS="FILENAME"
->p_doc.css</TT
->. This should be in the same directory
- with <TT
-CLASS="FILENAME"
->privoxy-index.html</TT
->, (i.e. one level up from
- the manual directories).
- </P
-></LI
-><LI
-><P
-> <TT
-CLASS="FILENAME"
->user.action</TT
-> and <TT
-CLASS="FILENAME"
->user.filter</TT
->
- are designed for local preferences. Make sure these do not get overwritten!
- <TT
-CLASS="FILENAME"
->config</TT
-> should not be overwritten either. This
- has especially important configuration data in it.
- <TT
-CLASS="FILENAME"
->trust</TT
-> should be left in tact as well.
- </P
-></LI
-><LI
-><P
-> Other configuration files (<TT
-CLASS="FILENAME"
->default.action</TT
-> and
- <TT
-CLASS="FILENAME"
->default.filter</TT
->) should be installed as the new
- defaults, but all previously installed configuration files should be
- preserved as backups. This is just good manners :-) These files are
- likely to change between releases and contain important new features
- and bug fixes.
- </P
-></LI
-><LI
-><P
-> Please check platform specific notes in this doc, if you haven't
- done <SPAN
-CLASS="QUOTE"
->"Privoxy"</SPAN
-> packaging before for other platform
- specific issues. Conversely, please add any notes that you know
- are important for your platform (or contact one of the doc
- maintainers to do this if you can't).
- </P
-></LI
-><LI
-><P
-> Packagers should do a <SPAN
-CLASS="QUOTE"
->"clean"</SPAN
-> install of their
- package after building it. So any previous installs should be
- removed first to ensure the integrity of the newly built package.
- Then run the package for a while to make sure there are no
- obvious problems, before uploading.
- </P
-></LI
-></UL
->
- </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="NEWRELEASE-TARBALL"
->6.3.2. Source Tarball</A
-></H3
-><P
-> First, <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
-></SPAN
->. (See "Building and releasing
- packages" above). Then run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cd current
- autoheader && autoconf && ./configure</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Then do:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> make tarball-dist</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> To upload the package to Sourceforge, simply issue
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> make tarball-upload</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Go to the displayed URL and release the file publicly on Sourceforge.
- For the change log field, use the relevant section of the
- <TT
-CLASS="FILENAME"
->ChangeLog</TT
-> file.
- </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="NEWRELEASE-RPM"
->6.3.3. SuSE, Conectiva or Red Hat RPM</A
-></H3
-><P
-> In following text, replace <TT
-CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
->
- with either <SPAN
-CLASS="QUOTE"
->"rh"</SPAN
-> for Red Hat or <SPAN
-CLASS="QUOTE"
->"suse"</SPAN
-> for SuSE.
- </P
-><P
-> First, <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
-></SPAN
->. (See "Building and releasing
- packages" above).
- </P
-><P
-> As the only exception to not changing anything after export from CVS,
- now examine the file <TT
-CLASS="FILENAME"
->privoxy-</TT
-><TT
-CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
-><TT
-CLASS="FILENAME"
->.spec</TT
->
- and make sure that the version information and the RPM release number are
- correct. The RPM release numbers for each version start at one. Hence it must
- be reset to one if this is the first RPM for
- <TT
-CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
-> which is built from version
- X.Y.Z. Check the
- <A
-HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
-TARGET="_top"
->file
- list</A
-> if unsure. Else, it must be set to the highest already available RPM
- release number for that version plus one.
- </P
-><P
-> Then run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cd current
- autoheader && autoconf && ./configure</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Then do
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> make <TT
-CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
->-dist</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> To upload the package to Sourceforge, simply issue
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> make <TT
-CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
->-upload <TT
-CLASS="REPLACEABLE"
-><I
->rpm_packagerev</I
-></TT
-></PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> where <TT
-CLASS="REPLACEABLE"
-><I
->rpm_packagerev</I
-></TT
-> is the
- RPM release number as determined above.
- Go to the displayed URL and release the file publicly on Sourceforge.
- Use the release notes and change log from the source tarball package.
- </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="NEWRELEASE-OS2"
->6.3.4. OS/2</A
-></H3
-><P
-> First, <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
-></SPAN
->. (See "Building and releasing
- packages" above). Then get the OS/2 Setup module:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co os2setup</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> 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 <TT
-CLASS="FILENAME"
->autoheader</TT
->,
- <TT
-CLASS="FILENAME"
->autoconf</TT
-> and <TT
-CLASS="FILENAME"
->sh</TT
-> tools.
- The packaging takes place with WarpIN, available from various sources, including
- its home page: <A
-HREF="http://www.xworkplace.org/"
-TARGET="_top"
->xworkplace</A
->.
- </P
-><P
-> Change directory to the <TT
-CLASS="FILENAME"
->os2setup</TT
-> directory.
- Edit the os2build.cmd file to set the final executable filename.
- For example,
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> installExeName='privoxyos2_setup_X.Y.Z.exe'</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Next, edit the <TT
-CLASS="FILENAME"
->IJB.wis</TT
-> file so the release number matches
- in the <TT
-CLASS="FILENAME"
->PACKAGEID</TT
-> section:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z"</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> You're now ready to build. Run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> os2build</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> You will find the WarpIN-installable executable in the
- <TT
-CLASS="FILENAME"
->./files</TT
-> directory. Upload this anonymously to
- <TT
-CLASS="FILENAME"
->uploads.sourceforge.net/incoming</TT
->, create a release
- for it, and you're done. Use the release notes and Change Log from the
- source tarball package.
- </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="NEWRELEASE-SOLARIS"
->6.3.5. Solaris</A
-></H3
-><P
-> Login to Sourceforge's compilefarm via ssh:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> ssh cf.sourceforge.net</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Choose the right operating system (not the Debian one).
- When logged in, <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
-></SPAN
->. (See "Building and releasing
- packages" above). Then run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cd current
- autoheader && autoconf && ./configure</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Then run
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> gmake solaris-dist</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> which creates a gzip'ed tar archive. Sadly, you cannot use <B
-CLASS="COMMAND"
->make
- solaris-upload</B
-> on the Sourceforge machine (no ncftpput). You now have
- to manually upload the archive to Sourceforge's ftp server and release
- the file publicly. Use the release notes and Change Log from the
- source tarball package.
- </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="NEWRELEASE-WINDOWS"
->6.3.6. Windows</A
-></H3
-><P
-> You should ensure you have the latest version of Cygwin (from
- <A
-HREF="http://www.cygwin.com/"
-TARGET="_top"
->http://www.cygwin.com/</A
->).
- Run the following commands from within a Cygwin bash shell.
- </P
-><P
-> First, <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
-></SPAN
->. (See "Building and releasing
- packages" above). Then get the Windows setup module:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co winsetup</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Then you can build the package. This is fully automated, and is
- controlled by <TT
-CLASS="FILENAME"
->winsetup/GNUmakefile</TT
->.
- All you need to do is:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cd winsetup
- make</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Now you can manually rename <TT
-CLASS="FILENAME"
->privoxy_setup.exe</TT
-> to
- <TT
-CLASS="FILENAME"
->privoxy_setup_X_Y_Z.exe</TT
->, and upload it to
- SourceForge. When releasing the package on SourceForge, use the release notes
- and Change Log from the source tarball package.
- </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="NEWRELEASE-DEBIAN"
->6.3.7. Debian</A
-></H3
-><P
-> First, <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->make sure that you have freshly exported the
- right version into an empty directory</I
-></SPAN
->. (See
- "Building and releasing packages" above). Then add a log
- entry to <TT
-CLASS="FILENAME"
->debian/changelog</TT
->, if it is not
- already there, for example by running:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> debchange -v 3.0.16-stable-1 "New upstream version"</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Then, run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> dpkg-buildpackage -rfakeroot -us -uc -b</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> This will create
- <TT
-CLASS="FILENAME"
->../privoxy_3.0.16-stable-1_i386.deb</TT
->
- which can be uploaded. To upload the package to Sourceforge, simply
- issue
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> make debian-upload</PRE
-></TD
-></TR
-></TABLE
->
- </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="NEWRELEASE-MACOSX"
->6.3.8. Mac OS X</A
-></H3
-><P
-> First, <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
-></SPAN
->. (See "Building and releasing
- packages" above). Then get the Mac OS X setup module:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co osxsetup</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Then run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cd osxsetup
- build</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> This will run <TT
-CLASS="FILENAME"
->autoheader</TT
->, <TT
-CLASS="FILENAME"
->autoconf</TT
-> and
- <TT
-CLASS="FILENAME"
->configure</TT
-> as well as <TT
-CLASS="FILENAME"
->make</TT
->.
- Finally, it will copy over the necessary files to the ./osxsetup/files directory
- for further processing by <TT
-CLASS="FILENAME"
->PackageMaker</TT
->.
- </P
-><P
-> 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:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> You can then upload <TT
-CLASS="FILENAME"
->privoxyosx_setup_x.y.z.zip</TT
-> anonymously to
- <TT
-CLASS="FILENAME"
->uploads.sourceforge.net/incoming</TT
->,
- create a release for it, and you're done. Use the release notes
- and Change Log from the source tarball package.
- </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="NEWRELEASE-FREEBSD"
->6.3.9. FreeBSD</A
-></H3
-><P
-> Login to Sourceforge's compile-farm via ssh:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> ssh cf.sourceforge.net</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Choose the right operating system.
- When logged in, <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
-></SPAN
->. (See "Building and releasing
- packages" above). Then run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cd current
- autoheader && autoconf && ./configure</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Then run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> gmake freebsd-dist</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> which creates a gzip'ed tar archive. Sadly, you cannot use <B
-CLASS="COMMAND"
->make
- freebsd-upload</B
-> on the Sourceforge machine (no ncftpput). You now have
- to manually upload the archive to Sourceforge's ftp server and release
- the file publicly. Use the release notes and Change Log from the
- source tarball package.
- </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="NEWRELEASE-HPUX"
->6.3.10. HP-UX 11</A
-></H3
-><P
-> First, <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
-></SPAN
->. (See "Building and releasing
- packages" above). Then run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cd current
- autoheader && autoconf && ./configure</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Then do FIXME.
- </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="NEWRELEASE-AMIGA"
->6.3.11. Amiga OS</A
-></H3
-><P
-> First, <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
-></SPAN
->. (See "Building and releasing
- packages" above). Then run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cd current
- autoheader && autoconf && ./configure</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Then do FIXME.
- </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="NEWRELEASE-AIX"
->6.3.12. AIX</A
-></H3
-><P
-> Login to Sourceforge's compilefarm via ssh:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> ssh cf.sourceforge.net</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Choose the right operating system.
- When logged in, <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
-></SPAN
->. (See "Building and releasing
- packages" above). Then run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> cd current
- autoheader && autoconf && ./configure</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> Then run:
- </P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-> make aix-dist</PRE
-></TD
-></TR
-></TABLE
->
- </P
-><P
-> which creates a gzip'ed tar archive. Sadly, you cannot use <B
-CLASS="COMMAND"
->make
- aix-upload</B
-> on the Sourceforge machine (no ncftpput). You now have
- to manually upload the archive to Sourceforge's ftp server and release
- the file publicly. Use the release notes and Change Log from the
- source tarball package.
- </P
-></DIV
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="RELEASING"
->6.4. Uploading and Releasing Your Package</A
-></H2
-><P
-> After the package is ready, it is time to upload it
- to SourceForge, and go through the release steps. The upload
- is done via FTP:
- </P
-><P
-> <P
-></P
-><UL
-><LI
-><P
-> Upload to: <A
-HREF="ftp://upload.sourceforge.net/incoming"
-TARGET="_top"
->ftp://upload.sourceforge.net/incoming</A
->
- </P
-></LI
-><LI
-><P
-> user: <TT
-CLASS="LITERAL"
->anonymous</TT
->
- </P
-></LI
-><LI
-><P
-> password: <TT
-CLASS="LITERAL"
->ijbswa-developers@lists.sourceforge.net</TT
->
- </P
-></LI
-></UL
->
- </P
-><P
-> Or use the <B
-CLASS="COMMAND"
->make</B
-> targets as described above.
- </P
-><P
-> Once this done go to <A
-HREF="https://sourceforge.net/project/admin/editpackages.php?group_id=11118"
-TARGET="_top"
->https://sourceforge.net/project/admin/editpackages.php?group_id=11118</A
->,
- making sure you are logged in. Find your target platform in the
- second column, and click <TT
-CLASS="LITERAL"
->Add Release</TT
->. You will
- then need to create a new release for your package, using the format
- of <TT
-CLASS="LITERAL"
->$VERSION ($CODE_STATUS)</TT
->, e.g. <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->3.0.16
- (beta)</I
-></SPAN
->.
- </P
-><P
-> Now just follow the prompts. Be sure to add any appropriate Release
- notes. You should see your freshly uploaded packages in
- <SPAN
-CLASS="QUOTE"
->"Step 2. Add Files To This Release"</SPAN
->. Check the
- appropriate box(es). Remember at each step to hit the
- <SPAN
-CLASS="QUOTE"
->"Refresh/Submit"</SPAN
-> buttons! You should now see your
- file(s) listed in Step 3. Fill out the forms with the appropriate
- information for your platform, being sure to hit <SPAN
-CLASS="QUOTE"
->"Update"</SPAN
->
- for each file. If anyone is monitoring your platform, check the
- <SPAN
-CLASS="QUOTE"
->"email"</SPAN
-> box at the very bottom to notify them of
- the new package. This should do it!
- </P
-><P
-> If you have made errors, or need to make changes, you can go through
- essentially the same steps, but select <TT
-CLASS="LITERAL"
->Edit Release</TT
->,
- instead of <TT
-CLASS="LITERAL"
->Add Release</TT
->.
- </P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AFTERRELEASE"
->6.5. After the Release</A
-></H2
-><P
-> When all (or: most of the) packages have been uploaded and made available,
- send an email to the <A
-HREF="mailto:ijbswa-announce@lists.sourceforge.net"
-TARGET="_top"
->announce
- mailing list</A
->, Subject: "Version X.Y.Z available for download". Be sure to
- include the
- <A
-HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
-TARGET="_top"
->download
- location</A
->, the release notes and the Changelog. Also, post an
- updated News item on the project page Sourceforge, and update the Home
- page and docs linked from the Home page (see below). Other news sites
- and release oriented sites, such as Freshmeat, should also be notified.
- </P
-></DIV
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-SUMMARY="Footer navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><A
-HREF="testing.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="index.html"
-ACCESSKEY="H"
->Home</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><A
-HREF="webserver-update.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
->Testing Guidelines</TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-> </TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->Update the Webserver</TD
-></TR
-></TABLE
-></DIV
-></BODY
-></HTML
->
+ git clone https://www.privoxy.org/git/privoxy.git
+ cd privoxy
+ git checkout v_X_Y_Z</pre>
+ </td>
+ </tr>
+ </table>
+ <p><span class="emphasis"><i class="EMPHASIS">Do NOT change</i></span> a single bit, including, but not limited
+ to version information after export from Git. This is to make sure that all release packages, and with them, all
+ future bug reports, are based on exactly the same code.</p>
+ <div class="WARNING">
+ <table class="WARNING" border="1" width="100%">
+ <tr>
+ <td align="center"><b>Warning</b></td>
+ </tr>
+ <tr>
+ <td align="left">
+ <p>Every significant release of Privoxy has included at least one package that either had incorrect
+ versions of files, missing files, or incidental leftovers from a previous build process that gave unknown
+ numbers of users headaches to try to figure out what was wrong. PLEASE, make sure you are using pristene
+ sources, and are following the prescribed process!</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <p>Please find additional instructions for the source tarball and the individual platform dependent binary
+ packages below. And details on the Sourceforge release process below that.</p>
+ <div class="SECT3">
+ <h3 class="SECT3"><a name="PACK-GUIDELINES" id="PACK-GUIDELINES">6.3.1. Note on Privoxy Packaging</a></h3>
+ <p>Please keep these general guidelines in mind when putting together your package. These apply to <span class=
+ "emphasis"><i class="EMPHASIS">all</i></span> platforms!</p>
+ <ul>
+ <li>
+ <p><span class="APPLICATION">Privoxy</span> <span class="emphasis"><i class="EMPHASIS">requires</i></span>
+ write access to: all <tt class="FILENAME">*.action</tt> files, all logfiles, and the <tt class=
+ "FILENAME">trust</tt> file. You will need to determine the best way to do this for your platform.</p>
+ </li>
+ <li>
+ <p>Please include up to date documentation. At a bare minimum:</p>
+ <table border="0">
+ <tbody>
+ <tr>
+ <td><tt class="FILENAME">LICENSE</tt> (top-level directory)</td>
+ </tr>
+ </tbody>
+ </table>
+ <table border="0">
+ <tbody>
+ <tr>
+ <td><tt class="FILENAME">README</tt> (top-level directory)</td>
+ </tr>
+ </tbody>
+ </table>
+ <table border="0">
+ <tbody>
+ <tr>
+ <td><tt class="FILENAME">AUTHORS</tt> (top-level directory)</td>
+ </tr>
+ </tbody>
+ </table>
+ <table border="0">
+ <tbody>
+ <tr>
+ <td><tt class="FILENAME">man page</tt> (top-level directory, Unix-like platforms only)</td>
+ </tr>
+ </tbody>
+ </table>
+ <table border="0">
+ <tbody>
+ <tr>
+ <td><tt class="FILENAME">The User Manual</tt> (doc/webserver/user-manual/)</td>
+ </tr>
+ </tbody>
+ </table>
+ <table border="0">
+ <tbody>
+ <tr>
+ <td><tt class="FILENAME">FAQ</tt> (doc/webserver/faq/)</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>Also suggested: <tt class="FILENAME">Developer Manual</tt> (doc/webserver/developer-manual) and
+ <tt class="FILENAME">ChangeLog</tt> (top-level directory). <tt class="FILENAME">FAQ</tt> and the manuals
+ are HTML docs.</p>
+ <p>The documentation has been designed such that the manuals are linked to each other from parallel
+ directories, and should be packaged that way. <tt class="FILENAME">privoxy-index.html</tt> can also be
+ included and can serve as a focal point for docs and other links of interest (and possibly renamed to
+ <tt class="FILENAME">index.html</tt>). This should be one level up from the manuals. There is a link also
+ on this page to an HTMLized version of the man page. To avoid 404 for this, it is in Git as <tt class=
+ "FILENAME">doc/webserver/man-page/privoxy-man-page.html</tt>, and should be included along with the
+ manuals. There is also a css stylesheets that can be included for better presentation: <tt class=
+ "FILENAME">p_doc.css</tt>. This should be in the same directory with <tt class=
+ "FILENAME">privoxy-index.html</tt>, (i.e. one level up from the manual directories).</p>
+ </li>
+ <li>
+ <p><tt class="FILENAME">user.action</tt> and <tt class="FILENAME">user.filter</tt> are designed for local
+ preferences. Make sure these do not get overwritten! <tt class="FILENAME">config</tt> should not be
+ overwritten either. This has especially important configuration data in it. <tt class="FILENAME">trust</tt>
+ should be left in tact as well.</p>
+ </li>
+ <li>
+ <p>Other configuration files (<tt class="FILENAME">default.action</tt>, <tt class=
+ "FILENAME">regression-tests.action</tt> and <tt class="FILENAME">default.filter</tt>) should be installed
+ as the new defaults, but all previously installed configuration files should be preserved as backups. This
+ is just good manners :-) These files are likely to change between releases and contain important new
+ features and bug fixes.</p>
+ </li>
+ <li>
+ <p>Please check platform specific notes in this doc, if you haven't done <span class=
+ "QUOTE">"Privoxy"</span> packaging before for other platform specific issues. Conversely, please add any
+ notes that you know are important for your platform (or contact one of the doc maintainers to do this if
+ you can't).</p>
+ </li>
+ <li>
+ <p>Packagers should do a <span class="QUOTE">"clean"</span> install of their package after building it. So
+ any previous installs should be removed first to ensure the integrity of the newly built package. Then run
+ the package for a while to make sure there are no obvious problems, before uploading.</p>
+ </li>
+ </ul>
+ </div>
+ <div class="SECT3">
+ <h3 class="SECT3"><a name="NEWRELEASE-TARBALL" id="NEWRELEASE-TARBALL">6.3.2. Source Tarball</a></h3>
+ <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that you have freshly exported the right version
+ into an empty directory</i></span>. (See "Building and releasing packages" above). Then run from that
+ directory:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> autoheader && autoconf && ./configure</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Then do:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> make tarball-dist</pre>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div class="SECT3">
+ <h3 class="SECT3"><a name="NEWRELEASE-WINDOWS" id="NEWRELEASE-WINDOWS">6.3.3. Windows</a></h3>
+ <p>Note that the docbook generated files might need some hand editing, so the Windows build makefile does not
+ rebuild the docs.</p>
+ <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that you have freshly exported the right version
+ into an empty directory</i></span>. (See "Building and releasing packages" above).</p>
+ <p>Then you can build the package. This is fully automated, and is controlled by <tt class=
+ "FILENAME">windows/GNUmakefile</tt>. All you need to do is:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> cd windows
+ make</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Now you can manually rename <tt class="FILENAME">privoxy_setup.exe</tt> to <tt class=
+ "FILENAME">privoxy_setup_X.Y.Z.exe</tt>, and the <tt class="FILENAME">build</tt> directory to <tt class=
+ "FILENAME">privoxy_X.Y.Z</tt>. Create a .zip file of the newly renamed <tt class="FILENAME">privoxy_X.Y.Z</tt>
+ directory, GPG sign the installer and zip file,</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> $ gpg --armor --detach --sign <tt class=
+ "FILENAME">privoxy_setup_X.Y.Z.exe</tt>
+ $ gpg --armor --detach --sign <tt class="FILENAME">privoxy_X.Y.Z.zip</tt></pre>
+ </td>
+ </tr>
+ </table>
+ <p>and upload the files to SourceForge.</p>
+ <p>When releasing the package on SourceForge, use the release notes and Change Log from the source tarball
+ package.</p>
+ </div>
+ <div class="SECT3">
+ <h3 class="SECT3"><a name="NEWRELEASE-DEBIAN" id="NEWRELEASE-DEBIAN">6.3.4. Debian</a></h3>
+ <p>Using git-buildpackage we start with a clone of the last Debian version:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> gbp clone https://salsa.debian.org/debian/privoxy.git
+ cd privoxy</pre>
+ </td>
+ </tr>
+ </table>
+ <p>or if the repository is already there</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> cd privoxy
+ gbp pull</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Now import the newly released upstream tarball via debian/watch file:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> gbp import-orig --uscan</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Next update all Debian quilt patches to the new version:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> while quilt push; do quilt refresh; done</pre>
+ </td>
+ </tr>
+ </table>
+ <p>If some patch is no longer required (because it is already merged upstream), it can be removed using</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> quilt delete XX_patchname.patch
+ git rm debian/patches/XX_patchname.patch</pre>
+ </td>
+ </tr>
+ </table>
+ <p>If the patch needs modification, you can apply, edit and update it with</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> quilt push -f
+ quilt edit some_file
+ quilt refresh</pre>
+ </td>
+ </tr>
+ </table>
+ <p>until</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> while quilt push; do quilt refresh; done</pre>
+ </td>
+ </tr>
+ </table>
+ <p>succeeds. Then you can</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> quilt pop -a</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Now add a new entry to the debian/changelog representing the new version:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> dch -v 3.0.30-1</pre>
+ </td>
+ </tr>
+ </table>
+ <p>and describe what you did before and don't forget to git commit all changes.</p>
+ <p>Now you can build the package on the local machine using</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> gbp buildpackage -us -uc</pre>
+ </td>
+ </tr>
+ </table>
+ <p>You should check for warnings using</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> lintian -iI ../build-area/privoxy_3.0.30-1_amd64.changes</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Maybe rebuild the package in different defined cowbuilder environments like</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class=
+ "PROGRAMLISTING"> sudo cowbuilder --build --basepath /var/cache/pbuilder/base.cow ../build-area/privoxy_3.0.30-1.dsc</pre>
+ </td>
+ </tr>
+ </table>
+ <p>And try to run autopackage testing suite on the result:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class=
+ "PROGRAMLISTING"> autopkgtest /var/cache/pbuilder/result/privoxy_3.0.30-1_amd64.changes -s -- schroot sid</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Or just push the changes to salsa.debian.org, where a CI pipeline is defined for the package, that builds
+ and tests it.</p>
+ <p>If everything is okay, run cowbuilder with i386 and amd64 environments for current Debian stable release and
+ build privoxy_3.0.30-1_i386.deb and privoxy_3.0.30-1_amd64.deb. Then sign both files:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> gpg --detach-sign --armor privoxy_3.0.30-1_i386.deb
+ gpg --detach-sign --armor privoxy_3.0.30-1_amd64.deb</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Create a README file containing the recent block from debian/changelog and upload the two packages, the two
+ signatures and the README to a freshly created folder below
+ https://sourceforge.net/projects/ijbswa/files/Debian/</p>
+ <div class="SECT4">
+ <h4 class="SECT4"><a name="SNAPSHOT-DEBIAN" id="SNAPSHOT-DEBIAN">6.3.4.1. Debian GIT Snapshot</a></h4>
+ <p>For building just a git snapshot build the following workflow may be useful. First create a build
+ environment, for this you may have to run the following commands:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> sudo apt install build-essential devscripts
+ sudo apt-get build-dep privoxy</pre>
+ </td>
+ </tr>
+ </table>
+ <p>After this enter the checked out privoxy git tree and check that all (new) build dependencies are met:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> dpkg-checkbuilddeps</pre>
+ </td>
+ </tr>
+ </table>
+ <p>If something is missing, just add it using</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> sudo apt install foobar</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Now you may update debian/changelog, especially the version number using</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> dch</pre>
+ </td>
+ </tr>
+ </table>
+ <p>and finally build the package:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> debuild -us -uc -b</pre>
+ </td>
+ </tr>
+ </table>
+ <p>If everything went okay, you may find the resulting Debian package in the parent directory.</p>
+ <p>You may want to clean up the build tree using</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> debian/rules clean</pre>
+ </td>
+ </tr>
+ </table>
+ <p>And maybe repair some artefacts using one or both of the following commands:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> git reset --hard
+ git clean -fd</pre>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="SECT3">
+ <h3 class="SECT3"><a name="NEWRELEASE-MACOSX" id="NEWRELEASE-MACOSX">6.3.5. Mac OS X</a></h3>
+ <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that you have freshly exported the right version
+ into an empty directory</i></span>. (See "Building and releasing packages" above).</p>
+ <p>There are three modules available in the CVS repository backups for use on Mac OS X, though technically only
+ two of them generate a release (the other can be used to install from source).</p>
+ <div class="SECT4">
+ <h4 class="SECT4"><a name="OS-X-OSXPACKAGEBUILDER-MODULE" id="OS-X-OSXPACKAGEBUILDER-MODULE">6.3.5.1.
+ OSXPackageBuilder module (Documentation out of date)</a></h4>
+ <p>The OSXPackageBuilder module generates OS X installer packages supporting all Macs running OS X 10.4 and
+ above. Obtain it from CVS as follows into a folder parallel to the exported privoxy source:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class=
+ "PROGRAMLISTING"> cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co OSXPackageBuilder</pre>
+ </td>
+ </tr>
+ </table>
+ <p>The module contains complete instructions on its usage in the file <tt class="FILENAME">OS X Package
+ Builder HOWTO.txt</tt>.</p>
+ <p>Once the package(s) have been generated, you can then upload them directly to the Files section of the
+ Sourceforge project in the Macintosh (OS X) folder. Each new version release of Privoxy should have a new
+ subfolder created in which to store its files. Please ensure that the folder contains a readme file that
+ makes it clear which package is for whichversion of OS X.</p>
+ </div>
+ <div class="SECT4">
+ <h4 class="SECT4"><a name="OS-X-OSXSETUP-MODULE" id="OS-X-OSXSETUP-MODULE">6.3.5.2. osxsetup module
+ (DEPRECATED) (Documentation out of date)</a></h4>
+ <p><span class="emphasis"><i class="EMPHASIS">This module is deprecated since the installer it generates
+ places all Privoxy files in one folder in a non-standard location, and supports only Intel Macs running OS X
+ 10.6 or higher.</i></span></p>
+ <p>Check out the module from CVS as follows into a folder parallel to the exported privoxy source:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class=
+ "PROGRAMLISTING"> cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co osxsetup</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Then run:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> cd osxsetup
+ build</pre>
+ </td>
+ </tr>
+ </table>
+ <p>This will run <tt class="FILENAME">autoheader</tt>, <tt class="FILENAME">autoconf</tt> and <tt class=
+ "FILENAME">configure</tt> as well as <tt class="FILENAME">make</tt>. Finally, it will copy over the necessary
+ files to the ./osxsetup/files directory for further processing by <tt class="FILENAME">PackageMaker</tt>.</p>
+ <p>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:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg</pre>
+ </td>
+ </tr>
+ </table>
+ <p>You can then upload this file directly to the Files section of the Sourceforge project in the Macintosh
+ (OS X) folder. Each new version release of Privoxy should have a new subfolder created in which to store its
+ files. Please ensure that the folder contains a readme file that makes it clear which version(s) of OS X the
+ package supports.</p>
+ </div>
+ <div class="SECT4">
+ <h4 class="SECT4"><a name="OS-X-MACSETUP-MODULE" id="OS-X-MACSETUP-MODULE">6.3.5.3. macsetup module
+ (Documentation out of date)</a></h4>
+ <p>The macsetup module is ideal if you wish to build and install Privoxy from source on a single machine.</p>
+ <p>Check out the module from CVS as follows into a folder parallel to the exported privoxy source:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class=
+ "PROGRAMLISTING"> cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co macsetup</pre>
+ </td>
+ </tr>
+ </table>
+ <p>The module contains complete instructions on its usage in its <tt class="FILENAME">README</tt> file. The
+ end result will be the exported version of Privoxy installed on the build machine.</p>
+ </div>
+ </div>
+ <div class="SECT3">
+ <h3 class="SECT3"><a name="NEWRELEASE-FREEBSD" id="NEWRELEASE-FREEBSD">6.3.6. FreeBSD</a></h3>
+ <p>Update the www/privoxy port and submit a diff upstream. For details see the <a href=
+ "https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/" target="_top">FreeBSD Porter's
+ Handbook</a>.</p>
+ </div>
+ </div>
+ <div class="SECT2">
+ <h2 class="SECT2"><a name="RELEASING" id="RELEASING">6.4. Uploading and Releasing Your Package</a></h2>
+ <p>After the package is ready, it is time to upload it and go through the release steps. The upload is done at
+ <a href="https://sourceforge.net/projects/ijbswa/upload/" target="_top">SourceForge</a> after logging in.</p>
+ <p>Now just follow the prompts. Be sure to add any appropriate Release notes. You should see your freshly
+ uploaded packages in <span class="QUOTE">"Step 2. Add Files To This Release"</span>. Check the appropriate
+ box(es). Remember at each step to hit the <span class="QUOTE">"Refresh/Submit"</span> buttons! You should now see
+ your file(s) listed in Step 3. Fill out the forms with the appropriate information for your platform, being sure
+ to hit <span class="QUOTE">"Update"</span> for each file. If anyone is monitoring your platform, check the
+ <span class="QUOTE">"email"</span> box at the very bottom to notify them of the new package. This should do
+ it!</p>
+ <p>If you have made errors, or need to make changes, you can go through essentially the same steps, but select
+ <tt class="LITERAL">Edit Release</tt>, instead of <tt class="LITERAL">Add Release</tt>.</p>
+ </div>
+ <div class="SECT2">
+ <h2 class="SECT2"><a name="AFTERRELEASE" id="AFTERRELEASE">6.5. After the Release</a></h2>
+ <p>When all (or: most of the) packages have been uploaded and made available, send an email to the <a href=
+ "mailto:privoxy-announce@lists.privoxy.org" target="_top">announce mailing list</a>, Subject: "Announcing Privoxy
+ X.Y.Z $CODE_STATUS". Be sure to include the <a href="https://sourceforge.net/projects/ijbswa/files/" target=
+ "_top">download location</a>, the release notes and the Changelog. Also, post an updated News item on the project
+ page Sourceforge, and update the Home page and docs linked from the Home page (see below). Other news sites and
+ release oriented sites, such as Freshmeat, should also be notified.</p>
+ <p>Then update the source code for the next version to be released:</p>
+ <ul>
+ <li>
+ <p>Increment the version number and change the code status to "UNRELEASED" in <tt class=
+ "FILENAME">configure.in</tt></p>
+ </li>
+ <li>
+ <p>Rebuild configure (<span class="QUOTE">"<b class="COMMAND">autoheader && autoconf</b>"</span>) and
+ GNUMakefile (<span class="QUOTE">"<b class="COMMAND">./configure</b>"</span>)</p>
+ </li>
+ <li>
+ <p><span class="QUOTE">"<b class="COMMAND">make dok-release</b>"</span> to update the sgml documentation
+ source files.</p>
+ </li>
+ <li>
+ <p>Commit all your changes.</p>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="NAVFOOTER">
+ <hr align="left" width="100%">
+ <table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td width="33%" align="left" valign="top"><a href="testing.html" accesskey="P">Prev</a></td>
+ <td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">Home</a></td>
+ <td width="33%" align="right" valign="top"><a href="webserver-update.html" accesskey="N">Next</a></td>
+ </tr>
+ <tr>
+ <td width="33%" align="left" valign="top">Testing Guidelines</td>
+ <td width="34%" align="center" valign="top"> </td>
+ <td width="33%" align="right" valign="top">Update the Webserver</td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>