xref: /openbsd/gnu/usr.bin/cvs/emx/options.h (revision 2770ece5)
1*2770ece5Stholo /* src/options.h.  Generated automatically by configure.  */
2*2770ece5Stholo /*
3*2770ece5Stholo  * Copyright (c) 1992, Brian Berliner and Jeff Polk
4*2770ece5Stholo  * Copyright (c) 1989-1992, Brian Berliner
5*2770ece5Stholo  *
6*2770ece5Stholo  * You may distribute under the terms of the GNU General Public License as
7*2770ece5Stholo  * specified in the README file that comes with the CVS 1.4 kit.
8*2770ece5Stholo  *
9*2770ece5Stholo  * This file holds (most of) the configuration tweaks that can be made to
10*2770ece5Stholo  * customize CVS for your site.  CVS comes configured for a typical SunOS 4.x
11*2770ece5Stholo  * environment.  The comments for each configurable item are intended to be
12*2770ece5Stholo  * self-explanatory.  All #defines are tested first to see if an over-riding
13*2770ece5Stholo  * option was specified on the "make" command line.
14*2770ece5Stholo  *
15*2770ece5Stholo  * If special libraries are needed, you will have to edit the Makefile.in file
16*2770ece5Stholo  * or the configure script directly.  Sorry.
17*2770ece5Stholo  */
18*2770ece5Stholo 
19*2770ece5Stholo /*
20*2770ece5Stholo  * CVS provides the most features when used in conjunction with the
21*2770ece5Stholo  * Version-5 release of RCS.  Thus, it is the default.  This also
22*2770ece5Stholo  * assumes that GNU diff Version-1.15 is being used as well -- you
23*2770ece5Stholo  * will have to configure your RCS V5 release separately to make this
24*2770ece5Stholo  * the case. If you do not have RCS V5 and GNU diff V1.15, comment out
25*2770ece5Stholo  * this define. You should not try mixing and matching other
26*2770ece5Stholo  * combinations of these tools.
27*2770ece5Stholo  */
28*2770ece5Stholo #ifndef HAVE_RCS5
29*2770ece5Stholo #define	HAVE_RCS5
30*2770ece5Stholo #endif
31*2770ece5Stholo 
32*2770ece5Stholo /*
33*2770ece5Stholo  * For portability and heterogeneity reasons, CVS is shipped by
34*2770ece5Stholo  * default using my own text-file version of the ndbm database library
35*2770ece5Stholo  * in the src/myndbm.c file.  If you want better performance and are
36*2770ece5Stholo  * not concerned about heterogeneous hosts accessing your modules
37*2770ece5Stholo  * file, turn this option off.
38*2770ece5Stholo  */
39*2770ece5Stholo #ifndef MY_NDBM
40*2770ece5Stholo #define	MY_NDBM
41*2770ece5Stholo #endif
42*2770ece5Stholo 
43*2770ece5Stholo /*
44*2770ece5Stholo  * The "diff" program to execute when creating patch output.  This
45*2770ece5Stholo  * "diff" must support the "-c" option for context diffing.  Specify a
46*2770ece5Stholo  * full pathname if your site wants to use a particular diff.  Note
47*2770ece5Stholo  * that unlike the diff used with RCS, you *must not* supply -a here
48*2770ece5Stholo  * (doing so will cause the server to generate patches which patch
49*2770ece5Stholo  * cannot handle in some cases).
50*2770ece5Stholo  *
51*2770ece5Stholo  * NOTE: this program is only used for the ``patch'' sub-command (and
52*2770ece5Stholo  * for ``update'' if you are using the server).  The other commands
53*2770ece5Stholo  * use rcsdiff which will use whatever version of diff was specified
54*2770ece5Stholo  * when rcsdiff was built on your system.
55*2770ece5Stholo  */
56*2770ece5Stholo #ifndef DIFF
57*2770ece5Stholo #define	DIFF	"diff"
58*2770ece5Stholo #endif
59*2770ece5Stholo 
60*2770ece5Stholo /*
61*2770ece5Stholo  * The "patch" program to run when using the CVS server and accepting
62*2770ece5Stholo  * patches across the network.  Specify a full pathname if your site
63*2770ece5Stholo  * wants to use a particular patch.
64*2770ece5Stholo  */
65*2770ece5Stholo #ifndef PATCH_PROGRAM
66*2770ece5Stholo #define PATCH_PROGRAM	"patch"
67*2770ece5Stholo #endif
68*2770ece5Stholo 
69*2770ece5Stholo /*
70*2770ece5Stholo  * By default, RCS programs are executed with the shell or through
71*2770ece5Stholo  * execlp(), so the user's PATH environment variable is searched.  If
72*2770ece5Stholo  * you'd like to bind all RCS programs to a certain directory (perhaps
73*2770ece5Stholo  * one not in most people's PATH) then set the default in RCSBIN_DFLT.
74*2770ece5Stholo  * Note that setting this here will cause all RCS programs to be
75*2770ece5Stholo  * executed from this directory, unless the user overrides the default
76*2770ece5Stholo  * with the RCSBIN environment variable or the "-b" option to CVS.
77*2770ece5Stholo  *
78*2770ece5Stholo  * If you use the password-authenticating server, then you need to
79*2770ece5Stholo  * make sure that the server can find the RCS programs to invoke them.
80*2770ece5Stholo  * The authenticating server starts out running as root, and then
81*2770ece5Stholo  * switches to run as the appropriate user once authentication is
82*2770ece5Stholo  * complete.  But no actual shell is ever started by that user, so the
83*2770ece5Stholo  * PATH environment variable may not contain the directory with the
84*2770ece5Stholo  * RCS binaries, even though if that user logged in normally, PATH
85*2770ece5Stholo  * would include the directory.
86*2770ece5Stholo  *
87*2770ece5Stholo  * One way to solve this problem is to set RCSBIN_DFLT here.  An
88*2770ece5Stholo  * alternative is to make sure that root has the right directory in
89*2770ece5Stholo  * its path already.  Another, probably better alternative is to
90*2770ece5Stholo  * specify -b in /etc/inetd.conf.
91*2770ece5Stholo  *
92*2770ece5Stholo  * You may also have to set RCSBIN_DFLT here if there's no global
93*2770ece5Stholo  * start-up script run for users by rshd and your RCS programs are not
94*2770ece5Stholo  * in a directory in the default PATH assigned by rshd.
95*2770ece5Stholo  *
96*2770ece5Stholo  * This define should be either the empty string ("") or a full
97*2770ece5Stholo  * pathname to the directory containing all the installed programs
98*2770ece5Stholo  * from the RCS distribution.
99*2770ece5Stholo  */
100*2770ece5Stholo #ifndef RCSBIN_DFLT
101*2770ece5Stholo #define	RCSBIN_DFLT	""
102*2770ece5Stholo #endif
103*2770ece5Stholo 
104*2770ece5Stholo /* Directory used for storing temporary files, if not overridden by
105*2770ece5Stholo    environment variables or the -T global option.  There should be little
106*2770ece5Stholo    need to change this (-T is a better mechanism if you need to use a
107*2770ece5Stholo    different directory for temporary files).  */
108*2770ece5Stholo #ifndef TMPDIR_DFLT
109*2770ece5Stholo #define	TMPDIR_DFLT	"/tmp"
110*2770ece5Stholo #endif
111*2770ece5Stholo 
112*2770ece5Stholo /*
113*2770ece5Stholo  * The default editor to use, if one does not specify the "-e" option
114*2770ece5Stholo  * to cvs, or does not have an EDITOR environment variable.  I set
115*2770ece5Stholo  * this to just "vi", and use the shell to find where "vi" actually
116*2770ece5Stholo  * is.  This allows sites with /usr/bin/vi or /usr/ucb/vi to work
117*2770ece5Stholo  * equally well (assuming that your PATH is reasonable).
118*2770ece5Stholo  */
119*2770ece5Stholo #ifndef EDITOR_DFLT
120*2770ece5Stholo #define	EDITOR_DFLT	"e"
121*2770ece5Stholo #endif
122*2770ece5Stholo 
123*2770ece5Stholo /*
124*2770ece5Stholo  * The default umask to use when creating or otherwise setting file or
125*2770ece5Stholo  * directory permissions in the repository.  Must be a value in the
126*2770ece5Stholo  * range of 0 through 0777.  For example, a value of 002 allows group
127*2770ece5Stholo  * rwx access and world rx access; a value of 007 allows group rwx
128*2770ece5Stholo  * access but no world access.  This value is overridden by the value
129*2770ece5Stholo  * of the CVSUMASK environment variable, which is interpreted as an
130*2770ece5Stholo  * octal number.
131*2770ece5Stholo  */
132*2770ece5Stholo #ifndef UMASK_DFLT
133*2770ece5Stholo #define	UMASK_DFLT	002
134*2770ece5Stholo #endif
135*2770ece5Stholo 
136*2770ece5Stholo /*
137*2770ece5Stholo  * The cvs admin command is restricted to the members of the group
138*2770ece5Stholo  * CVS_ADMIN_GROUP.  If this group does not exist, all users are
139*2770ece5Stholo  * allowed to run cvs admin.  To disable the cvs admin for all users,
140*2770ece5Stholo  * create an empty group CVS_ADMIN_GROUP.  To disable access control
141*2770ece5Stholo  * for cvs admin, comment out the define below.
142*2770ece5Stholo  */
143*2770ece5Stholo #ifndef CVS_ADMIN_GROUP
144*2770ece5Stholo #define CVS_ADMIN_GROUP "cvsadmin"
145*2770ece5Stholo #endif
146*2770ece5Stholo 
147*2770ece5Stholo /*
148*2770ece5Stholo  * The Repository file holds the path to the directory within the
149*2770ece5Stholo  * source repository that contains the RCS ,v files for each CVS
150*2770ece5Stholo  * working directory.  This path is either a full-path or a path
151*2770ece5Stholo  * relative to CVSROOT.
152*2770ece5Stholo  *
153*2770ece5Stholo  * The only advantage that I can see to having a relative path is that
154*2770ece5Stholo  * one can change the physical location of the master source
155*2770ece5Stholo  * repository, change one's CVSROOT environment variable, and CVS will
156*2770ece5Stholo  * work without problems.  I recommend using full-paths.
157*2770ece5Stholo  */
158*2770ece5Stholo #ifndef RELATIVE_REPOS
159*2770ece5Stholo /* #define	RELATIVE_REPOS	 */
160*2770ece5Stholo #endif
161*2770ece5Stholo 
162*2770ece5Stholo /*
163*2770ece5Stholo  * When committing or importing files, you must enter a log message.
164*2770ece5Stholo  * Normally, you can do this either via the -m flag on the command
165*2770ece5Stholo  * line or an editor will be started for you.  If you like to use
166*2770ece5Stholo  * logging templates (the rcsinfo file within the $CVSROOT/CVSROOT
167*2770ece5Stholo  * directory), you might want to force people to use the editor even
168*2770ece5Stholo  * if they specify a message with -m.  Enabling FORCE_USE_EDITOR will
169*2770ece5Stholo  * cause the -m message to be appended to the temp file when the
170*2770ece5Stholo  * editor is started.
171*2770ece5Stholo  */
172*2770ece5Stholo #ifndef FORCE_USE_EDITOR
173*2770ece5Stholo /* #define 	FORCE_USE_EDITOR */
174*2770ece5Stholo #endif
175*2770ece5Stholo 
176*2770ece5Stholo /*
177*2770ece5Stholo  * When locking the repository, some sites like to remove locks and
178*2770ece5Stholo  * assume the program that created them went away if the lock has
179*2770ece5Stholo  * existed for a long time.  This used to be the default for previous
180*2770ece5Stholo  * versions of CVS.  CVS now attempts to be much more robust, so lock
181*2770ece5Stholo  * files should not be left around by mistake. The new behaviour will
182*2770ece5Stholo  * never remove old locks (they must now be removed by hand).
183*2770ece5Stholo  * Enabling CVS_FUDGELOCKS will cause CVS to remove locks that are
184*2770ece5Stholo  * older than CVSLCKAGE seconds.
185*2770ece5Stholo  *
186*2770ece5Stholo  * Use of this option is NOT recommended.
187*2770ece5Stholo  */
188*2770ece5Stholo #ifndef CVS_FUDGELOCKS
189*2770ece5Stholo /* #define CVS_FUDGELOCKS */
190*2770ece5Stholo #endif
191*2770ece5Stholo 
192*2770ece5Stholo /*
193*2770ece5Stholo  * When committing a permanent change, CVS and RCS make a log entry of
194*2770ece5Stholo  * who committed the change.  If you are committing the change logged
195*2770ece5Stholo  * in as "root" (not under "su" or other root-priv giving program),
196*2770ece5Stholo  * CVS/RCS cannot determine who is actually making the change.
197*2770ece5Stholo  *
198*2770ece5Stholo  * As such, by default, CVS disallows changes to be committed by users
199*2770ece5Stholo  * logged in as "root".  You can disable this option by commenting out
200*2770ece5Stholo  * the lines below.
201*2770ece5Stholo  */
202*2770ece5Stholo #ifdef CVS_BADROOT
203*2770ece5Stholo #undef	CVS_BADROOT
204*2770ece5Stholo #endif
205*2770ece5Stholo 
206*2770ece5Stholo /* Define this to enable the SETXID support.  The way to use this is
207*2770ece5Stholo    to create a group with no users in it (except perhaps cvs
208*2770ece5Stholo    administrators), set the cvs executable to setgid that group, chown
209*2770ece5Stholo    all the repository files to that group, and change all directory
210*2770ece5Stholo    permissions in the repository to 770.  The last person to modify a
211*2770ece5Stholo    file will own it, but as long as directory permissions are set
212*2770ece5Stholo    right that won't matter.  You'll need a system which inherits file
213*2770ece5Stholo    groups from the parent directory (WARNING: using the wrong kind of
214*2770ece5Stholo    system (I think Solaris 2.4 is the wrong kind, for example) will
215*2770ece5Stholo    create a security hole!  You will receive no warning other than the
216*2770ece5Stholo    fact that files in the working directory are owned by the group
217*2770ece5Stholo    which cvs is setgid to).
218*2770ece5Stholo 
219*2770ece5Stholo    One security hole which has been reported is that setgid is not
220*2770ece5Stholo    turned off when the editor is invoked--most editors provide a way
221*2770ece5Stholo    to execute a shell, or the user can specify an editor (this one is
222*2770ece5Stholo    large enough to drive a truck through).  Don't assume that the
223*2770ece5Stholo    holes described here are the only ones; I don't know how carefully
224*2770ece5Stholo    SETXID has been inspected for security holes.  */
225*2770ece5Stholo #ifndef SETXID_SUPPORT
226*2770ece5Stholo /* #define SETXID_SUPPORT */
227*2770ece5Stholo #endif
228*2770ece5Stholo 
229*2770ece5Stholo /*
230*2770ece5Stholo  * Should we build the password-authenticating client?  Whether to
231*2770ece5Stholo  * include the password-authenticating _server_, on the other hand, is
232*2770ece5Stholo  * set in config.h.
233*2770ece5Stholo  */
234*2770ece5Stholo #ifdef CLIENT_SUPPORT
235*2770ece5Stholo #define AUTH_CLIENT_SUPPORT 1
236*2770ece5Stholo #endif
237*2770ece5Stholo 
238*2770ece5Stholo /*
239*2770ece5Stholo  * If you are working with a large remote repository and a 'cvs
240*2770ece5Stholo  * checkout' is swamping your network and memory, define these to
241*2770ece5Stholo  * enable flow control.  You will end up with even less probability of
242*2770ece5Stholo  * a consistent checkout (see Concurrency in cvs.texinfo), but CVS
243*2770ece5Stholo  * doesn't try to guarantee that anyway.  The master server process
244*2770ece5Stholo  * will monitor how far it is getting behind, if it reaches the high
245*2770ece5Stholo  * water mark, it will signal the child process to stop generating
246*2770ece5Stholo  * data when convenient (ie: no locks are held, currently at the
247*2770ece5Stholo  * beginning of a new directory).  Once the buffer has drained
248*2770ece5Stholo  * sufficiently to reach the low water mark, it will be signalled to
249*2770ece5Stholo  * start again.  You may override the default hi/low watermarks here
250*2770ece5Stholo  * too.
251*2770ece5Stholo  */
252*2770ece5Stholo #define SERVER_FLOWCONTROL
253*2770ece5Stholo #define SERVER_HI_WATER (2 * 1024 * 1024)
254*2770ece5Stholo #define SERVER_LO_WATER (1 * 1024 * 1024)
255*2770ece5Stholo 
256*2770ece5Stholo /* End of CVS configuration section */
257*2770ece5Stholo 
258*2770ece5Stholo /*
259*2770ece5Stholo  * Externs that are included in libc, but are used frequently enough
260*2770ece5Stholo  * to warrant defining here.
261*2770ece5Stholo  */
262*2770ece5Stholo #ifndef STDC_HEADERS
263*2770ece5Stholo extern void exit ();
264*2770ece5Stholo #endif
265*2770ece5Stholo 
266*2770ece5Stholo #ifndef getwd
267*2770ece5Stholo extern char *getwd ();
268*2770ece5Stholo #endif
269*2770ece5Stholo 
270