Subject: Re: bin/32573: [dM] build.sh fails gratuitously
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
From: Elad Efrat <elad@NetBSD.org>
List: netbsd-bugs
Date: 01/20/2006 00:11:48
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