PageRenderTime 113ms CodeModel.GetById 31ms app.highlight 75ms RepoModel.GetById 2ms app.codeStats 0ms

#! | 517 lines | 404 code | 113 blank | 0 comment | 0 complexity | 6e45b51482d9dfc0d618fd17e7539471 MD5 | raw file
  3CVS is Copyright (C) 1986-2006 The Free Software Foundation, Inc.
  5CVS is free software; you can redistribute it and/or modify
  6it under the terms of the GNU General Public License as published by
  7the Free Software Foundation; either version 1, or (at your option)
  8any later version.
 10This program is distributed in the hope that it will be useful,
 11but WITHOUT ANY WARRANTY; without even the implied warranty of
 13GNU General Public License for more details.
 17Now back to our regularly scheduled program:
 19Please read the README file before reading this INSTALL file.  Then, to
 20install CVS:
 23First you need to obtain and install the CVS executables.  If you got
 24a distribution which contains executables, consult the installation
 25instructions for that distribution.  If you got source code, do not
 26panic.  On many platforms building CVS from source code is a
 27straightforward process requiring no programming knowledge.  See the
 28section BUILDING FROM SOURCE CODE at the end of this file, which
 29includes a list of platforms which have been tested.
 331) 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.
 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.
 442) 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:
 52       CVSROOT=/src/master; export CVSROOT
 54   For C shell users on unix place the following commands in the
 55   user's ~/.cshrc, ~/.login, or /etc/chsrc file:
 57       setenv CVSROOT /src/master
 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.
 64       set CVSROOT=:local:d:\src\master
 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.
 723) 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:
 76       $ cvs init
 78   In this and subsequent examples we use "$" to indicate the command
 79   prompt; do not type the "$".
 814) 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:
 85       $ cvs import -m "test distribution" ccvs CVS_DIST CVS-TEST
 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).
 925) 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:
 96      $ cd
 97      $ cvs checkout ccvs
 99   This will make the directory "ccvs" in your current directory and
100   populate it with the appropriate files and directories.
1026) You may wish to customize the various administrative files, in particular
103   modules.  See the Cederqvist manual for details.
1057) Read the NEWS file to see what's new.
1078) Hack away.
113Tested platforms
115CVS has been tested on the following platforms.  The most recent
116version of CVS reported to have been tested is indicated, but more
117recent versions of CVS probably will work too.  Please send updates to
118this list to (doing so in the form of a diff
119to this file, or at least exact suggested text, is encouraged).
120"tested" means, at a minimum, that CVS compiles and appears to work on
121simple (manual) testing.  In many cases it also means "make check"
122and/or "make remotecheck" passes, but we don't try to list the
123platforms for which that is true.
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 (1.9.14)
133	DEC Alpha running VMS 6.2 (1.8.85 client-only)
134	Alpha running NetBSD 1.2E (1.10)
136	J90 (CVS 970215 snapshot)
137	T3E (CVS 970215 snapshot)
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)
149i386 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, 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?)
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)
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)
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)
198PowerPC 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 ( (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)
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 (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
222	VAX running VMS 6.2 (1.9+patches, client-only)
223	  (see README.VMS for information on necessary hacks).
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).
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.
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.
238(footnote 7) Manoj Srivastava <> reports
239        success with this configure command:
240  CC=cc CFLAGS='-O2 -Olimit 2000 -std1' ./configure --verbose alpha-dec-osf
242(footnote 8) Manoj Srivastava <> reports
243        success with this configure command:
244  CC=cc CFLAGS='+O2 -Aa -D_HPUX_SOURCE' ./configure --verbose hppa1.1-hp-hpux
246(footnote 9) 
247    Had to configure with ./configure --host=<arch>-lynx.
249    In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE.
250    (I might try building with gcc -mposix -D_POSIX_SOURCE.)
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.
257(footnote 10)
258    Had to compile with "make LIBS=-lbsd" (to get gethostbyname
259    and getservbyname).
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
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.
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.
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.:
284	cvs co ccvs; cd ccvs
285	mkdir build; cd build
286	../configure && make
290Building from source code under Unix:
2921)  Run "configure":
294	$ ./configure
296    You can specify an alternate destination to override the default with
297    the --prefix option:
299	$ ./configure --prefix=/usr/local/gnu
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".
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:
313	$ ./configure --disable-client --disable-server
315    Typically this can reduce the size of the executable by around 30%.
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.
334	$ ./configure --enable-server-flow-control=1M,2M
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.
342    The --with-umask argument to configure can be used to change
343    the default umask used by the CVS server executable.
345    Unlike previous versions of CVS, you do not need to install RCS
346    or GNU diff.  
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.
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.
357    If you want to enable support for encryption over Kerberos, use
358    the --enable-encryption option.  This option is disabled by
359    default.
361    If you want to disable automatic dependency tracking in the makefiles,
362    use the '--disable-dependency-tracking' option:
364	$ ./configure --disable-dependency-tracking
366    This avoids problems on some platforms.  See the note at the end of this
367    file on BSD.
369    Try './configure --help' for further information on its usage.
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.
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.
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:
395	    $ CC='gcc -fpcc-struct-return' ./configure
397	for sh, bash, and ksh users and:
399	    % setenv CC 'gcc -fpcc-struct-return'
400	    % ./configure
402	for csh and tcsh users.
4062)  Try to build it:
408	$ make
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.
4173)  Run the regression tests (optional).
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.
427    If you want to run the tests, see the file TESTS for more information.
4294)  Install the binaries/documentation:
431	$ make install
433    Depending on your installation's configuration, you may need to be
434    root to do this.
438Detailed information about your interaction with "configure":
440The "configure" script and its interaction with its options and the
441environment is described here.  For more detailed documentation about
442"configure", please run `./configure --help' or refer to the GNU Autoconf
445Supported options are:
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.
455The following environment variables override configure's default
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.
473Building from source code under Windows NT/95/98/2000:
475You may find interesting information in windows-NT/README.
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).
4811) 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.
4842) Choose "Build cvs.exe" from the "Project" menu.
4853) MSVC will place the executable file cvs.exe in WinRel, or whatever
486   your target directory is.
488* From the top level directory, with MSVC++ 6.0 installed, something like the
489following also works:
491	C:\> vcvars32
492	C:\> nmake /f cvsnt.mak CFG="cvsnt - Win32 Debug"
494* Using the Cygwin development environment <>, 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.
499* You might also try <> & <>.
503Building from source code under other platforms:
505For OS/2, see os2/README and emx/README.
507For VMS, see README.VMS
509Mac OS X: Builds fine, just like UNIX.
511For older versions of Mac OS, you might try <>.
513For a Java client, see jCVS (which is a separate package from CVS
514itself, but which might be preferable to the Macintosh port mentioned
515above, for example).