Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Feb 2001 20:31:21 +0100
From:      "Andre Goeree" <abgoeree@uwnet.nl>
To:        stable@freebsd.org
Subject:   Re: old port layout?
Message-ID:  <20010220203121.A15126@mandark.attica.home>
In-Reply-To: <3A92A03E.4D728DEC@azstarnet.com>; from Castalia@azstarnet.com on Tue, Feb 20, 2001 at 09:50:06AM -0700
References:  <000901c0995f$1236d4a0$00e1fea9@parkson> <20010217212546.A60502@mollari.cthul.hu> <20010219222550.B1163@ameritech.net> <3A92A03E.4D728DEC@azstarnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Feb 20, 2001 at 09:50:06AM -0700, Bradford Castalia wrote:
> This seems to be a common gotcha after a cvsup when attempting to build a port:
> 
> Error: your port uses an old layout.  Please update it to match this bsd.port.mk.
> If you have updated your ports collection via cvsup and are still getting this error,
> see Q12 and Q13 in the cvsup FAQ on http://www.polstra.com for further information.
> *** Error code 1
> 
> When this happened to me after a 4.1.1-RELEASE to 4.2-STABLE update here's what
> fixed the problem. As root:
> 
> cd /usr/ports
> rm -rf *
> cvsup -f -L 2 /usr/sup/ports-supfile

Your ports lay-out is possibly out of date because some (empty) 
directories still exist in your ports tree (read ports/Mk/bsd.port.mk). 
Removing /usr/ports and re-cvsup is a sure but drastic way to get rid 
of the problem. IMHO it's also a waste of time/bandwith (although the
ports lay-out isn't that big in Mb's but think of /usr/src).

At the moment i'm writing a script that takes a checkouts file and
the (cvsup) starting directory as arguments and produces a file list
of all files found in the checkouts file (and on disk) in the format:
relative_path/filenames
the created file list can then be used to roll a tarball like this:
tar -cf /wherever/tarball.tar --files-from /wherever/list_i_created
If you have separate checkouts files for ports, cat them to one file 
and it works the same:).

The advantage of creating a tarball the way i described is that *only*
files that have a (valid) entry in your checkouts file *and* exist on 
disk get backed up. Any kind of garbage in the cvsup'ed directory will 
be left out. In fact i started writing the script as a workaround to
Q-13 of the cvsup-FAQ.

Although the script is in an experimental state right now (i need to 
know more about the format of the checkouts file), the script works:)
I have succesfully backed up /usr/doc this way and extracted the 
tarball to a different directory where i built the docs as test. 
With my next buildworld i will try it with /usr/src.

Anyone who, has problems with the port lay-out and, is willing to
give this script a try can get a copy. Just ask me for it.

Regards,
--Andre.

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




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