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