INSTALL revision 107484
1First, read the README file. If you're still happy... 2 3First you need to obtain and install the CVS executables. If you got 4a distribution which contains executables, consult the installation 5instructions for that distribution. If you got source code, do not 6panic. On many platforms building CVS from source code is a 7straightforward process requiring no programming knowledge. See the 8section BUILDING FROM SOURCE CODE at the end of this file, which 9includes a list of platforms which have been tested. 10 11------------------------------------------------------------------------------- 12 131) Take a look at the CVS documentation, if desired. For most 14 purposes you want doc/cvs.texinfo, also known as _Version Management 15 with CVS_ by Per Cederqvist et al. Looking at it might be as simple 16 as "info cvs" but this will depend on your installation; see README 17 for more details. 18 19 See what CVS can do for you, and if it fits your environment (or can 20 possibly be made to fit your environment). If things look good, 21 continue on. Alternately, just give CVS a try first then figure out 22 what it is good for. 23 242) Set the CVSROOT environment variable to where you want to put your 25 source repository. See the "Setting up the repository" section of 26 the Cederqvist manual for details, but the quick summary is just to 27 pick some directory. We'll use /src/master as an example. For 28 users of a POSIX shell (sh/bash/ksh) on unix, the following 29 commands can be placed in user's ~/.profile, ~/.bash_profile file; 30 or in the site-wide /etc/profile: 31 32 CVSROOT=/src/master; export CVSROOT 33 34 For C shell users on unix place the following commands in the 35 user's ~/.cshrc, ~/.login, or /etc/chsrc file: 36 37 setenv CVSROOT /src/master 38 39 For Windows users, supposing the repository will be in 40 d:\src\master, place the following line in c:\autoexec.bat. On 41 Windows 95, autoexec.bat might not already exist. In that case, 42 just create a new file containing the following line. 43 44 set CVSROOT=:local:d:\src\master 45 46 If these environment variables are not already set in your current 47 shell, set them now by typing the above line at the command prompt 48 (or source the login script you just edited). 49 The instructions for the remaining steps assume that you have set 50 the CVSROOT environment variable. 51 523) Create the master source repository. Again, the details are in 53 the "Setting up the repository" section of cvs.texinfo; the 54 one-line summary is: 55 56 $ cvs init 57 58 In this and subsequent examples we use "$" to indicate the command 59 prompt; do not type the "$". 60 614) It might be a good idea to jump right in and put some sources or 62 documents directly under CVS control. From within the top-level 63 directory of your source tree, run the following commands: 64 65 $ cvs import -m "test distribution" ccvs CVS_DIST CVS-TEST 66 67 (Those last three items are, respectively, a repository location, a 68 "vendor tag", and a "release tag". You don't need to understand 69 them yet, but read the section "Starting new projects" in the 70 Cederqvist manual for details). 71 725) Having done step 4, one should be able to checkout a fresh copy of the 73 sources you just imported and hack away at the sources with the 74 following command: 75 76 $ cd 77 $ cvs checkout ccvs 78 79 This will make the directory "ccvs" in your current directory and 80 populate it with the appropriate files and directories. 81 826) You may wish to customize the various administrative files, in particular 83 modules. See the Cederqvist manual for details. 84 857) Read the NEWS file to see what's new. 86 878) Hack away. 88 89------------------------------------------------------------------------------- 90 91BUILDING FROM SOURCE CODE 92 93Tested platforms 94 95CVS has been tested on the following platforms. The most recent 96version of CVS reported to have been tested is indicated, but more 97recent versions of CVS probably will work too. Please send updates to 98this list to bug-cvs@gnu.org (doing so in the form of a diff 99to this file, or at least exact suggested text, is encouraged). 100"tested" means, at a minimum, that CVS compiles and appears to work on 101simple (manual) testing. In many cases it also means "make check" 102and/or "make remotecheck" passes, but we don't try to list the 103platforms for which that is true. 104 105Alpha: 106 DEC Alpha running OSF/1 version 1.3 using cc (about 1.4A2) 107 DEC Alpha running OSF/1 version 2.0 (1.8) 108 DEC Alpha running OSF/1 version 2.1 (about 1.4A2) 109 DEC Alpha running OSF/1 version 3.0 (1.5.95) (footnote 7) 110 DEC Alpha running OSF/1 version 3.2 (1.9) 111 Alpha running alpha-dec-osf4.0 (1.10) 112 DEC Alpha running Digital UNIX v4.0C using gcc 2.7.2.2 (1.9.14) 113 DEC Alpha running VMS 6.2 (1.8.85 client-only) 114 Alpha running NetBSD 1.2E (1.10) 115Cray: 116 J90 (CVS 970215 snapshot) 117 T3E (CVS 970215 snapshot) 118HPPA: 119 HP 9000/710 running HP-UX 8.07A using gcc (about 1.4A2) 120 HPPA running HP-UX 9 (1.8) 121 HPPA 1.1 running HP-UX A.09.03 (1.5.95) (footnote 8) 122 HPPA 1.1 running HP-UX A.09.04 (1.7.1) 123 HPPA running HP-UX 9.05 (1.9) 124 HPPA running HP-UX 10.01 (1.7) 125 HPPA running HP-UX 10.20 (1.10.7) 126 NextSTEP 3.3 (1.7) 127i386 family: 128 Solaris 2.4 using gcc (about 1.4A2) 129 Solaris 2.6 (1.9) 130 UnixWare v1.1.1 using gcc (about 1.4A2) 131 Unixware 2.1 (1.8.86) 132 Unixware 7 (1.9.29) 133 ISC 4.0.1 (1.8.87) 134 Linux (kernel 1.2.x) (1.8.86) 135 Linux (kernel 2.0.x, RedHat 4.2) (1.10) 136 Linux (kernel 2.0.x, RedHat 5.x) (1.10) 137 Linux (kernel 2.2.x, RedHat 6.x) (1.10.8) 138 Linux (kernel 2.2.x, RedHat 7.x) (1.11) 139 BSDI 4.0 (1.10.7) 140 FreeBSD 2.1.5-stable (1.8.87) 141 NextSTEP 3.3 (1.7) 142 SCO Unix 3.2.4.2, gcc 2.7.2 (1.8.87) (footnote 4) 143 SCO OpenServer 5.0.5 (1.10.2) 144 Sequent DYNIX/ptx4.0 (1.10 or so) (remove -linet) 145 Sequent Dynix/PTX 4.1.4 (1.9.20 or so + patches) 146 Lynx 2.3.0 080695 (1.6.86) (footnote 9) 147 Windows NT 3.51 (1.8.86 client; 1.8.3 local) 148 Windows NT 3.51 service pack 4 (1.9) 149 Windows NT 3.51 service pack 5 (1.9) -- DOES NOT WORK (footnote 11) 150 Windows NT 4.0 (1.9 client and local) 151 Windows NT 4.0 (1.11 client and local - build & test, but no test suite) 152 Windows 95 (1.9 client and local) 153 QNX (1.9.1 + patches for strippath() and va_list) 154 OS/2 Version 3 using IBM C/C++ Tools 2.01 (1.8.86 + patches, client) 155 OS/2 Version 3 using EMX 0.9c (1.9.22, client) 156 OS/2 Version 3 using Watcom version ? (? - has this been tested?) 157m68k: 158 Sun 3 running SunOS 4.1.1_U1 w/ bundled K&R /usr/5bin/cc (1.8.86+) 159 NextSTEP 3.3p1 (1.8.87) 160 Lynx 2.3.0 062695 (1.6.86) (footnote 9) 161 NetBSD/mac68k (1.9.28) 162m88k: 163 Data General AViiON running dgux 5.4R2.10 (1.5) 164 Data General AViiON running dgux 5.4R3.10 (1.7.1) 165 Harris Nighthawk 5800 running CX/UX 7.1 (1.5) (footnote 6) 166MIPS: 167 DECstation running Ultrix 4.2a (1.4.90) 168 DECstation running Ultrix 4.3 (1.10) 169 SGI running Irix 4.0.5H using gcc and cc (about 1.4A2) (footnote 2) 170 SGI running Irix 5.3 (1.10) 171 SGI running Irix 6.2 using SGI MIPSpro 6.2 and beta 7.2 compilers (1.9) 172 SGI running Irix-6.2 (1.9.8) 173 SGI running IRIX 6.4 (1.10) 174 SGI running IRIX 6.5 (1.10.7) 175 Siemens-Nixdorf RM600 running SINIX-Y (1.6) 176PowerPC or RS/6000: 177 IBM RS/6000 running AIX 3.1 using gcc and cc (1.6.86) 178 IBM RS/6000 running AIX 3.2.5 (1.8) 179 IBM RS/6000 running AIX 4.1 (1.9) 180 IBM RS/6000 running AIX 4.3 (1.10.7) 181 Lynx 2.3.1 120495 (1.6.86) (footnote 9) 182 Lynx 2.5 (1.9) (footnote 10) 183 MkLinux DR3 GENERIC #6 (1.10.5.1) (presumably LinuxPPC too) 184SPARC: 185 Sun SPARC running SunOS 4.1.x (1.10) 186 Sun SPARCstation 10 running Solaris 2.3 using gcc and cc (about 1.4A2) 187 Sun SPARCstation running Solaris 2.4 using gcc and cc (about 1.5.91) 188 Sun SPARC running Solaris 2.5 (1.8.87) 189 Sun SPARC running Solaris 2.5.1 using gcc 2.7.2.2 (1.9.14) 190 Sun SPARC running Solaris 2.6 (1.10.7) 191 Sun UltraSPARC running Solaris 2.6 using gcc 2.8.1 (1.10) 192 NextSTEP 3.3 (1.7) 193 Sun SPARC running Linux 2.0.17, gcc 2.7.2 (1.8.87) 194VAX: 195 VAX running VMS 6.2 (1.9+patches, client-only) 196 (see README.VMS for information on necessary hacks). 197 198(footnote 2) 199 Some Irix 4.0 systems may core dump in malloc while running 200 CVS. We believe this is a bug in the Irix malloc. You can 201 workaround this bug by linking with "-lmalloc" if necessary. 202 (about 1.4A2). 203 204(footnote 4) Comment out the include of sys/time.h in src/server.c. (1.4.93) 205 You also may have to make sure TIME_WITH_SYS_TIME is undef'ed. 206 207(footnote 6) Build in ucb universe with COFF compiler tools. Put 208 /usr/local/bin first in PATH while doing a configure, make 209 and install of GNU diffutils-2.7, rcs-5.7, then cvs-1.5. 210 211(footnote 7) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports 212 success with this configure command: 213 CC=cc CFLAGS='-O2 -Olimit 2000 -std1' ./configure --verbose alpha-dec-osf 214 215(footnote 8) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports 216 success with this configure command: 217 CC=cc CFLAGS='+O2 -Aa -D_HPUX_SOURCE' ./configure --verbose hppa1.1-hp-hpux 218 219(footnote 9) 220 Had to configure with ./configure --host=<arch>-lynx. 221 222 In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE. 223 (I might try building with gcc -mposix -D_POSIX_SOURCE.) 224 225 LynxOS has <dirent.h>, but you don't want to use it. 226 You want to use <sys/dir.h> instead. 227 So after running configure I had to undef HAVE_DIRENT_H and 228 define HAVE_SYS_DIR_H. 229 230(footnote 10) 231 Had to compile with "make LIBS=-lbsd" (to get gethostbyname 232 and getservbyname). 233 234(footnote 11) 235 when I do a `cvs init' I get this message: 236 ci: 'RCS/loginfo,v' is not a regular file 237 ci: RCS/loginfo,v: Invalid argument 238 cvs [init aborted]: failed to checkin n:/safe/CVSROOT/loginfo 239 240------------------------------------------------------------------------------- 241 242Building from source code under Unix: 243 2441) Some combinations of Automake and Autoconf versions may break the CVS build 245 if file timestamps aren't set correctly, so you may wish to run 246 noautomake.sh to set the timestamps and avoid attempting to run the 247 autotools on your system, especially if you are building from source 248 checked out from CVS: 249 250 $ ./noautomake.sh --noautoconf 251 252 The CVS Makefiles and configure script were built using Automake 1.6.3 and 253 Autoconf 2.53, respectively. Other combinations of autotool versions may 254 or may not work. 255 2562) Run "configure": 257 258 $ ./configure 259 260 You can specify an alternate destination to override the default with 261 the --prefix option: 262 263 $ ./configure --prefix=/usr/local/gnu 264 265 or some path that is more appropriate for your site. The default prefix 266 value is "/usr/local", with binaries in sub-directory "bin", manual 267 pages in sub-directory "man", and libraries in sub-directory "lib". 268 269 A normal build of CVS will create an executable which supports 270 local, server, or client CVS (if you don't know the difference, 271 it is described in the Repository chapter of doc/cvs.texinfo). If 272 you do not intend to use client or server CVS, you may want to 273 prevent these features from being included in the executable you 274 build. You can do this with the --disable-client and 275 --disable-server options: 276 277 $ ./configure --disable-client --disable-server 278 279 Typically this can reduce the size of the executable by around 30%. 280 281 If you are building CVS with the server enabled, you can disable 282 server flow control using the --disable-server-flow-control 283 If you are working with a large remote repository and a 'cvs 284 checkout' is swamping your network and memory, enable flow control. 285 You will end up with even less probability of a consistent checkout 286 (see Concurrency in cvs.texinfo), but CVS doesn't try to guarantee 287 that anyway. The master server process will monitor how far it is 288 getting behind, if it reaches the high water mark, it will signal 289 the child process to stop generating data when convenient (ie: no 290 locks are held, currently at the beginning of a new directory). 291 Once the buffer has drained sufficiently to reach the low water 292 mark, it will be signalled to start again. You may override the 293 default hi/low watermarks here too by passing 294 '<lowwater>,<highwater>', in bytes, as an argument to 295 --enable-server-flow-control. The low water mark defaults to one 296 megabyte and the high water mark defaults to two megabytes. 297 298 $ ./configure --enable-server-flow-control=1M,2M 299 300 The --with-tmpdir argument to configure may be used to set a 301 specific directory for use as a default temporary directory. If not 302 set, configure will pick the first directory it finds which it has 303 read, write, and execute permissions to from $TMPDIR, $TMP, $TEMP, 304 /tmp, and /var/tmp, in that order. Failing that, it will use /tmp. 305 306 The --with-umask argument to configure can be used to change 307 the default umask used by the CVS server executable. 308 309 Unlike previous versions of CVS, you do not need to install RCS 310 or GNU diff. 311 312 If you are using gcc and are planning to modify CVS, you may want to 313 configure with -Wall; see the file HACKING for details. 314 315 If you have Kerberos 4 installed, you can specify the location of 316 the header files and libraries using the --with-krb4=DIR option. 317 DIR should be a directory with subdirectories include and lib 318 holding the Kerberos 4 header files and libraries, respectively. 319 The default value is /usr/kerberos. 320 321 If you want to enable support for encryption over Kerberos, use 322 the --enable-encryption option. This option is disabled by 323 default. 324 325 If you want to disable automatic dependency tracking in the makefiles, 326 use the '--disable-dependency-tracking' option: 327 328 $ ./configure --disable-dependency-tracking 329 330 This avoids problems on some platforms. See the note at the end of this 331 file on BSD. 332 333 Try './configure --help' for further information on its usage. 334 335 NOTE ON CVS's USE OF NDBM: 336 337 By default, CVS uses some built-in ndbm emulation code to allow 338 CVS to work in a heterogeneous environment. However, if you have 339 a very large modules database, this may not work well. You will 340 need to edit src/options.h to turn off the MY_NDBM #define and 341 re-run configure. If you do this, the following comments apply. 342 If not, you may safely skip these comments. 343 344 If you configure CVS to use the real ndbm(3) libraries and 345 you do not have them installed in a "normal" place, you will 346 probably want to get the GNU version of ndbm (gdbm) and install 347 that before running the CVS configure script. Be aware that the 348 GDBM 1.5 release does NOT install the <ndbm.h> header file included 349 with the release automatically. You may have to install it by hand. 350 351 If you configure CVS to use the ndbm(3) libraries, you cannot 352 compile CVS with GNU cc (gcc) on Sun-4 SPARC systems. However, gcc 353 2.0 may have fixed this limitation if -fpcc-struct-return is 354 defined. When using gcc on other systems to compile CVS, you *may* 355 need to specify the -fpcc-struct-return option to gcc (you will 356 *know* you have to if "cvs checkout" core dumps in some ndbm 357 function). You can do this as follows: 358 359 $ CC='gcc -fpcc-struct-return' ./configure 360 361 for sh, bash, and ksh users and: 362 363 % setenv CC 'gcc -fpcc-struct-return' 364 % ./configure 365 366 for csh and tcsh users. 367 368 END OF NOTE FOR NDBM GUNK. 369 3703) Edit src/options.h. The defaults should be reasonable, and in fact 371 if you are lazy you can safely skip this step. 372 3734) Try to build it: 374 375 $ make 376 377 This will (hopefully) make the needed CVS binaries within the 378 "src" directory. If something fails for your system, and you want 379 to submit a bug report, you may wish to include your 380 "config.status" file, your host type, operating system and 381 compiler information, make output, and anything else you think 382 will be helpful. 383 3844a) Run the regression tests (optional). 385 386 You may also wish to validate the correctness of the new binary by 387 running the regression tests. If they succeed, that is nice to 388 know. However, if they fail, it doesn't tell you much. Often it 389 will just be a problem with running the tests on your machine, 390 rather than a problem with CVS. Unless you will have the time to 391 determine which of the two it is in case of failure, you might 392 want to save yourself the time and just not run the tests. 393 394 If you want to run the tests, see the file TESTS for more information. 395 3965) Install the binaries/documentation: 397 398 $ make install 399 400 Depending on your installation's configuration, you may need to be 401 root to do this. 402 403------------------------------------------------------------------------------- 404 405Detailed information about your interaction with "configure": 406 407The "configure" script and its interaction with its options and the 408environment is described here. For more detailed documentation about 409"configure", please run `./configure --help' or refer to the GNU Autoconf 410documentation. 411 412Supported options are: 413 414 --srcdir=DIR Useful for compiling on many different 415 machines sharing one source tree. 416 --prefix=DIR The root of where to install the 417 various pieces of CVS (/usr/local). 418 --exec_prefix=DIR If you want executables in a 419 host-dependent place and shared 420 things in a host-independent place. 421 422The following environment variables override configure's default 423behaviour: 424 425 CC If not set, tries to use gcc first, 426 then cc. Also tries to use "-g -O" 427 as options, backing down to -g 428 alone if that doesn't work. 429 INSTALL If not set, tries to use "install", then 430 "./install-sh" as a final choice. 431 RANLIB If not set, tries to determine if "ranlib" 432 is available, choosing "echo" if it doesn't 433 appear to be. 434 YACC If not set, tries to determine if "bison" 435 is available, choosing "yacc" if it doesn't 436 appear to be. 437 438------------------------------------------------------------------------------- 439 440Building from source code under Windows NT/95/98/2000: 441 442You may find interesting information in windows-NT/README. 443 4441) Using Microsoft Visual C++ 5.x, open the project `cvsnt.dsp', 445 in the top directory of the CVS distribution. If you have an older 446 version of Visual C++, take a look at windows-NT/README. 4472) Choose "Build cvs.exe" from the "Project" menu. 4483) MSVC will place the executable file cvs.exe in WinRel, or whatever 449 your target directory is. 450 451* From the top level directory, with MSVC++ 6.0 installed, something like the 452following also works: 453 454 C:\> vcvars32 455 C:\> nmake /f cvsnt.mak CFG="cvsnt - Win32 Debug" 456 457* You might also try http://cvsgui.org & http://www.cvsnt.org 458 459------------------------------------------------------------------------------- 460 461Building from source code under other platforms: 462 463For OS/2, see os2/README and emx/README. 464 465For VMS, see README.VMS 466 467Mac OS X: Builds fine, just like UNIX. 468 469For older versions of Mac OS, you might try http://cvsgui.org . 470 471For a Java client, see jCVS (which is a separate package from CVS 472itself, but which might be preferable to the Macintosh port mentioned 473above, for example). 474 475 **** **** 476 477Builds are breaking on some systems (notably, 478BSD/OS thor.sdrc.com 4.0.1 BSDI BSD/OS 4.0.1 Kernel #3: Thu Mar 9 11:29:16 EST 2000 479) due to Automake's dependency tracking code. The work around for this is to 480comile without it by passing the '--disable-dependency-tracking' option to 481configure: 482 483 $ ./configure --disable-dependency-tracking 484 485This will allow a compile but make will no longer be tracking header 486dependencies. This means that if you make any changes to header files you may 487have to run 'make clean' before running a 'make' to get everything to compile. 488 489------------------------------------------------------------------------------- 490