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:
Installing:
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-
zif-backport)
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:
Installing:
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