- ./configure (--help to see options)
- make (the make from gnu, gmake for *BSD)
- su
- make -n install (to see where all the files will go)
- make install (to really install)
- </PRE
-></TD
-></TR
-></TABLE
-></P
-><P
-> Redhat and SuSE src and binary RPMs can be built with
- <SPAN
-CLASS="QUOTE"
->"<B
-CLASS="COMMAND"
->make redhat-dist</B
->"</SPAN
-> or
- <SPAN
-CLASS="QUOTE"
->"<B
-CLASS="COMMAND"
->make suse-dist</B
->"</SPAN
-> from unpacked sources. You
- will need to run <SPAN
-CLASS="QUOTE"
->"<B
-CLASS="COMMAND"
->autoconf; autoheader;
- ./configure</B
->"</SPAN
-> beforehand. *BSD will require gmake (from
- <A
-HREF="http://www.gnu.org"
-TARGET="_top"
->http://www.gnu.org</A
->).
- </P
-><P
-> For Redhat and SuSE Linux RPM packages, see below.</P
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="INSTALLATION-RH"
->3.1.1. Red Hat</A
-></H3
-><P
-> To build Redhat RPM packages from source, install source as above. Then:</P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-> autoheader
- autoconf
- ./configure
- make redhat-dist
- </PRE
-></TD
-></TR
-></TABLE
-></P
-><P
-> This will create both binary and src RPMs in the usual places. Example:</P
-><P
-> /usr/src/redhat/RPMS/i686/privoxy-2.9.13-1.i686.rpm</P
-><P
-> /usr/src/redhat/SRPMS/privoxy-2.9.13-1.src.rpm</P
-><P
-> To install, of course:</P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-> rpm -Uvv /usr/src/redhat/RPMS/i686/privoxy-2.9.13-1.i686.rpm
- </PRE
-></TD
-></TR
-></TABLE
-></P
-><P
-> This will place the <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> configuration
- files in <TT
-CLASS="FILENAME"
->/etc/privoxy/</TT
->, and log files in
- <TT
-CLASS="FILENAME"
->/var/log/privoxy/</TT
->. Run
- <SPAN
-CLASS="QUOTE"
->"<B
-CLASS="COMMAND"
->chkconfig privoxy on</B
->"</SPAN
-> to have
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> start automatically during init. </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="INSTALLATION-SUSE"
->3.1.2. SuSE</A
-></H3
-><P
-> To build SuSE RPM packages, install source as above. Then:</P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-> autoheader
- autoconf
- ./configure
- make suse-dist
- </PRE
-></TD
-></TR
-></TABLE
-></P
-><P
-> This will create both binary and src RPMs in the usual places. Example:</P
-><P
-> /usr/src/packages/RPMS/i686/privoxy-2.9.13-1.i686.rpm</P
-><P
-> /usr/src/packages/SRPMS/privoxy-2.9.13-1.src.rpm</P
-><P
-> To install, of course:</P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-> rpm -Uvv /usr/src/packages/RPMS/i686/privoxy-2.9.13-1.i686.rpm
- </PRE
-></TD
-></TR
-></TABLE
-></P
-><P
-> This will place the <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> configuration
- files in <TT
-CLASS="FILENAME"
->/etc/privoxy/</TT
->, and log files in
- <TT
-CLASS="FILENAME"
->/var/log/privoxy/</TT
->. </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="INSTALLATION-OS2"
->3.1.3. OS/2</A
-></H3
-><P
-> <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> is packaged in a WarpIN self-
- installing archive. The self-installing program will be named depending
- on the release version, something like:
- <TT
-CLASS="FILENAME"
->privoxyos2_setup_2.9.13.exe</TT
->. In order to install it, simply
- run this executable or double-click on its icon and follow the WarpIN
- installation panels. A shadow of the <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
->
- executable will be placed in your startup folder so it will start
- automatically whenever OS/2 starts.</P
-><P
-> The directory you choose to install <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
->
- into will contain all of the configuration files.</P
-><P
-> If you would like to build binary images on OS/2 yourself, you will need
- a few Unix-like tools: autoconf, autoheader and sh. These tools will be
- used to create the required config.h file, which is not part of the
- source distribution because it differs based on platform. You will also
- need a compiler.
- The distribution has been created using IBM VisualAge compilers, but you
- can use any compiler you like. GCC/EMX has the disadvantage of needing
- to be single-threaded due to a limitation of EMX's implementation of the
- <TT
-CLASS="FUNCTION"
->select()</TT
-> socket call.</P
-><P
-> In addition to needing the source code distribution as outlined earlier,
- you will want to extract the <TT
-CLASS="FILENAME"
->os2seutp</TT
-> directory from CVS:
- <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-> cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
- cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup
- </PRE
-></TD
-></TR
-></TABLE
->
- This will create a directory named os2setup/, which will contain the
- <TT
-CLASS="FILENAME"
->Makefile.vac</TT
-> makefile and <TT
-CLASS="FILENAME"
->os2build.cmd</TT
->
- which is used to completely create the binary distribution. The sequence
- of events for building the executable for yourself goes something like this:
- <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-> cd current
- autoheader
- autoconf
- sh configure
- cd ..\os2setup
- nmake -f Makefile.vac
- </PRE
-></TD
-></TR
-></TABLE
->
- You will see this sequence laid out in <TT
-CLASS="FILENAME"
->os2build.cmd</TT
->.</P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="INSTALLATION-WIN"
->3.1.4. Windows</A
-></H3
-><P
->Click-click. (I need help on this. Not a clue here. Also for
-configuration section below. HB.)</P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="INSTALLATION-OTHER"
->3.1.5. Other</A
-></H3
-><P
-> Some quick notes on other Operating Systems.</P
-><P
-> For FreeBSD (and other *BSDs?), the build will require <B
-CLASS="COMMAND"
->gmake</B
->
- instead of the included <B
-CLASS="COMMAND"
->make</B
->. <B
-CLASS="COMMAND"
->gmake</B
-> is
- available from <A
-HREF="http://www.gnu.org"
-TARGET="_top"
->http://www.gnu.org</A
->.
- The rest should be the same as above for Linux/Unix.</P
-></DIV
-></DIV
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><A
-HREF="introduction.html"
->Prev</A
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="index.html"
->Home</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><A
-HREF="quickstart.html"
->Next</A
-></TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
->Introduction</TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-> </TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->Quickstart to Using <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-></TD
-></TR
-></TABLE
-></DIV
-></BODY
-></HTML
->
\ No newline at end of file
+ ./configure # (--help to see options)
+ make # (the make from GNU, sometimes called gmake)
+ su # Possibly required
+ make -n install # (to see where all the files will go)
+ make -s install # (to really install, -s to silence output)</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Using GNU <b class="COMMAND">make</b>, you can have the first four steps automatically done for you by just
+ typing:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="SCREEN"> make</pre>
+ </td>
+ </tr>
+ </table>
+ <p>in the freshly downloaded or unpacked source directory.</p>
+ <p>To build an executable with security enhanced features so that users cannot easily bypass the proxy (e.g.
+ <span class="QUOTE">"Go There Anyway"</span>), or alter their own configurations, <b class=
+ "COMMAND">configure</b> like this:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="SCREEN"> ./configure --disable-toggle --disable-editor --disable-force</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Note that all of these options can also be disabled through the configuration file.</p>
+ <p><span class="emphasis"><i class="EMPHASIS">WARNING:</i></span> If installing as root, the install will fail
+ unless a non-root user or group is specified, or a <tt class="LITERAL">privoxy</tt> user and group already exist
+ on the system. If a non-root user is specified, and no group, then the installation will try to also use a group
+ of the same name as <span class="QUOTE">"user"</span>. If a group is specified (and no user), then the support
+ files will be installed as writable by that group, and owned by the user running the installation.</p>
+ <p><b class="COMMAND">configure</b> accepts <tt class="LITERAL">--with-user</tt> and <tt class=
+ "LITERAL">--with-group</tt> options for setting user and group ownership of the configuration files (which need
+ to be writable by the daemon). The specified <span class="emphasis"><i class="EMPHASIS">user must already
+ exist</i></span>. When starting <span class="APPLICATION">Privoxy</span>, it must be run as this same user to
+ insure write access to configuration and log files!</p>
+ <p>Alternately, you can specify <tt class="LITERAL">user</tt> and <tt class="LITERAL">group</tt> on the <b class=
+ "COMMAND">make</b> command line, but be sure both already exist:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="SCREEN"> make -s install USER=privoxy GROUP=privoxy</pre>
+ </td>
+ </tr>
+ </table>
+ <p>The default installation path for <b class="COMMAND">make install</b> is <tt class="FILENAME">/usr/local</tt>.
+ This may of course be customized with the various <b class="COMMAND">./configure</b> path options. If you are
+ doing an install to anywhere besides <tt class="FILENAME">/usr/local</tt>, be sure to set the appropriate paths
+ with the correct configure options (<b class="COMMAND">./configure --help</b>). Non-privileged users must of
+ course have write access permissions to wherever the target installation is going.</p>
+ <p>If you do install to <tt class="FILENAME">/usr/local</tt>, the install will use <tt class=
+ "LITERAL">sysconfdir=$prefix/etc/privoxy</tt> by default. All other destinations, and the direct usage of
+ <tt class="LITERAL">--sysconfdir</tt> flag behave like normal, i.e. will not add the extra <tt class=
+ "FILENAME">privoxy</tt> directory. This is for a safer install, as there may already exist another program that
+ uses a file with the <span class="QUOTE">"config"</span> name, and thus makes <tt class=
+ "FILENAME">/usr/local/etc</tt> cleaner.</p>
+ <p>If installing to <tt class="FILENAME">/usr/local</tt>, the documentation will go by default to <tt class=
+ "FILENAME">$prefix/share/doc</tt>. But if this directory doesn't exist, it will then try <tt class=
+ "FILENAME">$prefix/doc</tt> and install there before creating a new <tt class="FILENAME">$prefix/share/doc</tt>
+ just for <span class="APPLICATION">Privoxy</span>.</p>
+ <p>Again, if the installs goes to <tt class="FILENAME">/usr/local</tt>, the <tt class=
+ "LITERAL">localstatedir</tt> (ie: <tt class="FILENAME">var/</tt>) will default to <tt class="FILENAME">/var</tt>
+ instead of <tt class="LITERAL">$prefix/var</tt> so the logs will go to <tt class=
+ "FILENAME">/var/log/privoxy/</tt>, and the pid file will be created in <tt class=
+ "FILENAME">/var/run/privoxy.pid</tt>.</p>
+ <p><b class="COMMAND">make install</b> will attempt to set the correct values in <tt class="FILENAME">config</tt>
+ (main configuration file). You should check this to make sure all values are correct. If appropriate, an init
+ script will be installed, but it is up to the user to determine how and where to start <span class=
+ "APPLICATION">Privoxy</span>. The init script should be checked for correct paths and values, if anything other
+ than a default install is done.</p>
+ <p>If install finds previous versions of local configuration files, most of these will not be overwritten, and
+ the new ones will be installed with a <span class="QUOTE">"new"</span> extension. default.action and
+ default.filter <span class="emphasis"><i class="EMPHASIS">will be overwritten</i></span>. You will then need to
+ manually update the other installed configuration files as needed. The default template files <span class=
+ "emphasis"><i class="EMPHASIS">will</i></span> be overwritten. If you have customized, local templates, these
+ should be stored safely in a separate directory and defined in <tt class="FILENAME">config</tt> by the
+ <span class="QUOTE">"templdir"</span> directive. It is of course wise to always back-up any important
+ configuration files <span class="QUOTE">"just in case"</span>. If a previous version of <span class=
+ "APPLICATION">Privoxy</span> is already running, you will have to restart it manually.</p>
+ <p>For more detailed instructions on how to build Redhat RPMs, Windows self-extracting installers, building on
+ platforms with special requirements etc, please consult the <a href=
+ "https://www.privoxy.org/developer-manual/newrelease.html" target="_top">developer manual</a>.</p>
+ <div class="SECT3">
+ <h3 class="SECT3"><a name="WINBUILD-CYGWIN" id="WINBUILD-CYGWIN">2.2.1. Windows</a></h3>
+ <div class="SECT4">
+ <h4 class="SECT4"><a name="WINBUILD-SETUP" id="WINBUILD-SETUP">2.2.1.1. Setup</a></h4>
+ <p>Install the Cygwin utilities needed to build <span class="APPLICATION">Privoxy</span>. If you have a 64
+ bit CPU (which most people do by now), get the Cygwin setup-x86_64.exe program <a href=
+ "https://cygwin.com/setup-x86_64.exe" target="_top">here</a> (the .sig file is <a href=
+ "https://cygwin.com/setup-x86_64.exe.sig" target="_top">here</a>).</p>
+ <p>Run the setup program and from View / Category select:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="SCREEN"> Devel
+ autoconf 2.5
+ automake 1.15
+ binutils
+ cmake
+ gcc-core
+ gcc-g++
+ git
+ make
+ mingw64-i686-gcc-core
+ mingw64-i686-zlib
+ Editors
+ vim
+ Libs
+ libxslt: GNOME XSLT library (runtime)
+ Net
+ curl
+ openssh
+ Text
+ docbook-dssl
+ docbook-sgml31
+ docbook-utils
+ openjade
+ Utils
+ gnupg
+ Web
+ w3m</pre>
+ </td>
+ </tr>
+ </table>
+ <p>If you haven't already downloaded the Privoxy source code, get it now:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="SCREEN"> mkdir <root-dir>
+ cd <root-dir>
+ git clone https://www.privoxy.org/git/privoxy.git</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Get the source code (.zip or .tar.gz) for tidy from <a href="https://github.com/htacg/tidy-html5/releases"
+ target="_top">https://github.com/htacg/tidy-html5/releases</a>, unzip into <root-dir> and build the
+ software:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="SCREEN"> cd <root-dir>
+ cd tidy-html5-x.y.z/build/cmake
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIB:BOOL=OFF -DCMAKE_INSTALL_PREFIX=/usr/local
+ make && make install</pre>
+ </td>
+ </tr>
+ </table>
+ <p>If you want to be able to make a Windows release package, get the NSIS .zip file from <a href=
+ "https://sourceforge.net/projects/nsis/files/NSIS%203/" target=
+ "_top">https://sourceforge.net/projects/nsis/files/NSIS%203/</a> and extract the NSIS directory to <tt class=
+ "LITERAL">privoxy/windows</tt>. Then edit the windows/GNUmakefile to set the location of the NSIS executable
+ - eg:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="SCREEN"># Path to NSIS
+MAKENSIS = ./nsis/makensis.exe</pre>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div class="SECT4">
+ <h4 class="SECT4"><a name="WINBUILD-BUILD" id="WINBUILD-BUILD">2.2.1.2. Build</a></h4>
+ <p>To build just the Privoxy executable and not the whole installation package, do:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> cd <root-dir>/privoxy
+ ./windows/MYconfigure && make</pre>
+ </td>
+ </tr>
+ </table>
+ <p>Privoxy uses the <a href="https://en.wikipedia.org/wiki/GNU_build_system" target="_top">GNU Autotools</a>
+ for building software, so the process is:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> $ autoheader # creates config.h.in
+ $ autoconf # uses config.h.in to create the configure shell script
+ $ ./configure [options] # creates GNUmakefile
+ $ make [options] # builds the program</pre>
+ </td>
+ </tr>
+ </table>
+ <p>The usual <tt class="LITERAL">configure</tt> options for building a native Windows application under
+ cygwin are</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="LITERALLAYOUT"> --host=i686-w64-mingw32
+ --enable-mingw32
+ --enable-zlib
+ --enable-static-linking
+ --disable-pthread
+ --disable-dynamic-pcre</pre>
+ </td>
+ </tr>
+ </table>
+ <p>You can set the <tt class="LITERAL">CFLAGS</tt> and <tt class="LITERAL">LDFLAGS</tt> envars before running
+ <tt class="LITERAL">configure</tt> to set compiler and linker flags. For example:</p>
+ <table border="0" bgcolor="#E0E0E0" width="100%">
+ <tr>
+ <td>
+ <pre class="PROGRAMLISTING"> $ export CFLAGS="-O2" # set gcc optimization level
+ $ export LDFLAGS="-Wl,--nxcompat" # Enable DEP
+ $ ./configure --host=i686-w64-mingw32 --enable-mingw32 --enable-zlib \
+ > --enable-static-linking --disable-pthread --disable-dynamic-pcre
+ $ make # build Privoxy</pre>
+ </td>
+ </tr>
+ </table>
+ <p>See the <a href="../developer-manual/newrelease.html#NEWRELEASE-WINDOWS" target="_top">Developer's
+ Manual</a> for building a Windows release package.</p>
+ </div>
+ </div>
+ </div>
+ <div class="SECT2">
+ <h2 class="SECT2"><a name="INSTALLATION-KEEPUPDATED" id="INSTALLATION-KEEPUPDATED">2.3. Keeping your Installation
+ Up-to-Date</a></h2>
+ <p>If you wish to receive an email notification whenever we release updates of <span class=
+ "APPLICATION">Privoxy</span> or the actions file, <a href=
+ "https://lists.privoxy.org/mailman/listinfo/privoxy-announce" target="_top">subscribe to our announce mailing
+ list</a>, privoxy-announce@lists.privoxy.org.</p>
+ <p>In order not to lose your personal changes and adjustments when updating to the latest <tt class=
+ "LITERAL">default.action</tt> file we <span class="emphasis"><i class="EMPHASIS">strongly recommend</i></span>
+ that you use <tt class="LITERAL">user.action</tt> and <tt class="LITERAL">user.filter</tt> for your local
+ customizations of <span class="APPLICATION">Privoxy</span>. See the <a href="actions-file.html">Chapter on
+ actions files</a> for details.</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="introduction.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="whatsnew.html" accesskey="N">Next</a></td>
+ </tr>
+ <tr>
+ <td width="33%" align="left" valign="top">Introduction</td>
+ <td width="34%" align="center" valign="top"> </td>
+ <td width="33%" align="right" valign="top">What's New in this Release</td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>