INSTALL and buildprep

Eric S. Raymond esr at
Thu Feb 23 18:44:50 UTC 2017

Hal Murray <hmurray at>:
> There is a tangle in this area, and I think you are the right one to sort it 
> all out.

Agreed, this is definitely an architecture and software-engineering issue
and thus right in my wheelhouse.

> buildprep is is the tip of an interesting iceberf.  It's good since it 
> contains some info in a form that is very easy to use.  But it's also evil 
> since all the associated comments that used to be in INSTALL have been lost.
> buildprep is really just one of many chunks we would like to extract from 
> from the one central place.  What else would we like?
> run time dependencies, both for install/setup and for tracking security issues
>   (vulnerability tracking will get much more interesting as soon as we get 
> real crypto)
> build time dependencies
> files that should get installed, and where
> The above vary depending on the OS/distro and if you are interested in with/without tools.
> We probably want the option for crossbuilds.

You seem to be heading towards the central idea of a configuration manager
that speaks to the package system.

> I don't know if waf install should be updated to have a list-but-don't-install mode, or the install data should be put into this new central place and waf updated to use it.

You seem to be arguing that I should invent something like a new
declarative declaration syntax for configuration data. While that's
not a crazy idea (it is very, very much the kind of thing I do,
stylistically) you've skipped a step.  It is my normal habit for tools
like this to build an ad-hoc working example first, then see how much
of it can be extracted into a pure declarative syntax.

Usually the intermediate stage is to factor the prototype into a small
amount of code walking a big structure.

So let's think in terms of upgrading buildprep.  That's our first stage.

It also permits us to very concrete about the requirements.  What switches
or inputs do you want to have?  What actions and reports do you want?

Right now we have one action (pull all dependencies from the platform's
package manager) and no switches.  What switches and actions need to be added?
		<a href="">Eric S. Raymond</a>

Please consider contributing to my Patreon page at
so I can keep the invisible wheels of the Internet turning. Give generously -
the civilization you save might be your own.

More information about the devel mailing list