Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Oct 2000 19:18:18 -0700 (PDT)
From:      jdp@polstra.com
To:        stable@freebsd.org
Cc:        brett@peloton.runet.edu
Subject:   Re: Error: your port uses an old layout.  Please update it to match this bsd.port.mk. - SOLVED
Message-ID:  <200010170218.e9H2IId53545@vashon.polstra.com>
In-Reply-To: <Pine.BSF.4.21.0010151328140.9009-100000@peloton.runet.edu>
References:  <Pine.BSF.4.21.0010151328140.9009-100000@peloton.runet.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <Pine.BSF.4.21.0010151328140.9009-100000@peloton.runet.edu>,
Brett Taylor  <brett@peloton.runet.edu> wrote:
> 
> > That is not correct. CVSup _will_ remove those directories if they are
> > empty.
> 
> Well, it certainly missed some (but not all) of mine and apparently other
> people's as well.  The problem ports on my system did have empty pkg and
> patches directories.  Am I missing some key switch in invoking CVSup?  I
> normally invoke it as:
> 
> 	cvsup -g -h cvsup7.freebsd.org ports_supfile
> 
> with the following supfile for ports:
> 
> *default release=cvs
> *default prefix=/usr
> *default base=/usr/local/etc/cvsup
> *default release=cvs delete use-rel-suffix compress
> ports-all tag=.

That all looks correct to me.  Do you remember exactly which empty
directories didn't get removed?  It would be interesting to find out
whether other people had the same experience with those directories.

I can think of a few possibilities here:

1. Maybe you have a "refuse" file which is causing CVSup to ignore
the problem directories.

2. Maybe the directories really weren't empty -- i.e., they contained
file(s) named ".*" that didn't appear in the "ls" listing.  (Don't be
insulted, I'm just trying to explore all the possibilities! :-)

3. It could be a bug in CVSup (of course).  But the code which handles
the directory removal is pretty straightforward.

Another possible explanation: CVSup only tries to remove a
possibly-empty directory immediately after it has deleted a file
from the directory.  If for any reason CVSup was unable to remove
the directory at the point in time when it "officially" became empty
on your system, then that's it -- it won't try again later.  So for
example, if you had an extra file in the directory at the time CVSup
removed the last "official" file from it, then the directory would
stick around forever after that, even if you removed the extra file
manually later on.  This scenario also might possibly arise if an
update run died or was killed at just the wrong time, leaving an empty
directory which CVSup hadn't quite gotten around to removing yet.
(I guess this stuff really belongs in the "bug" category, strictly
speaking.)

I've added a note to myself in my CVSup to-do list to look into
dealing with the above situations better.  Maybe I can make it try to
remove directories which should be empty on every run, not just at the
moment when it thinks they should have just become empty.  The key
question is whether I can make it do that efficiently or not.

John
-- 
  John Polstra                                               jdp@polstra.com
  John D. Polstra & Co., Inc.                        Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



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?200010170218.e9H2IId53545>