PackageKit Critique

If you haven’t heard, PackageKit is an exciting and upcoming project who’s goal is to create a user friendly package handling abstraction layer that is independent of distro and package format. Basically, the Grand Unified Package GUI for those more physics-minded. Sounds good like a good idea.

There are a few problems I have with the way PackageKit is heading, though, and hopefully this is a constructive critique that may help people think about these issues. I’m not a package management expert and I’ve only used PackageKit a bit on the soon-to-be-released Fedora 9 so please shout out if I get my facts wrong.

  1. The PackageKit FAQ and people promoting PackageKit seem to often say something along the lines of “we’re not trying to replace <existing package management tool>“. I can’t help but think that, if it’s not designed to replace anything, is it really going to be all the unifying? If we’re gonna come up with a good distro-agnostic package management GUI it’d be nice if it actually replaced all the existing tools. Put another way, shouldn’t “unifying” package management imply replacing the disjointed bits that currently exist?
  2. Another thing I’m having an issue with is the proposition that PackageKit is distro-neutral and is not trying to change existing “low-level” tools (apt, yum, etc.). However, discussion around the apt backend, Hughsie’s Law: “Authentication or license prompts can only be done before the transaction has started, and messages or notices about the transaction can only be shown after the transaction has completed.” and a similar FAQ statementUpgrading, installing or removing packages has to be 100% silent.” indicate to me that perhaps it isn’t as neutral as it claims to be. Basically, PackageKit is neutral as long as your view of package management is the same as PackageKit author’s.
  3. There are several places in the PackageKit FAQ and Debian wiki discussion where the PackageKit authors seem to indicate that simply erroring out of the transaction is a suitable, even if non-ideal, solution to problems that PackageKit can’t seem to cope with. I can’t think of anything more user-unfriendly than to have a package management tool bail because it can’t handle certain classes of packages (for instance packages that have a EULA, need input from users, or ask about config file changes). Users would assume, I would think, that the package is somehow broken and would either give up or report a bug to the distro.

I guess I would summarize by saying that it seems to me that PackageKit is painting itself into a corner where it is only useful to subsets of users and packages, while trying to still maintain that it is a unifying and user friendly tool. I see a lot of potential in PackageKit and appreciate all the time put in by Richard Hughes, but I’m not sure at this point how it’s going to reach it’s goals. Perhaps a more knowledgeable person can help enlighten me. 🙂