Principia updated to latest Ensemble trunk.
clint at ubuntu.com
Thu Apr 21 15:24:59 UTC 2011
Excerpts from Gustavo Niemeyer's message of Thu Apr 21 05:46:17 -0700 2011:
> > Short/long name right now, not much else. It puts in some dummy default
> > relations for each type so users will see it and decide to delete. It also
> > generates a default install hook that just installs the package. The
> > My thinking is that if a debian package Suggests: or Recommends: foo ,
> > and foo has a formula, its reasonable to add a 'requires' relation that
> > matches up with everything foo: provides. This is a little complex though
> The recommends/suggests feature is really about package/machine-level
> relationships, and they won't match well into the service world of
> Ensemble. E.g.:
> % apt-cache show postgresql-8.4 | grep Sug
> Suggests: oidentd | ident-server
> % apt-cache show mysql-server-5.1 | grep 'Sug\|Rec'
> Recommends: libhtml-template-perl
> Suggests: tinyca, mailx
I don't imagine oidentd would have a formula, nor would tinyca or mailx.
Really mysql and postgres are primarily *providing* services, which are
always going to be, IMO, the more complex formulas.
I'm more thinking of applications which will be deployed:
$ apt-cache show bacula-director-mysql|egrep '(Suggests|Recommends):'
Recommends: mysql-server (>= 4.0)
$ apt-cache show wordpress | egrep '(Suggests|Recommends):'
Suggests: mysql-server (>> 4.0.20-8)
$ apt-cache show drupal6 | egrep '(Suggests|Recommends):'
Recommends: mysql-server | postgresql
Also dbconfig-common is a special case because it is the (poor) way
that the distro has helped users configure their database server for
The entire reason they're in Recommends/Suggests and not Depends is
that they are imperfect relationships that need something like ensemble
to properly define them. These are nice clues for accelerating formula
development I think.
This does reinforce the need for a way to declare the packages that are
installed rather than using the install hook to install things. Doing
that will make the discovery process even more automatic if we can just
walk down the dependency tree of a package we're formulating, and find
formulas which install things it Recommends/Suggests. Still, its a nice
to have, we can fake it by simply matching on the name and providing a
set of mapping (mysql-server == mysql formula, etc)
 here are dbconfig-common's rdepends so you don't have to run that
command, quite an amazing list of useful database driven apps!
$ apt-cache rdepends dbconfig-common
More information about the Ensemble