386BSD 0.1 development
[unix-history] / usr / othersrc / public / cvs-1.3 / INSTALL
CommitLineData
d304b67d
WJ
1First, read the README file. If you're still happy...
2
3The CVS 1.3 Beta testers (bless their hearts) verified that CVS compiled
4correctly on the following platforms:
5
6 386 running Interactive Unix ISC 2.2.1
7 386 running SCO Xenix 386, 2.3.2
8 ATT 3B2 running System VR3 (*)
9 Altos running Altos Unix v5.3a System V/386 R3.2 (**)
10 Atari/ST (2.5MB) running Minix 1.6.16
11 Cray X-MP running Unicos 6.1
12 DEC 3100 running Ultrix 4.0
13 Decstation 5000/200 running Ultrix 4.0, 4.1 (***), 4.2
14 Gateway2000 486/33C (486@33MHZ) running BSDI BSD/386 0.3 (Beta)
15 HP 9000/360 running HP-UX 6.5
16 HP 9000/710 running HP-UX 8.07
17 HP 9000/730 running HP-UX 8.05
18 HP PA-RISC 800 running HP-UX 8.01
19 IBM RS/6000 running AIX 3.1, 3.2
20 Motorola 68030 running a System 5.3.2 derivative
21 Motorola VME187 running SYSVR3
22 Motorola 88100 running R32V3
23 NEC EWS4800 running System VR4.0.2
24 NeXT 68040 running NeXT Mach 2.1
25 Omron Luna running UNIOS-B 4.3BSD 1.60
26 SGI Iris 4D running Irix 3.3.2 (****), Irix 4.0.1, Irix 4.0.2C
27 Sony NEWS Workstation running NEWS-OS 4.0C
28 Sumitomo Ustation running SEIUX3.2
29 Sun-3 running SunOS 4.0.3, 4.1, 4.1.1
30 Sun-386i running SunOS 4.0.2
31 Sun-4/Sun-4c/Sun-4m running SunOS 4.1.1, 4.1.2, Solaris 2.0
32
33(*) On the ATT 3B2, "tr" was not available (?).
34(**) The Altos system and had problems compiling lib/regex.c.
35(***) Ultrix 4.1 apparently has a nasty compiler/linker that doesn't work
36 well with the CVS "configure" script. You will need to add
37 fnmatch.o to the OBJECTS macro in lib/Makefile for CVS to compile
38 on this system.
39(****) It has been reported that SGI machines running Irix 3.3.2 may hang
40 during "cvs add" and leave an un-killable process. If you
41 experience this, you can define "FSYNC_MISSING", re-compile
42 src/subr.o and the problem should go away. This appears not to be
43 a problem in Irix 4.0.1.
44
45CVS had some problems compiling/running on the following machines:
46
47 None!
48
49NOTE: CVS relies on having some form of the opendir/readdir/closedir
50 functions being available. Some older systems do not support these
51 calls. CVS will not work with these systems unless a suitable
52 readdir implementation is installed on the system. Take a look at
53 the file "contrib/dirfns", which contains some code that might add
54 this support to your system.
55
56-------------------------------------------------------------------------------
57
58Installation:
59
601) Edit the src/config.h header file. Appropriate things to look at may be
61 the invocation locations of programs like DIFF, GREP, RM, and SORT.
62 Also glance at the default values for the environment variables that
63 CVS uses, in particular, the RCSBIN variable, which holds the path to
64 where the RCS programs live on your system. The likelihood is that you
65 don't have to change anything here, except perhaps adding the -a
66 option to DIFF if you are using GNU diff (which is recommended).
67
682) Run "configure":
69
70 $ ./configure
71
72 You can specify an alternate destination to override the default with
73 the --prefix option:
74
75 $ ./configure --prefix=/usr/local/gnu
76
77 or some path that is more appropriate for your site. The default prefix
78 value is "/usr/local", with binaries in sub-directory "bin", manual
79 pages in sub-directory "man", and libraries in sub-directory "lib".
80
81 "configure" tries to use "gcc -g -O" first. If that doesn't work, it
82 will try to use "cc -g -O". If that doesn't work, it uses "cc -g". To
83 override this, simply specify the options in the CC environment variable:
84
85 $ CC="cc -O" ./configure
86
87 for sh, bash, or ksh shell users or:
88
89 % setenv CC "cc -O"
90 % ./configure
91
92 for csh, tcsh shell users.
93
94 NOTE ON CVS's USE OF NDBM:
95
96 By default, CVS uses some built-in ndbm emulation code to allow
97 CVS to work in a heterogeneous environment. However, if you have
98 a very large modules database, this may not work well. You will
99 need to edit src/config.h to turn off the MY_NDBM #define and
100 re-run configure. If you do this, the following comments apply.
101 If not, you may safely skip these comments.
102
103 If you configure CVS to use the real ndbm(3) libraries and
104 you do not have them installed in a "normal" place, you will
105 probably want to get the GNU version of ndbm (gdbm) and install
106 that before running the CVS configure script. Be aware that the
107 GDBM 1.5 release does NOT install the <ndbm.h> header file included
108 with the release automatically. You may have to install it by hand.
109
110 If you configure CVS to use the ndbm(3) libraries, you cannot
111 compile CVS with GNU cc (gcc) on Sun-4 SPARC systems. However, gcc
112 2.0 may have fixed this limitation if -fpcc-struct-return is
113 defined. When using gcc on other systems to compile CVS, you *may*
114 need to specify the -fpcc-struct-return option to gcc (you will
115 *know* you have to if "cvs checkout" core dumps in some ndbm
116 function). You can do this as follows:
117
118 $ CC=gcc DEFS=-fpcc-struct-return ./configure
119
120 for sh, bash, and ksh users and:
121
122 % setenv CC gcc
123 % setenv DEFS -fpcc-struct-return
124 % ./configure
125
126 for csh and tcsh users.
127
128 END OF NOTE FOR NDBM GUNK.
129
130 This release of CVS also requires RCS commands to be installed in the
131 user's PATH (or a path you have configured in src/config.h). If you
132 don't have RCS, you will need to get it from GNU as well. It is best
133 to get the version 5.6 (or later) version of RCS, available from
134 prep.ai.mit.edu in the file pub/gnu/rcs-5.6.tar.Z. Along with RCS, you
135 will want to run GNU diff. This will allow revision control of files
136 with binary data (a real nice feature). You will need at least version
137 1.15 of GNU diff for this to work.
138
1393) Try to build it:
140
141 $ make
142
143 This will (hopefully) make the needed CVS binaries within the "src"
144 directory. Send me your "config.status" file with your host type,
145 operating system information, and make output if something fails for
146 your system.
147
1484) Install the binaries/documentation:
149
150 $ make install
151
152 Depending on your installation's configuration, you may need to be
153 root to do this.
154
1555) Take a look at the CVS manual page.
156
157 $ man cvs
158
159 See what it can do for you, and if it fits your environment (or can
160 possibly be made to fit your environment). If things look good,
161 continue on...
162
1636) Setup the master source repository. Choose a directory with ample disk
164 space available for source files. This is where the RCS ",v" files
165 will be stored. Note that this should be some shared directory for your
166 site. It should probably be auto-mounted, if you're running NFS.
167
168 Say you choose "/src/master" as the root of your source repository.
169 Run the "cvsinit" script to help you set it up. It will ask you to
170 enter the path to your CVSROOT area. You would enter /src/master in
171 this example.
172
173 $ ./cvsinit
174
175 The cvsinit script will setup a reasonable CVSROOT area to start with.
176 It is also valuable to folks who already have a CVSROOT area setup from
177 using earlier releases of CVS. It assumes that you have installed CVS
178 already (step 4) and that the RCS programs (co and ci) are in your
179 PATH. There are many ways to customize CVS for your site. Read the
180 cvs(5) manual page when you get the chance.
181
1827) Have all users of the CVS system set the CVSROOT environment variable
183 appropriately to reflect the placement of your source repository. If
184 the above example is used, the following commands can be placed in
185 user's ~/.profile, ~/.bash_profile, or ~/.login file:
186
187 CVSROOT=/src/master; export CVSROOT
188
189 for sh/bash/ksh users, or
190
191 setenv CVSROOT /src/master
192
193 for csh/tcsh users. If these environment variables are not already set
194 in your current shell, set them now (or source the login script you
195 just edited). You will need to have the CVSROOT environment variable
196 set to continue on to the next step.
197
1988) It might be a good idea to jump right in and put the CVS distribution
199 directly under CVS control. From within the top-level directory of the
200 CVS distribution (the one that contains this README file) do the
201 following commands:
202
203 $ make realclean
204 $ cvs import -m 'CVS 1.3 distribution' cvs CVS CVS1_3
205
2069) Having done step 8, one should be able to checkout a fresh copy of the
207 CVS distribution and hack away at the sources with the following command:
208
209 $ cd
210 $ cvs checkout cvs
211
212 This will make the directory "cvs" in your current directory and
213 populate it with the appropriate CVS files and directories.
214
21510) Remember to edit the modules file manually when sources are checked in
216 with "cvs import" or "cvs add". A copy of the modules file for editing
217 can usually be retrieved with the "cvs checkout modules" command, and
218 definitely with the "cvs checkout CVSROOT" command. See cvs(5).
219
22011) Read the ChangeLog file to see what's new. REALLY! I use the
221 ChangeLog file as the Release Notes.
222
22312) Hack away.
224
225-------------------------------------------------------------------------------
226
227Detailed info about your interaction with "configure":
228
229The "configure" script and its interaction with its options and the
230environment is described here.
231
232Supported options are:
233 --srcdir=DIR Useful for compiling on many different
234 machines sharing one source tree.
235 --prefix=DIR The root of where to install the
236 various pieces of CVS (/usr/local).
237 --exec_prefix=DIR If you want executables in a
238 host-dependent place and shared
239 things in a host-independent place.
240
241The following environment variables override configure's default
242behaviour:
243 CC If not set, tries to use gcc first,
244 then cc. Also tries to use "-g -O"
245 as options, backing down to -g
246 alone if that doesn't work.
247 INSTALL If not set, tries to use "install", then
248 "cp" as a final choice.
249 RANLIB If not set, tries to determine if "ranlib"
250 is available, choosing "echo" if it doesn't
251 appear to be.
252 YACC If not set, tries to determine if "bison"
253 is available, choosing "yacc" if it doesn't
254 appear to be.
255
256-------------------------------------------------------------------------------