HISTORICAL_MAKE_WORLD (was: cvs commit: src Makefile README)

Tom Rhodes trhodes at FreeBSD.org
Sat Jun 10 00:38:16 UTC 2006


On Fri, 9 Jun 2006 08:53:47 -0400
John Baldwin <jhb at freebsd.org> wrote:

> On Wednesday 07 June 2006 20:48, Greg 'groggy' Lehey wrote:
> > On Wednesday,  7 June 2006 at 10:51:45 -0400, John Baldwin wrote:
> > > On Tuesday 06 June 2006 23:33, Tom Rhodes wrote:
> > >> trhodes     2006-06-07 03:33:48 UTC
> > >>
> > >>   FreeBSD src repository
> > >>
> > >>   Modified files:
> > >>     .                    Makefile README
> > >>   Log:
> > >>   Simply running ``make world'' will bomb unless you dig up the
> > >>   undocumented HISTORICAL_MAKE_WORLD variable and set it.  Note it
> > >>   here so the blow up will not really be a surprise to people who
> > >>   read.
> > >
> > > I thought the obfuscation was intentional as very few people should
> > > be doing a 'make world' without a custom DESTDIR these days.
> > 
> > Then there's no reason not to document it.
> > 
> >   Warning: FORCE_ROOT_INSTALL can render your system unusable by
> >   overwriting existing configuration files.  Do not use it unless you
> >   are completely aware of the consequences.
> > 
> > And yes, a descriptive name like FORCE_ROOT_INSTALL, not
> > HISTORICAL_MAKE_WORLD.
> 
> Describing it would subvert the intended obfuscation.
> 
> > > Certainly people new to FreeBSD shouldn't be doing it; only those
> > > with the command hardwired into their brains.  We've had
> > > buildworld/installworld since 2.2.5 (or 2.2.6) I think as I've only
> > > had to do a 'make world' once to go from 2.2.2 to 2.2.6. :)
> > 
> > FWIW, that's when the rot set in IMO.  One of the nice things about
> > FreeBSD *used* to be that to upgrade the system you just needed to do
> > "make world".  Now you have a lot more work.
> > 
> > The only justification for this regression is that it's really
> > difficult to get everything right.  But that's a bug, not a feature.
> 
> No, the justification is that 'make world' completely ignores the kernel and 
> only handles userland, and an operating system is both a kernel and a 
> userland and that users should update those together.  If you as a developer 
> want to use make world you can either run the two commands back to back or 
> you can put I_REALLY_KNOW_WHAT_IM_DOING_AND_WANT_TO_HOSE_MY_MACHINE in 
> make.conf or something.  However, developers wanting to do this are in the 
> _VAST_ minority and I'd much rather cater to the other 99% of the world.

Hmmm.  Perhaps a warning like this and then kill the
HISTORICAL_MAKE_WORLD target and related docs?

-- 
Tom Rhodes


%cvs diff -u Makefile
Index: Makefile
===================================================================
RCS file: /home/ncvs/src/Makefile,v
retrieving revision 1.332
diff -u -r1.332 Makefile
--- Makefile    7 Jun 2006 03:33:48 -0000       1.332
+++ Makefile    10 Jun 2006 00:32:28 -0000
@@ -196,6 +196,9 @@
        @echo "--------------------------------------------------------------"
        @echo ">>> make world completed on `LC_ALL=C date`"
        @echo "                   (started ${STARTTIME})"
+       @echo "If this source is different than the version of FreeBSD"
+       @echo "running, build and install a new kernel or there will be"
+       @echo "problems."
        @echo "--------------------------------------------------------------"
 .else
 world:


More information about the cvs-src mailing list