Name Date Size #Lines LOC

..29-Oct-2022-

contrib/H08-May-2022-5,9534,321

diff/H08-May-2022-9,2916,264

doc/H08-May-2022-40,85133,800

emx/H08-May-2022-2,7311,642

lib/H08-May-2022-16,37610,507

man/H08-May-2022-3,4663,234

os2/H08-May-2022-5,5243,433

src/H24-Oct-2023-105,28675,376

tools/H08-May-2022-311190

vms/H08-May-2022-5,2123,322

windows-NT/H08-May-2022-6,6263,992

AUTHORSH A D08-May-2022146 53

BUGSH A D08-May-20229.8 KiB232161

COPYINGH A D08-May-202212.3 KiB252202

COPYING.LIBH A D08-May-202224.7 KiB

ChangeLogH A D08-May-2022112.8 KiB3,3572,188

ChangeLog.zooH A D08-May-202228 KiB701526

DEVEL-CVSH A D08-May-20222.7 KiB6248

FAQH A D08-May-2022337.2 KiB8,5615,958

HACKINGH A D08-May-20228.7 KiB205164

INSTALLH A D08-May-202217.4 KiB453351

MINOR-BUGSH A D08-May-20222.8 KiB6250

Makefile.amH A D08-May-20222 KiB6733

Makefile.bsd-wrapperH A D07-Sep-20232.4 KiB7862

Makefile.inH A D08-May-202213.8 KiB462350

NEWSH A D08-May-202248.9 KiB1,158896

PROJECTSH A D08-May-20222.3 KiB5441

READMEH A D08-May-20228 KiB198151

README.VMSH A D08-May-20226.7 KiB156115

TESTSH A D08-May-20227.1 KiB164129

TODOH A D08-May-202240.2 KiB816666

acconfig.hH A D08-May-20221.3 KiB4815

acinclude.m4H A D08-May-20228.1 KiB232214

aclocal.m4H A D08-May-202228.3 KiB862783

build.comH A D08-May-2022178 1110

config.h.inH A D08-May-20228.3 KiB334225

configureH A D13-Apr-2024137.4 KiB4,9074,094

configure.inH A D13-Apr-202413.6 KiB442409

cvs-format.elH A D08-May-20223 KiB947

cvs.specH A D08-May-20226.2 KiB214161

cvs.spec.inH A D08-May-20226.2 KiB214165

cvsnt.dspH A D08-May-202225 KiB1,512846

cvsnt.dswH A D08-May-20221.1 KiB6041

cvsnt.makH A D08-May-202281.3 KiB3,6513,004

depcompH A D08-May-202210.2 KiB359242

install-shH A D08-May-20225.5 KiB252153

missingH A D08-May-20228.1 KiB266216

mkinstalldirsH A D08-May-2022671 3318

stamp-h1.inH A D08-May-202210 21

README

