1 -------------------------------------------------------------------------------
3 CVS is Copyright (C) 1986-2006 The Free Software Foundation, Inc.
5 CVS is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 1, or (at your option)
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 -------------------------------------------------------------------------------
17 Now back to our regularly scheduled program:
19 Please read the README file before reading this INSTALL file. Then, to
23 First you need to obtain and install the CVS executables. If you got
24 a distribution which contains executables, consult the installation
25 instructions for that distribution. If you got source code, do not
26 panic. On many platforms building CVS from source code is a
27 straightforward process requiring no programming knowledge. See the
28 section BUILDING FROM SOURCE CODE at the end of this file, which
29 includes a list of platforms which have been tested.
31 -------------------------------------------------------------------------------
33 1) Take a look at the CVS documentation, if desired. For most
34 purposes you want doc/cvs.texinfo, also known as _Version Management
35 with CVS_ by Per Cederqvist et al. Looking at it might be as simple
36 as "info cvs" but this will depend on your installation; see README
39 See what CVS can do for you, and if it fits your environment (or can
40 possibly be made to fit your environment). If things look good,
41 continue on. Alternately, just give CVS a try first then figure out
44 2) Set the CVSROOT environment variable to where you want to put your
45 source repository. See the "Setting up the repository" section of
46 the Cederqvist manual for details, but the quick summary is just to
47 pick some directory. We'll use /src/master as an example. For
48 users of a POSIX shell (sh/bash/ksh) on unix, the following
49 commands can be placed in user's ~/.profile, ~/.bash_profile file;
50 or in the site-wide /etc/profile:
52 CVSROOT=/src/master; export CVSROOT
54 For C shell users on unix place the following commands in the
55 user's ~/.cshrc, ~/.login, or /etc/chsrc file:
57 setenv CVSROOT /src/master
59 For Windows users, supposing the repository will be in
60 d:\src\master, place the following line in c:\autoexec.bat. On
61 Windows 95, autoexec.bat might not already exist. In that case,
62 just create a new file containing the following line.
64 set CVSROOT=:local:d:\src\master
66 If these environment variables are not already set in your current
67 shell, set them now by typing the above line at the command prompt
68 (or source the login script you just edited).
69 The instructions for the remaining steps assume that you have set
70 the CVSROOT environment variable.
72 3) Create the master source repository. Again, the details are in
73 the "Setting up the repository" section of cvs.texinfo; the
78 In this and subsequent examples we use "$" to indicate the command
79 prompt; do not type the "$".
81 4) It might be a good idea to jump right in and put some sources or
82 documents directly under CVS control. From within the top-level
83 directory of your source tree, run the following commands:
85 $ cvs import -m "test distribution" ccvs CVS_DIST CVS-TEST
87 (Those last three items are, respectively, a repository location, a
88 "vendor tag", and a "release tag". You don't need to understand
89 them yet, but read the section "Starting new projects" in the
90 Cederqvist manual for details).
92 5) Having done step 4, one should be able to checkout a fresh copy of the
93 sources you just imported and hack away at the sources with the
99 This will make the directory "ccvs" in your current directory and
100 populate it with the appropriate files and directories.
102 6) You may wish to customize the various administrative files, in particular
103 modules. See the Cederqvist manual for details.
105 7) Read the NEWS file to see what's new.
109 -------------------------------------------------------------------------------
111 BUILDING FROM SOURCE CODE
115 CVS has been tested on the following platforms. The most recent
116 version of CVS reported to have been tested is indicated, but more
117 recent versions of CVS probably will work too. Please send updates to
118 this list to bug-cvs@nongnu.org (doing so in the form of a diff
119 to this file, or at least exact suggested text, is encouraged).
120 "tested" means, at a minimum, that CVS compiles and appears to work on
121 simple (manual) testing. In many cases it also means "make check"
122 and/or "make remotecheck" passes, but we don't try to list the
123 platforms for which that is true.
126 DEC Alpha running OSF/1 version 1.3 using cc (about 1.4A2)
127 DEC Alpha running OSF/1 version 2.0 (1.8)
128 DEC Alpha running OSF/1 version 2.1 (about 1.4A2)
129 DEC Alpha running OSF/1 version 3.0 (1.5.95) (footnote 7)
130 DEC Alpha running OSF/1 version 3.2 (1.9)
131 Alpha running alpha-dec-osf4.0 (1.10)
132 DEC Alpha running Digital UNIX v4.0C using gcc 2.7.2.2 (1.9.14)
133 DEC Alpha running VMS 6.2 (1.8.85 client-only)
134 Alpha running NetBSD 1.2E (1.10)
136 J90 (CVS 970215 snapshot)
137 T3E (CVS 970215 snapshot)
139 HP 9000/710 running HP-UX 8.07A using gcc (about 1.4A2)
140 HPPA running HP-UX 9 (1.8)
141 HPPA 1.1 running HP-UX A.09.03 (1.5.95) (footnote 8)
142 HPPA 1.1 running HP-UX A.09.04 (1.7.1)
143 HPPA running HP-UX 9.05 (1.9)
144 HPPA running HP-UX 10.01 (1.7)
145 HPPA running HP-UX 10.20 (1.10.7)
146 HPPA running HP-UX 11.11 (1.11.13) (footnote 12)
147 HPPA 2.0 running HP-UX 10.20 (1.10.9) (footnote 13)
150 Solaris 2.4 using gcc (about 1.4A2)
152 UnixWare v1.1.1 using gcc (about 1.4A2)
153 Unixware 2.1 (1.8.86)
156 Linux (kernel 1.2.x) (1.8.86)
157 Linux (kernel 2.0.x, RedHat 4.2) (1.10)
158 Linux (kernel 2.0.x, RedHat 5.x) (1.10)
159 Linux (kernel 2.2.x, RedHat 6.x) (1.10.8)
160 Linux (kernel 2.2.x, RedHat 7.x) (1.11)
162 FreeBSD 2.1.5-stable (1.8.87)
164 SCO Unix 3.2.4.2, gcc 2.7.2 (1.8.87) (footnote 4)
165 SCO OpenServer 5.0.5 (1.10.2)
166 Sequent DYNIX/ptx4.0 (1.10 or so) (remove -linet)
167 Sequent Dynix/PTX 4.1.4 (1.9.20 or so + patches)
168 Lynx 2.3.0 080695 (1.6.86) (footnote 9)
169 Windows NT 3.51 (1.8.86 client; 1.8.3 local)
170 Windows NT 3.51 service pack 4 (1.9)
171 Windows NT 3.51 service pack 5 (1.9) -- DOES NOT WORK (footnote 11)
172 Windows NT 4.0 (1.9 client and local)
173 Windows NT 4.0 (1.11 client and local - build & test, but no test suite)
174 Windows 95 (1.9 client and local)
175 QNX (1.9.1 + patches for strippath() and va_list)
176 OS/2 Version 3 using IBM C/C++ Tools 2.01 (1.8.86 + patches, client)
177 OS/2 Version 3 using EMX 0.9c (1.9.22, client)
178 OS/2 Version 3 using Watcom version ? (? - has this been tested?)
180 Sun 3 running SunOS 4.1.1_U1 w/ bundled K&R /usr/5bin/cc (1.8.86+)
181 NextSTEP 3.3p1 (1.8.87)
182 Lynx 2.3.0 062695 (1.6.86) (footnote 9)
183 NetBSD/mac68k (1.9.28)
185 Data General AViiON running dgux 5.4R2.10 (1.5)
186 Data General AViiON running dgux 5.4R3.10 (1.7.1)
187 Harris Nighthawk 5800 running CX/UX 7.1 (1.5) (footnote 6)
189 DECstation running Ultrix 4.2a (1.4.90)
190 DECstation running Ultrix 4.3 (1.10)
191 SGI running Irix 4.0.5H using gcc and cc (about 1.4A2) (footnote 2)
192 SGI running Irix 5.3 (1.10)
193 SGI running Irix 6.2 using SGI MIPSpro 6.2 and beta 7.2 compilers (1.9)
194 SGI running Irix-6.2 (1.9.8)
195 SGI running IRIX 6.4 (1.10)
196 SGI running IRIX 6.5 (1.10.7)
197 Siemens-Nixdorf RM600 running SINIX-Y (1.6)
199 IBM RS/6000 running AIX 3.1 using gcc and cc (1.6.86)
200 IBM RS/6000 running AIX 3.2.5 (1.8)
201 IBM RS/6000 running AIX 4.1 (1.9)
202 IBM RS/6000 running AIX 4.3 (1.10.7)
203 Lynx 2.3.1 120495 (1.6.86) (footnote 9)
204 Lynx 2.5 (1.9) (footnote 10)
205 Linux DR3 GENERIC #6 (1.10.5.1) (presumably LinuxPPC too)
206 Mac OS X ALL (footnote 14)
207 Mac OS X Darwin 6.6 Darwin Kernel Version 6.6 (1.11.1p1)
208 Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.11.6) (footnote 12)
209 Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.12.1) (footnote 12)
211 Sun SPARC running SunOS 4.1.x (1.10)
212 Sun SPARCstation 10 running Solaris 2.3 using gcc and cc (about 1.4A2)
213 Sun SPARCstation running Solaris 2.4 using gcc and cc (about 1.5.91)
214 Sun SPARC running Solaris 2.5 (1.8.87)
215 Sun SPARC running Solaris 2.5.1 using gcc 2.7.2.2 (1.9.14)
216 Sun SPARC running Solaris 2.6 (1.10.7)
217 Sun UltraSPARC running Solaris 2.6 using gcc 2.8.1 (1.10)
219 Sun SPARC running Linux 2.0.17, gcc 2.7.2 (1.8.87)
220 Sun UltraSPARC running Solaris 2.8 using gcc 2.95.3
222 VAX running VMS 6.2 (1.9+patches, client-only)
223 (see README.VMS for information on necessary hacks).
226 Some Irix 4.0 systems may core dump in malloc while running
227 CVS. We believe this is a bug in the Irix malloc. You can
228 workaround this bug by linking with "-lmalloc" if necessary.
231 (footnote 4) Comment out the include of sys/time.h in src/server.c. (1.4.93)
232 You also may have to make sure TIME_WITH_SYS_TIME is undef'ed.
234 (footnote 6) Build in ucb universe with COFF compiler tools. Put
235 /usr/local/bin first in PATH while doing a configure, make
236 and install of GNU diffutils-2.7, rcs-5.7, then cvs-1.5.
238 (footnote 7) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
239 success with this configure command:
240 CC=cc CFLAGS='-O2 -Olimit 2000 -std1' ./configure --verbose alpha-dec-osf
242 (footnote 8) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
243 success with this configure command:
244 CC=cc CFLAGS='+O2 -Aa -D_HPUX_SOURCE' ./configure --verbose hppa1.1-hp-hpux
247 Had to configure with ./configure --host=<arch>-lynx.
249 In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE.
250 (I might try building with gcc -mposix -D_POSIX_SOURCE.)
252 LynxOS has <dirent.h>, but you don't want to use it.
253 You want to use <sys/dir.h> instead.
254 So after running configure I had to undef HAVE_DIRENT_H and
255 define HAVE_SYS_DIR_H.
258 Had to compile with "make LIBS=-lbsd" (to get gethostbyname
262 when I do a `cvs init' I get this message:
263 ci: 'RCS/loginfo,v' is not a regular file
264 ci: RCS/loginfo,v: Invalid argument
265 cvs [init aborted]: failed to checkin n:/safe/CVSROOT/loginfo
268 Need to `configure --without-gssapi' unless you have installed Kerberos 5
269 libraries on the system yourself. For some reason Apple ships OS X with
270 the Kerberos 5 headers installed and not the libraries, which confuses the
271 current configure script. Some HP, BSD, & Sun boxes have similar problems.
274 A build under HP PA-RISC 2.0 will probably not run under PA-RISC 1.1
275 unless "+DAportable" is added to the HP ANSI cc compiler flags.
278 Because of the case-insensitive file system on Mac OS X, you cannot build
279 CVS directly from a checkout from CVS. The name of the built executable,
280 `cvs', conflicts with name of the CVS administration directory, `CVS'.
281 The work-around is to build the executable from a build directory separate
282 from the source directory. i.e.:
285 mkdir build; cd build
288 -------------------------------------------------------------------------------
290 Building from source code under Unix:
296 You can specify an alternate destination to override the default with
299 $ ./configure --prefix=/usr/local/gnu
301 or some path that is more appropriate for your site. The default prefix
302 value is "/usr/local", with binaries in sub-directory "bin", manual
303 pages in sub-directory "man", and libraries in sub-directory "lib".
305 A normal build of CVS will create an executable which supports
306 local, server, or client CVS (if you don't know the difference,
307 it is described in the Repository chapter of doc/cvs.texinfo). If
308 you do not intend to use client or server CVS, you may want to
309 prevent these features from being included in the executable you
310 build. You can do this with the --disable-client and
311 --disable-server options:
313 $ ./configure --disable-client --disable-server
315 Typically this can reduce the size of the executable by around 30%.
317 If you are building CVS with the server enabled, you can disable
318 server flow control using the --disable-server-flow-control
319 If you are working with a large remote repository and a 'cvs
320 checkout' is swamping your network and memory, enable flow control.
321 You will end up with even less probability of a consistent checkout
322 (see Concurrency in cvs.texinfo), but CVS doesn't try to guarantee
323 that anyway. The master server process will monitor how far it is
324 getting behind, if it reaches the high water mark, it will signal
325 the child process to stop generating data when convenient (ie: no
326 locks are held, currently at the beginning of a new directory).
327 Once the buffer has drained sufficiently to reach the low water
328 mark, it will be signalled to start again. You may override the
329 default hi/low watermarks here too by passing
330 '<lowwater>,<highwater>', in bytes, as an argument to
331 --enable-server-flow-control. The low water mark defaults to one
332 megabyte and the high water mark defaults to two megabytes.
334 $ ./configure --enable-server-flow-control=1M,2M
336 The --with-tmpdir argument to configure may be used to set a
337 specific directory for use as a default temporary directory. If not
338 set, configure will pick the first directory it finds which it has
339 read, write, and execute permissions to from $TMPDIR, $TMP, $TEMP,
340 /tmp, and /var/tmp, in that order. Failing that, it will use /tmp.
342 The --with-umask argument to configure can be used to change
343 the default umask used by the CVS server executable.
345 Unlike previous versions of CVS, you do not need to install RCS
348 If you are using gcc and are planning to modify CVS, you may want to
349 configure with -Wall; see the file HACKING for details.
351 If you have Kerberos 4 installed, you can specify the location of
352 the header files and libraries using the --with-krb4=DIR option.
353 DIR should be a directory with subdirectories include and lib
354 holding the Kerberos 4 header files and libraries, respectively.
355 The default value is /usr/kerberos.
357 If you want to enable support for encryption over Kerberos, use
358 the --enable-encryption option. This option is disabled by
361 If you want to disable automatic dependency tracking in the makefiles,
362 use the '--disable-dependency-tracking' option:
364 $ ./configure --disable-dependency-tracking
366 This avoids problems on some platforms. See the note at the end of this
369 Try './configure --help' for further information on its usage.
371 NOTE ON CVS's USE OF NDBM:
373 By default, CVS uses some built-in ndbm emulation code to allow
374 CVS to work in a heterogeneous environment. However, if you have
375 a very large modules database, this may not work well. You will
376 need to supply the --disable-cvs-ndbm option to configure to
377 accomplish this. If you do this, the following comments apply. If
378 not, you may safely skip these comments.
380 If you configure CVS to use the real ndbm(3) libraries and
381 you do not have them installed in a "normal" place, you will
382 probably want to get the GNU version of ndbm (gdbm) and install
383 that before running the CVS configure script. Be aware that the
384 GDBM 1.5 release does NOT install the <ndbm.h> header file included
385 with the release automatically. You may have to install it by hand.
387 If you configure CVS to use the ndbm(3) libraries, you cannot
388 compile CVS with GNU cc (gcc) on Sun-4 SPARC systems. However, gcc
389 2.0 may have fixed this limitation if -fpcc-struct-return is
390 defined. When using gcc on other systems to compile CVS, you *may*
391 need to specify the -fpcc-struct-return option to gcc (you will
392 *know* you have to if "cvs checkout" core dumps in some ndbm
393 function). You can do this as follows:
395 $ CC='gcc -fpcc-struct-return' ./configure
397 for sh, bash, and ksh users and:
399 % setenv CC 'gcc -fpcc-struct-return'
402 for csh and tcsh users.
404 END OF NOTE FOR NDBM GUNK.
410 This will (hopefully) make the needed CVS binaries within the
411 "src" directory. If something fails for your system, and you want
412 to submit a bug report, you may wish to include your
413 "config.status" file, your host type, operating system and
414 compiler information, make output, and anything else you think
417 3) Run the regression tests (optional).
419 You may also wish to validate the correctness of the new binary by
420 running the regression tests. If they succeed, that is nice to
421 know. However, if they fail, it doesn't tell you much. Often it
422 will just be a problem with running the tests on your machine,
423 rather than a problem with CVS. Unless you will have the time to
424 determine which of the two it is in case of failure, you might
425 want to save yourself the time and just not run the tests.
427 If you want to run the tests, see the file TESTS for more information.
429 4) Install the binaries/documentation:
433 Depending on your installation's configuration, you may need to be
436 -------------------------------------------------------------------------------
438 Detailed information about your interaction with "configure":
440 The "configure" script and its interaction with its options and the
441 environment is described here. For more detailed documentation about
442 "configure", please run `./configure --help' or refer to the GNU Autoconf
445 Supported options are:
447 --srcdir=DIR Useful for compiling on many different
448 machines sharing one source tree.
449 --prefix=DIR The root of where to install the
450 various pieces of CVS (/usr/local).
451 --exec_prefix=DIR If you want executables in a
452 host-dependent place and shared
453 things in a host-independent place.
455 The following environment variables override configure's default
458 CC If not set, tries to use gcc first,
459 then cc. Also tries to use "-g -O"
460 as options, backing down to -g
461 alone if that doesn't work.
462 INSTALL If not set, tries to use "install", then
463 "./install-sh" as a final choice.
464 RANLIB If not set, tries to determine if "ranlib"
465 is available, choosing "echo" if it doesn't
467 YACC If not set, tries to determine if "bison"
468 is available, choosing "yacc" if it doesn't
471 -------------------------------------------------------------------------------
473 Building from source code under Windows NT/95/98/2000:
475 You may find interesting information in windows-NT/README.
477 * Using Microsoft Visual C++ 5.x (this is currently broken - someone with
478 MVC++ 5.x needs to regenerate the project files, but the builds using `nmake'
481 1) Using Microsoft Visual C++ 5.x, open the project `cvsnt.dsw',
482 in the top directory of the CVS distribution. If you have an older
483 version of Visual C++, take a look at windows-NT/README.
484 2) Choose "Build cvs.exe" from the "Project" menu.
485 3) MSVC will place the executable file cvs.exe in WinRel, or whatever
486 your target directory is.
488 * From the top level directory, with MSVC++ 6.0 installed, something like the
489 following also works:
492 C:\> nmake /f cvsnt.mak CFG="cvsnt - Win32 Debug"
494 * Using the Cygwin development environment <http://cygwin.com>, Windows clients
495 and servers can be built using the instructions for building on UNIX. For
496 deploying the CVS server on Windows NT, see the `cygrunsrv' executable that
499 * You might also try <http://wincvs.org> & <http://www.cvsnt.org>.
501 -------------------------------------------------------------------------------
503 Building from source code under other platforms:
505 For OS/2, see os2/README and emx/README.
507 For VMS, see README.VMS
509 Mac OS X: Builds fine, just like UNIX.
511 For older versions of Mac OS, you might try <http://wincvs.org>.
513 For a Java client, see jCVS (which is a separate package from CVS
514 itself, but which might be preferable to the Macintosh port mentioned
517 -------------------------------------------------------------------------------