| 1 | First, read the README file. If you're still happy... |
| 2 | |
| 3 | The CVS 1.3 Beta testers (bless their hearts) verified that CVS compiled |
| 4 | correctly 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 | |
| 45 | CVS had some problems compiling/running on the following machines: |
| 46 | |
| 47 | None! |
| 48 | |
| 49 | NOTE: 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 | |
| 58 | Installation: |
| 59 | |
| 60 | 1) 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 | |
| 68 | 2) 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 | |
| 139 | 3) 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 | |
| 148 | 4) 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 | |
| 155 | 5) 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 | |
| 163 | 6) 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 | |
| 182 | 7) 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 | |
| 198 | 8) 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 | |
| 206 | 9) 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 | |
| 215 | 10) 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 | |
| 220 | 11) Read the ChangeLog file to see what's new. REALLY! I use the |
| 221 | ChangeLog file as the Release Notes. |
| 222 | |
| 223 | 12) Hack away. |
| 224 | |
| 225 | ------------------------------------------------------------------------------- |
| 226 | |
| 227 | Detailed info about your interaction with "configure": |
| 228 | |
| 229 | The "configure" script and its interaction with its options and the |
| 230 | environment is described here. |
| 231 | |
| 232 | Supported 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 | |
| 241 | The following environment variables override configure's default |
| 242 | behaviour: |
| 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 | ------------------------------------------------------------------------------- |