2 * Copyright (c) 1992, Brian Berliner and Jeff Polk
3 * Copyright (c) 1989-1992, Brian Berliner
5 * You may distribute under the terms of the GNU General Public License as
6 * specified in the README file that comes with the CVS source distribution.
8 * This file holds (most of) the configuration tweaks that can be made to
9 * customize CVS for your site. CVS comes configured for a typical SunOS 4.x
10 * environment. The comments for each configurable item are intended to be
11 * self-explanatory. All #defines are tested first to see if an over-riding
12 * option was specified on the "make" command line.
14 * If special libraries are needed, you will have to edit the Makefile.in file
15 * or the configure script directly. Sorry.
18 /* By default, CVS stores its modules and other such items in flat
19 text files (MY_NDBM enables this). Turning off MY_NDBM causes CVS
20 to look for a system-supplied ndbm database library and use it
21 instead. That may speed things up, but the default setting
22 generally works fine too. */
29 * The "patch" program to run when using the CVS server and accepting
30 * patches across the network. Specify a full pathname if your site
31 * wants to use a particular patch.
34 #define PATCH_PROGRAM "patch"
37 /* Directory used for storing temporary files, if not overridden by
38 environment variables or the -T global option. There should be little
39 need to change this (-T is a better mechanism if you need to use a
40 different directory for temporary files). */
42 #define TMPDIR_DFLT "/tmp"
46 * The default editor to use, if one does not specify the "-e" option
47 * to cvs, or does not have an EDITOR environment variable. I set
48 * this to just "vi", and use the shell to find where "vi" actually
49 * is. This allows sites with /usr/bin/vi or /usr/ucb/vi to work
50 * equally well (assuming that your PATH is reasonable).
53 #define EDITOR_DFLT "vi"
57 * The default umask to use when creating or otherwise setting file or
58 * directory permissions in the repository. Must be a value in the
59 * range of 0 through 0777. For example, a value of 002 allows group
60 * rwx access and world rx access; a value of 007 allows group rwx
61 * access but no world access. This value is overridden by the value
62 * of the CVSUMASK environment variable, which is interpreted as an
66 #define UMASK_DFLT 002
70 * The cvs admin command is restricted to the members of the group
71 * CVS_ADMIN_GROUP. If this group does not exist, all users are
72 * allowed to run cvs admin. To disable the cvs admin for all users,
73 * create an empty group CVS_ADMIN_GROUP. To disable access control
74 * for cvs admin, comment out the define below.
76 #ifndef CVS_ADMIN_GROUP
77 #define CVS_ADMIN_GROUP "cvsadmin"
81 * The Repository file holds the path to the directory within the
82 * source repository that contains the RCS ,v files for each CVS
83 * working directory. This path is either a full-path or a path
84 * relative to CVSROOT.
86 * The big advantage that I can see to having a relative path is that
87 * one can change the physical location of the master source
88 * repository, change the contents of CVS/Root files in your
89 * checked-out code, and CVS will work without problems.
91 * This is likely to be the default in the future, but we want to give
92 * people who may be relying on absolute pathnames time to update
93 * their scripts/software.
95 #ifndef RELATIVE_REPOS
96 /* #define RELATIVE_REPOS */
100 * When committing or importing files, you must enter a log message.
101 * Normally, you can do this either via the -m flag on the command
102 * line or an editor will be started for you. If you like to use
103 * logging templates (the rcsinfo file within the $CVSROOT/CVSROOT
104 * directory), you might want to force people to use the editor even
105 * if they specify a message with -m. Enabling FORCE_USE_EDITOR will
106 * cause the -m message to be appended to the temp file when the
109 #ifndef FORCE_USE_EDITOR
110 /* #define FORCE_USE_EDITOR */
114 * When locking the repository, some sites like to remove locks and
115 * assume the program that created them went away if the lock has
116 * existed for a long time. This used to be the default for previous
117 * versions of CVS. CVS now attempts to be much more robust, so lock
118 * files should not be left around by mistake. The new behaviour will
119 * never remove old locks (they must now be removed by hand).
120 * Enabling CVS_FUDGELOCKS will cause CVS to remove locks that are
121 * older than CVSLCKAGE seconds.
123 * Use of this option is NOT recommended.
125 #ifndef CVS_FUDGELOCKS
126 /* #define CVS_FUDGELOCKS */
130 * When committing a permanent change, CVS and RCS make a log entry of
131 * who committed the change. If you are committing the change logged
132 * in as "root" (not under "su" or other root-priv giving program),
133 * CVS/RCS cannot determine who is actually making the change.
135 * As such, by default, CVS disallows changes to be committed by users
136 * logged in as "root". You can disable this option by commenting out
143 /* Define this to enable the SETXID support. The way to use this is
144 to create a group with no users in it (except perhaps cvs
145 administrators), set the cvs executable to setgid that group, chown
146 all the repository files to that group, and change all directory
147 permissions in the repository to 770. The last person to modify a
148 file will own it, but as long as directory permissions are set
149 right that won't matter. You'll need a system which inherits file
150 groups from the parent directory (WARNING: using the wrong kind of
151 system (I think Solaris 2.4 is the wrong kind, for example) will
152 create a security hole! You will receive no warning other than the
153 fact that files in the working directory are owned by the group
154 which cvs is setgid to).
156 One security hole which has been reported is that setgid is not
157 turned off when the editor is invoked--most editors provide a way
158 to execute a shell, or the user can specify an editor (this one is
159 large enough to drive a truck through). Don't assume that the
160 holes described here are the only ones; I don't know how carefully
161 SETXID has been inspected for security holes. */
162 #ifndef SETXID_SUPPORT
163 /* #define SETXID_SUPPORT */
167 * Should we build the password-authenticating client? Whether to
168 * include the password-authenticating _server_, on the other hand, is
171 #ifdef CLIENT_SUPPORT
172 #define AUTH_CLIENT_SUPPORT 1
176 * If you are working with a large remote repository and a 'cvs
177 * checkout' is swamping your network and memory, define these to
178 * enable flow control. You will end up with even less probability of
179 * a consistent checkout (see Concurrency in cvs.texinfo), but CVS
180 * doesn't try to guarantee that anyway. The master server process
181 * will monitor how far it is getting behind, if it reaches the high
182 * water mark, it will signal the child process to stop generating
183 * data when convenient (ie: no locks are held, currently at the
184 * beginning of a new directory). Once the buffer has drained
185 * sufficiently to reach the low water mark, it will be signalled to
186 * start again. You may override the default hi/low watermarks here
189 #define SERVER_FLOWCONTROL
190 #define SERVER_HI_WATER (2 * 1024 * 1024)
191 #define SERVER_LO_WATER (1 * 1024 * 1024)
193 /* End of CVS configuration section */
196 * Externs that are included in libc, but are used frequently enough
197 * to warrant defining here.