Zif backport repository for F15 available for testing

Kevin Kofler kevin.kofler at chello.at
Wed Sep 21 03:10:11 UTC 2011

Jef Spaleta wrote:
> you have systems with just KDE and no GNOME installed yes?  zif install
> paprefs
> with kpackagekit not installed does zif do the more optimal thing and pull
> kpackagekit in as a dep to fill  PackageKit-session-service requirement?

I'm not sure why you're asking that. It was already pointed out on more than 
one occasion that zif does NOT decide which provider to pick based on other 
installed packages, by design. But I did the test anyway:

On my notebook, after removing kpackagekit, I get:

Transaction summary:
  1.    paprefs-0.9.9-8.fc15.x86_64 (fedora)
  Installing for dependencies:
  1.    PackageKit-device-rebind-0.6.17-1.fc15.libzif.so.3.x86_64 (fedora-
  2.    gconfmm26-2.28.2-2.fc15.x86_64 (fedora)
  3.    gnome-packagekit-3.0.0-5.fc15.x86_64 (updates)
  4.    pulseaudio-module-gconf-0.9.22-5.fc15.x86_64 (fedora)

Run transaction? [y/N] n
User declined action

After reinstalling KPackageKit, I get:

Transaction summary:
  1.    paprefs-0.9.9-8.fc15.x86_64 (fedora)
  Installing for dependencies:
  1.    gconfmm26-2.28.2-2.fc15.x86_64 (fedora)
  2.    pulseaudio-module-gconf-0.9.22-5.fc15.x86_64 (fedora)

Run transaction? [y/N] n
User declined action

FWIW, I have tons of GNOME stuff installed already (even gnome-shell), so 
gnome-packagekit doesn't drag in all that much extra GNOME stuff, and 
paprefs drags in GNOME stuff by itself, too. (In fact, the kpackagekit 
package would have happened to require one less dependency, but it isn't 
even a GNOME dependency, but a PackageKit one.) But in reality, the 
dependencies are not the real issue at all, the thing is that gnome-
packagekit is useless in KDE unless you go and manually enable it. (Or at 
least it won't be fully functional, because it won't be started up 
automatically, e.g. to check for updates. It might get D-Bus-activated when 
paprefs needs it. But there are cases such as the PolicyKit 1 authentication 
agent where D-Bus activation is not used at all, exactly to ensure the 
correct agent for the running desktop environment gets used, not a random 
one.) What is actually needed to satisfy paprefs' dependency is:
= begin pseudocode =
if (GNOME installed || Xfce installed || LXDE installed)
  install gnome-packagekit;
if (KDE installed)
  install kpackagekit;
(In particular, if both are installed, install both, they're both needed 
because they'll only start in the respective desktop environment!)
if (none of GNOME, KDE, Xfce, LXDE installed)
  install a desktop environment first, or just error;
= end pseudocode =
But such complex dependencies cannot be expressed in RPM. The virtual 
dependency is only an approximation, the general assumption being that 
either gnome-packagekit or kpackagekit is already installed as part of the 
desktop in most cases anyway. So deciding based on the dependencies as yum 
does is only a heuristic, which can only be an approximation to what is 
truly needed (see the above pseudocode).

(And besides, your example is about the worst you could pick, since if 
somebody is skilled enough with package management to remove the PackageKit 
frontend, surely he or she knows what to do if zif wants to pick the wrong 
one. ;-) Real end users will ALWAYS have the PackageKit frontend installed.)

        Kevin Kofler

More information about the devel mailing list