]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/cvs/INSTALL
This commit was generated by cvs2svn to compensate for changes in r96364,
[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 VAX:
195         VAX running VMS 6.2 (1.9+patches, client-only)
196           (see README.VMS for information on necessary hacks).
197
198 (footnote 2)
199         Some Irix 4.0 systems may core dump in malloc while running
200         CVS.  We believe this is a bug in the Irix malloc.  You can
201         workaround this bug by linking with "-lmalloc" if necessary.
202         (about 1.4A2).
203
204 (footnote 4) Comment out the include of sys/time.h in src/server.c. (1.4.93)
205         You also may have to make sure TIME_WITH_SYS_TIME is undef'ed.
206
207 (footnote 6) Build in ucb universe with COFF compiler tools.  Put
208         /usr/local/bin first in PATH while doing a configure, make
209         and install of GNU diffutils-2.7, rcs-5.7, then cvs-1.5.
210
211 (footnote 7) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
212         success with this configure command:
213   CC=cc CFLAGS='-O2 -Olimit 2000 -std1' ./configure --verbose alpha-dec-osf
214
215 (footnote 8) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
216         success with this configure command:
217   CC=cc CFLAGS='+O2 -Aa -D_HPUX_SOURCE' ./configure --verbose hppa1.1-hp-hpux
218
219 (footnote 9) 
220     Had to configure with ./configure --host=<arch>-lynx.
221
222     In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE.
223     (I might try building with gcc -mposix -D_POSIX_SOURCE.)
224
225     LynxOS has <dirent.h>, but you don't want to use it.
226     You want to use <sys/dir.h> instead.
227     So after running configure I had to undef HAVE_DIRENT_H and
228     define HAVE_SYS_DIR_H.
229
230 (footnote 10)
231     Had to compile with "make LIBS=-lbsd" (to get gethostbyname
232     and getservbyname).
233
234 (footnote 11)
235     when I do a `cvs init' I get this message:
236       ci: 'RCS/loginfo,v' is not a regular file
237       ci:  RCS/loginfo,v: Invalid argument
238       cvs [init aborted]: failed to checkin n:/safe/CVSROOT/loginfo
239
240 -------------------------------------------------------------------------------
241
242 Building from source code under Unix:
243
244 1)  Run "configure":
245
246         $ ./configure
247
248     You can specify an alternate destination to override the default with
249     the --prefix option:
250
251         $ ./configure --prefix=/usr/local/gnu
252
253     or some path that is more appropriate for your site.  The default prefix
254     value is "/usr/local", with binaries in sub-directory "bin", manual
255     pages in sub-directory "man", and libraries in sub-directory "lib".
256
257     A normal build of CVS will create an executable which supports
258     local, server, or client CVS (if you don't know the difference,
259     it is described in the Repository chapter of doc/cvs.texinfo).  If
260     you do not intend to use client or server CVS, you may want to
261     prevent these features from being included in the executable you
262     build. You can do this with the --disable-client and
263     --disable-server options:
264
265         $ ./configure --disable-client --disable-server
266
267     Typically this can reduce the size of the executable by around 30%.
268
269     Unlike previous versions of CVS, you do not need to install RCS
270     or GNU diff.  
271
272     NOTE: The configure program will cache the results of the previous
273     configure execution.  If you need to re-run configure from scratch, you
274     may need to run "make distclean" first to remove the cached
275     configuration information.
276
277     If you are using gcc and are planning to modify CVS, you may want to
278     configure with -Wall; see the file HACKING for details.
279
280     If you have Kerberos 4 installed, you can specify the location of
281     the header files and libraries using the --with-krb4=DIR option.
282     DIR should be a directory with subdirectories include and lib
283     holding the Kerberos 4 header files and libraries, respectively.
284     The default value is /usr/kerberos.
285
286     If you want to enable support for encryption over Kerberos, use
287     the --enable-encryption option.  This option is disabled by
288     default.
289
290     If you want to disable automatic dependency tracking in the makefiles,
291     use the '--disable-dependency-tracking' option:
292
293         $ ./configure --disable-dependency-tracking
294
295     This avoids problems on some platforms.  See the note at the end of this
296     file on BSD.
297
298     Try './configure --help' for further information on its usage.
299
300     NOTE ON CVS's USE OF NDBM:
301
302         By default, CVS uses some built-in ndbm emulation code to allow
303         CVS to work in a heterogeneous environment.  However, if you have
304         a very large modules database, this may not work well.  You will
305         need to edit src/options.h to turn off the MY_NDBM #define and
306         re-run configure.  If you do this, the following comments apply.
307         If not, you may safely skip these comments.
308
309         If you configure CVS to use the real ndbm(3) libraries and
310         you do not have them installed in a "normal" place, you will
311         probably want to get the GNU version of ndbm (gdbm) and install
312         that before running the CVS configure script.  Be aware that the
313         GDBM 1.5 release does NOT install the <ndbm.h> header file included
314         with the release automatically.  You may have to install it by hand.
315
316         If you configure CVS to use the ndbm(3) libraries, you cannot
317         compile CVS with GNU cc (gcc) on Sun-4 SPARC systems.  However, gcc
318         2.0 may have fixed this limitation if -fpcc-struct-return is
319         defined.  When using gcc on other systems to compile CVS, you *may*
320         need to specify the -fpcc-struct-return option to gcc (you will
321         *know* you have to if "cvs checkout" core dumps in some ndbm
322         function).  You can do this as follows:
323
324             $ CC='gcc -fpcc-struct-return' ./configure
325
326         for sh, bash, and ksh users and:
327
328             % setenv CC 'gcc -fpcc-struct-return'
329             % ./configure
330
331         for csh and tcsh users.
332
333     END OF NOTE FOR NDBM GUNK.
334
335 2)  Edit src/options.h.  The defaults should be reasonable, and in fact
336     if you are lazy you can safely skip this step.
337
338 3)  Try to build it:
339
340         $ make
341
342     This will (hopefully) make the needed CVS binaries within the
343     "src" directory.  If something fails for your system, and you want
344     to submit a bug report, you may wish to include your
345     "config.status" file, your host type, operating system and
346     compiler information, make output, and anything else you think
347     will be helpful.
348
349 3a)  Run the regression tests (optional).
350
351     You may also wish to validate the correctness of the new binary by
352     running the regression tests.  If they succeed, that is nice to
353     know.  However, if they fail, it doesn't tell you much.  Often it
354     will just be a problem with running the tests on your machine,
355     rather than a problem with CVS.  Unless you will have the time to
356     determine which of the two it is in case of failure, you might
357     want to save yourself the time and just not run the tests.
358
359     If you want to run the tests, see the file TESTS for more information.
360
361 4)  Install the binaries/documentation:
362
363         $ make install
364
365     Depending on your installation's configuration, you may need to be
366     root to do this.
367
368 -------------------------------------------------------------------------------
369
370 Detailed information about your interaction with "configure":
371
372 The "configure" script and its interaction with its options and the
373 environment is described here.  For more detailed documentation about
374 "configure", please refer to the GNU Autoconf documentation.
375
376 Supported options are:
377
378         --srcdir=DIR            Useful for compiling on many different
379                                 machines sharing one source tree.
380         --prefix=DIR            The root of where to install the
381                                 various pieces of CVS (/usr/local).
382         --exec_prefix=DIR       If you want executables in a
383                                 host-dependent place and shared
384                                 things in a host-independent place.
385
386 The following environment variables override configure's default
387 behaviour:
388
389         CC                      If not set, tries to use gcc first,
390                                 then cc.  Also tries to use "-g -O"
391                                 as options, backing down to -g
392                                 alone if that doesn't work.
393         INSTALL                 If not set, tries to use "install", then
394                                 "./install-sh" as a final choice.
395         RANLIB                  If not set, tries to determine if "ranlib"
396                                 is available, choosing "echo" if it doesn't
397                                 appear to be.
398         YACC                    If not set, tries to determine if "bison"
399                                 is available, choosing "yacc" if it doesn't
400                                 appear to be.
401
402 -------------------------------------------------------------------------------
403
404 Building from source code under Windows NT/95/98/2000:
405
406 You may find interesting information in windows-NT/README.
407
408 1) Using Microsoft Visual C++ 5.x, open the project `cvsnt.dsp',
409    in the top directory of the CVS distribution.  If you have an older
410    version of Visual C++, take a look at windows-NT/README.
411 2) Choose "Build cvs.exe" from the "Project" menu.
412 3) MSVC will place the executable file cvs.exe in WinRel, or whatever
413    your target directory is.
414
415 * From the top level directory, with MSVC++ 6.0 installed, something like the
416 following also works:
417
418         C:\> vcvars32
419         C:\> nmake /f cvsnt.mak CFG="cvsnt - Win32 Debug"
420
421 * You might also try http://wincvs.org & http://www.cvsnt.org
422
423 -------------------------------------------------------------------------------
424
425 Building from source code under other platforms:
426
427 For OS/2, see os2/README and emx/README.
428
429 For VMS, see README.VMS
430
431 For Macintosh, see macintosh/README.MacCVS, or, since that file isn't there
432 anymore, you might try http://wincvs.org .
433
434 For a Java client, see jCVS (which is a separate package from CVS
435 itself, but which might be preferable to the Macintosh port mentioned
436 above, for example).
437
438                                   **** ****
439
440 Builds are breaking on some systems (notably,
441 BSD/OS thor.sdrc.com 4.0.1 BSDI BSD/OS 4.0.1 Kernel #3: Thu Mar  9 11:29:16 EST 2000
442 ) due to Automake's dependency tracking code.  The work around for this is to
443 comile without it by passing the '--disable-dependency-tracking' option to
444 configure:
445
446         $ ./configure --disable-dependency-tracking
447
448 This will allow a compile but make will no longer be tracking header
449 dependencies.  This means that if you make any changes to header files you may
450 have to run 'make clean' before running a 'make' to get everything to compile.
451
452 -------------------------------------------------------------------------------