Subject: Re: Maxi-packages
To: None <tech-pkg@netbsd.org>
From: Martin J. Laubach <mjl@nospam.office.emsi.priv.at>
List: tech-pkg
Date: 02/05/2000 01:48:49
  So if I may try a resume of all the topics here...

  (a) Having packages with different optional components will
cause much confusion for binary packages.

  (b) Many packages have a mandatory set of dependencies, and
and optional set (ie. they will work equally well but may miss
some capabilities, eg. reading certain file formats, or a tcl/tk
binding).

  (c) Currently, there is no way to distinguish between those
two sets, so people tend to turn on everything.

  I have no good answer for (a) right now, so I'll leave that
question open. For the rest, please bear with me for a little
while...

  How about having a possibility of declaring optional dependencies.
So one could say, for example, "webalizer" depends on "png" and
"gd", and optionally on "freetype" and "gettext". When building
such a package, the pkg system would check which of those optional
pkgs is present, and display a message like this

| You are about to build webalizer-2.340.3
| 
| Optional dependencies: freetype-47.11 (not present)
|			 gettext-9.9 (present)
| 
| If you would like to include capabilities that some of
| the absent packages provide, abort the build now and install
| those packages first.

  If an optional dependency is included, register it in the
package db, if not, well, don't. (Well, perhaps a way to turn
off present, but unwanted optional dependencies would be good?)

  To cater for bulk builds, one could introduce a "REQUIRE_OPTIONAL"
variable that transforms the optional in regular dependencies, ie.
that would give today's behaviour.

  Thoughts?

	mjl