Status: draft


This proposal is about making common install/upgrade/remove operations in binary packages declarative. In particular, it aims to remove many of the common needs for maintainer scripts.

Please usertag bugs with:

Recent examples of this are 685734, 822462,


This specification consists of many "smaller" projects to replace maintainer scripts (or other imperative packaging methods).

TODO: Review and add items from

Integrate dpkg-maintscript-helper features into dpkg

Methods in dpkg-maintscript-helper are basically features that ought to have been in dpkg.

Declarative packaging modules

A lot of packages have common functionality that is not directly specific to what dpkg should provide. As an example, start/stop/restart of services.

If we could outsource such functionality, then other packages could provide a declarative function that other packages can depend on. It could be used for:

Such declarative modules should probably be very restricted in their requirements (e.g. only need essential packages).