12770ece5Stholo /* src/options.h. Generated automatically by configure. */ 22770ece5Stholo /* 32770ece5Stholo * Copyright (c) 1992, Brian Berliner and Jeff Polk 42770ece5Stholo * Copyright (c) 1989-1992, Brian Berliner 52770ece5Stholo * 62770ece5Stholo * You may distribute under the terms of the GNU General Public License as 72770ece5Stholo * specified in the README file that comes with the CVS 1.4 kit. 82770ece5Stholo * 92770ece5Stholo * This file holds (most of) the configuration tweaks that can be made to 102770ece5Stholo * customize CVS for your site. CVS comes configured for a typical SunOS 4.x 112770ece5Stholo * environment. The comments for each configurable item are intended to be 122770ece5Stholo * self-explanatory. All #defines are tested first to see if an over-riding 132770ece5Stholo * option was specified on the "make" command line. 142770ece5Stholo * 152770ece5Stholo * If special libraries are needed, you will have to edit the Makefile.in file 162770ece5Stholo * or the configure script directly. Sorry. 172770ece5Stholo */ 182770ece5Stholo 192770ece5Stholo /* 202770ece5Stholo * For portability and heterogeneity reasons, CVS is shipped by 212770ece5Stholo * default using my own text-file version of the ndbm database library 222770ece5Stholo * in the src/myndbm.c file. If you want better performance and are 232770ece5Stholo * not concerned about heterogeneous hosts accessing your modules 242770ece5Stholo * file, turn this option off. 252770ece5Stholo */ 262770ece5Stholo #ifndef MY_NDBM 272770ece5Stholo #define MY_NDBM 282770ece5Stholo #endif 292770ece5Stholo 302770ece5Stholo /* 312770ece5Stholo * The "patch" program to run when using the CVS server and accepting 322770ece5Stholo * patches across the network. Specify a full pathname if your site 332770ece5Stholo * wants to use a particular patch. 342770ece5Stholo */ 352770ece5Stholo #ifndef PATCH_PROGRAM 362770ece5Stholo #define PATCH_PROGRAM "patch" 372770ece5Stholo #endif 382770ece5Stholo 392770ece5Stholo /* Directory used for storing temporary files, if not overridden by 402770ece5Stholo environment variables or the -T global option. There should be little 412770ece5Stholo need to change this (-T is a better mechanism if you need to use a 422770ece5Stholo different directory for temporary files). */ 432770ece5Stholo #ifndef TMPDIR_DFLT 442770ece5Stholo #define TMPDIR_DFLT "/tmp" 452770ece5Stholo #endif 462770ece5Stholo 472770ece5Stholo /* 482770ece5Stholo * The default editor to use, if one does not specify the "-e" option 492770ece5Stholo * to cvs, or does not have an EDITOR environment variable. I set 502770ece5Stholo * this to just "vi", and use the shell to find where "vi" actually 512770ece5Stholo * is. This allows sites with /usr/bin/vi or /usr/ucb/vi to work 522770ece5Stholo * equally well (assuming that your PATH is reasonable). 532770ece5Stholo */ 542770ece5Stholo #ifndef EDITOR_DFLT 552770ece5Stholo #define EDITOR_DFLT "e" 562770ece5Stholo #endif 572770ece5Stholo 582770ece5Stholo /* 592770ece5Stholo * The default umask to use when creating or otherwise setting file or 602770ece5Stholo * directory permissions in the repository. Must be a value in the 612770ece5Stholo * range of 0 through 0777. For example, a value of 002 allows group 622770ece5Stholo * rwx access and world rx access; a value of 007 allows group rwx 632770ece5Stholo * access but no world access. This value is overridden by the value 642770ece5Stholo * of the CVSUMASK environment variable, which is interpreted as an 652770ece5Stholo * octal number. 662770ece5Stholo */ 672770ece5Stholo #ifndef UMASK_DFLT 682770ece5Stholo #define UMASK_DFLT 002 692770ece5Stholo #endif 702770ece5Stholo 712770ece5Stholo /* 722770ece5Stholo * The cvs admin command is restricted to the members of the group 732770ece5Stholo * CVS_ADMIN_GROUP. If this group does not exist, all users are 742770ece5Stholo * allowed to run cvs admin. To disable the cvs admin for all users, 752770ece5Stholo * create an empty group CVS_ADMIN_GROUP. To disable access control 762770ece5Stholo * for cvs admin, comment out the define below. 772770ece5Stholo */ 782770ece5Stholo #ifndef CVS_ADMIN_GROUP 792770ece5Stholo #define CVS_ADMIN_GROUP "cvsadmin" 802770ece5Stholo #endif 812770ece5Stholo 822770ece5Stholo /* 832770ece5Stholo * The Repository file holds the path to the directory within the 842770ece5Stholo * source repository that contains the RCS ,v files for each CVS 852770ece5Stholo * working directory. This path is either a full-path or a path 862770ece5Stholo * relative to CVSROOT. 872770ece5Stholo * 88*892c0aadStholo * The big advantage that I can see to having a relative path is that 892770ece5Stholo * one can change the physical location of the master source 90*892c0aadStholo * repository, change the contents of CVS/Root files in your 91*892c0aadStholo * checked-out code, and CVS will work without problems. 92*892c0aadStholo * 93*892c0aadStholo * Therefore, RELATIVE_REPOS is now the default. In the future, this 94*892c0aadStholo * is likely to disappear entirely as a compile-time (or other) option, 95*892c0aadStholo * so if you have other software which relies on absolute pathnames, 96*892c0aadStholo * update them. 972770ece5Stholo */ 98*892c0aadStholo #define RELATIVE_REPOS 1 992770ece5Stholo 1002770ece5Stholo /* 1012770ece5Stholo * When committing or importing files, you must enter a log message. 1022770ece5Stholo * Normally, you can do this either via the -m flag on the command 1032770ece5Stholo * line or an editor will be started for you. If you like to use 1042770ece5Stholo * logging templates (the rcsinfo file within the $CVSROOT/CVSROOT 1052770ece5Stholo * directory), you might want to force people to use the editor even 1062770ece5Stholo * if they specify a message with -m. Enabling FORCE_USE_EDITOR will 1072770ece5Stholo * cause the -m message to be appended to the temp file when the 1082770ece5Stholo * editor is started. 1092770ece5Stholo */ 1102770ece5Stholo #ifndef FORCE_USE_EDITOR 1112770ece5Stholo /* #define FORCE_USE_EDITOR */ 1122770ece5Stholo #endif 1132770ece5Stholo 1142770ece5Stholo /* 1152770ece5Stholo * When locking the repository, some sites like to remove locks and 1162770ece5Stholo * assume the program that created them went away if the lock has 1172770ece5Stholo * existed for a long time. This used to be the default for previous 1182770ece5Stholo * versions of CVS. CVS now attempts to be much more robust, so lock 1192770ece5Stholo * files should not be left around by mistake. The new behaviour will 1202770ece5Stholo * never remove old locks (they must now be removed by hand). 1212770ece5Stholo * Enabling CVS_FUDGELOCKS will cause CVS to remove locks that are 1222770ece5Stholo * older than CVSLCKAGE seconds. 1232770ece5Stholo * 1242770ece5Stholo * Use of this option is NOT recommended. 1252770ece5Stholo */ 1262770ece5Stholo #ifndef CVS_FUDGELOCKS 1272770ece5Stholo /* #define CVS_FUDGELOCKS */ 1282770ece5Stholo #endif 1292770ece5Stholo 1302770ece5Stholo /* 1312770ece5Stholo * When committing a permanent change, CVS and RCS make a log entry of 1322770ece5Stholo * who committed the change. If you are committing the change logged 1332770ece5Stholo * in as "root" (not under "su" or other root-priv giving program), 1342770ece5Stholo * CVS/RCS cannot determine who is actually making the change. 1352770ece5Stholo * 1362770ece5Stholo * As such, by default, CVS disallows changes to be committed by users 1372770ece5Stholo * logged in as "root". You can disable this option by commenting out 1382770ece5Stholo * the lines below. 1392770ece5Stholo */ 1402770ece5Stholo #ifdef CVS_BADROOT 1412770ece5Stholo #undef CVS_BADROOT 1422770ece5Stholo #endif 1432770ece5Stholo 1442770ece5Stholo /* Define this to enable the SETXID support. The way to use this is 1452770ece5Stholo to create a group with no users in it (except perhaps cvs 1462770ece5Stholo administrators), set the cvs executable to setgid that group, chown 1472770ece5Stholo all the repository files to that group, and change all directory 1482770ece5Stholo permissions in the repository to 770. The last person to modify a 1492770ece5Stholo file will own it, but as long as directory permissions are set 1502770ece5Stholo right that won't matter. You'll need a system which inherits file 1512770ece5Stholo groups from the parent directory (WARNING: using the wrong kind of 1522770ece5Stholo system (I think Solaris 2.4 is the wrong kind, for example) will 1532770ece5Stholo create a security hole! You will receive no warning other than the 1542770ece5Stholo fact that files in the working directory are owned by the group 1552770ece5Stholo which cvs is setgid to). 1562770ece5Stholo 1572770ece5Stholo One security hole which has been reported is that setgid is not 1582770ece5Stholo turned off when the editor is invoked--most editors provide a way 1592770ece5Stholo to execute a shell, or the user can specify an editor (this one is 1602770ece5Stholo large enough to drive a truck through). Don't assume that the 1612770ece5Stholo holes described here are the only ones; I don't know how carefully 1622770ece5Stholo SETXID has been inspected for security holes. */ 1632770ece5Stholo #ifndef SETXID_SUPPORT 1642770ece5Stholo /* #define SETXID_SUPPORT */ 1652770ece5Stholo #endif 1662770ece5Stholo 1672770ece5Stholo /* 1682770ece5Stholo * Should we build the password-authenticating client? Whether to 1692770ece5Stholo * include the password-authenticating _server_, on the other hand, is 1702770ece5Stholo * set in config.h. 1712770ece5Stholo */ 1722770ece5Stholo #ifdef CLIENT_SUPPORT 1732770ece5Stholo #define AUTH_CLIENT_SUPPORT 1 1742770ece5Stholo #endif 1752770ece5Stholo 1762770ece5Stholo /* 1772770ece5Stholo * If you are working with a large remote repository and a 'cvs 1782770ece5Stholo * checkout' is swamping your network and memory, define these to 1792770ece5Stholo * enable flow control. You will end up with even less probability of 1802770ece5Stholo * a consistent checkout (see Concurrency in cvs.texinfo), but CVS 1812770ece5Stholo * doesn't try to guarantee that anyway. The master server process 1822770ece5Stholo * will monitor how far it is getting behind, if it reaches the high 1832770ece5Stholo * water mark, it will signal the child process to stop generating 1842770ece5Stholo * data when convenient (ie: no locks are held, currently at the 1852770ece5Stholo * beginning of a new directory). Once the buffer has drained 1862770ece5Stholo * sufficiently to reach the low water mark, it will be signalled to 1872770ece5Stholo * start again. You may override the default hi/low watermarks here 1882770ece5Stholo * too. 1892770ece5Stholo */ 1902770ece5Stholo #define SERVER_FLOWCONTROL 1912770ece5Stholo #define SERVER_HI_WATER (2 * 1024 * 1024) 1922770ece5Stholo #define SERVER_LO_WATER (1 * 1024 * 1024) 1932770ece5Stholo 1942770ece5Stholo /* End of CVS configuration section */ 1952770ece5Stholo 1962770ece5Stholo /* 1972770ece5Stholo * Externs that are included in libc, but are used frequently enough 1982770ece5Stholo * to warrant defining here. 1992770ece5Stholo */ 2002770ece5Stholo #ifndef STDC_HEADERS 2012770ece5Stholo extern void exit (); 2022770ece5Stholo #endif 203