Subject: Re: bin/32573: [dM] build.sh fails gratuitously
To: None <apb@netbsd.org, gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,>
From: Elad Efrat <elad@NetBSD.org>
List: netbsd-bugs
Date: 01/19/2006 22:15:04
The following reply was made to PR bin/32573; it has been noted by GNATS.

From: Elad Efrat <elad@NetBSD.org>
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
Cc: gnats-bugs@netbsd.org, netbsd-bugs@netbsd.org,
	Juan RP <juan@xtrarom.org>
Subject: Re: bin/32573: [dM] build.sh fails gratuitously
Date: Fri, 20 Jan 2006 00:11:48 +0200

 der Mouse wrote:
 
 > Right.  That's why I think the manual step of creating /usr/obj, and
 > the necessity for doing "tools", are broken: it should Just Work when
 > run naively.
 
 i hope that it will not be changed to "just work" in a broken manner
 of building tools when you tell it to build a kernel.
 
 > Furthermore to the "wasteful" comment, when I rerun the command (it
 > failed, and the reason had been lost to scrolling data, so I had to
 > rerun it with output captured), it REBUILDS ALL THE TOOLS!  Even though
 > they're up to date!
 
 -u...?
 
 > This is *really* egregiously wasteful.  Isn't that exactly what make is
 > all about avoiding doing?
 
 ...
 
 > Where is this guide, and why would a new user, looking at /usr/src,
 > know to look there?  BUILDING does not contain the word "guide" at all,
 > and I certainly didn't *see* any reference to such a thing.
 
 are you for real?
 
 a new user would not even bother *reading* the BUILDING file because
 it's just too damn long.
 
 the "new users" i know would go first to the netbsd website, and click
 either "documentation and faqs" or "the netbsd guide" on the left. from
 there it's easy to see that you first need to build the tools.
 
 also try google for "building netbsd" or "netbsd kernel".
 
 why would a new user even get to looking at /usr/src?
 
 speaking of BUILDING file; did you look at the REQUIREMENTS section?
 
 > It certainly violates Least Astonishment for me.  If I were just
 > switching to NetBSD, my opinion of the system would drop precipitously,
 > and I might not even be able to figure out how to get around the
 > "tools" issue; the only reason I could tell that "tools" was what was
 > missing is that I've seen discussions about it on the lists in the
 > past. 
 
 can you explain to me, please, how a new user would stumble upon the
 issues you describe? the very first hit for "building netbsd" in google
 will lead you to "crosscompiling netbsd with build.sh"; the first part
 of that section describes building the crosscompiler.
 
 > When I repeated the command and saw it rebuilding everything all
 > over again, my opinion would *really* tank;
 
 but that is what you told it to do.
 
 running just build.sh with no arguments would give you a variety of
 options to use; one of them, as mentioned above, is:
 
     -u          Set MKUPDATE=yes; do not run "make clean" first.
 		Without this, everything is rebuilt, including the
 		tools.
 
 > if I were on a slow
 > machine, where rebuilding those things takes a significant amount of
 > time, I'd probably write it off as broken and switch to something else.
 
 and then we'd have tons of PRs from people saying it's broken. but we
 don't. so maybe what you did is not what any other person, new or not,
 would do.
 
 > build.sh has its benefits, I'm sure.  But that doesn't mean that
 > everything it does is right, and I believe these two things are very
 > definitely not right.  Three things, actually, counting rebuilding all
 > the tools unnecessarily when run again.
 
 reading the documentation for tools you use before using them also has
 its benefits.
 
 please let's close this PR and not change anything in how build.sh
 works; but that's just *my* opinion.
 
 -e.
 
 -- 
 Elad Efrat