Merge updated ChangeLog.
[privoxy.git] / INSTALL
1 /*********************************************************************
2  *
3  * File        :  $Source: /cvsroot/ijbswa/current/doc/source/install.sgml,v $
4  *
5  * Purpose     :  INSTALL file to help with installing from source.
6  *
7  * Copyright   :  Written by and Copyright (C) 2001-2009 the
8  *                Privoxy team. http://www.privoxy.org/
9  *
10  *                Based on the Internet Junkbuster originally written
11  *                by and Copyright (C) 1997 Anonymous Coders and 
12  *                Junkbusters Corporation.  http://www.junkbusters.com
13  *
14  *                This program is free software; you can redistribute it 
15  *                and/or modify it under the terms of the GNU General
16  *                Public License as published by the Free Software
17  *                Foundation; either version 2 of the License, or (at
18  *                your option) any later version.
19  *
20  *                This program is distributed in the hope that it will
21  *                be useful, but WITHOUT ANY WARRANTY; without even the
22  *                implied warranty of MERCHANTABILITY or FITNESS FOR A
23  *                PARTICULAR PURPOSE.  See the GNU General Public
24  *                License for more details.
25  *
26  *                The GNU General Public License should be included with
27  *                this file.  If not, you can view it at
28  *                http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
29  *                or write to the Free Software Foundation, Inc., 
30  *                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 
31  *                USA
32  *
33  *********************************************************************/
34    
35
36 -------------------------------------------------------------------------------
37
38 To build Privoxy from source, autoconf, GNU make (gmake), and, of course, a C
39 compiler like gcc are required.
40
41 When building from a source tarball, first unpack the source:
42
43  tar xzvf
44  privoxy-3.0.11-stable-src* [.tgz or .tar.gz]
45  cd privoxy-3.0.11
46
47
48 For retrieving the current CVS sources, you'll need a CVS client installed.
49 Note that sources from CVS are typically development quality, and may not be
50 stable, or well tested. To download CVS source, check the Sourceforge
51 documentation, which might give commands like:
52
53   cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login
54   cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co current
55   cd current
56
57
58 This will create a directory named current/, which will contain the source
59 tree.
60
61 You can also check out any Privoxy "branch", just exchange the current name
62 with the wanted branch name (Example: v_3_0_branch for the 3.0 cvs tree).
63
64 It is also strongly recommended to not run Privoxy as root. You should
65 configure/install/run Privoxy as an unprivileged user, preferably by creating a
66 "privoxy" user and group just for this purpose. See your local documentation
67 for the correct command line to do add new users and groups (something like
68 adduser, but the command syntax may vary from platform to platform).
69
70 /etc/passwd might then look like:
71
72   privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell
73
74
75 And then /etc/group, like:
76
77   privoxy:*:7777:
78
79
80 Some binary packages may do this for you.
81
82 Then, to build from either unpacked tarball or CVS source:
83
84  autoheader
85  autoconf
86  ./configure      # (--help to see options)
87  make             # (the make from GNU, sometimes called gmake)
88  su               # Possibly required
89  make -n install  # (to see where all the files will go)
90  make -s install  # (to really install, -s to silence output)
91
92
93 Using GNU make, you can have the first four steps automatically done for you by
94 just typing:
95
96   make
97
98
99 in the freshly downloaded or unpacked source directory.
100
101 To build an executable with security enhanced features so that users cannot
102 easily bypass the proxy (e.g. "Go There Anyway"), or alter their own
103 configurations, configure like this:
104
105  ./configure  --disable-toggle  --disable-editor  --disable-force
106
107
108 Then build as above. In Privoxy 3.0.7 and later, all of these options can also
109 be disabled through the configuration file.
110
111 WARNING: If installing as root, the install will fail unless a non-root user or
112 group is specified, or a privoxy user and group already exist on the system. If
113 a non-root user is specified, and no group, then the installation will try to
114 also use a group of the same name as "user". If a group is specified (and no
115 user), then the support files will be installed as writable by that group, and
116 owned by the user running the installation.
117
118 configure accepts --with-user and --with-group options for setting user and
119 group ownership of the configuration files (which need to be writable by the
120 daemon). The specified user must already exist. When starting Privoxy, it must
121 be run as this same user to insure write access to configuration and log files!
122
123 Alternately, you can specify user and group on the make command line, but be
124 sure both already exist:
125
126  make -s install  USER=privoxy GROUP=privoxy
127
128
129 The default installation path for make install is /usr/local. This may of
130 course be customized with the various ./configure path options. If you are
131 doing an install to anywhere besides /usr/local, be sure to set the appropriate
132 paths with the correct configure options (./configure --help). Non-privileged
133 users must of course have write access permissions to wherever the target
134 installation is going.
135
136 If you do install to /usr/local, the install will use sysconfdir=$prefix/etc/
137 privoxy by default. All other destinations, and the direct usage of
138 --sysconfdir flag behave like normal, i.e. will not add the extra privoxy
139 directory. This is for a safer install, as there may already exist another
140 program that uses a file with the "config" name, and thus makes /usr/local/etc
141 cleaner.
142
143 If installing to /usr/local, the documentation will go by default to $prefix/
144 share/doc. But if this directory doesn't exist, it will then try $prefix/doc
145 and install there before creating a new $prefix/share/doc just for Privoxy.
146
147 Again, if the installs goes to /usr/local, the localstatedir (ie: var/) will
148 default to /var instead of $prefix/var so the logs will go to /var/log/privoxy
149 /, and the pid file will be created in /var/run/privoxy.pid.
150
151 make install will attempt to set the correct values in config (main
152 configuration file). You should check this to make sure all values are correct.
153 If appropriate, an init script will be installed, but it is up to the user to
154 determine how and where to start Privoxy. The init script should be checked for
155 correct paths and values, if anything other than a default install is done.
156
157 If install finds previous versions of local configuration files, most of these
158 will not be overwritten, and the new ones will be installed with a "new"
159 extension. default.action and default.filter will be overwritten. You will then
160 need to manually update the other installed configuration files as needed. The
161 default template files will be overwritten. If you have customized, local
162 templates, these should be stored safely in a separate directory and defined in
163 config by the "templdir" directive. It is of course wise to always back-up any
164 important configuration files "just in case". If a previous version of Privoxy
165 is already running, you will have to restart it manually.
166
167 For more detailed instructions on how to build Redhat RPMs, Windows
168 self-extracting installers, building on platforms with special requirements
169 etc, please consult the developer manual.
170
171 The simplest command line to start Privoxy is $path/privoxy --user=privoxy
172 $path/etc/privoxy/config. See privoxy --usage, or the man page, for other
173 options, and configuration.
174