1 First, read the README file. If you're still happy...
3 First you need to obtain and install the CVS executables. If you got
4 a distribution which contains executables, consult the installation
5 instructions for that distribution. If you got source code, do not
6 panic. On many platforms building CVS from source code is a
7 straightforward process requiring no programming knowledge. See the
8 section BUILDING FROM SOURCE CODE at the end of this file, which
9 includes a list of platforms which have been tested.
11 -------------------------------------------------------------------------------
13 1) 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
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
24 2) 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:
32 CVSROOT=/src/master; export CVSROOT
34 For C shell users on unix place the following commands in the
35 user's ~/.cshrc, ~/.login, or /etc/chsrc file:
37 setenv CVSROOT /src/master
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.
44 set CVSROOT=:local:d:\src\master
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.
52 3) Create the master source repository. Again, the details are in
53 the "Setting up the repository" section of cvs.texinfo; the
58 In this and subsequent examples we use "$" to indicate the command
59 prompt; do not type the "$".
61 4) 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:
65 $ cvs import -m "test distribution" ccvs CVS_DIST CVS-TEST
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).
72 5) 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
79 This will make the directory "ccvs" in your current directory and
80 populate it with the appropriate files and directories.
82 6) You may wish to customize the various administrative files, in particular
83 modules. See the Cederqvist manual for details.
85 7) Read the NEWS file to see what's new.
89 -------------------------------------------------------------------------------
91 BUILDING FROM SOURCE CODE
95 CVS has been tested on the following platforms. The most recent
96 version of CVS reported to have been tested is indicated, but more
97 recent versions of CVS probably will work too. Please send updates to
98 this list to bug-cvs@gnu.org (doing so in the form of a diff
99 to this file, or at least exact suggested text, is encouraged).
100 "tested" means, at a minimum, that CVS compiles and appears to work on
101 simple (manual) testing. In many cases it also means "make check"
102 and/or "make remotecheck" passes, but we don't try to list the
103 platforms for which that is true.
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)
114 J90 (CVS 970215 snapshot)
115 T3E (CVS 970215 snapshot)
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 9000/735 running HP-UX A.09.05 (1.8.87)
122 HPPA running HP-UX 10.01 (1.7)
123 HPPA running HP-UX 10.20 using gcc 2.7.2.2 (1.9.14)
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)
130 Linux (kernel 1.2.x) (1.8.86)
131 Linux (kernel 2.0.x, RedHat 4.2) (1.9)
132 BSDI 2.0 (1.4.93) (footnote 5)
133 FreeBSD 2.1.5-stable (1.8.87)
135 SCO Unix 3.2.4.2, gcc 2.7.2 (1.8.87) (footnote 4)
136 SCO OpenServer 5 (1.8.86)
137 Sequent Dynix/PTX 4.1.4 (1.9.20 or so + patches)
138 Lynx 2.3.0 080695 (1.6.86) (footnote 9)
139 Windows NT 3.51 (1.8.86 client; 1.8.3 local)
140 Windows NT 3.51 service pack 4 (1.9)
141 Windows NT 3.51 service pack 5 (1.9) -- DOES NOT WORK (footnote 11)
142 Windows NT 4.0 (1.9 client and local)
143 Windows 95 (1.9 client and local)
144 QNX (1.9.1 + patches for strippath() and va_list)
145 OS/2 Version 3 using IBM C/C++ Tools 2.01 (1.8.86 + patches, client)
146 OS/2 Version 3 using EMX 0.9c (1.9.22, client)
147 OS/2 Version 3 using Watcom version ? (? - has this been tested?)
149 Sun 3 running SunOS 4.1.1_U1 w/ bundled K&R /usr/5bin/cc (1.8.86+)
150 NextSTEP 3.3p1 (1.8.87)
151 Lynx 2.3.0 062695 (1.6.86) (footnote 9)
153 Data General AViiON running dgux 5.4R2.10 (1.5)
154 Data General AViiON running dgux 5.4R3.10 (1.7.1)
155 Harris Nighthawk 5800 running CX/UX 7.1 (1.5) (footnote 6)
157 DECstation running Ultrix 4.2a (1.4.90)
158 DECstation running Ultrix 4.3 (1.8.85)
159 SGI running Irix 4.0.5H using gcc and cc (about 1.4A2) (footnote 2)
160 SGI running Irix 5.3 using gcc 2.7.2 (1.8.87)
161 SGI running Irix 6.2 using SGI MIPSpro 6.2 and beta 7.2 compilers (1.9)
162 SGI running Irix-6.2 (1.9.8)
163 Siemens-Nixdorf RM600 running SINIX-Y (1.6)
165 IBM RS/6000 running AIX 3.1 using gcc and cc (1.6.86)
166 IBM RS/6000 running AIX 3.2.5 (1.8)
167 IBM RS/6000 running AIX 4.1 using gcc and cc (about 1.4A2) (footnote 1)
168 Lynx 2.3.1 120495 (1.6.86) (footnote 9)
169 Lynx 2.5 (1.9) (footnote 10)
171 Sun SPARC running SunOS 4.1.x using gcc 2.7.2.1 (1.9.14)
172 Sun SPARCstation 10 running Solaris 2.3 using gcc and cc (about 1.4A2)
173 Sun SPARCstation running Solaris 2.4 using gcc and cc (about 1.5.91)
174 Sun SPARC running Solaris 2.5 (1.8.87)
175 Sun SPARC running Solaris 2.5.1 using gcc 2.7.2.2 (1.9.14)
177 Sun SPARC running Linux 2.0.17, gcc 2.7.2 (1.8.87)
179 VAX running VMS 6.2 (1.9+patches, client-only)
180 (see README.VMS for information on necessary hacks).
183 AIX 4.1 systems fail to run "configure" due to bugs in their
184 "/bin/sh" implementation. You might want to try feeding the
185 configure script to "bash" ported to AIX 4.1. (about 1.4A2).
188 Some Irix 4.0 systems may core dump in malloc while running
189 CVS. We believe this is a bug in the Irix malloc. You can
190 workaround this bug by linking with "-lmalloc" if necessary.
193 (footnote 4) Comment out the include of sys/time.h in src/server.c. (1.4.93)
194 You also may have to make sure TIME_WITH_SYS_TIME is undef'ed.
196 (footnote 5) Change /usr/tmp to /var/tmp in src/server.c (2 places) (1.4.93).
197 (This should no longer be needed; CVS doesn't have /usr/tmp in
198 src/server.c any more. Has anyone tried a more recent version
199 on BSDI? If so, please report it so we can update this file).
201 (footnote 6) Build in ucb universe with COFF compiler tools. Put
202 /usr/local/bin first in PATH while doing a configure, make
203 and install of GNU diffutils-2.7, rcs-5.7, then cvs-1.5.
205 (footnote 7) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
206 success with this configure command:
207 CC=cc CFLAGS='-O2 -Olimit 2000 -std1' ./configure --verbose alpha-dec-osf
209 (footnote 8) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
210 success with this configure command:
211 CC=cc CFLAGS='+O2 -Aa -D_HPUX_SOURCE' ./configure --verbose hppa1.1-hp-hpux
214 Had to configure with ./configure --host=<arch>-lynx.
216 In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE.
217 (I might try building with gcc -mposix -D_POSIX_SOURCE.)
219 LynxOS has <dirent.h>, but you don't want to use it.
220 You want to use <sys/dir.h> instead.
221 So after running configure I had to undef HAVE_DIRENT_H and
222 define HAVE_SYS_DIR_H.
225 Had to compile with "make LIBS=-lbsd" (to get gethostbyname
229 when I do a `cvs init' I get this message:
230 ci: 'RCS/loginfo,v' is not a regular file
231 ci: RCS/loginfo,v: Invalid argument
232 cvs [init aborted]: failed to checkin n:/safe/CVSROOT/loginfo
234 -------------------------------------------------------------------------------
236 Building from source code under Unix:
242 You can specify an alternate destination to override the default with
245 $ ./configure --prefix=/usr/local/gnu
247 or some path that is more appropriate for your site. The default prefix
248 value is "/usr/local", with binaries in sub-directory "bin", manual
249 pages in sub-directory "man", and libraries in sub-directory "lib".
251 A normal build of CVS will create an executable which supports
252 local, server, or client CVS (if you don't know the difference,
253 it is described in the Repository chapter of doc/cvs.texinfo). If
254 you do not intend to use client or server CVS, you may want to
255 prevent these features from being included in the executable you
256 build. You can do this with the --disable-client and
257 --disable-server options:
259 $ ./configure --disable-client --disable-server
261 Typically this can reduce the size of the executable by around 30%.
263 Unlike previous versions of CVS, you do not need to install RCS
266 NOTE: The configure program will cache the results of the previous
267 configure execution. If you need to re-run configure from scratch, you
268 may need to run "make distclean" first to remove the cached
269 configuration information.
271 If you are using gcc and are planning to modify CVS, you may want to
272 configure with -Wall; see the file HACKING for details.
274 If you have Kerberos 4 installed, you can specify the location of
275 the header files and libraries using the --with-krb4=DIR option.
276 DIR should be a directory with subdirectories include and lib
277 holding the Kerberos 4 header files and libraries, respectively.
278 The default value is /usr/kerberos.
280 If you want to enable support for encryption over Kerberos, use
281 the --enable-encryption option. This option is disabled by
284 Try './configure --help' for further information on its usage.
286 NOTE ON CVS's USE OF NDBM:
288 By default, CVS uses some built-in ndbm emulation code to allow
289 CVS to work in a heterogeneous environment. However, if you have
290 a very large modules database, this may not work well. You will
291 need to edit src/options.h to turn off the MY_NDBM #define and
292 re-run configure. If you do this, the following comments apply.
293 If not, you may safely skip these comments.
295 If you configure CVS to use the real ndbm(3) libraries and
296 you do not have them installed in a "normal" place, you will
297 probably want to get the GNU version of ndbm (gdbm) and install
298 that before running the CVS configure script. Be aware that the
299 GDBM 1.5 release does NOT install the <ndbm.h> header file included
300 with the release automatically. You may have to install it by hand.
302 If you configure CVS to use the ndbm(3) libraries, you cannot
303 compile CVS with GNU cc (gcc) on Sun-4 SPARC systems. However, gcc
304 2.0 may have fixed this limitation if -fpcc-struct-return is
305 defined. When using gcc on other systems to compile CVS, you *may*
306 need to specify the -fpcc-struct-return option to gcc (you will
307 *know* you have to if "cvs checkout" core dumps in some ndbm
308 function). You can do this as follows:
310 $ CC='gcc -fpcc-struct-return' ./configure
312 for sh, bash, and ksh users and:
314 % setenv CC 'gcc -fpcc-struct-return'
317 for csh and tcsh users.
319 END OF NOTE FOR NDBM GUNK.
321 2) Edit src/options.h. The defaults should be reasonable, and in fact
322 if you are lazy you can safely skip this step.
328 This will (hopefully) make the needed CVS binaries within the
329 "src" directory. If something fails for your system, and you want
330 to submit a bug report, you may wish to include your
331 "config.status" file, your host type, operating system and
332 compiler information, make output, and anything else you think
335 3a) Run the regression tests (optional).
337 You may also wish to validate the correctness of the new binary by
338 running the regression tests. If they succeed, that is nice to
339 know. However, if they fail, it doesn't tell you much. Often it
340 will just be a problem with running the tests on your machine,
341 rather than a problem with CVS. Unless you will have the time to
342 determine which of the two it is in case of failure, you might
343 want to save yourself the time and just not run the tests.
345 If you want to run the tests, see the file TESTS for more information.
347 4) Install the binaries/documentation:
351 Depending on your installation's configuration, you may need to be
354 -------------------------------------------------------------------------------
356 Detailed information about your interaction with "configure":
358 The "configure" script and its interaction with its options and the
359 environment is described here. For more detailed documentation about
360 "configure", please refer to the GNU Autoconf documentation.
362 Supported options are:
364 --srcdir=DIR Useful for compiling on many different
365 machines sharing one source tree.
366 --prefix=DIR The root of where to install the
367 various pieces of CVS (/usr/local).
368 --exec_prefix=DIR If you want executables in a
369 host-dependent place and shared
370 things in a host-independent place.
372 The following environment variables override configure's default
375 CC If not set, tries to use gcc first,
376 then cc. Also tries to use "-g -O"
377 as options, backing down to -g
378 alone if that doesn't work.
379 INSTALL If not set, tries to use "install", then
380 "./install-sh" as a final choice.
381 RANLIB If not set, tries to determine if "ranlib"
382 is available, choosing "echo" if it doesn't
384 YACC If not set, tries to determine if "bison"
385 is available, choosing "yacc" if it doesn't
388 -------------------------------------------------------------------------------
390 Building from source code under Windows NT/95:
392 You may find interesting information in windows-NT/README.
394 1) Using Microsoft Visual C++ 5.x, open the project `cvsnt.dsp',
395 in the top directory of the CVS distribution. If you have an older
396 version of Visual C++, take a look at windows-NT/README.
397 2) Choose "Build cvs.exe" from the "Project" menu.
398 3) MSVC will place the executable file cvs.exe in WinRel, or whatever
399 your target directory is.
401 -------------------------------------------------------------------------------
403 Building from source code under other platforms:
405 For OS/2, see os2/README and emx/README.
407 For VMS, see README.VMS
409 For Macintosh, see macintosh/README.MacCVS
411 For a Java client, see jCVS (which is a separate package from CVS
412 itself, but which might be preferable to the Macintosh port mentioned
415 -------------------------------------------------------------------------------