Subject: Re: Build race conditions, any solution?
To: None <Richard.Earnshaw@arm.com>
From: Robert Elz <kre@munnari.OZ.AU>
List: current-users
Date: 03/12/2002 21:20:05
    Date:        Tue, 12 Mar 2002 13:40:26 +0000
    From:        Richard Earnshaw <rearnsha@arm.com>
    Message-ID:  <200203121340.NAA22872@cam-mail2.cambridge.arm.com>

  | kre@munnari.OZ.AU said:
  | > The problem is that when I do my "update my sources" the mod time of
  | > the include file that was updated earlier, gets set to the time the
  | > include file was modified.
  | 
  | This is incorrect, at least for the default options to CVS.

You assume I did a "cvs update".   Frederick Bruckman thought I may
have used sup.

Actually...

  | CVS will only 
  | set the date to the last modification time during an initial checkout.

That's what I did.    That is, I'm setting up a new system.   The
original install (from a snapshot) went on a scratch drive (will
eventually become an amanda dump staging area or anon ftp space, or
something like that...).   Then I built my desired target filesystems
(which are using raidctl, so sysinst can't hack it), fetched the
sources (this was probably from tarballs, I forget now), and compiled
the universe, with DESTDIR set to be my new filesystems.   All this took
some time to happen (it started late last December... I have other things
more important to do that take up most of my time).

Then, before I even think about actually using this system, I want to make
sure it can build itself, so I get inside my new filesystems (with the
scratch drive effectively removed) checkout the sources (this used cvs)
and proceed to attempt to build everything within the system itself.

That's the step that failed.

Knowing that "cvs update" won't cause this to happen again is reassuring,
but cvs update certainly isn't the only way that people update their
sources - "cvs checkout" happens, as does "tar xpf" on the source
tarballs, and sup.

  | Check your .cvsrc.

Thanks, but I don't have one of those...

kre

ps: now I'm back to building everything using the scratch system again,
but using my newly checked out (and updated) sources with nothing actually
installed in the target area.   I suspect that this will eventually work...