Update to the state of the official 3.0.5-beta-2 Debian package.
[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-2006 the SourceForge
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/copyleft/gpl.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 privoxy-3.0.5-beta-src* [.tgz or .tar.gz]                            
44  cd privoxy-3.0.5-beta                                                         
45
46 For retrieving the current CVS sources, you'll need a CVS client installed.
47 Note that sources from CVS are typicially development quality, and may not be
48 stable, or well tested. To download CVS source, check the Sourceforge
49 documentation, which might give commands like:
50
51   cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login          
52   cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co current 
53   cd current                                                                         
54
55 This will create a directory named current/, which will contain the source
56 tree.
57
58 You can also check out any Privoxy "branch", just exchange the current name
59 with the wanted branch name (Example: v_3_0_branch for the 3.0 cvs tree).
60
61 It is also strongly recommended to not run Privoxy as root, and instead it is
62 suggested to create a "privoxy" user and group for this purpose. See your local
63 documentation for the correct command line to do this.
64
65 /etc/passwd might then look like:
66
67   privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell                         
68
69 And then /etc/group, like:
70
71   privoxy:*:7777:                                                              
72
73 Some binary packages may do this for you.
74
75 Then, to build from either unpacked tarball or CVS source:
76
77  autoheader                                                                    
78  autoconf                                                                      
79  ./configure      # (--help to see options)                                    
80  make             # (the make from GNU, sometimes called gmake)                
81  su                                                                            
82  make -n install  # (to see where all the files will go)                       
83  make -s install  # (to really install, -s to silence output)                  
84
85 If you have GNU make, you can have the first four steps automatically done for
86 you by just typing:
87
88   make                                                                         
89
90 in the freshly downloaded or unpacked source directory.
91
92 WARNING: If installing as root, the install will fail unless a non-root user or
93 group is specified, or a privoxy user and group already exist on the system. If
94 a non-root user is specified, and no group, then the installation will try to
95 also use a group of the same name as "user". If a group is specified (and no
96 user), then the support files will be installed as writable by that group, and
97 owned by the user running the installation.
98
99 configure accepts --with-user and --with-group options for setting user and
100 group ownership of the configuration files (which need to be writable by the
101 daemon). The specified user must already exist. When starting Privoxy, it
102 should be run as this same user to insure write access to configuration and log
103 files.
104
105 Alternately, you can specify user and group on the make command line, but be
106 sure both already exist:
107
108  make -s install  USER=privoxy GROUP=privoxy                                   
109
110 The default installation path for make install is /usr/local. This may of
111 course be customized with the various ./configure path options. If you are
112 doing a root install to anywhere else besides /usr/local, be sure to set the
113 appropriate paths with the correct configure options (./configure --help).
114
115 If you do install to /usr/local, the install will use sysconfdir=$prefix/etc/
116 privoxy by default. All other destinations, and the direct usage of
117 --sysconfdir flag behave like normal, i.e. will not add the extra privoxy
118 directory. This is for a safer install, as there may already exist another
119 program that uses a file with the "config" name, and thus makes /usr/local/etc
120 cleaner.
121
122 If installing to /usr/local, the docs will go by default to $prefix/share/doc.
123 But if this directory doesn't exist, it will then try $prefix/doc and install
124 there before creating a new $prefix/share/doc just for Privoxy.
125
126 Again, if the installs goes to /usr/local, the localstatedir (ie: var/) will
127 default to /var instead of $prefix/var so the logs will go to /var/log/privoxy
128 /, and the pid file will be created in /var/run/privoxy.pid.
129
130 make install will attempt to set the correct values in config (main
131 configuration file). You may want to check this to make sure all values are
132 correct. If appropriate, an init script will be installed, but it is up to the
133 user to determine how and where to start Privoxy. The init script should be
134 checked for correct paths and values, if anything other than a default install
135 is done.
136
137 If install finds previous versions of any local configuration files, these will
138 not be overwritten, and the new ones will be installed with a "new" extension.
139 default.action, default.filter, and standard.action will be overwritten. You
140 will then need to manually update the other installed configuration files as
141 needed. All template files will be overwritten. If you have customized, local
142 templates, you should save these first. If a previous version of Privoxy is
143 already running, you will have to restart it manually.
144
145 For more detailed instructions on how to build Redhat RPMs, Windows
146 self-extracting installers, building on platforms with special requirements
147 etc, please consult the developer manual.
148
149 The simplest command line to start Privoxy is $path/privoxy --user=privoxy
150 $path/etc/privoxy/config. See privoxy --usage, or the man page, for other
151 options, and configuration.
152