Subject: Re: Getting the latest pkgsrc.tar.gz
To: None <pkgsrc-users@NetBSD.org>
From: Michael Parson <mparson@bl.org>
List: pkgsrc-users
Date: 05/25/2006 08:29:25
On Thu, May 25, 2006 at 01:37:58PM +0400, Rakhesh Sasidharan wrote:
> >
> >     That is the master site, so nowhere else will have a fresher
> >copy.  To use CVS, just 'cd /usr/pkgsrc' (or wherever you unpacked the
> >tarball) and type 'cvs up -dP'.
> 
> Thank you John. I was under the impression if I want to keep updating
> with CVS, then I'll have to start all over with CVS. As in, (1) delete
> the current /usr/pkgsrc (since it was created from the tarball), (2)
> then fetch things with a CVS checkout, and (3) then keep updating
> using "cvs upd -dP". From your post, however, I understand that I can
> just use "cvs upd -dP" on whatever I currently have (extracted from
> the tarball), and that should work fine. Right? Cool.
> 
> I have one more question. In the pkgsrc users' guide
> (http://www.netbsd.org/Documentation/pkgsrc/getting.html), I see these
> two paras that I don't quite understand:
> * Please also note that it is possible to have multiple copies of the
> pkgsrc hierarchy in use at any one time - all work is done relatively
> within the pkgsrc tree.
> * If your copy of pkgsrc contains a lot of CVS directories, you can
> update it using the cvs(1) program. First, cd to the top level
> directory of pkgsrc. Then run cvs -q update -dP, and you're done.
> 
> Could you tell me what it means by saying its possible to have
> multiple copies of the pkgsrc hierarchy? How does one go about doing
> that?

If you have new boxes running the latest stuff that you want the latest
version of pkgsrc, you could keep it in /usr/pkgsrc-current and if you
have a couple of older boxes that are stable and shouldn't really be
touched (other than getting stuff out of pkgsrc), you could keep that
in /usr/pkgsrc-2005Q3 (should that be the branch you checked out).  You
could keep them on a central file-server and shared out via NFS, etc.

> Also, what does the author mean when he/ she says that a copy of
> pkgsrc can contain lot of CVS directories? I didn't understand that
> either. The command given there by the author is similar to the
> command used for updating the CVS tree -- so what's the author trying
> to say?

When you work with CVS, it keeps some state and meta info in CVS
subdirs, ie:

$ ls -l /usr/pkgsrc/www/apache
total 43
drwxr-xr-x  2 root wheel   512 Apr 10 11:53 CVS
-rw-r--r--  1 root wheel   209 Oct 31  2001 DESCR
-rw-r--r--  1 root wheel  7509 Mar  4 15:30 Makefile
-rw-r--r--  1 root wheel 23973 Oct 19  2005 PLIST
-rw-r--r--  1 root wheel   188 Aug 25  2002 PLIST.shared
-rw-r--r--  1 root wheel   100 Oct 31  2001 PLIST.suexec
-rw-r--r--  1 root wheel   949 Feb  5 17:11 buildlink3.mk
-rw-r--r--  1 root wheel  1572 Feb 21 16:44 distinfo
drwxr-xr-x  3 root wheel   512 Apr  4 14:24 files
-rw-r--r--  1 root wheel  1331 Mar 24  2005 module.mk
drwxr-xr-x  3 root wheel   512 Apr  4 14:24 patches

$ ls -l /usr/pkgsrc/www/apache/CVS
total 4
-rw-r--r--  1 root wheel 480 Apr 10 11:53 Entries
-rw-r--r--  1 root wheel  18 Apr  4 14:24 Repository
-rw-r--r--  1 root wheel  45 Apr  4 14:24 Root
-rw-r--r--  1 root wheel  15 May  8 15:43 Tag

This last set of files is what CVS uses to determine what you've got in
comparison to what is in the CVS repository and send you just what you
need (what's been updated/changed) since the last update/checkout.

-- 
Michael Parson
mparson@bl.org