tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: "make extract" and dependencies



On Mon, Aug 15, 2011 at 02:45:50PM +0200, Anthony Mallet wrote:
> On Monday, at 14:35, Marc Espie wrote:
> | How do you extract stuff that's compressed in a funny way ?
> | I see that your extract script has code for an amazing number of formats,
> | some of them requiring quite a few dependencies to build (gem, for 
> instance).
> 
> FWIW, in robotpkg I do have two kind of 'barriers': bootstrap-depends and
> depends. This is of course directly/totally/fully inspired by pkgsrc but they
> are IMHO more decoupled in practice. Targets like extract/patch only
> require 'bootstrap-depends' (so you'd put 'gem' in this class of
> dependencies). The main targets require '(full) depends'.
> 
> If the command line goals only require 'bootstrap' dependencies, then only 
> that
> is checked, so you can do 'make extract' without magic variables and without
> installing the world beforehand ;)

In my experience, one important goal for a package build system is to have
stuff that's hard to get wrong.

A ports/pkgsrc system is often seen as a "low-level" contributing environment,
where people who want to improve their development skills can start doing 
valuable work for a community.

This does imply that subtle distinctions between knobs will matter a lot,
and will lead to either discouragement, or semi-broken ports that don't
work well with all the tools.

It is always a trade-off: sometimes, you have no choice but to have the
knobs, because it serves a valuable purpose. In the end, distinguishing
pre-extract dependencies from generic build dependencies is useful, but
not THAT useful, compared to other critical points that porters absolutely
MUST get right (correct licencing information comes to mind).

Yeah, having the distinction is more elegant. But as soon as you reach
success, you have enough dumb committers and enough packages to build that
a LOT of Makefiles will get it wrong.


Home | Main Index | Thread Index | Old Index