]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/cvs/INSTALL
This commit was generated by cvs2svn to compensate for changes in r35618,
[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         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)
113 Cray:
114         J90 (CVS 970215 snapshot)
115         T3E (CVS 970215 snapshot)
116 HPPA:
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)
124         NextSTEP 3.3 (1.7)
125 i386 family:
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)
129         ISC 4.0.1 (1.8.87)
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)
134         NextSTEP 3.3 (1.7)
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?)
148 m68k:
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)
152 m88k:
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)
156 MIPS:
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)
164 PowerPC or RS/6000:
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)
170 SPARC:
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)
176         NextSTEP 3.3 (1.7)
177         Sun SPARC running Linux 2.0.17, gcc 2.7.2 (1.8.87)
178 VAX:
179         VAX running VMS 6.2 (1.9+patches, client-only)
180           (see README.VMS for information on necessary hacks).
181
182 (footnote 1)
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).
186
187 (footnote 2)
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.
191         (about 1.4A2).
192
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.
195
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).
200
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.
204
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
208
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
212
213 (footnote 9) 
214     Had to configure with ./configure --host=<arch>-lynx.
215
216     In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE.
217     (I might try building with gcc -mposix -D_POSIX_SOURCE.)
218
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.
223
224 (footnote 10)
225     Had to compile with "make LIBS=-lbsd" (to get gethostbyname
226     and getservbyname).
227
228 (footnote 11)
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
233
234 -------------------------------------------------------------------------------
235
236 Building from source code under Unix:
237
238 1)  Run "configure":
239
240         $ ./configure
241
242     You can specify an alternate destination to override the default with
243     the --prefix option:
244
245         $ ./configure --prefix=/usr/local/gnu
246
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".
250
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:
258
259         $ ./configure --disable-client --disable-server
260
261     Typically this can reduce the size of the executable by around 30%.
262
263     Unlike previous versions of CVS, you do not need to install RCS
264     or GNU diff.  
265
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.
270
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.
273
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.
279
280     If you want to enable support for encryption over Kerberos, use
281     the --enable-encryption option.  This option is disabled by
282     default.
283
284     Try './configure --help' for further information on its usage.
285
286     NOTE ON CVS's USE OF NDBM:
287
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.
294
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.
301
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:
309
310             $ CC='gcc -fpcc-struct-return' ./configure
311
312         for sh, bash, and ksh users and:
313
314             % setenv CC 'gcc -fpcc-struct-return'
315             % ./configure
316
317         for csh and tcsh users.
318
319     END OF NOTE FOR NDBM GUNK.
320
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.
323
324 3)  Try to build it:
325
326         $ make
327
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
333     will be helpful.
334
335 3a)  Run the regression tests (optional).
336
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.
344
345     If you want to run the tests, see the file TESTS for more information.
346
347 4)  Install the binaries/documentation:
348
349         $ make install
350
351     Depending on your installation's configuration, you may need to be
352     root to do this.
353
354 -------------------------------------------------------------------------------
355
356 Detailed information about your interaction with "configure":
357
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.
361
362 Supported options are:
363
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.
371
372 The following environment variables override configure's default
373 behaviour:
374
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
383                                 appear to be.
384         YACC                    If not set, tries to determine if "bison"
385                                 is available, choosing "yacc" if it doesn't
386                                 appear to be.
387
388 -------------------------------------------------------------------------------
389
390 Building from source code under Windows NT/95:
391
392 You may find interesting information in windows-NT/README.
393
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.
400
401 -------------------------------------------------------------------------------
402
403 Building from source code under other platforms:
404
405 For OS/2, see os2/README and emx/README.
406
407 For VMS, see README.VMS
408
409 For Macintosh, see macintosh/README.MacCVS
410
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
413 above, for example).
414
415 -------------------------------------------------------------------------------