On Thu, 31 Mar 2011 21:12:24 +0200 Erinn Clark erinn@torproject.org wrote:
'install-order' Optional: number between 0 and 100 inclusive to indicate that this package must be installed before or after others. Defaults to "50".
As I'm sure anyone who's used a system with SysV-style runlevels can attest to, this sort of numbering scheme does not lend itself to easy modification. The main problem with this is that one has to constantly monitor the priority of dependent packages, and worse, that a lack of granularity in order will force contacting the authors of other programs in order to resolve it. (This sometimes happens, and is incredibly difficult to resolve, in package management systems.) A better solution would be to use an Upstart-like method, where packages to install before or after are explicitly named.
'require-packages' Optional. A list of objects for all packages that must be installed before this package can be installed. Each object has these fields: 'package-name' 'min-version-tuple'
It might be useful to have an option to specify a location or method to obtain the package.
F.1 Configuration file updates
We need a smart way to handle configuration file updates and changes in the future. There are several three-way merge tools available that we can model our behavior on, or re-use the code of, such as Debian's ucf tool.
A set of scripts to upgrade configuration files to the next version would be very useful here. This could, of course, be done in pre/post install scripts, but it would be easier, and cleaner, to keep a number of scripts, which could be run consecutively, if one were upgrading by more than one version, to modify configuration files. In this way, backward-incompatible changes could be easily implemented.