]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/cvs/INSTALL
This commit was generated by cvs2svn to compensate for changes in r128456,
[FreeBSD/FreeBSD.git] / contrib / cvs / INSTALL
1 First, read the README file.  If you're still happy...
2
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.
10
11 -------------------------------------------------------------------------------
12
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
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
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:
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
52 3) 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
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:
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
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
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
82 6) You may wish to customize the various administrative files, in particular
83    modules.  See the Cederqvist manual for details.
84
85 7) Read the NEWS file to see what's new.
86
87 8) Hack away.
88
89 -------------------------------------------------------------------------------
90
91 BUILDING FROM SOURCE CODE
92
93 Tested platforms
94
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.
104
105 Alpha:
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)
115 Cray:
116         J90 (CVS 970215 snapshot)
117         T3E (CVS 970215 snapshot)
118 HPPA:
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         HPPA running HP-UX 11.11 (1.11.13) (footnote 12)
127         HPPA 2.0 running HP-UX 10.20 (1.10.9) (footnote 13)
128         NextSTEP 3.3 (1.7)
129 i386 family:
130         Solaris 2.4 using gcc (about 1.4A2)
131         Solaris 2.6 (1.9)
132         UnixWare v1.1.1 using gcc (about 1.4A2)
133         Unixware 2.1 (1.8.86)
134         Unixware 7 (1.9.29)
135         ISC 4.0.1 (1.8.87)
136         Linux (kernel 1.2.x) (1.8.86)
137         Linux (kernel 2.0.x, RedHat 4.2) (1.10)
138         Linux (kernel 2.0.x, RedHat 5.x) (1.10)
139         Linux (kernel 2.2.x, RedHat 6.x) (1.10.8)
140         Linux (kernel 2.2.x, RedHat 7.x) (1.11)
141         BSDI 4.0 (1.10.7)
142         FreeBSD 2.1.5-stable (1.8.87)
143         NextSTEP 3.3 (1.7)
144         SCO Unix 3.2.4.2, gcc 2.7.2 (1.8.87) (footnote 4)
145         SCO OpenServer 5.0.5 (1.10.2)
146         Sequent DYNIX/ptx4.0 (1.10 or so) (remove -linet)
147         Sequent Dynix/PTX 4.1.4 (1.9.20 or so + patches)
148         Lynx 2.3.0 080695 (1.6.86) (footnote 9)
149         Windows NT 3.51 (1.8.86 client; 1.8.3 local)
150         Windows NT 3.51 service pack 4 (1.9)
151         Windows NT 3.51 service pack 5 (1.9) -- DOES NOT WORK (footnote 11)
152         Windows NT 4.0 (1.9 client and local)
153         Windows NT 4.0 (1.11 client and local - build & test, but no test suite)
154         Windows 95 (1.9 client and local)
155         QNX (1.9.1 + patches for strippath() and va_list)
156         OS/2 Version 3 using IBM C/C++ Tools 2.01 (1.8.86 + patches, client)
157         OS/2 Version 3 using EMX 0.9c (1.9.22, client)
158         OS/2 Version 3 using Watcom version ? (? - has this been tested?)
159 m68k:
160         Sun 3 running SunOS 4.1.1_U1 w/ bundled K&R /usr/5bin/cc (1.8.86+)
161         NextSTEP 3.3p1 (1.8.87)
162         Lynx 2.3.0 062695 (1.6.86) (footnote 9)
163         NetBSD/mac68k (1.9.28)
164 m88k:
165         Data General AViiON running dgux 5.4R2.10 (1.5)
166         Data General AViiON running dgux 5.4R3.10 (1.7.1)
167         Harris Nighthawk 5800 running CX/UX 7.1 (1.5) (footnote 6)
168 MIPS:
169         DECstation running Ultrix 4.2a (1.4.90)
170         DECstation running Ultrix 4.3 (1.10)
171         SGI running Irix 4.0.5H using gcc and cc (about 1.4A2) (footnote 2)
172         SGI running Irix 5.3 (1.10)
173         SGI running Irix 6.2 using SGI MIPSpro 6.2 and beta 7.2 compilers (1.9)
174         SGI running Irix-6.2 (1.9.8)
175         SGI running IRIX 6.4 (1.10)
176         SGI running IRIX 6.5 (1.10.7)
177         Siemens-Nixdorf RM600 running SINIX-Y (1.6)
178 PowerPC or RS/6000:
179         IBM RS/6000 running AIX 3.1 using gcc and cc (1.6.86)
180         IBM RS/6000 running AIX 3.2.5 (1.8)
181         IBM RS/6000 running AIX 4.1 (1.9)
182         IBM RS/6000 running AIX 4.3 (1.10.7)
183         Lynx 2.3.1 120495 (1.6.86) (footnote 9)
184         Lynx 2.5 (1.9) (footnote 10)
185         MkLinux DR3 GENERIC #6 (1.10.5.1) (presumably LinuxPPC too)
186         Mac OS X Darwin 6.6 Darwin Kernel Version 6.6 (1.11.1p1)
187         Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.11.6) (footnote 12)
188         Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.12.1) (footnote 12)
189 SPARC:
190         Sun SPARC running SunOS 4.1.x (1.10)
191         Sun SPARCstation 10 running Solaris 2.3 using gcc and cc (about 1.4A2)
192         Sun SPARCstation running Solaris 2.4 using gcc and cc (about 1.5.91)
193         Sun SPARC running Solaris 2.5 (1.8.87)
194         Sun SPARC running Solaris 2.5.1 using gcc 2.7.2.2 (1.9.14)
195         Sun SPARC running Solaris 2.6 (1.10.7)
196         Sun UltraSPARC running Solaris 2.6 using gcc 2.8.1 (1.10)
197         NextSTEP 3.3 (1.7)
198         Sun SPARC running Linux 2.0.17, gcc 2.7.2 (1.8.87)
199         Sun UltraSPARC running Solaris 2.8 using gcc 2.95.3
200 VAX:
201         VAX running VMS 6.2 (1.9+patches, client-only)
202           (see README.VMS for information on necessary hacks).
203
204 (footnote 2)
205         Some Irix 4.0 systems may core dump in malloc while running
206         CVS.  We believe this is a bug in the Irix malloc.  You can
207         workaround this bug by linking with "-lmalloc" if necessary.
208         (about 1.4A2).
209
210 (footnote 4) Comment out the include of sys/time.h in src/server.c. (1.4.93)
211         You also may have to make sure TIME_WITH_SYS_TIME is undef'ed.
212
213 (footnote 6) Build in ucb universe with COFF compiler tools.  Put
214         /usr/local/bin first in PATH while doing a configure, make
215         and install of GNU diffutils-2.7, rcs-5.7, then cvs-1.5.
216
217 (footnote 7) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
218         success with this configure command:
219   CC=cc CFLAGS='-O2 -Olimit 2000 -std1' ./configure --verbose alpha-dec-osf
220
221 (footnote 8) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
222         success with this configure command:
223   CC=cc CFLAGS='+O2 -Aa -D_HPUX_SOURCE' ./configure --verbose hppa1.1-hp-hpux
224
225 (footnote 9) 
226     Had to configure with ./configure --host=<arch>-lynx.
227
228     In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE.
229     (I might try building with gcc -mposix -D_POSIX_SOURCE.)
230
231     LynxOS has <dirent.h>, but you don't want to use it.
232     You want to use <sys/dir.h> instead.
233     So after running configure I had to undef HAVE_DIRENT_H and
234     define HAVE_SYS_DIR_H.
235
236 (footnote 10)
237     Had to compile with "make LIBS=-lbsd" (to get gethostbyname
238     and getservbyname).
239
240 (footnote 11)
241     when I do a `cvs init' I get this message:
242       ci: 'RCS/loginfo,v' is not a regular file
243       ci:  RCS/loginfo,v: Invalid argument
244       cvs [init aborted]: failed to checkin n:/safe/CVSROOT/loginfo
245
246 (footnote 12)
247     Need to `configure --without-gssapi' unless you have installed Kerberos 5
248     libraries on the system yourself.  For some reason Apple ships OS X with
249     the Kerberos 5 headers installed and not the libraries, which confuses the
250     current configure script.  Some HP, BSD, & Sun boxes have similar problems.
251
252 (footnote 13)
253     A build under HP PA-RISC 2.0 will probably not run under PA-RISC 1.1
254     unless "+DAportable" is added to the HP ANSI cc compiler flags.
255
256 -------------------------------------------------------------------------------
257
258 Building from source code under Unix:
259
260 1)  Some combinations of Automake and Autoconf versions may break the
261     CVS build if file timestamps aren't set correctly and people don't
262     have the same versions the developers do, so the rules to run them
263     automatically aren't included in the generated Makefiles unless you run
264     configure with --enable-maintainer-mode.
265
266     The CVS Makefiles and configure script were built using Automake 1.7.9 and
267     Autoconf 2.58, respectively.
268
269     There is a known bug in Autoconf 2.57 that will prevent the configure
270     scripts it generates from working on some platforms.  Other combinations of
271     autotool versions may or may not work.  If you get other versions to work,
272     please send a report to <bug-cvs@gnu.org>.
273
274 2)  Run "configure":
275
276         $ ./configure
277
278     You can specify an alternate destination to override the default with
279     the --prefix option:
280
281         $ ./configure --prefix=/usr/local/gnu
282
283     or some path that is more appropriate for your site.  The default prefix
284     value is "/usr/local", with binaries in sub-directory "bin", manual
285     pages in sub-directory "man", and libraries in sub-directory "lib".
286
287     A normal build of CVS will create an executable which supports
288     local, server, or client CVS (if you don't know the difference,
289     it is described in the Repository chapter of doc/cvs.texinfo).  If
290     you do not intend to use client or server CVS, you may want to
291     prevent these features from being included in the executable you
292     build. You can do this with the --disable-client and
293     --disable-server options:
294
295         $ ./configure --disable-client --disable-server
296
297     Typically this can reduce the size of the executable by around 30%.
298
299     If you are building CVS with the server enabled, you can disable
300     server flow control using the --disable-server-flow-control
301     If you are working with a large remote repository and a 'cvs
302     checkout' is swamping your network and memory, enable flow control.
303     You will end up with even less probability of a consistent checkout
304     (see Concurrency in cvs.texinfo), but CVS doesn't try to guarantee
305     that anyway.  The master server process will monitor how far it is
306     getting behind, if it reaches the high water mark, it will signal
307     the child process to stop generating data when convenient (ie: no
308     locks are held, currently at the beginning of a new directory).
309     Once the buffer has drained sufficiently to reach the low water
310     mark, it will be signalled to start again.  You may override the
311     default hi/low watermarks here too by passing
312     '<lowwater>,<highwater>', in bytes, as an argument to
313     --enable-server-flow-control.  The low water mark defaults to one
314     megabyte and the high water mark defaults to two megabytes.
315
316         $ ./configure --enable-server-flow-control=1M,2M
317
318     The --with-tmpdir argument to configure may be used to set a
319     specific directory for use as a default temporary directory.  If not
320     set, configure will pick the first directory it finds which it has
321     read, write, and execute permissions to from $TMPDIR, $TMP, $TEMP,
322     /tmp, and /var/tmp, in that order.  Failing that, it will use /tmp.
323
324     The --with-umask argument to configure can be used to change
325     the default umask used by the CVS server executable.
326
327     Unlike previous versions of CVS, you do not need to install RCS
328     or GNU diff.  
329
330     If you are using gcc and are planning to modify CVS, you may want to
331     configure with -Wall; see the file HACKING for details.
332
333     If you have Kerberos 4 installed, you can specify the location of
334     the header files and libraries using the --with-krb4=DIR option.
335     DIR should be a directory with subdirectories include and lib
336     holding the Kerberos 4 header files and libraries, respectively.
337     The default value is /usr/kerberos.
338
339     If you want to enable support for encryption over Kerberos, use
340     the --enable-encryption option.  This option is disabled by
341     default.
342
343     If you want to disable automatic dependency tracking in the makefiles,
344     use the '--disable-dependency-tracking' option:
345
346         $ ./configure --disable-dependency-tracking
347
348     This avoids problems on some platforms.  See the note at the end of this
349     file on BSD.
350
351     Try './configure --help' for further information on its usage.
352
353     NOTE ON CVS's USE OF NDBM:
354
355         By default, CVS uses some built-in ndbm emulation code to allow
356         CVS to work in a heterogeneous environment.  However, if you have
357         a very large modules database, this may not work well.  You will
358         need to supply the --disable-cvs-ndbm option to configure to
359         accomplish this.  If you do this, the following comments apply.  If
360         not, you may safely skip these comments.
361
362         If you configure CVS to use the real ndbm(3) libraries and
363         you do not have them installed in a "normal" place, you will
364         probably want to get the GNU version of ndbm (gdbm) and install
365         that before running the CVS configure script.  Be aware that the
366         GDBM 1.5 release does NOT install the <ndbm.h> header file included
367         with the release automatically.  You may have to install it by hand.
368
369         If you configure CVS to use the ndbm(3) libraries, you cannot
370         compile CVS with GNU cc (gcc) on Sun-4 SPARC systems.  However, gcc
371         2.0 may have fixed this limitation if -fpcc-struct-return is
372         defined.  When using gcc on other systems to compile CVS, you *may*
373         need to specify the -fpcc-struct-return option to gcc (you will
374         *know* you have to if "cvs checkout" core dumps in some ndbm
375         function).  You can do this as follows:
376
377             $ CC='gcc -fpcc-struct-return' ./configure
378
379         for sh, bash, and ksh users and:
380
381             % setenv CC 'gcc -fpcc-struct-return'
382             % ./configure
383
384         for csh and tcsh users.
385
386     END OF NOTE FOR NDBM GUNK.
387
388 3)  Try to build it:
389
390         $ make
391
392     This will (hopefully) make the needed CVS binaries within the
393     "src" directory.  If something fails for your system, and you want
394     to submit a bug report, you may wish to include your
395     "config.status" file, your host type, operating system and
396     compiler information, make output, and anything else you think
397     will be helpful.
398
399 3a)  Run the regression tests (optional).
400
401     You may also wish to validate the correctness of the new binary by
402     running the regression tests.  If they succeed, that is nice to
403     know.  However, if they fail, it doesn't tell you much.  Often it
404     will just be a problem with running the tests on your machine,
405     rather than a problem with CVS.  Unless you will have the time to
406     determine which of the two it is in case of failure, you might
407     want to save yourself the time and just not run the tests.
408
409     If you want to run the tests, see the file TESTS for more information.
410
411 4)  Install the binaries/documentation:
412
413         $ make install
414
415     Depending on your installation's configuration, you may need to be
416     root to do this.
417
418 -------------------------------------------------------------------------------
419
420 Detailed information about your interaction with "configure":
421
422 The "configure" script and its interaction with its options and the
423 environment is described here.  For more detailed documentation about
424 "configure", please run `./configure --help' or refer to the GNU Autoconf
425 documentation.
426
427 Supported options are:
428
429         --srcdir=DIR            Useful for compiling on many different
430                                 machines sharing one source tree.
431         --prefix=DIR            The root of where to install the
432                                 various pieces of CVS (/usr/local).
433         --exec_prefix=DIR       If you want executables in a
434                                 host-dependent place and shared
435                                 things in a host-independent place.
436
437 The following environment variables override configure's default
438 behaviour:
439
440         CC                      If not set, tries to use gcc first,
441                                 then cc.  Also tries to use "-g -O"
442                                 as options, backing down to -g
443                                 alone if that doesn't work.
444         INSTALL                 If not set, tries to use "install", then
445                                 "./install-sh" as a final choice.
446         RANLIB                  If not set, tries to determine if "ranlib"
447                                 is available, choosing "echo" if it doesn't
448                                 appear to be.
449         YACC                    If not set, tries to determine if "bison"
450                                 is available, choosing "yacc" if it doesn't
451                                 appear to be.
452
453 -------------------------------------------------------------------------------
454
455 Building from source code under Windows NT/95/98/2000:
456
457 You may find interesting information in windows-NT/README.
458
459 * Using Microsoft Visual C++ 5.x (this is currently broken - someone with
460   MVC++ 5.x needs to regenerate the project files, but the builds using `nmake'
461   below will work).
462
463 1) Using Microsoft Visual C++ 5.x, open the project `cvsnt.dsw',
464    in the top directory of the CVS distribution.  If you have an older
465    version of Visual C++, take a look at windows-NT/README.
466 2) Choose "Build cvs.exe" from the "Project" menu.
467 3) MSVC will place the executable file cvs.exe in WinRel, or whatever
468    your target directory is.
469
470 * From the top level directory, with MSVC++ 6.0 installed, something like the
471 following also works:
472
473         C:\> vcvars32
474         C:\> nmake /f cvsnt.mak CFG="cvsnt - Win32 Debug"
475
476 * Using the Cygwin development environment <http://cygwin.com>, Windows clients
477   and servers can be built using the instructions for building on UNIX.  For
478   deploying the CVS server on Windows NT, see the `cygrunsrv' executable that
479   comes with Cygwin.
480
481 * You might also try <http://wincvs.org> & <http://www.cvsnt.org>.
482
483 -------------------------------------------------------------------------------
484
485 Building from source code under other platforms:
486
487 For OS/2, see os2/README and emx/README.
488
489 For VMS, see README.VMS
490
491 Mac OS X: Builds fine, just like UNIX.
492
493 For older versions of Mac OS, you might try <http://wincvs.org>.
494
495 For a Java client, see jCVS (which is a separate package from CVS
496 itself, but which might be preferable to the Macintosh port mentioned
497 above, for example).
498
499 -------------------------------------------------------------------------------