home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / cvs-1.8.7-src.tgz / tar.out / fsf / cvs / src / options.h.in < prev    next >
Text File  |  1996-09-28  |  10KB  |  266 lines

  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 1.4 kit.
  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. /*
  19.  * CVS provides the most features when used in conjunction with the Version-5
  20.  * release of RCS.  Thus, it is the default.  This also assumes that GNU diff
  21.  * Version-1.15 is being used as well -- you will have to configure your RCS
  22.  * V5 release separately to make this the case. If you do not have RCS V5 and
  23.  * GNU diff V1.15, comment out this define. You should not try mixing and
  24.  * matching other combinations of these tools.
  25.  */
  26. #ifndef HAVE_RCS5
  27. #define    HAVE_RCS5
  28. #endif
  29.  
  30. /*
  31.  * If, before installing this version of CVS, you were running RCS V4 AND you
  32.  * are installing this CVS and RCS V5 and GNU diff 1.15 all at the same time,
  33.  * you should turn on the following define.  It only exists to try to do
  34.  * reasonable things with your existing checked out files when you upgrade to
  35.  * RCS V5, since the keyword expansion formats have changed with RCS V5.
  36.  * 
  37.  * If you already have been running with RCS5, or haven't been running with CVS
  38.  * yet at all, or are sticking with RCS V4 for now, leave the commented out.
  39.  */
  40. #ifndef HAD_RCS4
  41. /* #define    HAD_RCS4 */
  42. #endif
  43.  
  44. /*
  45.  * For portability and heterogeneity reasons, CVS is shipped by default using
  46.  * my own text-file version of the ndbm database library in the src/myndbm.c
  47.  * file.  If you want better performance and are not concerned about
  48.  * heterogeneous hosts accessing your modules file, turn this option off.
  49.  */
  50. #ifndef MY_NDBM
  51. #define    MY_NDBM
  52. #endif
  53.  
  54. /*
  55.  * The "diff" program to execute when creating patch output.  This "diff"
  56.  * must support the "-c" option for context diffing.  Specify a full
  57.  * pathname if your site wants to use a particular diff.  Note that unlike
  58.  * the diff used with RCS, you *must not* supply -a here (doing so will cause
  59.  * the server to generate patches which patch cannot handle in some cases).
  60.  * 
  61.  * NOTE: this program is only used for the ``patch'' sub-command (and
  62.  * for ``update'' if you are using the server).  The other commands
  63.  * use rcsdiff which will use whatever version of diff was specified
  64.  * when rcsdiff was built on your system.
  65.  */
  66.  
  67. #ifndef DIFF
  68. #define    DIFF    "diff"
  69. #endif
  70.  
  71. /*
  72.  * The "grep" program to execute when checking to see if a merged file had
  73.  * any conflicts.  This "grep" must support a standard basic
  74.  * regular expression as an argument.  Specify a full pathname if your site
  75.  * wants to use a particular grep.
  76.  */
  77.  
  78. #ifndef GREP
  79. #define GREP "grep"
  80. #endif
  81.  
  82. /*
  83.  * The "patch" program to run when using the CVS server and accepting
  84.  * patches across the network.  Specify a full pathname if your site
  85.  * wants to use a particular patch.
  86.  */
  87. #ifndef PATCH_PROGRAM
  88. #define PATCH_PROGRAM    "patch"
  89. #endif
  90.  
  91. /*
  92.  * By default, RCS programs are executed with the shell or through execlp(),
  93.  * so the user's PATH environment variable is searched.  If you'd like to
  94.  * bind all RCS programs to a certain directory (perhaps one not in most
  95.  * people's PATH) then set the default in RCSBIN_DFLT.  Note that setting
  96.  * this here will cause all RCS programs to be executed from this directory,
  97.  * unless the user overrides the default with the RCSBIN environment variable
  98.  * or the "-b" option to CVS.
  99.  * 
  100.  * If you use the password-authenticating server, then you need to
  101.  * make sure that the server can find the RCS programs to invoke them.
  102.  * The authenticating server starts out running as root, and then
  103.  * switches to run as the appropriate user once authentication is
  104.  * complete.  But no actual shell is ever started by that user, so the
  105.  * PATH environment variable may not contain the directory with the
  106.  * RCS binaries, even though if that user logged in normally, PATH
  107.  * would include the directory.  
  108.  *
  109.  * One way to solve this problem is to set RCSBIN_DFLT here.  An
  110.  * alternative is to make sure that root has the right directory in
  111.  * its path already.  Another, probably better alternative is to
  112.  * specify -b in /etc/inetd.conf. 
  113.  *
  114.  * This define should be either the empty string ("") or a full
  115.  * pathname to the directory containing all the installed programs
  116.  * from the RCS distribution.
  117.  */
  118. #ifndef RCSBIN_DFLT
  119. #define    RCSBIN_DFLT    ""
  120. #endif
  121.  
  122. /*
  123.  * The default editor to use, if one does not specify the "-e" option to cvs,
  124.  * or does not have an EDITOR environment variable.  I set this to just "vi",
  125.  * and use the shell to find where "vi" actually is.  This allows sites with
  126.  * /usr/bin/vi or /usr/ucb/vi to work equally well (assuming that your PATH
  127.  * is reasonable).
  128.  */
  129. #ifndef EDITOR_DFLT
  130. #define    EDITOR_DFLT    "vi"
  131. #endif
  132.  
  133. /*
  134.  * The default umask to use when creating or otherwise setting file or
  135.  * directory permissions in the repository.  Must be a value in the
  136.  * range of 0 through 0777.  For example, a value of 002 allows group
  137.  * rwx access and world rx access; a value of 007 allows group rwx
  138.  * access but no world access.  This value is overridden by the value
  139.  * of the CVSUMASK environment variable, which is interpreted as an
  140.  * octal number.
  141.  */
  142. #ifndef UMASK_DFLT
  143. #define    UMASK_DFLT    002
  144. #endif
  145.  
  146. /*
  147.  * The cvs admin command is restricted to the members of the group
  148.  * CVS_ADMIN_GROUP.  If this group does not exist, all users are
  149.  * allowed to run cvs admin.  To disable the cvs admin for all users,
  150.  * create an empty group CVS_ADMIN_GROUP.  To disable access control for
  151.  * cvs admin, comment out the define below.
  152.  */
  153. #ifndef CVS_ADMIN_GROUP
  154. #define CVS_ADMIN_GROUP "cvsadmin"
  155. #endif
  156.  
  157. /*
  158.  * The Repository file holds the path to the directory within the source
  159.  * repository that contains the RCS ,v files for each CVS working directory.
  160.  * This path is either a full-path or a path relative to CVSROOT.
  161.  * 
  162.  * The only advantage that I can see to having a relative path is that One can
  163.  * change the physical location of the master source repository, change one's
  164.  * CVSROOT environment variable, and CVS will work without problems.  I
  165.  * recommend using full-paths.
  166.  */
  167. #ifndef RELATIVE_REPOS
  168. /* #define    RELATIVE_REPOS     */
  169. #endif
  170.  
  171. /*
  172.  * When committing or importing files, you must enter a log message.
  173.  * Normally, you can do this either via the -m flag on the command line or an
  174.  * editor will be started for you.  If you like to use logging templates (the
  175.  * rcsinfo file within the $CVSROOT/CVSROOT directory), you might want to
  176.  * force people to use the editor even if they specify a message with -m.
  177.  * Enabling FORCE_USE_EDITOR will cause the -m message to be appended to the
  178.  * temp file when the editor is started.
  179.  */
  180. #ifndef FORCE_USE_EDITOR
  181. /* #define     FORCE_USE_EDITOR */
  182. #endif
  183.  
  184. /*
  185.  * When locking the repository, some sites like to remove locks and assume
  186.  * the program that created them went away if the lock has existed for a long
  187.  * time.  This used to be the default for previous versions of CVS.  CVS now
  188.  * attempts to be much more robust, so lock files should not be left around
  189.  * by mistake. The new behaviour will never remove old locks (they must now
  190.  * be removed by hand).  Enabling CVS_FUDGELOCKS will cause CVS to remove
  191.  * locks that are older than CVSLCKAGE seconds.
  192.  * Use of this option is NOT recommended.
  193.  */
  194. #ifndef CVS_FUDGELOCKS
  195. /* #define CVS_FUDGELOCKS */
  196. #endif
  197.  
  198. /*
  199.  * When committing a permanent change, CVS and RCS make a log entry of
  200.  * who committed the change.  If you are committing the change logged in
  201.  * as "root" (not under "su" or other root-priv giving program), CVS/RCS
  202.  * cannot determine who is actually making the change.
  203.  *
  204.  * As such, by default, CVS disallows changes to be committed by users
  205.  * logged in as "root".  You can disable this option by commenting
  206.  * out the lines below.
  207.  */
  208. #ifndef CVS_BADROOT
  209. #define    CVS_BADROOT
  210. #endif
  211.  
  212. /* Define this to enable the SETXID support.  The way to use this is
  213.    to create a group with no users in it (except perhaps cvs
  214.    administrators), set the cvs executable to setgid that group, chown
  215.    all the repository files to that group, and change all directory
  216.    permissions in the repository to 770.  The last person to modify a
  217.    file will own it, but as long as directory permissions are set
  218.    right that won't matter.  You'll need a system which inherits file
  219.    groups from the parent directory.  I don't know how carefully this
  220.    has been inspected for security holes.  */
  221.  
  222. #ifndef SETXID_SUPPORT
  223. /* #define SETXID_SUPPORT */
  224. #endif
  225.  
  226. /* Should we build the password-authenticating client?  Whether to
  227.    include the password-authenticating _server_, on the other hand, is
  228.    set in config.h.  */
  229. #ifdef CLIENT_SUPPORT
  230. #define AUTH_CLIENT_SUPPORT 1
  231. #endif
  232.  
  233. /*
  234.  * If you are working with a large remote repository and a 'cvs checkout' is
  235.  * swamping your network and memory, define these to enable flow control.
  236.  * You will end up with even less guarantees of a consistant checkout,
  237.  * but that may be better than no checkout at all.  The master server process
  238.  * will monitor how far it is getting behind, if it reaches the high water
  239.  * mark, it will signal the child process to stop generating data when
  240.  * convenient (ie: no locks are held, currently at the beginning of a 
  241.  * new directory).  Once the buffer has drained sufficiently to reach the
  242.  * low water mark, it will be signalled to start again.
  243.  * -- EXPERIMENTAL! --  A better solution may be in the works.
  244.  * You may override the default hi/low watermarks here too.
  245.  */
  246. #ifndef SERVER_FLOWCONTROL
  247. /* #define SERVER_FLOWCONTROL */
  248. /* #define SERVER_HI_WATER (2 * 1024 * 1024) */
  249. /* #define SERVER_LO_WATER (1 * 1024 * 1024) */
  250. #endif
  251.  
  252. /* End of CVS configuration section */
  253.  
  254. /*
  255.  * Externs that are included in libc, but are used frequently enough to
  256.  * warrant defining here.
  257.  */
  258. #ifndef STDC_HEADERS
  259. extern void exit ();
  260. #endif
  261.  
  262. #ifndef getwd
  263. extern char *getwd ();
  264. #endif
  265.  
  266.