/contrib/cvs/INSTALL

https://bitbucket.org/freebsd/freebsd-head/ · #! · 517 lines · 404 code · 113 blank · 0 comment · 0 complexity · 6e45b51482d9dfc0d618fd17e7539471 MD5 · raw file

  1. -------------------------------------------------------------------------------
  2. CVS is Copyright (C) 1986-2006 The Free Software Foundation, Inc.
  3. CVS is free software; you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation; either version 1, or (at your option)
  6. any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. -------------------------------------------------------------------------------
  12. Now back to our regularly scheduled program:
  13. Please read the README file before reading this INSTALL file. Then, to
  14. install CVS:
  15. First you need to obtain and install the CVS executables. If you got
  16. a distribution which contains executables, consult the installation
  17. instructions for that distribution. If you got source code, do not
  18. panic. On many platforms building CVS from source code is a
  19. straightforward process requiring no programming knowledge. See the
  20. section BUILDING FROM SOURCE CODE at the end of this file, which
  21. includes a list of platforms which have been tested.
  22. -------------------------------------------------------------------------------
  23. 1) Take a look at the CVS documentation, if desired. For most
  24. purposes you want doc/cvs.texinfo, also known as _Version Management
  25. with CVS_ by Per Cederqvist et al. Looking at it might be as simple
  26. as "info cvs" but this will depend on your installation; see README
  27. for more details.
  28. See what CVS can do for you, and if it fits your environment (or can
  29. possibly be made to fit your environment). If things look good,
  30. continue on. Alternately, just give CVS a try first then figure out
  31. what it is good for.
  32. 2) Set the CVSROOT environment variable to where you want to put your
  33. source repository. See the "Setting up the repository" section of
  34. the Cederqvist manual for details, but the quick summary is just to
  35. pick some directory. We'll use /src/master as an example. For
  36. users of a POSIX shell (sh/bash/ksh) on unix, the following
  37. commands can be placed in user's ~/.profile, ~/.bash_profile file;
  38. or in the site-wide /etc/profile:
  39. CVSROOT=/src/master; export CVSROOT
  40. For C shell users on unix place the following commands in the
  41. user's ~/.cshrc, ~/.login, or /etc/chsrc file:
  42. setenv CVSROOT /src/master
  43. For Windows users, supposing the repository will be in
  44. d:\src\master, place the following line in c:\autoexec.bat. On
  45. Windows 95, autoexec.bat might not already exist. In that case,
  46. just create a new file containing the following line.
  47. set CVSROOT=:local:d:\src\master
  48. If these environment variables are not already set in your current
  49. shell, set them now by typing the above line at the command prompt
  50. (or source the login script you just edited).
  51. The instructions for the remaining steps assume that you have set
  52. the CVSROOT environment variable.
  53. 3) Create the master source repository. Again, the details are in
  54. the "Setting up the repository" section of cvs.texinfo; the
  55. one-line summary is:
  56. $ cvs init
  57. In this and subsequent examples we use "$" to indicate the command
  58. prompt; do not type the "$".
  59. 4) It might be a good idea to jump right in and put some sources or
  60. documents directly under CVS control. From within the top-level
  61. directory of your source tree, run the following commands:
  62. $ cvs import -m "test distribution" ccvs CVS_DIST CVS-TEST
  63. (Those last three items are, respectively, a repository location, a
  64. "vendor tag", and a "release tag". You don't need to understand
  65. them yet, but read the section "Starting new projects" in the
  66. Cederqvist manual for details).
  67. 5) Having done step 4, one should be able to checkout a fresh copy of the
  68. sources you just imported and hack away at the sources with the
  69. following command:
  70. $ cd
  71. $ cvs checkout ccvs
  72. This will make the directory "ccvs" in your current directory and
  73. populate it with the appropriate files and directories.
  74. 6) You may wish to customize the various administrative files, in particular
  75. modules. See the Cederqvist manual for details.
  76. 7) Read the NEWS file to see what's new.
  77. 8) Hack away.
  78. -------------------------------------------------------------------------------
  79. BUILDING FROM SOURCE CODE
  80. Tested platforms
  81. CVS has been tested on the following platforms. The most recent
  82. version of CVS reported to have been tested is indicated, but more
  83. recent versions of CVS probably will work too. Please send updates to
  84. this list to bug-cvs@nongnu.org (doing so in the form of a diff
  85. to this file, or at least exact suggested text, is encouraged).
  86. "tested" means, at a minimum, that CVS compiles and appears to work on
  87. simple (manual) testing. In many cases it also means "make check"
  88. and/or "make remotecheck" passes, but we don't try to list the
  89. platforms for which that is true.
  90. Alpha:
  91. DEC Alpha running OSF/1 version 1.3 using cc (about 1.4A2)
  92. DEC Alpha running OSF/1 version 2.0 (1.8)
  93. DEC Alpha running OSF/1 version 2.1 (about 1.4A2)
  94. DEC Alpha running OSF/1 version 3.0 (1.5.95) (footnote 7)
  95. DEC Alpha running OSF/1 version 3.2 (1.9)
  96. Alpha running alpha-dec-osf4.0 (1.10)
  97. DEC Alpha running Digital UNIX v4.0C using gcc 2.7.2.2 (1.9.14)
  98. DEC Alpha running VMS 6.2 (1.8.85 client-only)
  99. Alpha running NetBSD 1.2E (1.10)
  100. Cray:
  101. J90 (CVS 970215 snapshot)
  102. T3E (CVS 970215 snapshot)
  103. HPPA:
  104. HP 9000/710 running HP-UX 8.07A using gcc (about 1.4A2)
  105. HPPA running HP-UX 9 (1.8)
  106. HPPA 1.1 running HP-UX A.09.03 (1.5.95) (footnote 8)
  107. HPPA 1.1 running HP-UX A.09.04 (1.7.1)
  108. HPPA running HP-UX 9.05 (1.9)
  109. HPPA running HP-UX 10.01 (1.7)
  110. HPPA running HP-UX 10.20 (1.10.7)
  111. HPPA running HP-UX 11.11 (1.11.13) (footnote 12)
  112. HPPA 2.0 running HP-UX 10.20 (1.10.9) (footnote 13)
  113. NextSTEP 3.3 (1.7)
  114. i386 family:
  115. Solaris 2.4 using gcc (about 1.4A2)
  116. Solaris 2.6 (1.9)
  117. UnixWare v1.1.1 using gcc (about 1.4A2)
  118. Unixware 2.1 (1.8.86)
  119. Unixware 7 (1.9.29)
  120. ISC 4.0.1 (1.8.87)
  121. Linux (kernel 1.2.x) (1.8.86)
  122. Linux (kernel 2.0.x, RedHat 4.2) (1.10)
  123. Linux (kernel 2.0.x, RedHat 5.x) (1.10)
  124. Linux (kernel 2.2.x, RedHat 6.x) (1.10.8)
  125. Linux (kernel 2.2.x, RedHat 7.x) (1.11)
  126. BSDI 4.0 (1.10.7)
  127. FreeBSD 2.1.5-stable (1.8.87)
  128. NextSTEP 3.3 (1.7)
  129. SCO Unix 3.2.4.2, gcc 2.7.2 (1.8.87) (footnote 4)
  130. SCO OpenServer 5.0.5 (1.10.2)
  131. Sequent DYNIX/ptx4.0 (1.10 or so) (remove -linet)
  132. Sequent Dynix/PTX 4.1.4 (1.9.20 or so + patches)
  133. Lynx 2.3.0 080695 (1.6.86) (footnote 9)
  134. Windows NT 3.51 (1.8.86 client; 1.8.3 local)
  135. Windows NT 3.51 service pack 4 (1.9)
  136. Windows NT 3.51 service pack 5 (1.9) -- DOES NOT WORK (footnote 11)
  137. Windows NT 4.0 (1.9 client and local)
  138. Windows NT 4.0 (1.11 client and local - build & test, but no test suite)
  139. Windows 95 (1.9 client and local)
  140. QNX (1.9.1 + patches for strippath() and va_list)
  141. OS/2 Version 3 using IBM C/C++ Tools 2.01 (1.8.86 + patches, client)
  142. OS/2 Version 3 using EMX 0.9c (1.9.22, client)
  143. OS/2 Version 3 using Watcom version ? (? - has this been tested?)
  144. m68k:
  145. Sun 3 running SunOS 4.1.1_U1 w/ bundled K&R /usr/5bin/cc (1.8.86+)
  146. NextSTEP 3.3p1 (1.8.87)
  147. Lynx 2.3.0 062695 (1.6.86) (footnote 9)
  148. NetBSD/mac68k (1.9.28)
  149. m88k:
  150. Data General AViiON running dgux 5.4R2.10 (1.5)
  151. Data General AViiON running dgux 5.4R3.10 (1.7.1)
  152. Harris Nighthawk 5800 running CX/UX 7.1 (1.5) (footnote 6)
  153. MIPS:
  154. DECstation running Ultrix 4.2a (1.4.90)
  155. DECstation running Ultrix 4.3 (1.10)
  156. SGI running Irix 4.0.5H using gcc and cc (about 1.4A2) (footnote 2)
  157. SGI running Irix 5.3 (1.10)
  158. SGI running Irix 6.2 using SGI MIPSpro 6.2 and beta 7.2 compilers (1.9)
  159. SGI running Irix-6.2 (1.9.8)
  160. SGI running IRIX 6.4 (1.10)
  161. SGI running IRIX 6.5 (1.10.7)
  162. Siemens-Nixdorf RM600 running SINIX-Y (1.6)
  163. PowerPC or RS/6000:
  164. IBM RS/6000 running AIX 3.1 using gcc and cc (1.6.86)
  165. IBM RS/6000 running AIX 3.2.5 (1.8)
  166. IBM RS/6000 running AIX 4.1 (1.9)
  167. IBM RS/6000 running AIX 4.3 (1.10.7)
  168. Lynx 2.3.1 120495 (1.6.86) (footnote 9)
  169. Lynx 2.5 (1.9) (footnote 10)
  170. Linux DR3 GENERIC #6 (1.10.5.1) (presumably LinuxPPC too)
  171. Mac OS X ALL (footnote 14)
  172. Mac OS X Darwin 6.6 Darwin Kernel Version 6.6 (1.11.1p1)
  173. Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.11.6) (footnote 12)
  174. Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.12.1) (footnote 12)
  175. SPARC:
  176. Sun SPARC running SunOS 4.1.x (1.10)
  177. Sun SPARCstation 10 running Solaris 2.3 using gcc and cc (about 1.4A2)
  178. Sun SPARCstation running Solaris 2.4 using gcc and cc (about 1.5.91)
  179. Sun SPARC running Solaris 2.5 (1.8.87)
  180. Sun SPARC running Solaris 2.5.1 using gcc 2.7.2.2 (1.9.14)
  181. Sun SPARC running Solaris 2.6 (1.10.7)
  182. Sun UltraSPARC running Solaris 2.6 using gcc 2.8.1 (1.10)
  183. NextSTEP 3.3 (1.7)
  184. Sun SPARC running Linux 2.0.17, gcc 2.7.2 (1.8.87)
  185. Sun UltraSPARC running Solaris 2.8 using gcc 2.95.3
  186. VAX:
  187. VAX running VMS 6.2 (1.9+patches, client-only)
  188. (see README.VMS for information on necessary hacks).
  189. (footnote 2)
  190. Some Irix 4.0 systems may core dump in malloc while running
  191. CVS. We believe this is a bug in the Irix malloc. You can
  192. workaround this bug by linking with "-lmalloc" if necessary.
  193. (about 1.4A2).
  194. (footnote 4) Comment out the include of sys/time.h in src/server.c. (1.4.93)
  195. You also may have to make sure TIME_WITH_SYS_TIME is undef'ed.
  196. (footnote 6) Build in ucb universe with COFF compiler tools. Put
  197. /usr/local/bin first in PATH while doing a configure, make
  198. and install of GNU diffutils-2.7, rcs-5.7, then cvs-1.5.
  199. (footnote 7) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
  200. success with this configure command:
  201. CC=cc CFLAGS='-O2 -Olimit 2000 -std1' ./configure --verbose alpha-dec-osf
  202. (footnote 8) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
  203. success with this configure command:
  204. CC=cc CFLAGS='+O2 -Aa -D_HPUX_SOURCE' ./configure --verbose hppa1.1-hp-hpux
  205. (footnote 9)
  206. Had to configure with ./configure --host=<arch>-lynx.
  207. In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE.
  208. (I might try building with gcc -mposix -D_POSIX_SOURCE.)
  209. LynxOS has <dirent.h>, but you don't want to use it.
  210. You want to use <sys/dir.h> instead.
  211. So after running configure I had to undef HAVE_DIRENT_H and
  212. define HAVE_SYS_DIR_H.
  213. (footnote 10)
  214. Had to compile with "make LIBS=-lbsd" (to get gethostbyname
  215. and getservbyname).
  216. (footnote 11)
  217. when I do a `cvs init' I get this message:
  218. ci: 'RCS/loginfo,v' is not a regular file
  219. ci: RCS/loginfo,v: Invalid argument
  220. cvs [init aborted]: failed to checkin n:/safe/CVSROOT/loginfo
  221. (footnote 12)
  222. Need to `configure --without-gssapi' unless you have installed Kerberos 5
  223. libraries on the system yourself. For some reason Apple ships OS X with
  224. the Kerberos 5 headers installed and not the libraries, which confuses the
  225. current configure script. Some HP, BSD, & Sun boxes have similar problems.
  226. (footnote 13)
  227. A build under HP PA-RISC 2.0 will probably not run under PA-RISC 1.1
  228. unless "+DAportable" is added to the HP ANSI cc compiler flags.
  229. (footnote 14)
  230. Because of the case-insensitive file system on Mac OS X, you cannot build
  231. CVS directly from a checkout from CVS. The name of the built executable,
  232. `cvs', conflicts with name of the CVS administration directory, `CVS'.
  233. The work-around is to build the executable from a build directory separate
  234. from the source directory. i.e.:
  235. cvs co ccvs; cd ccvs
  236. mkdir build; cd build
  237. ../configure && make
  238. -------------------------------------------------------------------------------
  239. Building from source code under Unix:
  240. 1) Run "configure":
  241. $ ./configure
  242. You can specify an alternate destination to override the default with
  243. the --prefix option:
  244. $ ./configure --prefix=/usr/local/gnu
  245. or some path that is more appropriate for your site. The default prefix
  246. value is "/usr/local", with binaries in sub-directory "bin", manual
  247. pages in sub-directory "man", and libraries in sub-directory "lib".
  248. A normal build of CVS will create an executable which supports
  249. local, server, or client CVS (if you don't know the difference,
  250. it is described in the Repository chapter of doc/cvs.texinfo). If
  251. you do not intend to use client or server CVS, you may want to
  252. prevent these features from being included in the executable you
  253. build. You can do this with the --disable-client and
  254. --disable-server options:
  255. $ ./configure --disable-client --disable-server
  256. Typically this can reduce the size of the executable by around 30%.
  257. If you are building CVS with the server enabled, you can disable
  258. server flow control using the --disable-server-flow-control
  259. If you are working with a large remote repository and a 'cvs
  260. checkout' is swamping your network and memory, enable flow control.
  261. You will end up with even less probability of a consistent checkout
  262. (see Concurrency in cvs.texinfo), but CVS doesn't try to guarantee
  263. that anyway. The master server process will monitor how far it is
  264. getting behind, if it reaches the high water mark, it will signal
  265. the child process to stop generating data when convenient (ie: no
  266. locks are held, currently at the beginning of a new directory).
  267. Once the buffer has drained sufficiently to reach the low water
  268. mark, it will be signalled to start again. You may override the
  269. default hi/low watermarks here too by passing
  270. '<lowwater>,<highwater>', in bytes, as an argument to
  271. --enable-server-flow-control. The low water mark defaults to one
  272. megabyte and the high water mark defaults to two megabytes.
  273. $ ./configure --enable-server-flow-control=1M,2M
  274. The --with-tmpdir argument to configure may be used to set a
  275. specific directory for use as a default temporary directory. If not
  276. set, configure will pick the first directory it finds which it has
  277. read, write, and execute permissions to from $TMPDIR, $TMP, $TEMP,
  278. /tmp, and /var/tmp, in that order. Failing that, it will use /tmp.
  279. The --with-umask argument to configure can be used to change
  280. the default umask used by the CVS server executable.
  281. Unlike previous versions of CVS, you do not need to install RCS
  282. or GNU diff.
  283. If you are using gcc and are planning to modify CVS, you may want to
  284. configure with -Wall; see the file HACKING for details.
  285. If you have Kerberos 4 installed, you can specify the location of
  286. the header files and libraries using the --with-krb4=DIR option.
  287. DIR should be a directory with subdirectories include and lib
  288. holding the Kerberos 4 header files and libraries, respectively.
  289. The default value is /usr/kerberos.
  290. If you want to enable support for encryption over Kerberos, use
  291. the --enable-encryption option. This option is disabled by
  292. default.
  293. If you want to disable automatic dependency tracking in the makefiles,
  294. use the '--disable-dependency-tracking' option:
  295. $ ./configure --disable-dependency-tracking
  296. This avoids problems on some platforms. See the note at the end of this
  297. file on BSD.
  298. Try './configure --help' for further information on its usage.
  299. NOTE ON CVS's USE OF NDBM:
  300. By default, CVS uses some built-in ndbm emulation code to allow
  301. CVS to work in a heterogeneous environment. However, if you have
  302. a very large modules database, this may not work well. You will
  303. need to supply the --disable-cvs-ndbm option to configure to
  304. accomplish this. If you do this, the following comments apply. If
  305. not, you may safely skip these comments.
  306. If you configure CVS to use the real ndbm(3) libraries and
  307. you do not have them installed in a "normal" place, you will
  308. probably want to get the GNU version of ndbm (gdbm) and install
  309. that before running the CVS configure script. Be aware that the
  310. GDBM 1.5 release does NOT install the <ndbm.h> header file included
  311. with the release automatically. You may have to install it by hand.
  312. If you configure CVS to use the ndbm(3) libraries, you cannot
  313. compile CVS with GNU cc (gcc) on Sun-4 SPARC systems. However, gcc
  314. 2.0 may have fixed this limitation if -fpcc-struct-return is
  315. defined. When using gcc on other systems to compile CVS, you *may*
  316. need to specify the -fpcc-struct-return option to gcc (you will
  317. *know* you have to if "cvs checkout" core dumps in some ndbm
  318. function). You can do this as follows:
  319. $ CC='gcc -fpcc-struct-return' ./configure
  320. for sh, bash, and ksh users and:
  321. % setenv CC 'gcc -fpcc-struct-return'
  322. % ./configure
  323. for csh and tcsh users.
  324. END OF NOTE FOR NDBM GUNK.
  325. 2) Try to build it:
  326. $ make
  327. This will (hopefully) make the needed CVS binaries within the
  328. "src" directory. If something fails for your system, and you want
  329. to submit a bug report, you may wish to include your
  330. "config.status" file, your host type, operating system and
  331. compiler information, make output, and anything else you think
  332. will be helpful.
  333. 3) Run the regression tests (optional).
  334. You may also wish to validate the correctness of the new binary by
  335. running the regression tests. If they succeed, that is nice to
  336. know. However, if they fail, it doesn't tell you much. Often it
  337. will just be a problem with running the tests on your machine,
  338. rather than a problem with CVS. Unless you will have the time to
  339. determine which of the two it is in case of failure, you might
  340. want to save yourself the time and just not run the tests.
  341. If you want to run the tests, see the file TESTS for more information.
  342. 4) Install the binaries/documentation:
  343. $ make install
  344. Depending on your installation's configuration, you may need to be
  345. root to do this.
  346. -------------------------------------------------------------------------------
  347. Detailed information about your interaction with "configure":
  348. The "configure" script and its interaction with its options and the
  349. environment is described here. For more detailed documentation about
  350. "configure", please run `./configure --help' or refer to the GNU Autoconf
  351. documentation.
  352. Supported options are:
  353. --srcdir=DIR Useful for compiling on many different
  354. machines sharing one source tree.
  355. --prefix=DIR The root of where to install the
  356. various pieces of CVS (/usr/local).
  357. --exec_prefix=DIR If you want executables in a
  358. host-dependent place and shared
  359. things in a host-independent place.
  360. The following environment variables override configure's default
  361. behaviour:
  362. CC If not set, tries to use gcc first,
  363. then cc. Also tries to use "-g -O"
  364. as options, backing down to -g
  365. alone if that doesn't work.
  366. INSTALL If not set, tries to use "install", then
  367. "./install-sh" as a final choice.
  368. RANLIB If not set, tries to determine if "ranlib"
  369. is available, choosing "echo" if it doesn't
  370. appear to be.
  371. YACC If not set, tries to determine if "bison"
  372. is available, choosing "yacc" if it doesn't
  373. appear to be.
  374. -------------------------------------------------------------------------------
  375. Building from source code under Windows NT/95/98/2000:
  376. You may find interesting information in windows-NT/README.
  377. * Using Microsoft Visual C++ 5.x (this is currently broken - someone with
  378. MVC++ 5.x needs to regenerate the project files, but the builds using `nmake'
  379. below will work).
  380. 1) Using Microsoft Visual C++ 5.x, open the project `cvsnt.dsw',
  381. in the top directory of the CVS distribution. If you have an older
  382. version of Visual C++, take a look at windows-NT/README.
  383. 2) Choose "Build cvs.exe" from the "Project" menu.
  384. 3) MSVC will place the executable file cvs.exe in WinRel, or whatever
  385. your target directory is.
  386. * From the top level directory, with MSVC++ 6.0 installed, something like the
  387. following also works:
  388. C:\> vcvars32
  389. C:\> nmake /f cvsnt.mak CFG="cvsnt - Win32 Debug"
  390. * Using the Cygwin development environment <http://cygwin.com>, Windows clients
  391. and servers can be built using the instructions for building on UNIX. For
  392. deploying the CVS server on Windows NT, see the `cygrunsrv' executable that
  393. comes with Cygwin.
  394. * You might also try <http://wincvs.org> & <http://www.cvsnt.org>.
  395. -------------------------------------------------------------------------------
  396. Building from source code under other platforms:
  397. For OS/2, see os2/README and emx/README.
  398. For VMS, see README.VMS
  399. Mac OS X: Builds fine, just like UNIX.
  400. For older versions of Mac OS, you might try <http://wincvs.org>.
  401. For a Java client, see jCVS (which is a separate package from CVS
  402. itself, but which might be preferable to the Macintosh port mentioned
  403. above, for example).
  404. -------------------------------------------------------------------------------