Rebuild docs for Privoxy 3.0.27 stable
[privoxy.git] / doc / webserver / user-manual / installation.html
index e406f26..68270a1 100644 (file)
@@ -8,7 +8,7 @@
   <link rel="PREVIOUS" title="Introduction" href="introduction.html">
   <link rel="NEXT" title="What's New in this Release" href="whatsnew.html">
   <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <link rel="STYLESHEET" type="text/css" href="p_doc.css">
 </head>
 <body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink="#840084" alink="#0000FF">
     </div>
     <div class="SECT2">
       <h2 class="SECT2"><a name="INSTALLATION-SOURCE" id="INSTALLATION-SOURCE">2.2. Building from Source</a></h2>
-      <p>The most convenient way to obtain the <span class="APPLICATION">Privoxy</span> sources is to download the
+      <p>The most convenient way to obtain the <span class="APPLICATION">Privoxy</span> source code is to download the
       source tarball from our <a href="https://sourceforge.net/projects/ijbswa/files/Sources/" target="_top">project
-      download page</a>.</p>
-      <p>If you like to live on the bleeding edge and are not afraid of using possibly unstable development versions,
-      you can check out the up-to-the-minute version directly from <a href=
-      "https://sourceforge.net/p/ijbswa/code/?source=navbar" target="_top">the CVS repository</a>.</p>
+      download page</a>, or you can get the up-to-the-minute, possibly unstable, development version from <a href=
+      "https://www.privoxy.org/" target="_top">https://www.privoxy.org/</a>.</p>
       <p>To build <span class="APPLICATION">Privoxy</span> from source, <a href=
       "http://www.gnu.org/software/autoconf/autoconf.html" target="_top">autoconf</a>, <a href=
       "http://www.gnu.org/software/make/make.html" target="_top">GNU make (gmake)</a>, and, of course, a C compiler
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> tar xzvf privoxy-3.0.27-beta-src.tar.gz
- cd privoxy-3.0.27-beta</pre>
+            <pre class="SCREEN"> tar xzvf privoxy-3.0.27-stable-src.tar.gz
+ cd privoxy-3.0.27-stable</pre>
           </td>
         </tr>
       </table>
-      <p>For retrieving the current CVS sources, you'll need a CVS client installed. Note that sources from CVS are
-      typically development quality, and may not be stable, or well tested. To download CVS source, check the
-      Sourceforge documentation, which might give commands like:</p>
+      <p>To build the development version, you can get the source code by doing:</p>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">  cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login
-  cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co current
-  cd current</pre>
+            <pre class="SCREEN">  cd &lt;root-dir&#62;
+  git clone https://www.privoxy.org/git/privoxy.git</pre>
           </td>
         </tr>
       </table>
-      <p>This will create a directory named <tt class="FILENAME">current/</tt>, which will contain the source tree.</p>
-      <p>You can also check out any <span class="APPLICATION">Privoxy</span> <span class="QUOTE">"branch"</span>, just
-      exchange the <span class="APPLICATION">current</span> name with the wanted branch name (Example: v_3_0_branch for
-      the 3.0 cvs tree).</p>
-      <p>It is also strongly recommended to not run <span class="APPLICATION">Privoxy</span> as root. You should
+      <p>This will create a directory named <tt class="FILENAME">&lt;root-dir&#62;/privoxy/</tt>, which will contain
+      the source tree.</p>
+      <p>Note that source code in GIT is development quality, and may not be stable or well tested.</p>
+      <p>It is strongly recommended to not run <span class="APPLICATION">Privoxy</span> as root. You should
       configure/install/run <span class="APPLICATION">Privoxy</span> as an unprivileged user, preferably by creating a
       <span class="QUOTE">"privoxy"</span> user and group just for this purpose. See your local documentation for the
       correct command line to do add new users and groups (something like <b class="COMMAND">adduser</b>, but the
       <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 &lt;root-dir&#62;
+  cd &lt;root-dir&#62;
+  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 &lt;root-dir&#62; and build the
+          software:</p>
+          <table border="0" bgcolor="#E0E0E0" width="100%">
+            <tr>
+              <td>
+                <pre class="SCREEN">  cd &lt;root-dir&#62;
+  cd tidy-html5-x.y.z/build/cmake
+  cmake ../.. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIB:BOOL=OFF -DCMAKE_INSTALL_PREFIX=/usr/local
+  make &#38;&#38; 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 &lt;root-dir&#62;/privoxy
+  ./windows/MYconfigure &#38;&#38; 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 \
+  &#62;             --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