Purpose : Entity included in other project documents.
- $Id: buildsource.sgml,v 2.7 2006/08/29 11:11:33 hal9 Exp $
+ $Id: buildsource.sgml,v 2.11 2006/10/14 23:06:48 hal9 Exp $
Copyright (C) 2001-2006 Privoxy Developers http://privoxy.org
See LICENSE.
</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
+ 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>
It is also strongly recommended to not run <application>Privoxy</application>
- as root, and instead it is suggested to create a <quote>privoxy</quote> user
- and group for this purpose. See your local documentation for the correct
- command line to do this.
+ 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>
autoconf
./configure # (--help to see options)
make # (the make from GNU, sometimes called gmake)
- su
+ su # Possibly required
make -n install # (to see where all the files will go)
make -s install # (to really install, -s to silence output)</screen>
</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>
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.
+</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>
<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 should be run as this same user to
- insure write access to configuration and log files.
+ <application>Privoxy</application>, it must be run as this same user to
+ insure write access to configuration and log files!
</para>
<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. If you are doing
- a root install to anywhere else besides <filename>/usr/local</filename>, be
+ 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>).
+ (<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>
- 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>
<command>make install</command> will attempt to set the correct values
- in <filename>config</filename> (main configuration file). You may want
- to check this to make sure all values are correct. 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
how and where to start <application>Privoxy</application>. The init
script should be checked for correct paths and values, if anything other than
</para>
<para>
- If install finds previous versions of any configuration files, these will not
- be overwritten, and the new ones will be installed with a <quote>new</quote>
- extension. You will then need to manually update the installed configuration
- files as needed. All template files will be overwritten. If you have
- customized, local templates, you should save these first. If a previous
+ 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. 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 <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 and SuSE RPMs,
+ 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>.