Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Dec 2000 12:16:41 +0200
From:      Peter Pentchev <roam@orbitel.bg>
To:        Alfred Perlstein <bright@wintelcom.net>
Cc:        asami@FreeBSD.org, ports@FreeBSD.org
Subject:   Re: ports lockfile?
Message-ID:  <20001220121640.E644@ringworld.oblivion.bg>
In-Reply-To: <20001219235750.I19572@fw.wintelcom.net>; from bright@wintelcom.net on Tue, Dec 19, 2000 at 11:57:50PM -0800
References:  <20001219113535.Q19572@fw.wintelcom.net> <20001220094157.C644@ringworld.oblivion.bg> <20001219235750.I19572@fw.wintelcom.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Dec 19, 2000 at 11:57:50PM -0800, Alfred Perlstein wrote:
> * Peter Pentchev <roam@orbitel.bg> [001219 23:43] wrote:
> > On Tue, Dec 19, 2000 at 11:35:35AM -0800, Alfred Perlstein wrote:
> > > I'm pretty sure I've mentioned this before, I got a lot of approval
> > > for the idea, but I don't have the time and familiarity with the
> > > ports mk files to do what I propose.
> > > 
> > > Usually when doing an install I'll start building several ports in
> > > at the same time  The problem is that frequently the ports will
> > > recurse into the same dependancy, and the two builds will clobber
> > > each other.
> > 
> > FWIW, yes, I verily support this idea :)
> > 
> > > I tried to figure out some way for the ports to use the 'lockf'
> > > utility on the port makefile in order to protect it, but I can't
> > > seem to figure out how and where to use lockf.
> > > 
> > > We'd need some pre-pre-pre make step to do this I imagine, anyone
> > > want to try to do this?  Is it a good idea?
> > 
> > There seems to already be a pre-everything target, which is invoked
> > for old port layouts and for bad utilities version; there also is
> > a default pre-everything target, with nothing but a DO_NADA there.
> > This would seem like a good place for acquiring the lock.
> 
> Well here's the very tricky part that I really haven't worked out
> how to do this, the lockf program runs a program with the lock, so
> I need to make the lockf program run make again.
> 
> If I define something when re-running the make then any recursive
> makes will have this defined right?  So I won't be able to lock
> the dependancy makes.
> 
> It'd be interesting to add an option to make so that it will lock
> the initial makefile used.  That sounds pretty hackish so any
> alternative ideas would be welcome and helpful.

I'm thinking along the lines of having a LOCKDIRS variable, listing
all locked dirs from all ports in the build process, then having
bsd.port.mk check for it *outside any targets*, if that is possible.
(most probably not.. just thinking out loud, please ignore the static ;)
If it is not defined, bsd.port.mk should do something like

lockf Makefile make ${MAKEFLAGS} LOCKDIRS="${LOCKDIRS} ${.CURDIR}"

I hope what I've written is at least vaguely understandable; fact is,
I myself am not very clear on what I mean :)  Got no time to play
around with this right now, unfortunately :(  Just tossing out
a wild idea..

G'luck,
Peter

-- 
If I were you, who would be reading this sentence?


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




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