]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/cvs/INSTALL
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / cvs / INSTALL
1 -------------------------------------------------------------------------------
2
3 CVS is Copyright (C) 1986-2006 The Free Software Foundation, Inc.
4
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)
8 any later version.
9
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.
14
15 -------------------------------------------------------------------------------
16
17 Now back to our regularly scheduled program:
18
19 Please read the README file before reading this INSTALL file.  Then, to
20 install CVS:
21
22
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.
30
31 -------------------------------------------------------------------------------
32
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
37    for more details.
38
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
42    what it is good for.
43
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:
51
52        CVSROOT=/src/master; export CVSROOT
53
54    For C shell users on unix place the following commands in the
55    user's ~/.cshrc, ~/.login, or /etc/chsrc file:
56
57        setenv CVSROOT /src/master
58
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.
63
64        set CVSROOT=:local:d:\src\master
65
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.
71
72 3) Create the master source repository.  Again, the details are in
73    the "Setting up the repository" section of cvs.texinfo; the
74    one-line summary is:
75
76        $ cvs init
77
78    In this and subsequent examples we use "$" to indicate the command
79    prompt; do not type the "$".
80
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:
84
85        $ cvs import -m "test distribution" ccvs CVS_DIST CVS-TEST
86
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).
91
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
94    following command:
95
96       $ cd
97       $ cvs checkout ccvs
98
99    This will make the directory "ccvs" in your current directory and
100    populate it with the appropriate files and directories.
101
102 6) You may wish to customize the various administrative files, in particular
103    modules.  See the Cederqvist manual for details.
104
105 7) Read the NEWS file to see what's new.
106
107 8) Hack away.
108
109 -------------------------------------------------------------------------------
110
111 BUILDING FROM SOURCE CODE
112
113 Tested platforms
114
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.
124
125 Alpha:
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)
135 Cray:
136         J90 (CVS 970215 snapshot)
137         T3E (CVS 970215 snapshot)
138 HPPA:
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)
148         NextSTEP 3.3 (1.7)
149 i386 family:
150         Solaris 2.4 using gcc (about 1.4A2)
151         Solaris 2.6 (1.9)
152         UnixWare v1.1.1 using gcc (about 1.4A2)
153         Unixware 2.1 (1.8.86)
154         Unixware 7 (1.9.29)
155         ISC 4.0.1 (1.8.87)
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)
161         BSDI 4.0 (1.10.7)
162         FreeBSD 2.1.5-stable (1.8.87)
163         NextSTEP 3.3 (1.7)
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?)
179 m68k:
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)
184 m88k:
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)
188 MIPS:
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)
198 PowerPC or RS/6000:
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)
210 SPARC:
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)
218         NextSTEP 3.3 (1.7)
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
221 VAX:
222         VAX running VMS 6.2 (1.9+patches, client-only)
223           (see README.VMS for information on necessary hacks).
224
225 (footnote 2)
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.
229         (about 1.4A2).
230
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.
233
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.
237
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
241
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
245
246 (footnote 9) 
247     Had to configure with ./configure --host=<arch>-lynx.
248
249     In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE.
250     (I might try building with gcc -mposix -D_POSIX_SOURCE.)
251
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.
256
257 (footnote 10)
258     Had to compile with "make LIBS=-lbsd" (to get gethostbyname
259     and getservbyname).
260
261 (footnote 11)
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
266
267 (footnote 12)
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.
272
273 (footnote 13)
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.
276
277 (footnote 14)
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.:
283
284         cvs co ccvs; cd ccvs
285         mkdir build; cd build
286         ../configure && make
287
288 -------------------------------------------------------------------------------
289
290 Building from source code under Unix:
291
292 1)  Run "configure":
293
294         $ ./configure
295
296     You can specify an alternate destination to override the default with
297     the --prefix option:
298
299         $ ./configure --prefix=/usr/local/gnu
300
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".
304
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:
312
313         $ ./configure --disable-client --disable-server
314
315     Typically this can reduce the size of the executable by around 30%.
316
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.
333
334         $ ./configure --enable-server-flow-control=1M,2M
335
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.
341
342     The --with-umask argument to configure can be used to change
343     the default umask used by the CVS server executable.
344
345     Unlike previous versions of CVS, you do not need to install RCS
346     or GNU diff.  
347
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.
350
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.
356
357     If you want to enable support for encryption over Kerberos, use
358     the --enable-encryption option.  This option is disabled by
359     default.
360
361     If you want to disable automatic dependency tracking in the makefiles,
362     use the '--disable-dependency-tracking' option:
363
364         $ ./configure --disable-dependency-tracking
365
366     This avoids problems on some platforms.  See the note at the end of this
367     file on BSD.
368
369     Try './configure --help' for further information on its usage.
370
371     NOTE ON CVS's USE OF NDBM:
372
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.
379
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.
386
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:
394
395             $ CC='gcc -fpcc-struct-return' ./configure
396
397         for sh, bash, and ksh users and:
398
399             % setenv CC 'gcc -fpcc-struct-return'
400             % ./configure
401
402         for csh and tcsh users.
403
404     END OF NOTE FOR NDBM GUNK.
405
406 2)  Try to build it:
407
408         $ make
409
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
415     will be helpful.
416
417 3)  Run the regression tests (optional).
418
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.
426
427     If you want to run the tests, see the file TESTS for more information.
428
429 4)  Install the binaries/documentation:
430
431         $ make install
432
433     Depending on your installation's configuration, you may need to be
434     root to do this.
435
436 -------------------------------------------------------------------------------
437
438 Detailed information about your interaction with "configure":
439
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
443 documentation.
444
445 Supported options are:
446
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.
454
455 The following environment variables override configure's default
456 behaviour:
457
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
466                                 appear to be.
467         YACC                    If not set, tries to determine if "bison"
468                                 is available, choosing "yacc" if it doesn't
469                                 appear to be.
470
471 -------------------------------------------------------------------------------
472
473 Building from source code under Windows NT/95/98/2000:
474
475 You may find interesting information in windows-NT/README.
476
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'
479   below will work).
480
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.
487
488 * From the top level directory, with MSVC++ 6.0 installed, something like the
489 following also works:
490
491         C:\> vcvars32
492         C:\> nmake /f cvsnt.mak CFG="cvsnt - Win32 Debug"
493
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
497   comes with Cygwin.
498
499 * You might also try <http://wincvs.org> & <http://www.cvsnt.org>.
500
501 -------------------------------------------------------------------------------
502
503 Building from source code under other platforms:
504
505 For OS/2, see os2/README and emx/README.
506
507 For VMS, see README.VMS
508
509 Mac OS X: Builds fine, just like UNIX.
510
511 For older versions of Mac OS, you might try <http://wincvs.org>.
512
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
515 above, for example).
516
517 -------------------------------------------------------------------------------