Principia updated to latest Ensemble trunk.
Clint Byrum
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
>
> Gotcha.
>
> > 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):'
Recommends: wordpress-l10n
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
many apps[1]
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)
--
[1] 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
dbconfig-common
Reverse Depends:
zabbix-server-pgsql
zabbix-server-mysql
zabbix-proxy-pgsql
zabbix-proxy-mysql
zabbix-frontend-php
webissues-server
ukolovnik
typo3-dummy
typo3-database
torrentflux
textpattern
syscp
sympa
steam
smbind
simba
serendipity
scuttle
rsyslog-pgsql
rsyslog-mysql
roundcube-core
request-tracker3.8
redmine
python-poker-network
prewikka
prelude-manager
postfix-policyd
poker-web
pnopaste
piwigo
phpmyadmin
phpgacl
phpbb3
otrs2
ocsinventory-server
ocsinventory-reports
obm-storage
netams-web
netams
ndoutils-nagios3-mysql
ndoutils-common
nagvis
mydms
movabletype-opensource
moodle
mantis
libdspam7-drv-pgsql
libdspam7-drv-mysql
jffnms
interchange-cat-standard
icinga-idoutils
glpi
drupal6
cacti-spine
cacti
bugzilla3
bley
bandwidthd-pgsql
auth2db-common
acidbase
bacula-director-sqlite3
bacula-director-pgsql
bacula-director-mysql
More information about the Ensemble
mailing list