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