+ 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>