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