INSTALL revision 44852
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 DEC Alpha running Digital UNIX v4.0C using gcc 2.7.2.2 (1.9.14) 112 DEC Alpha running VMS 6.2 (1.8.85 client-only) 113Cray: 114 J90 (CVS 970215 snapshot) 115 T3E (CVS 970215 snapshot) 116HPPA: 117 HP 9000/710 running HP-UX 8.07A using gcc (about 1.4A2) 118 HPPA running HP-UX 9 (1.8) 119 HPPA 1.1 running HP-UX A.09.03 (1.5.95) (footnote 8) 120 HPPA 1.1 running HP-UX A.09.04 (1.7.1) 121 HPPA running HP-UX 9.05 (1.9) 122 HPPA running HP-UX 10.01 (1.7) 123 HPPA running HP-UX 10.20 (1.9, 1.9.14) 124 NextSTEP 3.3 (1.7) 125i386 family: 126 Solaris 2.4 using gcc (about 1.4A2) 127 UnixWare v1.1.1 using gcc (about 1.4A2) 128 Unixware 2.1 (1.8.86) 129 Unixware 7 (1.9.29) 130 ISC 4.0.1 (1.8.87) 131 Linux (kernel 1.2.x) (1.8.86) 132 Linux (kernel 2.0.x, RedHat 4.2) (1.9) 133 BSDI 2.0 (1.4.93) (footnote 5) 134 FreeBSD 2.1.5-stable (1.8.87) 135 NextSTEP 3.3 (1.7) 136 SCO Unix 3.2.4.2, gcc 2.7.2 (1.8.87) (footnote 4) 137 SCO OpenServer 5 (1.9.29) 138 Sequent Dynix/PTX 4.1.4 (1.9.20 or so + patches) 139 Lynx 2.3.0 080695 (1.6.86) (footnote 9) 140 Windows NT 3.51 (1.8.86 client; 1.8.3 local) 141 Windows NT 3.51 service pack 4 (1.9) 142 Windows NT 3.51 service pack 5 (1.9) -- DOES NOT WORK (footnote 11) 143 Windows NT 4.0 (1.9 client and local) 144 Windows 95 (1.9 client and local) 145 QNX (1.9.1 + patches for strippath() and va_list) 146 OS/2 Version 3 using IBM C/C++ Tools 2.01 (1.8.86 + patches, client) 147 OS/2 Version 3 using EMX 0.9c (1.9.22, client) 148 OS/2 Version 3 using Watcom version ? (? - has this been tested?) 149m68k: 150 Sun 3 running SunOS 4.1.1_U1 w/ bundled K&R /usr/5bin/cc (1.8.86+) 151 NextSTEP 3.3p1 (1.8.87) 152 Lynx 2.3.0 062695 (1.6.86) (footnote 9) 153m88k: 154 Data General AViiON running dgux 5.4R2.10 (1.5) 155 Data General AViiON running dgux 5.4R3.10 (1.7.1) 156 Harris Nighthawk 5800 running CX/UX 7.1 (1.5) (footnote 6) 157MIPS: 158 DECstation running Ultrix 4.2a (1.4.90) 159 DECstation running Ultrix 4.3 (1.8.85) 160 SGI running Irix 4.0.5H using gcc and cc (about 1.4A2) (footnote 2) 161 SGI running Irix 5.3 using gcc 2.7.2 (1.8.87) 162 SGI running Irix 6.2 using SGI MIPSpro 6.2 and beta 7.2 compilers (1.9) 163 SGI running Irix-6.2 (1.9.8) 164 Siemens-Nixdorf RM600 running SINIX-Y (1.6) 165PowerPC or RS/6000: 166 IBM RS/6000 running AIX 3.1 using gcc and cc (1.6.86) 167 IBM RS/6000 running AIX 3.2.5 (1.8) 168 IBM RS/6000 running AIX 4.1 (1.9) 169 Lynx 2.3.1 120495 (1.6.86) (footnote 9) 170 Lynx 2.5 (1.9) (footnote 10) 171SPARC: 172 Sun SPARC running SunOS 4.1.x using gcc 2.7.2.1 (1.9.14) 173 Sun SPARCstation 10 running Solaris 2.3 using gcc and cc (about 1.4A2) 174 Sun SPARCstation running Solaris 2.4 using gcc and cc (about 1.5.91) 175 Sun SPARC running Solaris 2.5 (1.8.87) 176 Sun SPARC running Solaris 2.5.1 using gcc 2.7.2.2 (1.9.14) 177 NextSTEP 3.3 (1.7) 178 Sun SPARC running Linux 2.0.17, gcc 2.7.2 (1.8.87) 179VAX: 180 VAX running VMS 6.2 (1.9+patches, client-only) 181 (see README.VMS for information on necessary hacks). 182 183(footnote 2) 184 Some Irix 4.0 systems may core dump in malloc while running 185 CVS. We believe this is a bug in the Irix malloc. You can 186 workaround this bug by linking with "-lmalloc" if necessary. 187 (about 1.4A2). 188 189(footnote 4) Comment out the include of sys/time.h in src/server.c. (1.4.93) 190 You also may have to make sure TIME_WITH_SYS_TIME is undef'ed. 191 192(footnote 5) Change /usr/tmp to /var/tmp in src/server.c (2 places) (1.4.93). 193 (This should no longer be needed; CVS doesn't have /usr/tmp in 194 src/server.c any more. Has anyone tried a more recent version 195 on BSDI? If so, please report it so we can update this file). 196 197(footnote 6) Build in ucb universe with COFF compiler tools. Put 198 /usr/local/bin first in PATH while doing a configure, make 199 and install of GNU diffutils-2.7, rcs-5.7, then cvs-1.5. 200 201(footnote 7) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports 202 success with this configure command: 203 CC=cc CFLAGS='-O2 -Olimit 2000 -std1' ./configure --verbose alpha-dec-osf 204 205(footnote 8) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports 206 success with this configure command: 207 CC=cc CFLAGS='+O2 -Aa -D_HPUX_SOURCE' ./configure --verbose hppa1.1-hp-hpux 208 209(footnote 9) 210 Had to configure with ./configure --host=<arch>-lynx. 211 212 In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE. 213 (I might try building with gcc -mposix -D_POSIX_SOURCE.) 214 215 LynxOS has <dirent.h>, but you don't want to use it. 216 You want to use <sys/dir.h> instead. 217 So after running configure I had to undef HAVE_DIRENT_H and 218 define HAVE_SYS_DIR_H. 219 220(footnote 10) 221 Had to compile with "make LIBS=-lbsd" (to get gethostbyname 222 and getservbyname). 223 224(footnote 11) 225 when I do a `cvs init' I get this message: 226 ci: 'RCS/loginfo,v' is not a regular file 227 ci: RCS/loginfo,v: Invalid argument 228 cvs [init aborted]: failed to checkin n:/safe/CVSROOT/loginfo 229 230------------------------------------------------------------------------------- 231 232Building from source code under Unix: 233 2341) Run "configure": 235 236 $ ./configure 237 238 You can specify an alternate destination to override the default with 239 the --prefix option: 240 241 $ ./configure --prefix=/usr/local/gnu 242 243 or some path that is more appropriate for your site. The default prefix 244 value is "/usr/local", with binaries in sub-directory "bin", manual 245 pages in sub-directory "man", and libraries in sub-directory "lib". 246 247 A normal build of CVS will create an executable which supports 248 local, server, or client CVS (if you don't know the difference, 249 it is described in the Repository chapter of doc/cvs.texinfo). If 250 you do not intend to use client or server CVS, you may want to 251 prevent these features from being included in the executable you 252 build. You can do this with the --disable-client and 253 --disable-server options: 254 255 $ ./configure --disable-client --disable-server 256 257 Typically this can reduce the size of the executable by around 30%. 258 259 Unlike previous versions of CVS, you do not need to install RCS 260 or GNU diff. 261 262 NOTE: The configure program will cache the results of the previous 263 configure execution. If you need to re-run configure from scratch, you 264 may need to run "make distclean" first to remove the cached 265 configuration information. 266 267 If you are using gcc and are planning to modify CVS, you may want to 268 configure with -Wall; see the file HACKING for details. 269 270 If you have Kerberos 4 installed, you can specify the location of 271 the header files and libraries using the --with-krb4=DIR option. 272 DIR should be a directory with subdirectories include and lib 273 holding the Kerberos 4 header files and libraries, respectively. 274 The default value is /usr/kerberos. 275 276 If you want to enable support for encryption over Kerberos, use 277 the --enable-encryption option. This option is disabled by 278 default. 279 280 Try './configure --help' for further information on its usage. 281 282 NOTE ON CVS's USE OF NDBM: 283 284 By default, CVS uses some built-in ndbm emulation code to allow 285 CVS to work in a heterogeneous environment. However, if you have 286 a very large modules database, this may not work well. You will 287 need to edit src/options.h to turn off the MY_NDBM #define and 288 re-run configure. If you do this, the following comments apply. 289 If not, you may safely skip these comments. 290 291 If you configure CVS to use the real ndbm(3) libraries and 292 you do not have them installed in a "normal" place, you will 293 probably want to get the GNU version of ndbm (gdbm) and install 294 that before running the CVS configure script. Be aware that the 295 GDBM 1.5 release does NOT install the <ndbm.h> header file included 296 with the release automatically. You may have to install it by hand. 297 298 If you configure CVS to use the ndbm(3) libraries, you cannot 299 compile CVS with GNU cc (gcc) on Sun-4 SPARC systems. However, gcc 300 2.0 may have fixed this limitation if -fpcc-struct-return is 301 defined. When using gcc on other systems to compile CVS, you *may* 302 need to specify the -fpcc-struct-return option to gcc (you will 303 *know* you have to if "cvs checkout" core dumps in some ndbm 304 function). You can do this as follows: 305 306 $ CC='gcc -fpcc-struct-return' ./configure 307 308 for sh, bash, and ksh users and: 309 310 % setenv CC 'gcc -fpcc-struct-return' 311 % ./configure 312 313 for csh and tcsh users. 314 315 END OF NOTE FOR NDBM GUNK. 316 3172) Edit src/options.h. The defaults should be reasonable, and in fact 318 if you are lazy you can safely skip this step. 319 3203) Try to build it: 321 322 $ make 323 324 This will (hopefully) make the needed CVS binaries within the 325 "src" directory. If something fails for your system, and you want 326 to submit a bug report, you may wish to include your 327 "config.status" file, your host type, operating system and 328 compiler information, make output, and anything else you think 329 will be helpful. 330 3313a) Run the regression tests (optional). 332 333 You may also wish to validate the correctness of the new binary by 334 running the regression tests. If they succeed, that is nice to 335 know. However, if they fail, it doesn't tell you much. Often it 336 will just be a problem with running the tests on your machine, 337 rather than a problem with CVS. Unless you will have the time to 338 determine which of the two it is in case of failure, you might 339 want to save yourself the time and just not run the tests. 340 341 If you want to run the tests, see the file TESTS for more information. 342 3434) Install the binaries/documentation: 344 345 $ make install 346 347 Depending on your installation's configuration, you may need to be 348 root to do this. 349 350------------------------------------------------------------------------------- 351 352Detailed information about your interaction with "configure": 353 354The "configure" script and its interaction with its options and the 355environment is described here. For more detailed documentation about 356"configure", please refer to the GNU Autoconf documentation. 357 358Supported options are: 359 360 --srcdir=DIR Useful for compiling on many different 361 machines sharing one source tree. 362 --prefix=DIR The root of where to install the 363 various pieces of CVS (/usr/local). 364 --exec_prefix=DIR If you want executables in a 365 host-dependent place and shared 366 things in a host-independent place. 367 368The following environment variables override configure's default 369behaviour: 370 371 CC If not set, tries to use gcc first, 372 then cc. Also tries to use "-g -O" 373 as options, backing down to -g 374 alone if that doesn't work. 375 INSTALL If not set, tries to use "install", then 376 "./install-sh" as a final choice. 377 RANLIB If not set, tries to determine if "ranlib" 378 is available, choosing "echo" if it doesn't 379 appear to be. 380 YACC If not set, tries to determine if "bison" 381 is available, choosing "yacc" if it doesn't 382 appear to be. 383 384------------------------------------------------------------------------------- 385 386Building from source code under Windows NT/95: 387 388You may find interesting information in windows-NT/README. 389 3901) Using Microsoft Visual C++ 5.x, open the project `cvsnt.dsp', 391 in the top directory of the CVS distribution. If you have an older 392 version of Visual C++, take a look at windows-NT/README. 3932) Choose "Build cvs.exe" from the "Project" menu. 3943) MSVC will place the executable file cvs.exe in WinRel, or whatever 395 your target directory is. 396 397------------------------------------------------------------------------------- 398 399Building from source code under other platforms: 400 401For OS/2, see os2/README and emx/README. 402 403For VMS, see README.VMS 404 405For Macintosh, see macintosh/README.MacCVS 406 407For a Java client, see jCVS (which is a separate package from CVS 408itself, but which might be preferable to the Macintosh port mentioned 409above, for example). 410 411------------------------------------------------------------------------------- 412