1				CVS Kit
2
3		Copyright (c) 1993-1994 Brian Berliner
4	   Copyright (c) 1992 Brian Berliner and Jeff Polk
5	       Copyright (c) 1989-1992, Brian Berliner
6			 All Rights Reserved
7
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 1, or (at your option)
11    any later version.
12
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17
18-------------------------------------------------------------------------------
19
20Welcome to CVS!
21
22If you have problems or think you have found a bug in CVS, see the
23section BUGS in the CVS manual (also known as Version Management with
24CVS by Per Cederqvist et al, or cvs.texinfo--see below for details).
25
26If you are thinking of submitting changes to CVS, see the
27file HACKING.
28
29Please consult the INSTALL file for information on tested
30configurations.  If you have a comment about an already tested
31configuration, or have tried CVS on a new configuration, please let us
32know as described in INSTALL.  Free software only works if we all help
33out.
34
35Finally, we cannot guarantee that this release will not completely wipe out
36all of your work from your system.  We do some simple testing before each
37release, but you are completely on your own.  We recommend testing this
38release on a source repository that is not critical to your work.  THIS
39SOFTWARE IS SUPPLIED COMPLETELY "AS IS".  NO WARRANTY....
40
41Thanks for your support!
42
43	-The CVS Team
44
45-------------------------------------------------------------------------------
46
47What Is CVS?
48
49CVS is a version control system, which allows you to keep old versions
50of files (usually source code), keep a log of who, when, and why
51changes occurred, etc., like RCS or SCCS.  It handles multiple
52developers, multiple directories, triggers to enable/log/control
53various operations, and can work over a wide area network.  The
54following tasks are not included; they can be done in conjunction with
55CVS but will tend to require some script-writing and software other
56than CVS: bug-tracking, build management (that is, make and make-like
57tools), and automated testing.
58
59And a whole lot more.  See the manual for more information.
60
61-------------------------------------------------------------------------------
62
63Notes to people upgrading from a previous release of CVS:
64
65See the NEWS file for a description of features new in this version.
66
67See the Compatibility section of the manual for information on
68compatibility between CVS versions.  The quick summary is that as long
69as you not using the optional watch features, there are no
70compatibility problems with CVS 1.5 or later.
71
72-------------------------------------------------------------------------------
73
74Installation:
75
76Please read the INSTALL file for installation instructions.  Brief summary:
77
78	$ ./configure
79	$ make
80	(run the regression tests if desired)
81	$ make install
82	(create a repository if you don't already have one)
83
84The documentation is in the doc subdirectory.  cvs.texinfo is the main
85manual; cvs.info* and cvs.ps are the info and postscript versions,
86respectively, generated from cvs.texinfo.  The postscript version is
87for US letter size paper; we do this not because we consider this size
88"better" than A4, but because we believe that the US letter version
89will print better on A4 paper than the other way around. If you want a
90version formatted for A4, add the line @afourpaper near the start of
91cvs.texinfo and re-generate cvs.ps using TeX.
92
93-------------------------------------------------------------------------------
94
95* How do I get up-to-date information and information about other
96versions of CVS?
97
98On the web, http://www.loria.fr/~molli/cvs-index.html.
99
100See also
101	http://www.cvshome.org
102
103The mailing list for CVS is info-cvs@gnu.org.  Send
104subscription and removal requests for that list to
105info-cvs-request@gnu.org.
106
107The newsgroup for CVS (and other configuration management systems) is
108comp.software.config-mgmt.  There is not yet a CVS-specific newsgroup,
109but perhaps if comp.software.config-mgmt gets enough CVS discussion,
110then it will be possible to create one.
111
112-------------------------------------------------------------------------------
113
114Credits:
115
116The conflict-resolution algorithms and much of the administrative file
117definitions of CVS were based on the original package written by Dick Grune
118at Vrije Universiteit in Amsterdam <dick@cs.vu.nl>, and posted to
119comp.sources.unix in the volume 6 release sometime in 1986.  This original
120version was a collection of shell scripts.  I am thankful that Dick made
121his work available.
122
123Brian Berliner from Prisma, Inc. (now at Sun Microsystems, Inc.)
124<berliner@sun.com> converted the original CVS shell scripts into reasonably
125fast C and added many, many features to support software release control
126functions.  See the manual page in the "man" directory.  A copy of the
127USENIX article presented at the Winter 1990 USENIX Conference, Washington
128D.C., is included in the "doc" directory.
129
130Jeff Polk from BSDI <polk@bsdi.com> converted the CVS 1.2
131sources into much more readable and maintainable C code.  He also added a
132whole lot of functionality and modularity to the code in the process.
133See the bottom of the NEWS file (from about 1992).
134
135david d `zoo' zuhn <zoo@armadillo.com> contributed the working base code
136for CVS 1.4 Alpha.  His work carries on from work done by K. Richard Pixley
137and others at Cygnus Support.  The CVS 1.4 upgrade is due in large part to
138Zoo's efforts.
139
140David G. Grubbs <dgg@odi.com> contributed the CVS "history" and "release"
141commands.  As well as the ever-so-useful "-n" option of CVS which tells CVS
142to show what it would do, without actually doing it.  He also contributed
143support for the .cvsignore file.
144
145The Free Software Foundation (GNU) contributed most of the portability
146framework that CVS now uses.  This can be found in the "configure" script,
147the Makefile's, and basically most of the "lib" directory.
148
149K. Richard Pixley, Cygnus Support <rich@cygnus.com> contributed many bug
150fixes/enhancement as well as completing early reviews of the CVS 1.3 manual
151pages.
152
153Roland Pesch, then of Cygnus Support <roland@wrs.com> contributed
154brand new cvs(1) and cvs(5) manual pages.  Thanks to him for saving us
155from poor use of our language!
156
157Paul Sander, HaL Computer Systems, Inc. <paul@hal.com> wrote and
158contributed the code in lib/sighandle.c.  I added support for POSIX, BSD,
159and non-POSIX/non-BSD systems.
160
161Jim Kingdon and others at Cygnus Support <info@cygnus.com> wrote the
162remote repository access code.
163
164There have been many, many contributions not listed here.  Consult the
165ChangeLog files in each directory for a more complete idea.
166
167In addition to the above contributors, the following Beta testers
168deserve special mention for their support.  This is only a partial
169list; if you have helped in this way and would like to be listed, let
170bug-cvs know (as described in the Cederqvist manual).
171
172	Mark D. Baushke <mdb@cisco.com>
173	Per Cederqvist <ceder@signum.se>
174	J.T. Conklin <jtc@cygnus.com>
175	Vince DeMarco <vdemarco@fdcsrvr.cs.mci.com>
176	Paul Eggert <eggert@twinsun.com>
177	Lal George <george@research.att.com>
178	Dean E. Hardi <Dean.E.Hardi@ccmail.jpl.nasa.gov>
179	Mike Heath <mike@pencom.com>
180	Jim Kingdon <kingdon@cygnus.com>
181	Bernd Leibing <bernd.leibing@rz.uni-ulm.de>
182	Benedict Lofstedt <benedict@tusc.com.au>
183	Dave Love <d.love@dl.ac.uk>
184	Robert Lupton the Good <rhl@astro.princeton.edu>
185	Tom McAliney <tom@hilco.com>
186	Eberhard Mattes <mattes@azu.informatik.uni-stuttgart.de>
187	Jim Meyering <meyering@comco.com>
188	Thomas Mohr <mohr@lts.sel.alcatel.de>
189	Thomas Nilsson <thoni@softlab.se>
190	Raye Raskin <raye.raskin@lia.com>
191	Harlan Stenn <harlan@landmark.com>
192	Gunnar Tornblom <gunnar.tornblom@senet.abb.se>
193	Greg A. Woods <woods@planix.com>
194
195Many contributors have added code to the "contrib" directory.  See the
196README file there for a list of what is available.  There is also a
197contributed GNU Emacs CVS-mode in tools/pcl-cvs.
198

README.VMS

1                             CVS port to VMS
2
3DISCLAIMER: This port must be considered experimental.  Although
4previous versions have been in use at one large site since about
5October, 1995, and the port is believed to be quite usable, various
6VMS-specific quirks are known and the port cannot be considered as
7mature as the ports to, say, Windows NT or unix.  As always, future
8progress of this port will depend on volunteer and customer interest.
9
10This port is of the CVS client only.  Or in other words, the port
11implements the full set of CVS commands, but cannot access
12repositories located on the local machine.  The repository must live
13on another machine (a Unix box) which runs a complete port of CVS.
14
15Most (all?) work to date has been done on OpenVMS/AXP 6.2.  Other VMS
16variants might work too.
17
18Provided that both your client and your server are recent (for
19example, CVS 1.9.27 or later), you shouldn't need GNU patch or any
20other executables other than CVS.EXE.
21
22Please send bug reports to bug-cvs@gnu.org.
23
24As of CVS 1.5.something, this port passed most of the tests in
25[.src]sanity.sh.  I say "most" because some tests to not apply to the
26CVS client.  The tests were run by hand because the VMS POSIX shell
27was incapable of running the script.  The tests that sanity.sh
28provides are not conclusive but at least provides some assurance that
29the client is usable.
30
31To compile, you will need DEC C (CC), DEC UCX, and of course DCL
32installed on your machine.  Just type "@build" in the top level
33directory.  This will build the sources in each subdirectory, and link
34the executable [.src]cvs.exe
35
36Copy the executable to an appropriate directory, and define the symbol "CVS"
37in a .COM file which everyone running CVS will need to run.  Here's an example
38of what needs to be done.
39
40$ CVS :== $YOUR_DEVICE:[YOUR.DIRECTORY.CVS]CVS.EXE
41
42Accessing a remote repository can happen in several ways.
43
441. pserver
452. rsh - privileged (default)
463. rsh - unprivileged (on VMS side)
47
48Here's how to do each of the above:
49
50-------------------------------------------------------------------------------
511.  pserver.  This is the preferred way.  It works just as it is
52documented in the CVS manual (see the README file in the CVS
53distribution for more information on the manual).
54
55-------------------------------------------------------------------------------
562. Using CVS internal rsh support (privileged)
57
58VMS's RSH is unusable for CVS's purposes (that is, the one in UCX.
59Don't know about Multinet).  However, there is code within CVS to
60emulate RSH for purposes of contacting a CVS server "in the usual way"
61via rshd.  Unfortunately, this requires the VMS CVS client to be
62installed with OPER privilege, by your system administrator.
63
64RSH uses privileged ports and trusted software/hosts to determine
65which user on the client side is trying to connect.  Part of this
66security is due to the fact that on VMS or UNIX, a non privileged
67process is not permitted to bind a socket to a privileged port.
68
69If rshd receives a connection on a non-privileged port, the connection is
70immediately aborted.  Only connections arriving from a privileged port will
71be authenticated and served.  The CVS client will therefore need privileges
72under VMS to produce such a connection.
73
74*** Please note that no careful examination has been done of the security
75    implications of installing CVS with the OPER privilege.  If some hole
76    exists, then by doing so, you will enable users who are already on
77    your system to gain unauthorized privileges ***
78
79-------------------------------------------------------------------------------
803. Using CVS internal rsh support (non-privileged)
81
82There is a workaround, but this is one case where I think the cure is worse
83than the disease.  If you patch an rshd to not care that the RSH originating
84port is "non-privileged", the CVS VMS client will allow you to define the
85logical CVS_RCMD_PORT to the port number where this patched rshd will be
86listening.  I leave the talk of patching rshd to the gentle reader and his/her
87friendly system administrator.
88
89If I put an entry in my /etc/services file:
90
91cvs_rcmd            4381/tcp        cvs_rcmd
92
93And add a line to /etc/inetd.conf, then restart inetd via "kill -1"
94
95cvs_rcmd  stream  tcp  nowait root /usr/sbin/tcpd  /usr/local/sbin/cvs_rcmd
96
97On the VMS side, you will have to do this:
98
99$ define CVS_RCMD_PORT 4381
100
101Then run CVS in the "usual way".
102
103Note that the patched rshd will need to be invoked via inetd as root, so it can
104authenticate and _become_ the intended user, the same as the regular rshd.
105
106***Please note that you will be installing a security hole by doing this.***
107
108Please also note that this security hole is no larger than allowing a
109Macintosh, PC (OS/2, NT, etc.) to have it's hostname in any .rhosts file,
110as any user can create a privileged socket without authentication, under these
111environments.  In fact, existing ports of CVS to these environment use this
112to their advantage.
113
114-------------------------------------------------------------------------------
115Wildcard expansion is not yet implemented (i.e. CVS COMMIT *.c won't
116work.)  I think that expand_wild should be calling lib$findfile
117(util.c in gzip is said to provide an example), but noone has gotten
118around to implementing this.
119
120Log messages must be entered on the command line using -m or -F.  You
121can use -e or define the logical EDITOR to cause CVS to try other
122editors (TPU.EXE or any other editor which wants DCL command parsing
123will not work) if you want to test what's available on your system.  I
124haven't tested this, but if you install vi or emacs, chances are it
125will probably work.  Just make sure the .EXE files are in a directory
126listed in VAXC$PATH (is this a typo for DCL$PATH?  Also, will a
127logical name work?).  If someone gets around to implementing it, we
128should probably be using the callable editors (e.g. TPU$TPU), although
129of course we also need interface(s) which are not locked into any
130particular editors.
131
132----------------------------------------
133
134Notes regarding compiling on VAX/VMS 6.2 (not Alpha) (These are items
135which hopefully will have cleaner solutions in the future, but here is
136how to get around them for now):
137
138* Need to compile lib/getdate.c with vaxc instead of decc to avoid a
139compiler bugcheck.  Therefore one must add SYS$LIBRARY:VAXCRTL/LIBRARY
140to the link.
141
142* In src/ignore.c, change lstat to stat.  In vms/filesubr.c, change
143"#ifdef S_ISLNK" to "#if 0".
144
145* Ignore the warnings in vms/vmsmunch.c; the system include file
146declares something as an int when it should be void *.  Not *our*
147fault!
148
149* Remove the #define's of mode_t in vms/vms.h and pid_t in vms/pwd.h.
150Add "#include <sys/types.h>" in vms/pwd.h.
151
152Credits:
153
154Initial VMS port by Benjamin J. Lee <benjamin@cyclic.com>, Cyclic
155Software, October 1, 1995 (Update March 1, 1996).
156