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