Remove kill-popups action.
[privoxy.git] / doc / source / buildsource.sgml
index a24da21..b250502 100644 (file)
@@ -3,9 +3,9 @@
 
  Purpose     :  Entity included in other project documents.
                 
 
  Purpose     :  Entity included in other project documents.
                 
- $Id: buildsource.sgml,v 2.3 2002/09/06 01:58:28 hal9 Exp $
+ $Id: buildsource.sgml,v 2.14 2007/11/22 17:38:40 hal9 Exp $
 
 
- Copyright (C) 2001, 2002 Privoxy Developers <developers@privoxy.org>
+ Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
  See LICENSE.
 
  ======================================================================
  See LICENSE.
 
  ======================================================================
@@ -21,7 +21,6 @@
   INSTALL
 
 -->
   INSTALL
 
 -->
-
 <para>
  To build <application>Privoxy</application> from source, 
  <ulink url="http://www.gnu.org/software/autoconf/autoconf.html">autoconf</ulink>,
 <para>
  To build <application>Privoxy</application> from source, 
  <ulink url="http://www.gnu.org/software/autoconf/autoconf.html">autoconf</ulink>,
 </para>
 
 <para>
 </para>
 
 <para>
- When building from a source tarball (either release version or
+ When building from a source tarball,
+<!-- 
+ no longer available ...
  <ulink
  url="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz">nightly CVS
  <ulink
  url="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz">nightly CVS
- tarball</ulink>), first unpack the source: 
+ tarball</ulink>), 
+--> first unpack the source: 
 </para>
 
 <para>
 </para>
 
 <para>
 </para>
 
 <para>
 </para>
 
 <para>
- For retrieving the current CVS sources, you'll need CVS installed.
- Note that sources from CVS are development quality, and may not be
- stable, or well tested. To download CVS source:
+ 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:
 </para>
 
 <para>
  <screen>
 </para>
 
 <para>
  <screen>
-  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
-  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co current
+  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
 </screen>
 </para>
   cd current
 </screen>
 </para>
 </para>
 
 <para>
 </para>
 
 <para>
- It is also recommended to not run <application>Privoxy</application> as 
- root, and instead it is suggested to create a <quote>privoxy</quote> user for
- this purpose.
+ It is also strongly recommended to not run <application>Privoxy</application>
+ as root. You should configure/install/run <application>Privoxy</application> as
+ an unprivileged user, preferably by  creating a <quote>privoxy</quote> 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
+ <command>adduser</command>, but the command syntax may vary from platform
+ to platform). 
 </para>
 
 <para>
 </para>
 
 <para>
@@ -90,7 +97,7 @@
 </para>
 
 <para>
 </para>
 
 <para>
- <screen>  privoxy:*:7777:privoxy</screen>
+ <screen>  privoxy:*:7777:</screen>
 </para>
 
 <para>
 </para>
 
 <para>
  autoheader
  autoconf
  ./configure      # (--help to see options)
  autoheader
  autoconf
  ./configure      # (--help to see options)
- make             # (the make from gnu, gmake for *BSD
- su 
+ make             # (the make from GNU, sometimes called gmake
+ su               # Possibly required
  make -n install  # (to see where all the files will go)
  make -n install  # (to see where all the files will go)
- make install     # (to really install)
-</screen>
+ make -s install  # (to really install, -s to silence output)</screen>
 </para>
 </para>
-<!--
-/we hope this is fixed! 09/24/02
-<warning>
- <para> 
-  The <quote>make install</quote> target is temporary quite broken! It is
-  recommended to use a binary package, or do a source build, and manually 
-  install the components. Sorry.
- </para>
-</warning>
--->
+
 <para>
 <para>
-  If you have GNU <command>make</command>, you can have the first four steps
+  Using GNU <command>make</command>, you can have the first four steps
   automatically done for you by just typing:
 </para>
 
   automatically done for you by just typing:
 </para>
 
   in the freshly downloaded or unpacked source directory.
 </para>
 
   in the freshly downloaded or unpacked source directory.
 </para>
 
+<para>
+ To build an executable with security enhanced features so that 
+ users cannot easily bypass the proxy (e.g. <quote>Go There Anyway</quote>), or
+ alter their own configurations, <command>configure</command> like this:
+</para>
+<para>
+ <screen>
+ ./configure  --disable-toggle  --disable-editor  --disable-force</screen>
+</para> 
+<para>
+Then build as above. In Privoxy 3.0.7 and later, all of these options
+can also be disabled through the configuration file.
+</para>
+<para>
+ <emphasis>WARNING:</emphasis> If installing as root, the install will fail
+ unless a non-root user or group is specified, or a <literal>privoxy</literal>
+ 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 <quote>user</quote>. 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.
+</para>
+
+<para>
+ <command>configure</command> accepts <literal>--with-user</literal> and
+ <literal>--with-group</literal> options for setting user and group ownership
+ of the configuration files (which need to be writable by the daemon). The
+ specified <emphasis>user must already exist</emphasis>. When starting
+ <application>Privoxy</application>, it must be run as this same user to
+ insure write access to configuration and log files!
+</para>
+
+<para>
+ Alternately, you can specify <literal>user</literal> and <literal>group</literal>
+ on the <command>make</command> command line, but be sure both already exist:
+</para>
+
+<para>
+ <screen>
+ make -s install  USER=privoxy GROUP=privoxy</screen>
+</para>
+
 <para>
  The default installation path for <command>make install</command> is 
  <filename>/usr/local</filename>. This may of course be customized with 
 <para>
  The default installation path for <command>make install</command> is 
  <filename>/usr/local</filename>. This may of course be customized with 
