Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Jul 1998 18:55:38 -0700
From:      John Polstra <jdp@polstra.com>
To:        freebsd-announce@FreeBSD.ORG
Subject:   CVSup 15.4.2 is now available
Message-ID:  <199807070155.SAA00566@austin.polstra.com>

next in thread | raw e-mail | index | archive | help
Folks, I'm very sorry to do this to you, but one day after the release
of CVSup 15.4.1, here comes another release.  I am going to withdraw
15.4.1, because I am not satisfied with the changes that I made to it.
It solved the problem I said it solved, but upon further reflection I
could not convince myself that it did not introduce a new problem for
a slightly different scenario.  Rather than take the risk, I've made a
much cleaner fix which is easier to prove correct.

My apologies to those noble souls among you who have already upgraded
to 15.4.1 and will now have to do it again.  To make this release
somewhat more worth your while, I have fixed a client bug that has
been around for quite a while.  See below for details.

John


                     Announcing CVSup 15.4.2
                     -----------------------
Release 15.4.2 of CVSup, the CVS-aware network file distribution
system, is now available.

What Has Changed Since the Previous Release?
--------------------------------------------
  Implemented an improved bugfix for the same server bug that 15.4.1
  had addressed.  Sorry, but I just wasn't happy with the original
  fix.  The original bug was:  If a client connection was lost during
  a particular narrow time window, it could cause the master server to
  die.  Manual intervention would then be required in order to restore
  service.

  Fixed a client bug that showed up if cvsup got a transient failure
  and tried again automatically after a delay.  The "Inactivity
  Timeout" timer from the first connection was still running, and
  would kill off the process if it took more than 15 minutes after the
  original transient error.  It produced log output similar to this:

    Connected to freefall.freebsd.org
    Rejected by server: Server is going down for maintenance
    Will retry at 04:25:13
    Retrying
    Connected to freefall.freebsd.org
    Rejected by server: Server is going down for maintenance
    Will retry at 04:34:53
    Retrying
    Connected to freefall.freebsd.org
    Updating collection cvs-all/cvs
     Append to CVSROOT/commitlogs/ports
    Interrupted

  Added references to the CVSup web page in a various places.

Where to Get CVSup
------------------
CVSup is free software.  It is available from:

  ftp://ftp.FreeBSD.org/pub/FreeBSD/CVSup/

and from all of the many FreeBSD FTP mirrors.  You can find a complete
list of them in the FreeBSD Handbook at:

  http://www.freebsd.org/handbook/mirrors.html

CVSup is also available from the author's FTP server:

  ftp://ftp.polstra.com/pub/FreeBSD/CVSup/

Please avoid this server if possible.  It has a rather slow link to
the Internet.

Full sources as well as FreeBSD binaries are available:

  cvsup-bin-15.4.2.tar.gz	FreeBSD static binaries for the client
				(includes GUI)
  cvsup.nogui-bin-15.4.2.tar.gz	FreeBSD static binaries for the client
				(no GUI)
  cvsupd-bin-15.4.2.tar.gz	FreeBSD static binaries for the server
  cvsup-15.4.2.tar.gz		Sources **

The MD5 file signatures for these files are:
  MD5 (cvsup-bin-15.4.2.tar.gz) = 5dda893f231359dab5dc4d7d2dd7e449
  MD5 (cvsup.nogui-bin-15.4.2.tar.gz) = 404a598c5e16f71aeded4464ef9d6eb5
  MD5 (cvsupd-bin-15.4.2.tar.gz) = ad30058ce6f70957618b3124405a155d
  MD5 (cvsup-15.4.2.tar.gz) = 089a3a06c47927630ffc6b13f5cbd0de

An updated port will appear in the FreeBSD ports and packages
collections soon:

Ports:
  ftp://ftp.FreeBSD.org/pub/FreeBSD/ports-current/net/cvsup/
  ftp://ftp.FreeBSD.org/pub/FreeBSD/ports-current/net/cvsup-bin/

Packages:
  For FreeBSD-current:
    ftp://ftp.FreeBSD.org/pub/FreeBSD/packages-current/net/
      cvsup-15.4.2.tgz
      cvsup-bin-15.4.2.tgz

  For FreeBSD-2.2:
    ftp://ftp.FreeBSD.org/pub/FreeBSD/packages-stable/net/
      cvsup-15.4.2.tgz
      cvsup-bin-15.4.2.tgz

