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