Date: Tue, 2 Apr 2013 15:50:43 -0400 From: John Baldwin <jhb@freebsd.org> To: Brooks Davis <brooks@freebsd.org> Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Dmitry Morozovsky <marck@rinet.ru>, svn-src-stable-9@freebsd.org Subject: Re: svn commit: r248352 - in stable/9: etc share/mk Message-ID: <201304021550.43701.jhb@freebsd.org> In-Reply-To: <20130402175903.GA85393@lor.one-eyed-alien.net> References: <201303152132.r2FLWfwx076672@svn.freebsd.org> <201303200918.08803.jhb@freebsd.org> <20130402175903.GA85393@lor.one-eyed-alien.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, April 02, 2013 1:59:03 pm Brooks Davis wrote: > On Wed, Mar 20, 2013 at 09:18:08AM -0400, John Baldwin wrote: > > On Tuesday, March 19, 2013 4:06:31 pm Brooks Davis wrote: > > > On Tue, Mar 19, 2013 at 09:49:47PM +0400, Dmitry Morozovsky wrote: > > > > On Tue, 19 Mar 2013, Brooks Davis wrote: > > > > > > > > > > > Replace all known uses of ln in the build process with appropriate > > > > > > > install -l invocations via new INSTALL_LINK and INSTALL_SYMLINK > > > > > > > variables. > > > > > > > > > > > > It seems this merge breaks ``make distribution'' and hence mergemaster if your > > > > > > base system is not updated yet (for example, while updating jail): > > > > > > > > > > Sorry for the delay in responding. I missed this yesterday. > > > > > > > > > > It works for me on a older 9.0-STABLE system where the base install > > > > > doesn't support -l. Did you build world or run "make toolchain" in that > > > > > source tree to build the bootstrap copy of install? > > > > > > > > Yes, this is after full ``make buildworld buildkernel'' process. > > > > > > I've found the problem thanks to misc/177055. It is that mergemaster > > > (and etcupdate) set MAKEOBJDIRPREFIX to something in their > > > temporary directory and thus deprive themselves of bootstrap tools. > > > Unfortunately, I don't see a trivial fix so I've backed this out for > > > now and will work on this in HEAD. > > > > Hummmm. In the case of etcupdate you can use 'etcupdate -B'. That is actually safe > > to do in the common case where you've just updated /usr/src and built the corresponding > > world in /usr/obj. It should possibly even by the default for etcupdate if a DESTDIR > > is not specified. > > Finally getting back to this... > > etcupdate -B would correct the immediate problem for etcupdate. I do > think that making it the default if the tree exists makes sense. It > won't be more broken than a cross installworld is. Hmmm, checking for the obj tree is a bit hackish. I'd rather it were more deterministic. I think I'd like to make it just default to -B and require a new -b flag to build a new tree, but perhaps have it check for a tree and error out if it doesn't exist and you don't give it -b? > I did a quick test when I first found this issue and it would be easy to > reuse the existing MAKEOBJDIRPREFIX in mergemaster as well. > > I think we'll want to update UPDATING to recommend that the > mergemaster -p stage (and the equivalent for etcupdate) be run using the > version in the source tree, not the installed one. I do wonder if it > would make sense for them to attempt to find and invoke that version so > simplify bootstrapping. Currently etcupdate doesn't implement something like -p. I need to add that as I would prefer to use its conflict resolution for adding users. (That would also let it serve as a full replacement for mergemaster for those who prefer it.) -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201304021550.43701.jhb>