On Sat, Sep 16, 2006 at 06:08:49AM +0530, Suresh Ramasubramanian wrote:
|cvsup is a tool that gets you the freebsd OS source cvs tree, and the
|ports tree
|
|So you get source to build the base OS, and you get a ports tree - a
|bunch of software ported to bsd but the tree just has makefiles,
|location + md5sum of various source tarballs, a list of OS specific patches
Couple of points here.
a) The ports tree does not come with source of course. It is the job of the
Makefile rule to fetch the source from various sources. It could even be the
FreeBSD mirror itself. But on a FreeBSD machine, the ports directory simply
contains as Suresh rightly mentioned, only the Makefile( which is very very
small since it includes majority of its macros from a master makefile), and the
URLs for different locations for the same source and its MD5 sum. Once u hit
make or make install inside say /usr/ports/net/netcat or something, it
downloads the original source either from soureforge or elsewhere as the case
may be, checks the integrity with size and checksum, unpacks it, applies the
FreeBSD specific patches, then compiles and installs.
Of course, you can tune certain parameters like which library to link
against, what should be the database backend etc. using make config. But in
most cases it doesnt bother u with questions since most ports have sensible
default options already set.
Sorry for the digression. I just wanted to clear the point that the ports
tree doesnt actually have sources apiori.
b) This is the most important point. CVSup may have been written for FreeBSD
but it is by no means restricted to FreeBSD at all. It is just a network
efficient tool for syncing CVS sources since it understands CVS quite well. It
is a good improvement on the stupid network protocol of CVS. I have used CVSup
only on Debian so far ironically. I used to use both CVSup and rsync for
synching my sources and backing up the CVS repository with a cron job.
Now, CVSup has two modes of operation, one in which it replicates the CVS
repository itself and another in which it syncs the source checked out of CVS.
I am not really sure how CVSup compares to rsync. It looks as though CVS
uses rsync on its backend. rsync actually is quite generic for syncing any sort
of data, as it is a mathematical algo whereas CVSup works at a higher level for
synchig CVS trees.
And to add to the confusion I see lot of discussions on the mailing lists
about portsnap being the latest tool for the job of CVSup and that CVSup is
obsolete. :-)
I think we should just forget about CVSup and look at portsnap. It certainly
is going to kill CVSup just like how ssh(1) killed the insecure dinosaur
telnet(1).
Just google for portsnap. I think we should be using portsnap for syncing
the mirrors too. I will do more digging and get back on that.
So long,
Girish