Richard Hughes’ PackageKit develops quite fast. He recently implemented support for system tray status warnings, information if reboots or log-outs are required, merged a conary backend, implemented network connection awareness and improved the GUI. While not every feature is supported in every backend this project really looks interesting and could in parts change the image the average user has about Linux.
The idea of PackageKit is to have a D-Bus abstraction for the various software management backends. This would solve a set of problems at once and would at the same time allow to develop simple, cross distribution GUIs for managing software installation and updates.
In the current state it now offers network connectivity awareness: with the help of NetworkManager it checks if there is a connection to the Internet and if it can actually download stuff. Also there are now status icons in case of updates and a system tray bubble in case of security sensitive updates. And if there is the need to reboot, re-login or restart a program PackageKit can tell.
However, in such cases the backend must tell PackageKit what is a security update and what not, and when something has to be rebooted and when not. So these features depend on the backends. In case of yum at least it will work:
yum doesn’t know the different between security/other updates for Fedora […] the next production update will start generating this
Looks like we will have that support in Fedora 8.
Speaking about backends, there is already a conary backend which was merged into the development tree. And it basically works. Nice to see that that also “smaller” distributions start picking up the idea. I wonder how long it will take to see others like Novell/Suse or Mandriva to take up this project to develop their own backend. That would be huge step in the right direction.
I also wonder when there will be the first KDE frontend for PackageKit. Yesterday Richard Hughes mentioned that he split out the Gnome bits so that libpackagekit now only depends on glib, libnm, dbus-glib and policykit. It should be possible by now to develop a KDE frontend. Also, since everything works over D-Bus it should be possible to connect to D-Bus directly, however the D-Bus API might not be finalized yet and might change.
As a side note: PackageKit depends on a set of fairly new technologies. NetworkManager wasn’t even enabled by default in Fedora 7, and policykit will have its first appearance in Fedora 8. If PackageKit really spreads around the distributions it is likely to take the other technologies with it (I have no doubts about NetworkManager, but wonder how policykit will do).