From owner-freebsd-hackers Sun Aug 4 08:17:53 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id IAA09221 for hackers-outgoing; Sun, 4 Aug 1996 08:17:53 -0700 (PDT) Received: from austin.polstra.com (austin.polstra.com [206.213.73.10]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id IAA09210 for ; Sun, 4 Aug 1996 08:17:45 -0700 (PDT) Received: from austin.polstra.com (jdp@localhost) by austin.polstra.com (8.7.5/8.7.3) with ESMTP id IAA08933 for ; Sun, 4 Aug 1996 08:17:44 -0700 (PDT) Message-Id: <199608041517.IAA08933@austin.polstra.com> To: freebsd-hackers@freebsd.org Subject: Announcing CVSup: Intelligent SUP Replacement Date: Sun, 04 Aug 1996 08:17:44 -0700 From: John Polstra Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Announcing CVSup 13.0 --------------------- I am pleased to announce the first public release of CVSup, an intelligent replacement for sup and rdist. 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/ Full sources as well as FreeBSD binaries are available: cvsup-bin-13.0.tar.gz FreeBSD binaries for the client cvsupd-bin-13.0.tar.gz FreeBSD binaries for the server cvsup-13.0.tar.gz Sources ** The MD5 signatures for these files are: MD5 (cvsup-bin-13.0.tar.gz) = 2f9733d6ffbf47069ec5952ff6570dc3 MD5 (cvsupd-bin-13.0.tar.gz) = ec7da4f3c6395b2d3d44fbf2d82ddf92 MD5 (cvsup-13.0.tar.gz) = 463ee7a1ef64dd432cd6094e81925985 ** If you wish to build CVSup from the sources, be sure to read the discussion further on in this announcement. 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 . -- John Polstra jdp@polstra.com John D. Polstra & Co., Inc. Seattle, Washington USA "Self-knowledge is always bad news." -- John Barth