Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 07 Aug 1996 21:27:45 -0700
From:      John Polstra <jdp@polstra.com>
To:        freebsd-hackers@freebsd.org
Subject:   CVSup 13.2 is now available
Message-ID:  <199608080427.VAA10605@austin.polstra.com>

next in thread | raw e-mail | index | archive | help
                     Announcing CVSup 13.2
		     ---------------------
Release 13.2 of CVSup, the CVS-aware network distribution system, is now
available.

Where to Get CVSup
------------------
CVSup is free software.  It is available from the following FTP sites:

    ftp://freefall.freebsd.org/pub/CVSup/
    ftp://ftp.freebsd.org/pub/FreeBSD/incoming/
    ftp://ftp.polstra.com/pub/FreeBSD/CVSup/       (slow)

Full sources as well as FreeBSD binaries are available:

    cvsup-bin-13.2.tar.gz	FreeBSD binaries for the client
    cvsupd-bin-13.2.tar.gz	FreeBSD binaries for the server
    cvsup-13.2.tar.gz		Sources **

The MD5 signatures for these files are:

    MD5 (cvsup-bin-13.2.tar.gz) = 56d31af278f32c6c6090fd5e1fdf6b20
    MD5 (cvsupd-bin-13.2.tar.gz) = 99ea39a92edab9f527c765ed54146448
    MD5 (cvsup-13.2.tar.gz) = a5c27b1310be8e3f4c7dbb864c0cee13

** If you wish to build CVSup from the sources, be sure to read the
discussion further on in this announcement.

What Has Changed Since the Previous Release?
--------------------------------------------
  Fix a bug that caused the server to give up when an RCS file in the
  repository got really out of whack.  This happened only when it was
  trying to update a client file in checkout mode.  Now the server falls
  back upon checking out a fresh copy of the file.

  Fix a bug that caused the server to leave zombie processes under
  FreeBSD-current.

  Fix a bug that caused the build to fail on a manual page problem
  under FreeBSD-current.

  Permit more control over which TCP ports are used, making it more
  convenient to use the client behind a firewall.  See the new "-P"
  option in cvsup(1).

  Support building static, dynamic, or partly dynamic executables.
  "Partly dynamic" means the system libraries are dynamic, but the
  Modula-3 runtime libraries are static.  See "Install" for details.
  For now, I am still putting fully static executables in the binary
  distributions.

  Respond more quickly to the interrupt button on the client GUI.

  Fix the supconv utility to handle the ports collection better.

  Make supconv install properly, and add a manual page for it.

  Add various enhancements to the manual pages.

What Is CVSup?
--------------
CVSup is a software package for distributing and updating collections
of files across a network.  CVSup is specifically tailored to
distributing CVS repositories.  By taking advantage of the special
properties of the files contained in CVS repositories, CVSup is
able to perform updates much faster than traditional systems.  It is
especially valuable for people with slow Internet connections.

CVSup parses and understands the RCS files making up a CVS repository.
When updates occur, CVSup extracts new deltas directly from the RCS
files on the server and edits them into the client's RCS files.
Likewise, CVSup notes the addition of new symbolic tags to the files
on the server and sends only the new tags to the client.

CVSup is able to merge new deltas and tags from the server with deltas
and tags added locally on the client machine.  This makes it possible
for the client to check local modifications into his repository
without their being obliterated by subsequent updates from the server.

In addition to distributing the RCS files themselves, CVSup is able to
distribute specific checked-out versions.  The client can specify a
symbolic tag, a date, or both and CVSup will extract the appropriate
versions from the server's CVS repository.  Checked-out versions do
not need to be stored on the server since CVSup can extract any
version directly from the CVS repository.

If the client has an existing checked-out tree, CVSup will apply the
appropriate edits to update the tree or transform it into the
requested version.  Only the differences between the existing version
and the desired version are sent across the network.

CVSup uses lightweight processes (threads) to implement a streaming
protocol across the network.  This completely eliminates the delays
associated with the lock-step, request-reply form of communication
used by many existing protocols, such as sup and NNTP.  Information
is transferred at the full available speed of the network in both
directions at once.  Network latency and server response delays
are rendered practically irrelevant.

CVSup uses the "zlib" compression package to optionally compress all
communications.  This provides an additional 65-75% compression, on
top of the diff-based compression already built into CVSup.

For efficiency, all processing is built into the CVSup package
itself.  Neither the client nor the server executes any other
programs.

For further information about how CVSup works, see the "Blurb" document
in the CVSup distribution.

Using CVSup to Maintain FreeBSD Sources
---------------------------------------
CVSup servers are currently running at the following FreeBSD mirror
sites:

    cvsup.freebsd.org
    cvsup2.freebsd.org

Using CVSup, you can easily receive or update any of the standard
FreeBSD source releases, namely, "cvs", "current", and "stable".
The manual page for cvsup(1) describes how to do that.

If all goes well, additional servers will come on-line soon.

Building CVSup from the Sources
-------------------------------
CVSup is written in Modula-3, a modern, compiled, object-oriented
language.  Modula-3 integrates threads, exceptions, and garbage
collection, providing an ideal vehicle for this sort of application.
Without Modula-3, CVSup would almost certainly not exist today.

If you wish to build CVSup from the sources, you will first need
to install the free Modula-3 compiler and runtime libraries from
DEC SRC.  A port is available in the FreeBSD ports collection, in
"lang/modula-3".  The corresponding package is, of course, available
in the packages collection.

You will also need version 1.0.4 or later of the "zlib" library.  A
FreeBSD port is in "devel/libz" of the FreeBSD ports collection.

There is no conceptual problem with installing the Modula-3
distribution and building CVSup from source.  However, it is rather
inconvenient at present because the DEC SRC distribution contains
several separate, large software projects that were developed using
it.  This makes the installation very large -- about 60 MB.  Worse
yet, one of the extraneous components requires a tremendous amount
of swap space to build.  You'll need at least 64 MB of swap and,
even then, you'd better kill your X server during the build.

Again, the problem lies not with Modula-3 itself but rather with the
extra software that is included with it.  When the dust settles from
this CVSup release, I intend to split the FreeBSD Modula-3 port into
several smaller ports in order to make it more convenient to install
and use.

Meanwhile, for convenience, I am providing binary releases for
CVSup.

Status of this Release
----------------------
CVSup has been in alpha testing since mid-May.  This should be
considered a beta release.  Please be prepared to find bugs --
without a doubt, there are some.  Please report bugs to
<cvsup-bugs@polstra.com>.

--
   John Polstra                                       jdp@polstra.com
   John D. Polstra & Co., Inc.                Seattle, Washington USA
   "Self-knowledge is always bad news."                 -- John Barth



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199608080427.VAA10605>