xref: /openbsd/gnu/usr.bin/cvs/src/options.h.in (revision c71bc7e2)
1/*
2 * Copyright (c) 1992, Brian Berliner and Jeff Polk
3 * Copyright (c) 1989-1992, Brian Berliner
4 *
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.
7 *
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.
13 *
14 * If special libraries are needed, you will have to edit the Makefile.in file
15 * or the configure script directly.  Sorry.
16 */
17
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.  */
23
24#ifndef MY_NDBM
25#define	MY_NDBM
26#endif
27
28/*
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.
32 */
33#ifndef PATCH_PROGRAM
34#define PATCH_PROGRAM	"patch"
35#endif
36
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).  */
41#ifndef TMPDIR_DFLT
42#define	TMPDIR_DFLT	"/tmp"
43#endif
44
45/*
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).
51 */
52#ifndef EDITOR_DFLT
53#define	EDITOR_DFLT	"vi"
54#endif
55
56/*
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
63 * octal number.
64 */
65#ifndef UMASK_DFLT
66#define	UMASK_DFLT	002
67#endif
68
69/*
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.
75 */
76#ifndef CVS_ADMIN_GROUP
77#define CVS_ADMIN_GROUP "cvsadmin"
78#endif
79
80/*
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.
85 *
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.
90 *
91 * Therefore, RELATIVE_REPOS is now the default.  In the future, this
92 * is likely to disappear entirely as a compile-time (or other) option,
93 * so if you have other software which relies on absolute pathnames,
94 * update them.
95 */
96#define RELATIVE_REPOS 1
97
98/*
99 * When committing or importing files, you must enter a log message.
100 * Normally, you can do this either via the -m flag on the command
101 * line or an editor will be started for you.  If you like to use
102 * logging templates (the rcsinfo file within the $CVSROOT/CVSROOT
103 * directory), you might want to force people to use the editor even
104 * if they specify a message with -m.  Enabling FORCE_USE_EDITOR will
105 * cause the -m message to be appended to the temp file when the
106 * editor is started.
107 */
108#ifndef FORCE_USE_EDITOR
109/* #define 	FORCE_USE_EDITOR */
110#endif
111
112/*
113 * When locking the repository, some sites like to remove locks and
114 * assume the program that created them went away if the lock has
115 * existed for a long time.  This used to be the default for previous
116 * versions of CVS.  CVS now attempts to be much more robust, so lock
117 * files should not be left around by mistake. The new behaviour will
118 * never remove old locks (they must now be removed by hand).
119 * Enabling CVS_FUDGELOCKS will cause CVS to remove locks that are
120 * older than CVSLCKAGE seconds.
121 *
122 * Use of this option is NOT recommended.
123 */
124#ifndef CVS_FUDGELOCKS
125/* #define CVS_FUDGELOCKS */
126#endif
127
128/*
129 * When committing a permanent change, CVS and RCS make a log entry of
130 * who committed the change.  If you are committing the change logged
131 * in as "root" (not under "su" or other root-priv giving program),
132 * CVS/RCS cannot determine who is actually making the change.
133 *
134 * As such, by default, CVS disallows changes to be committed by users
135 * logged in as "root".  You can disable this option by commenting out
136 * the lines below.
137 */
138#ifndef CVS_BADROOT
139#define	CVS_BADROOT
140#endif
141
142/* Define this to enable the SETXID support.  The way to use this is
143   to create a group with no users in it (except perhaps cvs
144   administrators), set the cvs executable to setgid that group, chown
145   all the repository files to that group, and change all directory
146   permissions in the repository to 770.  The last person to modify a
147   file will own it, but as long as directory permissions are set
148   right that won't matter.  You'll need a system which inherits file
149   groups from the parent directory (WARNING: using the wrong kind of
150   system (I think Solaris 2.4 is the wrong kind, for example) will
151   create a security hole!  You will receive no warning other than the
152   fact that files in the working directory are owned by the group
153   which cvs is setgid to).
154
155   One security hole which has been reported is that setgid is not
156   turned off when the editor is invoked--most editors provide a way
157   to execute a shell, or the user can specify an editor (this one is
158   large enough to drive a truck through).  Don't assume that the
159   holes described here are the only ones; I don't know how carefully
160   SETXID has been inspected for security holes.  */
161#ifndef SETXID_SUPPORT
162/* #define SETXID_SUPPORT */
163#endif
164
165/*
166 * Should we build the password-authenticating client?  Whether to
167 * include the password-authenticating _server_, on the other hand, is
168 * set in config.h.
169 */
170#ifdef CLIENT_SUPPORT
171#define AUTH_CLIENT_SUPPORT 1
172#endif
173
174/*
175 * If you are working with a large remote repository and a 'cvs
176 * checkout' is swamping your network and memory, define these to
177 * enable flow control.  You will end up with even less probability of
178 * a consistent checkout (see Concurrency in cvs.texinfo), but CVS
179 * doesn't try to guarantee that anyway.  The master server process
180 * will monitor how far it is getting behind, if it reaches the high
181 * water mark, it will signal the child process to stop generating
182 * data when convenient (ie: no locks are held, currently at the
183 * beginning of a new directory).  Once the buffer has drained
184 * sufficiently to reach the low water mark, it will be signalled to
185 * start again.  You may override the default hi/low watermarks here
186 * too.
187 */
188#define SERVER_FLOWCONTROL
189#define SERVER_HI_WATER (2 * 1024 * 1024)
190#define SERVER_LO_WATER (1 * 1024 * 1024)
191
192/* End of CVS configuration section */
193
194/*
195 * Externs that are included in libc, but are used frequently enough
196 * to warrant defining here.
197 */
198#ifndef STDC_HEADERS
199extern void exit ();
200#endif
201