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 source distribution. 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/* By default, CVS stores its modules and other such items in flat 19 text files (MY_NDBM enables this). Turning off MY_NDBM causes CVS 20 to look for a system-supplied ndbm database library and use it 21 instead. That may speed things up, but the default setting 22 generally works fine too. */ 23 24#ifndef MY_NDBM 25#define MY_NDBM 26#endif 27 28/* 29 * The "patch" program to run when using the CVS server and accepting 30 * patches across the network. Specify a full pathname if your site 31 * wants to use a particular patch. 32 */ 33#ifndef PATCH_PROGRAM 34#define PATCH_PROGRAM "patch" 35#endif 36 37/* Directory used for storing temporary files, if not overridden by 38 environment variables or the -T global option. There should be little 39 need to change this (-T is a better mechanism if you need to use a 40 different directory for temporary files). */ 41#ifndef TMPDIR_DFLT 42#define TMPDIR_DFLT "/tmp" 43#endif 44 45/* 46 * The default editor to use, if one does not specify the "-e" option 47 * to cvs, or does not have an EDITOR environment variable. I set 48 * this to just "vi", and use the shell to find where "vi" actually 49 * is. This allows sites with /usr/bin/vi or /usr/ucb/vi to work 50 * equally well (assuming that your PATH is reasonable). 51 */ 52#ifndef EDITOR_DFLT 53#define EDITOR_DFLT "vi" 54#endif 55 56/* 57 * The default umask to use when creating or otherwise setting file or 58 * directory permissions in the repository. Must be a value in the 59 * range of 0 through 0777. For example, a value of 002 allows group 60 * rwx access and world rx access; a value of 007 allows group rwx 61 * access but no world access. This value is overridden by the value 62 * of the CVSUMASK environment variable, which is interpreted as an 63 * octal number. 64 */ 65#ifndef UMASK_DFLT 66#define UMASK_DFLT 002 67#endif 68 69/* 70 * The cvs admin command is restricted to the members of the group 71 * CVS_ADMIN_GROUP. If this group does not exist, all users are 72 * allowed to run cvs admin. To disable the cvs admin for all users, 73 * create an empty group CVS_ADMIN_GROUP. To disable access control 74 * for cvs admin, comment out the define below. 75 */ 76#ifndef CVS_ADMIN_GROUP 77#define CVS_ADMIN_GROUP "cvsadmin" 78#endif 79 80/* 81 * The Repository file holds the path to the directory within the 82 * source repository that contains the RCS ,v files for each CVS 83 * working directory. This path is either a full-path or a path 84 * relative to CVSROOT. 85 * 86 * The big advantage that I can see to having a relative path is that 87 * one can change the physical location of the master source 88 * repository, change the contents of CVS/Root files in your 89 * checked-out code, and CVS will work without problems. 90 * 91 * Therefore, RELATIVE_REPOS is now the default. In the future, this 92 * is likely to disappear entirely as a compile-time (or other) option, 93 * so if you have other software which relies on absolute pathnames, 94 * update them. 95 */ 96#define RELATIVE_REPOS 1 97 98/* 99 * When committing or importing files, you must enter a log message. 100 * Normally, you can do this either via the -m flag on the command 101 * line or an editor will be started for you. If you like to use 102 * logging templates (the rcsinfo file within the $CVSROOT/CVSROOT 103 * directory), you might want to force people to use the editor even 104 * if they specify a message with -m. Enabling FORCE_USE_EDITOR will 105 * cause the -m message to be appended to the temp file when the 106 * editor is started. 107 */ 108#ifndef FORCE_USE_EDITOR 109/* #define FORCE_USE_EDITOR */ 110#endif 111 112/* 113 * When locking the repository, some sites like to remove locks and 114 * assume the program that created them went away if the lock has 115 * existed for a long time. This used to be the default for previous 116 * versions of CVS. CVS now attempts to be much more robust, so lock 117 * files should not be left around by mistake. The new behaviour will 118 * never remove old locks (they must now be removed by hand). 119 * Enabling CVS_FUDGELOCKS will cause CVS to remove locks that are 120 * older than CVSLCKAGE seconds. 121 * 122 * Use of this option is NOT recommended. 123 */ 124#ifndef CVS_FUDGELOCKS 125/* #define CVS_FUDGELOCKS */ 126#endif 127 128/* 129 * When committing a permanent change, CVS and RCS make a log entry of 130 * who committed the change. If you are committing the change logged 131 * in as "root" (not under "su" or other root-priv giving program), 132 * CVS/RCS cannot determine who is actually making the change. 133 * 134 * As such, by default, CVS disallows changes to be committed by users 135 * logged in as "root". You can disable this option by commenting out 136 * the lines below. 137 */ 138#ifndef CVS_BADROOT 139#define CVS_BADROOT 140#endif 141 142/* Define this to enable the SETXID support. The way to use this is 143 to create a group with no users in it (except perhaps cvs 144 administrators), set the cvs executable to setgid that group, chown 145 all the repository files to that group, and change all directory 146 permissions in the repository to 770. The last person to modify a 147 file will own it, but as long as directory permissions are set 148 right that won't matter. You'll need a system which inherits file 149 groups from the parent directory (WARNING: using the wrong kind of 150 system (I think Solaris 2.4 is the wrong kind, for example) will 151 create a security hole! You will receive no warning other than the 152 fact that files in the working directory are owned by the group 153 which cvs is setgid to). 154 155 One security hole which has been reported is that setgid is not 156 turned off when the editor is invoked--most editors provide a way 157 to execute a shell, or the user can specify an editor (this one is 158 large enough to drive a truck through). Don't assume that the 159 holes described here are the only ones; I don't know how carefully 160 SETXID has been inspected for security holes. */ 161#ifndef SETXID_SUPPORT 162/* #define SETXID_SUPPORT */ 163#endif 164 165/* 166 * Should we build the password-authenticating client? Whether to 167 * include the password-authenticating _server_, on the other hand, is 168 * set in config.h. 169 */ 170#ifdef CLIENT_SUPPORT 171#define AUTH_CLIENT_SUPPORT 1 172#endif 173 174/* 175 * If you are working with a large remote repository and a 'cvs 176 * checkout' is swamping your network and memory, define these to 177 * enable flow control. You will end up with even less probability of 178 * a consistent checkout (see Concurrency in cvs.texinfo), but CVS 179 * doesn't try to guarantee that anyway. The master server process 180 * will monitor how far it is getting behind, if it reaches the high 181 * water mark, it will signal the child process to stop generating 182 * data when convenient (ie: no locks are held, currently at the 183 * beginning of a new directory). Once the buffer has drained 184 * sufficiently to reach the low water mark, it will be signalled to 185 * start again. You may override the default hi/low watermarks here 186 * too. 187 */ 188#define SERVER_FLOWCONTROL 189#define SERVER_HI_WATER (2 * 1024 * 1024) 190#define SERVER_LO_WATER (1 * 1024 * 1024) 191 192/* End of CVS configuration section */ 193 194/* 195 * Externs that are included in libc, but are used frequently enough 196 * to warrant defining here. 197 */ 198#ifndef STDC_HEADERS 199extern void exit (); 200#endif 201