- the various <command>./configure</command> path options.
- <command>configure</command> also accepts a <literal>--with-user</literal> and
- <literal>--with-group</literal> options for setting user and group
- ownership.
+ the various <command>./configure</command> path options. If you are doing 
+ an install to anywhere besides <filename>/usr/local</filename>, be
+ sure to set the appropriate paths with the correct configure options
+ (<command>./configure --help</command>). Non-privileged users must of course
+ have write access permissions to wherever the target installation is going.
 </para>
 
 <para>
 </para>
 
 <para>
 </para>
 
 <para>
 </para>
 
 <para>
- If installing to <filename>/usr/local</filename>, the docs will go by default
- to <filename>$prefix/share/doc</filename>. But if this directory doesn't
- exist, it will then try <filename>$prefix/doc</filename> and install there before
- creating a new <filename>$prefix/share/doc</filename> just for
+ If installing to <filename>/usr/local</filename>, the documentation will go
+ by default to <filename>$prefix/share/doc</filename>. But if this directory
+ doesn't exist, it will then try <filename>$prefix/doc</filename> and install
there before creating a new <filename>$prefix/share/doc</filename> just for
  <application>Privoxy</application>.
 </para>
 
 <para>
  Again, if the installs goes to <filename>/usr/local</filename>, the
  <application>Privoxy</application>.
 </para>
 
 <para>
  Again, if the installs goes to <filename>/usr/local</filename>, the
- <literal>localstatedir</literal> (ie: var/) will default to
- <filename>/var</filename> instead of <literal>$prefix/var</literal> so the
- logs will go to <filename>/var/log/privoxy/</filename>, and the pid file will
- be created in <filename>/var/run/privoxy.pid</filename>. 
+ <literal>localstatedir</literal> (ie: <filename>var/</filename>) will default
+ to <filename>/var</filename> instead of <literal>$prefix/var</literal> so
+ the logs will go to <filename>/var/log/privoxy/</filename>, and the pid file
will be created in <filename>/var/run/privoxy.pid</filename>. 
 </para>
 
 <para>
  <command>make install</command> will attempt to set the correct values 
 </para>
 
 <para>
  <command>make install</command> will attempt to set the correct values 
- in <filename>config</filename> (main configuration file). If appropriate,
+ in <filename>config</filename> (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 
  an init script will be installed, but it is up to the user to determine 
- how and where to start <application>Privoxy</application>.
+ how and where to start <application>Privoxy</application>. The init 
+ script should be checked for correct paths and values, if anything other than
+ a default install is done.
 </para>
 
 <para>
 </para>
 
 <para>
- For more detailed instructions on how to build Redhat and SuSE RPMs,
+ 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
+ <quote>new</quote> extension. default.action, default.filter, and 
+ standard.action <emphasis>will be overwritten</emphasis>. You will then need
+ to manually update the other installed configuration files as needed. The
+ default template files <emphasis>will</emphasis> be overwritten. If you have
+ customized, local templates, these should be stored safely in a separate
+ directory and defined in <filename>config</filename> by the
+ <quote>templdir</quote> directive. It is of course wise to always back-up any
+ important configuration files <quote>just in case</quote>. If a previous
+ version of <application>Privoxy</application> is already running, you will
+ have to restart it manually.
+</para>
+
+<para>
+ For more detailed instructions on how to build Redhat RPMs,
  Windows self-extracting installers, building on platforms with
  special requirements etc, please consult the <ulink
  url="../developer-manual/newrelease.html">developer manual</ulink>.
  Windows self-extracting installers, building on platforms with
  special requirements etc, please consult the <ulink
  url="../developer-manual/newrelease.html">developer manual</ulink>.
 <!-- print for README only -->
 <!-- Actually this is now in INSTALL -->
  <![%p-readme;[
 <!-- print for README only -->
 <!-- Actually this is now in INSTALL -->
  <![%p-readme;[
- <para>
-  For binary RPM installation, and other platforms, see the User Manual
-  as well.
- </para>
+<para>
+ The simplest command line to start <application>Privoxy</application> is 
+ <command>$path/privoxy --user=privoxy  $path/etc/privoxy/config</command>. 
+ See <command>privoxy --usage</command>, or the man page, for other options, 
+ and configuration.
+</para>
 ]]>
 ]]>