I am glad to announce aptdaemon: It is a DBus controlled and PolicyKit using package management daemon build on python-apt.
If the above description reminds you of PackageKit you won’t be completely wrong. Aptdaemon reuses some design concepts and code from PackageKit. As the author of the PackageKit apt backend I run into some policy problems: PackageKit only allows non-interactive actions. So there is no support for debconf, CDROMs and configuration conflict handling. Nevertheless thanks to Richard Hughes for his efforts on making package management less of a pain.
Aptdaemon already provides the following features:
- DBus interface with DBus activation and idle time out
- PolicyKit authorization allowing e.g. desktop user to update the cache (check for updates) passwordlessly
- Transaction based: Atom actions, e.g. installing packages, are queued for processing
- Controlling terminal to apt and dpkg calls. Furthermore a non-interactive fallback mode
- Install packages from repositories or local file system, remove packages, update the cache and (safe) upgrade your system
- Canceling of downloads and not yet processed transactions
- Localisation
- Python client library and GTK widgets
- An example GTK (aptd-gtk-demo) and command line application (aptdcon)
Here you can see a screencast showing most of the above issues:
The project is hosted at Launchpad: http://launchpad.net/aptdaemon
To get the latest code type:
Ubuntu Jaunty packages can be found in the PPA. A package for Debian can be found here, but you need python-apt from experimental.
There are still a lot of things to do and work on. Especially integrating a not yet written DBus empowered debconf frontend.
Feel free to submit comments, bugs and code!