Aptdaemon

Category: Ubuntu

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 find a screencast showing most of the above issues:

launchpad.net/aptdaemon/trunk/0.10/+download/announcement.ogg

The project is hosted at Launchpad: launchpad.net/aptdaemon

To get the latest code type:

bzr branch lp:aptdaemon

Ubuntu Jaunty packages can be found in the PPA:

launchpad.net/~aptdaemon-developers/+archive/ppa

A package for Debian can be found here, but you need python-apt from experimental:

launchpad.net/aptdaemon/trunk/0.10/+download/aptdaemon_0.10_all.deb

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!