- make -s install # (to really install, -s to silence output)</PRE
-></TD
-></TR
-></TABLE
-></P
-><P
-> Using GNU <B
-CLASS="COMMAND"
->make</B
->, you can have the first four steps
- automatically done for you by just typing:</P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-> make</PRE
-></TD
-></TR
-></TABLE
-></P
-><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
-><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
-><P
->Then build as above. In Privoxy 3.0.7 and later, 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
-><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
-><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, default.filter, and
- standard.action <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. All
- template files will be overwritten. If you have customized, local templates,
- you should save these first, and in fact it is wise to always save 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="../developer-manual/newrelease.html"
-TARGET="_top"
->developer manual</A
->.</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="INSTALLATION-KEEPUPDATED"
->2.3. Keeping your Installation Up-to-Date</A
-></H2
-><P
-> As user feedback comes in and development continues, we will make updated versions
- of both the main <A
-HREF="actions-file.html"
->actions file</A
-> (as a <A
-HREF="http://sourceforge.net/project/showfiles.php?group_id=11118&release_id=103670"
-TARGET="_top"
->separate
- package</A
->) and the software itself (including the actions file) available for
- download.</P
-><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="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce/"
-TARGET="_top"
->subscribe
- to our announce mailing list</A
->, ijbswa-announce@lists.sourceforge.net.</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
->
\ No newline at end of file
+ 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>