QPackageKit into PackageKit

A C++ QT library for PackageKit has just been merged into PackageKit git master. It was written by Adrien Bustany, and it being used by KPackageKit.

The QT library is being built with cmake, but the PackageKit project uses autotools. I want to keep the cmake bit in lib/libpackagekit-qt and just get automake to run cmake for me to generate the makefile.

Worst case scenario, we just have to built the library using some futzing in the distro spec file, but this isn’t ideal.

Has anyone got any experience or pointers for this?


Software Log Viewer

PackageKit has always had a log viewer, but I would be the first to admit that it looked shite, and wasn’t really useful for anybody.

I’ve spent a couple of hours, adding more columns and adding a filter facility so that you can narrow down the results to something useful.

Use cases for this tool:

  • Something in yesterdays automatic update broke firefox. What was updated?
  • Did I update firefox last week?
  • (for backends that support rollback) Take me to the snapshot before I installed XFCE

Comments welcome.

Service Pack GUI?

As part of GSoC 2008, Shishir Goel added Service Pack functionality to PackageKit. To explain what a service pack is, it’s best to show a few use-cases.

  1. You have seven desktops you’ve just installed with Fedora 9. Each one needs to have 204Mb of updates installed.
  2. You have a laptop that needs network drivers before it can download updates, and you have a similar up to date laptop with internet access nearby. The network drivers require a ton of dependencies, and other packages to be upgraded before they will install.
  3. You frequently install Linux on other peoples computers. You carry around a live-cd and a pendrive with a single 204Mb file “Fedora-updates-SP1.servicepack” which contains all the updates since last week.

Now, you may or may not know, that you have been able to install .servicepack files since PackageKit 0.3.2 — but creating them has always been tricky. Yesterday I spent a few hours rewriting some of the client code, and making the pkgenpack command line options more sane.

The pkgenpack is a command line tool for creating service pack files. You can find out more information about how it works by reading the man page.
Yes, I know the man page formatting sucks, suggestions on how to fix (and patches!) welcome.

Internally, the pack file is just an uncompressed tarball, with the packages and a single metadata.conf file inside. The metadata file is just the distro_id (name, version, arch, etc) and the time of creation. This ensures you don’t try installing a fedora-9-i386 service pack on a ubuntu-intrepid-ppc machine. In this case you also get a nice error message telling you what you did wrong.

Now, command line tools are all the rage these days, but what about a GUI? I mocked this up in glade yesterday, and wouldn’t take too long to turn into an actual program.