options.h revision 1.1.1.5
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 1.4 kit.
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/*
19 * CVS provides the most features when used in conjunction with the Version-5
20 * release of RCS.  Thus, it is the default.  This also assumes that GNU diff
21 * Version-1.15 is being used as well -- you will have to configure your RCS
22 * V5 release separately to make this the case. If you do not have RCS V5 and
23 * GNU diff V1.15, comment out this define. You should not try mixing and
24 * matching other combinations of these tools.
25 */
26#ifndef HAVE_RCS5
27#define	HAVE_RCS5
28#endif
29
30/*
31 * For portability and heterogeneity reasons, CVS is shipped by default using
32 * my own text-file version of the ndbm database library in the src/myndbm.c
33 * file.  If you want better performance and are not concerned about
34 * heterogeneous hosts accessing your modules file, turn this option off.
35 */
36#ifndef MY_NDBM
37#define	MY_NDBM
38#endif
39
40/*
41 * The "diff" program to execute when creating patch output.  This "diff"
42 * must support the "-c" option for context diffing.  Specify a full
43 * pathname if your site wants to use a particular diff.  If you are
44 * using the GNU version of diff (version 1.15 or later), this should
45 * be "diff -a".
46 *
47 * NOTE: this program is only used for the ``patch'' sub-command (and
48 * for ``update'' if you are using the server).  The other commands
49 * use rcsdiff which will use whatever version of diff was specified
50 * when rcsdiff was built on your system.
51 */
52
53#ifndef DIFF
54#define	DIFF	"diff"
55#endif
56
57/*
58 * The "grep" program to execute when checking to see if a merged file had
59 * any conflicts.  This "grep" must support the "-s" option and a standard
60 * regular expression as an argument.  Specify a full pathname if your site
61 * wants to use a particular grep.
62 */
63
64#ifndef GREP
65#define GREP "grep"
66#endif
67
68/*
69 * The "patch" program to run when using the CVS server and accepting
70 * patches across the network.  Specify a full pathname if your site
71 * wants to use a particular patch.
72 *
73 * We call this "cvspatch" because of reports of a native OS/2 "patch"
74 * program that does not behave the way CVS expects.  So OS/2 users
75 * should get a GNU patch and call it "cvspatch.exe".
76 */
77#ifndef PATCH_PROGRAM
78#define PATCH_PROGRAM	"cvspatch"
79#endif
80
81/*
82 * By default, RCS programs are executed with the shell or through execlp(),
83 * so the user's PATH environment variable is searched.  If you'd like to
84 * bind all RCS programs to a certain directory (perhaps one not in most
85 * people's PATH) then set the default in RCSBIN_DFLT.  Note that setting
86 * this here will cause all RCS programs to be executed from this directory,
87 * unless the user overrides the default with the RCSBIN environment variable
88 * or the "-b" option to CVS.
89 *
90 * If you use the password-authenticating server, then you need to
91 * make sure that the server can find the RCS programs to invoke them.
92 * The authenticating server starts out running as root, and then
93 * switches to run as the appropriate user once authentication is
94 * complete.  But no actual shell is ever started by that user, so the
95 * PATH environment variable may not contain the directory with the
96 * RCS binaries, even though if that user logged in normally, PATH
97 * would include the directory.
98 *
99 * One way to solve this problem is to set RCSBIN_DFLT here.  An
100 * alternative is to make sure that root has the right directory in
101 * its path already.  Another, probably better alternative is to
102 * specify -b in /etc/inetd.conf.
103 *
104 * This define should be either the empty string ("") or a full pathname to the
105 * directory containing all the installed programs from the RCS distribution.
106 */
107#ifndef RCSBIN_DFLT
108#define	RCSBIN_DFLT	""
109#endif
110
111/* Directory used for storing temporary files, if not overridden by
112   environment variables or the -T global option.  There should be little
113   need to change this (-T is a better mechanism if you need to use a
114   different directory for temporary files).  */
115#ifndef TMPDIR_DFLT
116#define	TMPDIR_DFLT	"c:\\temp"
117#endif
118
119/*
120 * The default editor to use, if one does not specify the "-e" option to cvs,
121 * or does not have an EDITOR environment variable.  I set this to just "vi",
122 * and use the shell to find where "vi" actually is.  This allows sites with
123 * /usr/bin/vi or /usr/ucb/vi to work equally well (assuming that your PATH
124 * is reasonable).
125 *
126 * The notepad program seems to be Windows NT's bare-bones text editor.
127 */
128#ifndef EDITOR_DFLT
129#define	EDITOR_DFLT	"notepad"
130#endif
131
132/*
133 * The default umask to use when creating or otherwise setting file or
134 * directory permissions in the repository.  Must be a value in the
135 * range of 0 through 0777.  For example, a value of 002 allows group
136 * rwx access and world rx access; a value of 007 allows group rwx
137 * access but no world access.  This value is overridden by the value
138 * of the CVSUMASK environment variable, which is interpreted as an
139 * octal number.
140 */
141#ifndef UMASK_DFLT
142#define	UMASK_DFLT	002
143#endif
144
145/*
146 * The cvs admin command is restricted to the members of the group
147 * CVS_ADMIN_GROUP.  If this group does not exist, all users are
148 * allowed to run cvs admin.  To disable the cvs admin for all users,
149 * create an empty group CVS_ADMIN_GROUP.  To disable access control for
150 * cvs admin, comment out the define below.
151 *
152 * Under Windows NT and OS/2, this must not be used because it tries
153 * to include <grp.h>.
154 */
155#ifdef CVS_ADMIN_GROUP
156/* #define CVS_ADMIN_GROUP "cvsadmin" */
157#endif
158
159/*
160 * The Repository file holds the path to the directory within the source
161 * repository that contains the RCS ,v files for each CVS working directory.
162 * This path is either a full-path or a path relative to CVSROOT.
163 *
164 * The only advantage that I can see to having a relative path is that One can
165 * change the physical location of the master source repository, change one's
166 * CVSROOT environment variable, and CVS will work without problems.  I
167 * recommend using full-paths.
168 */
169#ifndef RELATIVE_REPOS
170/* #define	RELATIVE_REPOS	 */
171#endif
172
173/*
174 * When committing or importing files, you must enter a log message.
175 * Normally, you can do this either via the -m flag on the command line or an
176 * editor will be started for you.  If you like to use logging templates (the
177 * rcsinfo file within the $CVSROOT/CVSROOT directory), you might want to
178 * force people to use the editor even if they specify a message with -m.
179 * Enabling FORCE_USE_EDITOR will cause the -m message to be appended to the
180 * temp file when the editor is started.
181 */
182#ifndef FORCE_USE_EDITOR
183/* #define 	FORCE_USE_EDITOR */
184#endif
185
186/*
187 * When locking the repository, some sites like to remove locks and assume
188 * the program that created them went away if the lock has existed for a long
189 * time.  This used to be the default for previous versions of CVS.  CVS now
190 * attempts to be much more robust, so lock files should not be left around
191 * by mistake. The new behaviour will never remove old locks (they must now
192 * be removed by hand).  Enabling CVS_FUDGELOCKS will cause CVS to remove
193 * locks that are older than CVSLCKAGE seconds.
194 * Use of this option is NOT recommended.
195 */
196#ifndef CVS_FUDGELOCKS
197/* #define CVS_FUDGELOCKS */
198#endif
199
200/*
201 * When committing a permanent change, CVS and RCS make a log entry of
202 * who committed the change.  If you are committing the change logged in
203 * as "root" (not under "su" or other root-priv giving program), CVS/RCS
204 * cannot determine who is actually making the change.
205 *
206 * As such, by default, CVS disallows changes to be committed by users
207 * logged in as "root".  You can disable this option by commenting
208 * out the lines below.
209 *
210 * Under Windows NT, privileges are associated with groups, not users,
211 * so the case in which someone has logged in as root does not occur.
212 * Thus, there is no need for this hack.
213 *
214 * todo: I don't know about OS/2 yet.  -kff
215 */
216#undef CVS_BADROOT
217
218/*
219 * The "cvs diff" command accepts all the single-character options that GNU
220 * diff (1.15) accepts.  Except -D.  GNU diff uses -D as a way to put
221 * cpp-style #define's around the output differences.  CVS, by default, uses
222 * -D to specify a free-form date (like "cvs diff -D '1 week ago'").  If
223 * you would prefer that the -D option of "cvs diff" work like the GNU diff
224 * option, then comment out this define.
225 */
226#ifndef CVS_DIFFDATE
227#define	CVS_DIFFDATE
228#endif
229
230/*
231 * define this to enable the SETXID support (see FAQ 4D.13)
232 * [ We have no such thing under OS/2, so far as I know. ]
233 */
234#undef SETXID_SUPPORT
235
236/*
237 * Under OS/2, we build the authenticated client by default.
238 */
239#define AUTH_CLIENT_SUPPORT 1
240
241/* End of CVS configuration section */
242
243/*
244 * Externs that are included in libc, but are used frequently enough to
245 * warrant defining here.
246 */
247#ifndef STDC_HEADERS
248extern void exit ();
249#endif
250
251#ifndef getwd
252extern char *getwd ();
253#endif
254
255#ifdef AUTH_CLIENT_SUPPORT
256char *getpass (char *passbuf);
257#endif /* AUTH_CLIENT_SUPPORT */
258