Aptdaemon now supports Python 3

Finally the Python 3 port of aptdaemon is ready for testing! Thanks to Barry Warsaw, Colin Watson and Martin Pitt for advice, support and code. So we are getting a step closer to shipping Python 3.2 only by default in Ubuntu Quantal 12.10.

I uploaded the latest version to ppa:aptdameon-developers/python3

The packaging is currently hosted at lp:~aptdaemon-developers/aptdaemon/ubuntu-py3 and the code is in trunk lp:aptdaemon.

It comes with a Python 2 and 3 based test suite which runs at build time. Unfortunately we get test suite failures on some build daemons. According to Pitti this could be related to older kernels running on those and not working properly with the latest GIO based D-Bus bindings used in the PackageKit client tests.

In the PPA you will also find a later version of software-properties which will provide Python 3 modules. The plan is to remove this dependency of aptdaemon by moving the relevant bits down the stack to python-apt.

Furthermore the following highlights are worth mentioning:

  • Runs with Python 3.2 by default (so all plugins have to be ported)
  • Ships packagekit.enums as aptdaemon.pkenums (a Python3 port would have been nice but it would require a large amount of work and we only need the enums module in aptdaemon and the plugins)
  • Provides the virtual package packagekit-system-interface. This allows your clients to depend on packagekit-system-interface instead of adding an ugly or dependency on python3-aptdaemon.pkcompat and packagekit. Matthias, the Debian maintainer of PackageKit, will add the provides, too.

 

 

For the session interface we will soon get packagekit-session-interface. This should then be used by session-installer, apper and gnome-packagekit.

The following sites provide great help to port your project too:

https://wiki.ubuntu.com/Python/3

python3porting.com

wiki.debian.org/Python/LibraryStyleGuide