Subject: Re: src/dist is a *bad* idea (was: New IP Filter v3.3.5 is now in
To: NetBSD-current Discussion List <current-users@netbsd.org>
From: Miles Nordin <carton@Ivy.NET>
List: current-users
Date: 12/12/1999 14:10:27
On Sun, 12 Dec 1999, Greg A. Woods wrote:
> If one of the goals of NetBSD is really to make a clean and elegant
> *source* distribution for an operating system then . . .[no /usr/src/dist]
Some of what you're saying makes a lot of sense. I will advance some
counterarguments simply because you haven't mentioned them, but perhaps i
actually agree with you, although only for very small programs. but, it
is still more important to me that (a) we have the latest version, and (b)
tracking the latest version becomes easier so that it can be done more
frequently without taking time away from real development.
o /usr/src/dist _is_ clean
By ``clean'' perhaps we mean something which makes future development,
maintenance, and comprehension easier. In many cases, this is somewhat
reduceable to ``whatever's easiest.'' The package system is a great
example. bsd.pkg.mk does not look ``clean'' but it concentrates the
inevitable dirtyness of packages onto itself, thus making individual
Makefiles cleaner and shorter, solving common problems once, avoiding
rework.
In a less dramatic sense, if dist makes the work of developers who work
on dist'ed things easier, maybe it is ``clean.''
o /usr/src/dist makes local patches easier to maintain across imports
I believe we sometimes make changes in CVS to a source file under dist/.
I don't get the sense that we hesitate to do so. If we do, making the
changes under dist/ instead of in a post-import-script copy means
o the changes are easier to send back to the maintainer
o the changes are easier to roll into the next version, when it comes
out.
o dist is easier because it is the most logical build layout for the type
of development we use it for.
The easiness can be taken as a consequence of a layout that symbolizes
the work we do--it divides into separate pieces the Maintenance of
Foreign Code task and the Coercing of Foreign Code into our Build
Process task. These tasks are very different and ought to be
separated.
Even if you argue the layout is harder to understand (depending on your
perspective, it might not be), still at least the CVS histories are
much more useful for a project that was done with dist, and CVS's
usefulness is generally highly dependent on directory layout.
o at least for the case of /usr/src/gnu/dist, it's a useful tree in
itself
The GNU toolchain has a standard build layout of its own, and a lot of
GNU tarballs will extract into a piece of this common layout. They are
trying to do the same thing we are--they're just not doing it as well
and aren't finished yet. But, their layout is still well-considered
and is a worthwhile thing to offer users of our source in itself.
and then there's the licensing thing, which i'm not discussing further.
--
Miles Nordin / v:1-888-857-2723 fax:+1 530 579-8680
555 Bryant Street PMB 182 / Palo Alto, CA 94301-1700 / US