On 5/06/2010, at 8:14 PM, Marc Espie wrote:

> On Sat, Jun 05, 2010 at 06:48:18PM +1200, Richard Toohey wrote:
>> But I don't understand what he's doing differently to me.  A new release
is
>> out, you want to upgrade from the previous release to the new one, and
>> then you want to apply the errata patches.
>
> Look, there are several flaws to the way make works.
>
> Those flaws are *totally integral* to the way make works.
>
> In most cases, you get lucky, sometimes you don't.
>
> Basically, the flaw is that make needs a list of dependencies to work.
> It can either be hardcoded in makefiles, or regenerated through .depend.
>
> For anything but the most trivial projects, it is regenerated dynamically
> through "make depend".   But if that information changes too much
> (especially when files get removed), then it fails.
>
> It fails HARD.
>
> As in, you get a make error because it can no longer find a dependency it
> used to find.
>
> If you're even less lucky, it fails silently. As in, it forgets to register
> a dependency/recompile a file even though things have changed.
>
> Make doesn't know about every dependency. Especially tweaks to compile
flags,
> changes in defines, too deep changes don't get noticed.
>
> Oh yeah, you *could* add more meta-junk that says that whenever you change
> THAT file, then you have to recompile this and this. More often than not,
> GNU-hell projects (as known as autoshit, as known as
automake/autoconf/libtool)
> err in the other direction. So you make a wee little tweak to a file in
there,
> and suddenly, it recompiles the WHOLE WORLD.  And assumes you have every
> crappy development tool the FSF ever shat on the world. Very offensive if
> you ask me (that's the whole point of the REORDER_DEPENDENCIES in ports
land,
> btw.  This allows up to sneak out of that problem every time we do a small
> patch to a Makefile.in in GNUlalaland).
>
>
> It's all about process. You got a process you can follow to rebuild
OpenBSD.
> Follow it to the letter. If you take shortcuts, you will get bitten
> eventually.
>
> If you're smart enough, you will recover. But it is complicated.
>
>
> Hint: if the guy who's actually in charge of the OS, and the guy who's
> actually maintaining make are BOTH telling you it's complicated, then it
> probably is.  Do you think you're smarter than Theo and I combined ?
> Go ahead, prove us wrong...
>
No way!!!  I certainly wasn't saying it wasn't complicated, or that I had a
better way, it was more that I thought I *was* following the right process.

I appreciate OpenBSD and all the work you guys do.  Especially taking
the time to explain - the cluesticks have been applied (just leave off with
the thumbscrews, please.)

I got into a pattern of clear src, get new src from CD, apply patch, follow
*literal* patch instructions (without thinking/reading about the patch
*context*,
or how I might actually need to do a little more work.)

Apart from RTFMing, we learn from mistakes, and this has been one
of mine.

Thanks.

Reply via email to