[packagekit] package icons and names

Havoc Pennington hp at redhat.com
Thu Aug 30 14:02:30 PDT 2007


Hi,

Richard wanted to show nice package names and icons, something we are
already doing in BigBoard - the info is on
http://online.gnome.org/applications (with a mugshot theme that needs
to be changed to the online.gnome.org theme when someone has time).
There's a (very lame) Wiki-type UI that allows app information to be
edited. Since this will benefit from more people using it and keeping
it updated, and also supplies useful features like popularity ratings
(and possibly other useful stuff in the future), it may make sense to
use.

I just tweaked the API for package information a bit; it's not live
quite yet, but you can see it on the dogfood server:

 http://dogfood-online.gnome.org/xml/allApplications?distribution=fedora&lang=en_US

(caution, 300K XML document)

Note that a distribution= and lang= param should be provided. lang= is
ignored now but would theoretically be used later; distribution=
filters the packageNames attribute you get if you omit it, providing a
packageName attribute suitable for the distribution.

The icon urls in the XML are now "unsized" urls[1], which means size
and theme parameters should be added, like:
  unsizedurl?size=48&theme=Tango

The theme parameter is ignored for now but we could use it later.

Important notes on using this:
 - ideally, the "base" url  (like dogfood-online.gnome.org or
online.gnome.org) should be
   obtained from the org.freedesktop.od.Engine D-Bus service, but hardcoding
   online.gnome.org is probably fine for now, at least once we deploy the latest
   features to that server
 - it is important to honor the "cache control" headers on the icons
when they are
   downloaded, when appropriate we will set "never expire" headers to chill out
   server load

Pragmatically, for using this some suggestions discussed on IRC:
 - make the package UI able to operate without the information (since
some packages will
   always be missing icons/names anyway, it already has to be able to do this)
 - download and cache the metadata on demand
 - if desired, we could set up a nightly "release" which would just
download the
   information in the same format as the cache, and put it in a tarball;
   people would then be free to create an RPM from it; but this might
   be more trouble than it's worth if the UI can operate without the
   info anyway

Finally, something to check out is that with BigBoard plus
http://online.gnome.org/applications, there's no major need for a
*desktop* app "package manager" at all... package installation is
integrated into the same UI used to launch applications. This same
approach should be usable with panel / app-launcher thingies that are
not BigBoard. It does not work for say installing MySQL, of course, so
a more "package manager" kind of UI may make sense instead for
servers.

Havoc

[1] OK, it looks like there's a bug in my code, but they will be unsized soon



More information about the PackageKit mailing list