If you want SOCKS support, you must also install the "modula-3-socks"
port or package:

Port:
  ftp://ftp.FreeBSD.org/pub/FreeBSD/ports-current/lang/modula-3-socks/

Packages:
  ftp://ftp.FreeBSD.org/pub/FreeBSD/packages-current/lang/modula-3-socks-1.0.tgz
  ftp://ftp.FreeBSD.org/pub/FreeBSD/packages-stable/lang/modula-3-socks-1.0.tgz

SOCKS is supported only under FreeBSD, and only with dynamically linked
executables.  The static binary distributions do not support SOCKS.

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

Compatibility with Previous Releases
------------------------------------
This version is believed to interoperate properly with all earlier
public releases of CVSup.

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.
Note: Although this feature is fully implemented in CVSup, it will
probably not be practical to use it until some small changes have been
made to CVS.

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.

To update non-RCS files, CVSup uses the highly efficient rsync
algorithm, developed by Andrew Tridgell and Paul Mackerras.

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 (somewhat out
of date) "Blurb" document in the CVSup distribution.

Using CVSup to Maintain FreeBSD Sources
---------------------------------------
CVSup servers are currently running at about 20 mirror sites around
the world.  For an up-to-date list of them, see:

  http://www.freebsd.org/handbook/mirrors-cvsup.html

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.  For more detailed
instructions, see the section on CVSup in the FreeBSD Handbook:

  http://www.FreeBSD.org/handbook/cvsup.html

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.
In FreeBSD-2.1.6 and later releases, this library has been incorporated
into the system sources, in "src/lib/libz".  Prior to that, a
FreeBSD port was available in "devel/libz" of the FreeBSD ports
collection.  For other sources of this library, see the "Install"
file.  Do not try to use versions earlier than 1.0.4.

To build the entire system from source under FreeBSD, simply type
"make" in the top-level directory.  (That's the directory that has
sub-directories named "client" and "server", among others.)  To
force the executables to be statically linked, set the environment
variable "M3FLAGS" to "-DSTATIC".  To build the client without the
GUI (e.g., if you don't have the X Window System installed on your
machine), set it to "-DNOGUI".  To do both of these things, set the
environment variable to "-DSTATIC -DNOGUI".

The Makefiles should work on any reasonable Unix system.  If you
have trouble with them, it is easy to build the components manually.
Simply chdir into each of the following subdirectories in the given
order and type "m3build":

  suptcp
  suplib
  client
  server

To build statically linked executables, add "-DSTATIC" to each
"m3build" command.  To build the client without the GUI (e.g., if
you don't have the X Window System installed on your machine) add
"-DNOGUI".

Portability Issues
------------------
I intend for CVSup to be portable to most POSIX systems.  Earlier
releases have been run on a number of different platforms, including
FreeBSD, Linux, HP-UX, SunOS, Solaris, and DEC OSF/1 ALPHA.  In the
current release I have attempted to increase rather than decrease
portability.

Anybody who succeeds in porting CVSup to other systems is encouraged
to send his changes to <cvsup-bugs@polstra.com>.  As long as the
changes are reasonably palatable, they will be incorporated into
future CVSup releases.

CVSup uses several POSIX-specific functions which may make it more
of an effort to port the package to non-POSIX systems such as Win32.
These functions include mmap, fork, syslog, stat, and chmod, among
others.

Status of this Release
----------------------
CVSup was first released publicly in August of 1996.  Since then
it has seen heavy use, and it has been quite stable.  Like all
software, though, it is not perfect.  Please be prepared to find
bugs -- without a doubt, there are some.

Problems?
---------
Please report bugs to <cvsup-bugs@polstra.com>.

For More Information
--------------------
http://www.polstra.com/projects/freeware/CVSup/


John Polstra, <jdp@polstra.com>

Copyright 1996-1998 John D. Polstra
$Id: Announce,v 1.40 1998/07/06 23:21:40 jdp Exp $

This is the moderated mailing list freebsd-announce.
The list contains announcements of new FreeBSD capabilities,
important events and project milestones.
See also the FreeBSD Web pages at http://www.freebsd.org


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-announce" in the body of the message



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