INSTALL revision 44852
1First, read the README file.  If you're still happy...
2
3First you need to obtain and install the CVS executables.  If you got
4a distribution which contains executables, consult the installation
5instructions for that distribution.  If you got source code, do not
6panic.  On many platforms building CVS from source code is a
7straightforward process requiring no programming knowledge.  See the
8section BUILDING FROM SOURCE CODE at the end of this file, which
9includes a list of platforms which have been tested.
10
11-------------------------------------------------------------------------------
12
131) 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
242) 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
523) 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
614) 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
725) 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
826) You may wish to customize the various administrative files, in particular
83   modules.  See the Cederqvist manual for details.
84
857) Read the NEWS file to see what's new.
86
878) Hack away.
88
89-------------------------------------------------------------------------------
90
91BUILDING FROM SOURCE CODE
92
93Tested platforms
94
95CVS has been tested on the following platforms.  The most recent
96version of CVS reported to have been tested is indicated, but more
97recent versions of CVS probably will work too.  Please send updates to
98this list to bug-cvs@gnu.org (doing so in the form of a diff
99to this file, or at least exact suggested text, is encouraged).
100"tested" means, at a minimum, that CVS compiles and appears to work on
101simple (manual) testing.  In many cases it also means "make check"
102and/or "make remotecheck" passes, but we don't try to list the
103platforms for which that is true.
104
105Alpha:
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)
113Cray:
114	J90 (CVS 970215 snapshot)
115	T3E (CVS 970215 snapshot)
116HPPA:
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 running HP-UX 9.05 (1.9)
122	HPPA running HP-UX 10.01 (1.7)
123	HPPA running HP-UX 10.20 (1.9, 1.9.14)
124	NextSTEP 3.3 (1.7)
125i386 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	Unixware 7 (1.9.29)
130	ISC 4.0.1 (1.8.87)
131	Linux (kernel 1.2.x) (1.8.86)
132	Linux (kernel 2.0.x, RedHat 4.2) (1.9)
133	BSDI 2.0 (1.4.93) (footnote 5)
134	FreeBSD 2.1.5-stable (1.8.87)
135	NextSTEP 3.3 (1.7)
136	SCO Unix 3.2.4.2, gcc 2.7.2 (1.8.87) (footnote 4)
137	SCO OpenServer 5 (1.9.29)
138	Sequent Dynix/PTX 4.1.4 (1.9.20 or so + patches)
139	Lynx 2.3.0 080695 (1.6.86) (footnote 9)
140	Windows NT 3.51 (1.8.86 client; 1.8.3 local)
141	Windows NT 3.51 service pack 4 (1.9)
142	Windows NT 3.51 service pack 5 (1.9) -- DOES NOT WORK (footnote 11)
143	Windows NT 4.0 (1.9 client and local)
144	Windows 95 (1.9 client and local)
145	QNX (1.9.1 + patches for strippath() and va_list)
146	OS/2 Version 3 using IBM C/C++ Tools 2.01 (1.8.86 + patches, client)
147	OS/2 Version 3 using EMX 0.9c (1.9.22, client)
148	OS/2 Version 3 using Watcom version ? (? - has this been tested?)
149m68k:
150	Sun 3 running SunOS 4.1.1_U1 w/ bundled K&R /usr/5bin/cc (1.8.86+)
151	NextSTEP 3.3p1 (1.8.87)
152	Lynx 2.3.0 062695 (1.6.86) (footnote 9)
153m88k:
154	Data General AViiON running dgux 5.4R2.10 (1.5)
155	Data General AViiON running dgux 5.4R3.10 (1.7.1)
156	Harris Nighthawk 5800 running CX/UX 7.1 (1.5) (footnote 6)
157MIPS:
158	DECstation running Ultrix 4.2a (1.4.90)
159	DECstation running Ultrix 4.3 (1.8.85)
160	SGI running Irix 4.0.5H using gcc and cc (about 1.4A2) (footnote 2)
161	SGI running Irix 5.3 using gcc 2.7.2 (1.8.87)
162	SGI running Irix 6.2 using SGI MIPSpro 6.2 and beta 7.2 compilers (1.9)
163	SGI running Irix-6.2 (1.9.8)
164	Siemens-Nixdorf RM600 running SINIX-Y (1.6)
165PowerPC or RS/6000:
166	IBM RS/6000 running AIX 3.1 using gcc and cc (1.6.86)
167	IBM RS/6000 running AIX 3.2.5 (1.8)
168	IBM RS/6000 running AIX 4.1 (1.9)
169	Lynx 2.3.1 120495 (1.6.86) (footnote 9)
170	Lynx 2.5 (1.9) (footnote 10)
171SPARC:
172	Sun SPARC running SunOS 4.1.x using gcc 2.7.2.1 (1.9.14)
173	Sun SPARCstation 10 running Solaris 2.3 using gcc and cc (about 1.4A2)
174	Sun SPARCstation running Solaris 2.4 using gcc and cc (about 1.5.91)
175	Sun SPARC running Solaris 2.5 (1.8.87)
176	Sun SPARC running Solaris 2.5.1 using gcc 2.7.2.2 (1.9.14)
177	NextSTEP 3.3 (1.7)
178	Sun SPARC running Linux 2.0.17, gcc 2.7.2 (1.8.87)
179VAX:
180	VAX running VMS 6.2 (1.9+patches, client-only)
181	  (see README.VMS for information on necessary hacks).
182
183(footnote 2)
184	Some Irix 4.0 systems may core dump in malloc while running
185	CVS.  We believe this is a bug in the Irix malloc.  You can
186	workaround this bug by linking with "-lmalloc" if necessary.
187	(about 1.4A2).
188
189(footnote 4) Comment out the include of sys/time.h in src/server.c. (1.4.93)
190	You also may have to make sure TIME_WITH_SYS_TIME is undef'ed.
191
192(footnote 5) Change /usr/tmp to /var/tmp in src/server.c (2 places) (1.4.93).
193	(This should no longer be needed; CVS doesn't have /usr/tmp in
194	src/server.c any more.  Has anyone tried a more recent version
195	on BSDI?  If so, please report it so we can update this file).
196
197(footnote 6) Build in ucb universe with COFF compiler tools.  Put
198	/usr/local/bin first in PATH while doing a configure, make
199	and install of GNU diffutils-2.7, rcs-5.7, then cvs-1.5.
200
201(footnote 7) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
202        success with this configure command:
203  CC=cc CFLAGS='-O2 -Olimit 2000 -std1' ./configure --verbose alpha-dec-osf
204
205(footnote 8) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
206        success with this configure command:
207  CC=cc CFLAGS='+O2 -Aa -D_HPUX_SOURCE' ./configure --verbose hppa1.1-hp-hpux
208
209(footnote 9) 
210    Had to configure with ./configure --host=<arch>-lynx.
211
212    In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE.
213    (I might try building with gcc -mposix -D_POSIX_SOURCE.)
214
215    LynxOS has <dirent.h>, but you don't want to use it.
216    You want to use <sys/dir.h> instead.
217    So after running configure I had to undef HAVE_DIRENT_H and
218    define HAVE_SYS_DIR_H.
219
220(footnote 10)
221    Had to compile with "make LIBS=-lbsd" (to get gethostbyname
222    and getservbyname).
223
224(footnote 11)
225    when I do a `cvs init' I get this message:
226      ci: 'RCS/loginfo,v' is not a regular file
227      ci:  RCS/loginfo,v: Invalid argument
228      cvs [init aborted]: failed to checkin n:/safe/CVSROOT/loginfo
229
230-------------------------------------------------------------------------------
231
232Building from source code under Unix:
233
2341)  Run "configure":
235
236	$ ./configure
237
238    You can specify an alternate destination to override the default with
239    the --prefix option:
240
241	$ ./configure --prefix=/usr/local/gnu
242
243    or some path that is more appropriate for your site.  The default prefix
244    value is "/usr/local", with binaries in sub-directory "bin", manual
245    pages in sub-directory "man", and libraries in sub-directory "lib".
246
247    A normal build of CVS will create an executable which supports
248    local, server, or client CVS (if you don't know the difference,
249    it is described in the Repository chapter of doc/cvs.texinfo).  If
250    you do not intend to use client or server CVS, you may want to
251    prevent these features from being included in the executable you
252    build. You can do this with the --disable-client and
253    --disable-server options:
254
255	$ ./configure --disable-client --disable-server
256
257    Typically this can reduce the size of the executable by around 30%.
258
259    Unlike previous versions of CVS, you do not need to install RCS
260    or GNU diff.  
261
262    NOTE: The configure program will cache the results of the previous
263    configure execution.  If you need to re-run configure from scratch, you
264    may need to run "make distclean" first to remove the cached
265    configuration information.
266
267    If you are using gcc and are planning to modify CVS, you may want to
268    configure with -Wall; see the file HACKING for details.
269
270    If you have Kerberos 4 installed, you can specify the location of
271    the header files and libraries using the --with-krb4=DIR option.
272    DIR should be a directory with subdirectories include and lib
273    holding the Kerberos 4 header files and libraries, respectively.
274    The default value is /usr/kerberos.
275
276    If you want to enable support for encryption over Kerberos, use
277    the --enable-encryption option.  This option is disabled by
278    default.
279
280    Try './configure --help' for further information on its usage.
281
282    NOTE ON CVS's USE OF NDBM:
283
284	By default, CVS uses some built-in ndbm emulation code to allow
285	CVS to work in a heterogeneous environment.  However, if you have
286	a very large modules database, this may not work well.  You will
287	need to edit src/options.h to turn off the MY_NDBM #define and
288	re-run configure.  If you do this, the following comments apply.
289	If not, you may safely skip these comments.
290
291	If you configure CVS to use the real ndbm(3) libraries and
292	you do not have them installed in a "normal" place, you will
293	probably want to get the GNU version of ndbm (gdbm) and install
294	that before running the CVS configure script.  Be aware that the
295	GDBM 1.5 release does NOT install the <ndbm.h> header file included
296	with the release automatically.  You may have to install it by hand.
297
298	If you configure CVS to use the ndbm(3) libraries, you cannot
299	compile CVS with GNU cc (gcc) on Sun-4 SPARC systems.  However, gcc
300	2.0 may have fixed this limitation if -fpcc-struct-return is
301	defined.  When using gcc on other systems to compile CVS, you *may*
302	need to specify the -fpcc-struct-return option to gcc (you will
303	*know* you have to if "cvs checkout" core dumps in some ndbm
304	function).  You can do this as follows:
305
306	    $ CC='gcc -fpcc-struct-return' ./configure
307
308	for sh, bash, and ksh users and:
309
310	    % setenv CC 'gcc -fpcc-struct-return'
311	    % ./configure
312
313	for csh and tcsh users.
314
315    END OF NOTE FOR NDBM GUNK.
316
3172)  Edit src/options.h.  The defaults should be reasonable, and in fact
318    if you are lazy you can safely skip this step.
319
3203)  Try to build it:
321
322	$ make
323
324    This will (hopefully) make the needed CVS binaries within the
325    "src" directory.  If something fails for your system, and you want
326    to submit a bug report, you may wish to include your
327    "config.status" file, your host type, operating system and
328    compiler information, make output, and anything else you think
329    will be helpful.
330
3313a)  Run the regression tests (optional).
332
333    You may also wish to validate the correctness of the new binary by
334    running the regression tests.  If they succeed, that is nice to
335    know.  However, if they fail, it doesn't tell you much.  Often it
336    will just be a problem with running the tests on your machine,
337    rather than a problem with CVS.  Unless you will have the time to
338    determine which of the two it is in case of failure, you might
339    want to save yourself the time and just not run the tests.
340
341    If you want to run the tests, see the file TESTS for more information.
342
3434)  Install the binaries/documentation:
344
345	$ make install
346
347    Depending on your installation's configuration, you may need to be
348    root to do this.
349
350-------------------------------------------------------------------------------
351
352Detailed information about your interaction with "configure":
353
354The "configure" script and its interaction with its options and the
355environment is described here.  For more detailed documentation about
356"configure", please refer to the GNU Autoconf documentation.
357
358Supported options are:
359
360	--srcdir=DIR		Useful for compiling on many different
361				machines sharing one source tree.
362	--prefix=DIR		The root of where to install the
363				various pieces of CVS (/usr/local).
364	--exec_prefix=DIR	If you want executables in a
365				host-dependent place and shared
366				things in a host-independent place.
367
368The following environment variables override configure's default
369behaviour:
370
371	CC			If not set, tries to use gcc first,
372				then cc.  Also tries to use "-g -O"
373				as options, backing down to -g
374				alone if that doesn't work.
375	INSTALL			If not set, tries to use "install", then
376				"./install-sh" as a final choice.
377	RANLIB			If not set, tries to determine if "ranlib"
378				is available, choosing "echo" if it doesn't
379				appear to be.
380	YACC			If not set, tries to determine if "bison"
381				is available, choosing "yacc" if it doesn't
382				appear to be.
383
384-------------------------------------------------------------------------------
385
386Building from source code under Windows NT/95:
387
388You may find interesting information in windows-NT/README.
389
3901) Using Microsoft Visual C++ 5.x, open the project `cvsnt.dsp',
391   in the top directory of the CVS distribution.  If you have an older
392   version of Visual C++, take a look at windows-NT/README.
3932) Choose "Build cvs.exe" from the "Project" menu.
3943) MSVC will place the executable file cvs.exe in WinRel, or whatever
395   your target directory is.
396
397-------------------------------------------------------------------------------
398
399Building from source code under other platforms:
400
401For OS/2, see os2/README and emx/README.
402
403For VMS, see README.VMS
404
405For Macintosh, see macintosh/README.MacCVS
406
407For a Java client, see jCVS (which is a separate package from CVS
408itself, but which might be preferable to the Macintosh port mentioned
409above, for example).
410
411-------------------------------------------------------------------------------
412