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