xref: /openbsd/gnu/usr.bin/cvs/emx/options.h (revision 892c0aad)
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