PaulHowarth/Blog/2009-08-26

Wednesday 26th August 2009

Dependency Hell

Came to do a yum update on my Internet-facing server this morning (it's basically a minimal install with a few server packages added) and was presented with this:

# yum update
Setting up Update Process
Resolving Dependencies
--> Running transaction check
--> Processing Dependency: libpolkitkdeprivate.so.4 for package: kdebase-workspace-4.3.0-9.fc11.i586
---> Package dhclient.i586 12:4.1.0p1-2.fc11 set to be updated
---> Package kdebase-workspace.i586 0:4.3.0-9.fc11 set to be updated
--> Processing Dependency: ksysguardd = 4.3.0-9.fc11 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: kdm = 4.3.0-9.fc11 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: kdebase-runtime >= 4.3.0 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: libxklavier.so.12 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: xorg-x11-apps for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: xorg-x11-utils for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: libsyndication.so.4 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: libeet.so.1 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: libqedje.so.0 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: libgps.so.18 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: libXss.so.1 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: kio_sysinfo for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: libqzion.so.0 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: libqimageblitz.so.4 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Processing Dependency: libknotificationitem-1.so.1 for package: kdebase-workspace-4.3.0-9.fc11.i586
--> Running transaction check
---> Package eet.i586 0:1.1.0-2.fc11 set to be updated
---> Package gpsd.i586 0:2.39-3.fc11 set to be updated
---> Package kdebase-runtime.i586 0:4.3.0-4.fc11 set to be updated
--> Processing Dependency: kdebase-runtime-libs(x86-32) = 4.3.0-4.fc11 for package: kdebase-runtime-4.3.0-4.fc11.i586
--> Processing Dependency: htdig for package: kdebase-runtime-4.3.0-4.fc11.i586
--> Processing Dependency: libkwalletbackend.so.4 for package: kdebase-runtime-4.3.0-4.fc11.i586
--> Processing Dependency: libmolletnetwork.so.4 for package: kdebase-runtime-4.3.0-4.fc11.i586
---> Package kdebase-workspace-libs.i586 0:4.3.0-9.fc11 set to be updated
---> Package kdelibs-experimental.i586 0:4.3.0-1.fc11 set to be updated
---> Package kdepimlibs.i586 0:4.3.0-2.fc11 set to be updated
--> Processing Dependency: libical.so.0 for package: kdepimlibs-4.3.0-2.fc11.i586
--> Processing Dependency: libicalss.so.0 for package: kdepimlibs-4.3.0-2.fc11.i586
---> Package kdm.i586 0:4.3.0-9.fc11 set to be updated
--> Processing Dependency: kde-settings-kdm for package: kdm-4.3.0-9.fc11.i586
---> Package kio_sysinfo.i586 0:20090620-1.fc11 set to be updated
---> Package ksysguardd.i586 0:4.3.0-9.fc11 set to be updated
---> Package libXScrnSaver.i586 0:1.1.3-2.fc11 set to be updated
---> Package libxklavier.i586 0:3.9-1.fc11 set to be updated
--> Processing Dependency: libxkbfile.so.1 for package: libxklavier-3.9-1.fc11.i586
---> Package qedje.i586 0:0.4.0-1.fc11 set to be updated
---> Package qimageblitz.i586 0:0.0.4-0.5.svn706674.fc11 set to be updated
---> Package qzion.i586 0:0.4.0-1.fc11 set to be updated
---> Package xorg-x11-apps.i586 0:7.3-8.fc11 set to be updated
---> Package xorg-x11-utils.i586 0:7.4-4.fc11 set to be updated
--> Processing Dependency: libdmx.so.1 for package: xorg-x11-utils-7.4-4.fc11.i586
--> Processing Dependency: libXxf86dga.so.1 for package: xorg-x11-utils-7.4-4.fc11.i586
--> Running transaction check
---> Package htdig.i586 4:3.2.0-0.6.b6.fc11 set to be updated
---> Package kde-settings-kdm.noarch 0:4.2-12 set to be updated
--> Processing Dependency: xterm for package: kde-settings-kdm-4.2-12.noarch
--> Processing Dependency: xorg-x11-xdm for package: kde-settings-kdm-4.2-12.noarch
---> Package kdebase-runtime-libs.i586 0:4.3.0-4.fc11 set to be updated
--> Processing Dependency: libslp.so.1 for package: kdebase-runtime-libs-4.3.0-4.fc11.i586
--> Processing Dependency: libsmbclient.so.0 for package: kdebase-runtime-libs-4.3.0-4.fc11.i586
---> Package libXxf86dga.i586 0:1.0.2-4.fc11 set to be updated
---> Package libdmx.i586 0:1.0.2-9.fc11 set to be updated
---> Package libical.i586 0:0.43-4.fc11 set to be updated
---> Package libxkbfile.i586 0:1.0.4-7.fc11 set to be updated
--> Running transaction check
---> Package libsmbclient.i586 0:3.3.2-0.33.fc11 set to be updated
--> Processing Dependency: libtdb.so.1 for package: libsmbclient-3.3.2-0.33.fc11.i586
--> Processing Dependency: libwbclient.so.0 for package: libsmbclient-3.3.2-0.33.fc11.i586
--> Processing Dependency: libtalloc.so.1 for package: libsmbclient-3.3.2-0.33.fc11.i586
---> Package openslp.i586 0:1.2.1-11.fc11 set to be updated
---> Package xorg-x11-xdm.i586 1:1.1.6-10.fc11 set to be updated
---> Package xterm.i586 0:242-3.fc11 set to be updated
--> Running transaction check
---> Package libtalloc.i586 0:1.3.1-0.fc11 set to be updated
---> Package libtdb.i586 0:1.1.5-0.fc11 set to be updated
---> Package samba-winbind.i586 0:3.3.2-0.33.fc11 set to be updated
--> Processing Dependency: samba-common = 3.3.2-0.33.fc11 for package: samba-winbind-3.3.2-0.33.fc11.i586
--> Running transaction check
---> Package samba-common.i586 0:3.3.2-0.33.fc11 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================
 Package                         Arch      Version                  Repository                        Size
=============================================================================================================================
Installing:
 kdebase-workspace               i586      4.3.0-9.fc11             updates-local                     14 M
 replacing  PolicyKit-kde.i586 4.2.90-1.fc11

Updating:
 dhclient                        i586      12:4.1.0p1-2.fc11        updates-local                    347 k
Installing for dependencies:
 eet                             i586      1.1.0-2.fc11             fedora-dvd                        44 k
 gpsd                            i586      2.39-3.fc11              fedora-dvd                       249 k
 htdig                           i586      4:3.2.0-0.6.b6.fc11      fedora-dvd                       1.0 M
 kde-settings-kdm                noarch    4.2-12                   updates-local                     25 k
 kdebase-runtime                 i586      4.3.0-4.fc11             updates-local                    7.6 M
 kdebase-runtime-libs            i586      4.3.0-4.fc11             updates-local                    1.8 M
 kdebase-workspace-libs          i586      4.3.0-9.fc11             updates-local                    905 k
 kdelibs-experimental            i586      4.3.0-1.fc11             updates                           38 k
 kdepimlibs                      i586      4.3.0-2.fc11             updates-local                    2.4 M
 kdm                             i586      4.3.0-9.fc11             updates-local                    1.9 M
 kio_sysinfo                     i586      20090620-1.fc11          updates-local                    363 k
 ksysguardd                      i586      4.3.0-9.fc11             updates-local                     76 k
 libXScrnSaver                   i586      1.1.3-2.fc11             fedora-dvd                        18 k
 libXxf86dga                     i586      1.0.2-4.fc11             fedora-dvd                        17 k
 libdmx                          i586      1.0.2-9.fc11             fedora-dvd                        14 k
 libical                         i586      0.43-4.fc11              fedora-dvd                       220 k
 libsmbclient                    i586      3.3.2-0.33.fc11          fedora-dvd                       1.5 M
 libtalloc                       i586      1.3.1-0.fc11             updates-local                     18 k
 libtdb                          i586      1.1.5-0.fc11             updates-local                     27 k
 libxkbfile                      i586      1.0.4-7.fc11             fedora-dvd                        76 k
 libxklavier                     i586      3.9-1.fc11               fedora-dvd                        59 k
 openslp                         i586      1.2.1-11.fc11            fedora                            61 k
 qedje                           i586      0.4.0-1.fc11             fedora-dvd                        93 k
 qimageblitz                     i586      0.0.4-0.5.svn706674.fc11 fedora-dvd                        59 k
 qzion                           i586      0.4.0-1.fc11             fedora-dvd                        64 k
 samba-common                    i586      3.3.2-0.33.fc11          fedora-dvd                        13 M
 samba-winbind                   i586      3.3.2-0.33.fc11          fedora-dvd                       3.2 M
 xorg-x11-apps                   i586      7.3-8.fc11               fedora-dvd                       270 k
 xorg-x11-utils                  i586      7.4-4.fc11               fedora-dvd                       116 k
 xorg-x11-xdm                    i586      1:1.1.6-10.fc11          updates-local                    139 k
 xterm                           i586      242-3.fc11               fedora-dvd                       368 k

Transaction Summary
=============================================================================================================================
Install      32 Package(s)
Upgrade       1 Package(s)

Total download size: 49 M
Is this ok [y/N]: n
Exiting on user Command
Complete!

Well something had gone badly wrong there as there was certainly no way I was going to install all of that bloat on the server. In fact I was mystified as to why PolicyKit-kde was there in the first place, so I thought I'd get rid of it:

# rpm -e PolicyKit-kde
error: Failed dependencies:
        PolicyKit-authentication-agent is needed by (installed) gnome-mount-0.8-5.fc11.i586
#

Ah, now gnome-mount does provide some useful functionality even on a server with just the command line, but why had it pulled in PolicyKit-kde? The answer was that it required PolicyKit-authentication-agent, a "virtual provide" that's provided by a number of different packages, and any one will do:

# repoquery --whatprovides PolicyKit-authentication-agent
PolicyKit-kde-0:4.2.0-3.fc11.i586
PolicyKit-kde-0:4.2.90-1.fc11.i586
kdebase-workspace-0:4.3.0-9.fc11.i586
PolicyKit-gnome-0:0.9.2-3.fc11.i586
#

PolicyKit-kde had apparently been chosen on the basis of having the shortest name. I could avoid the bloat by selecting a more lightweight provider of PolicyKit-authentication-agent for gnome-mount, and PolicyKit-gnome looked like the obvious choice:

[root@goalkeeper mail]# yum install PolicyKit-gnome
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package PolicyKit-gnome.i586 0:0.9.2-3.fc11 set to be updated
--> Processing Dependency: libpolkit-gnome.so.0 for package: PolicyKit-gnome-0.9.2-3.fc11.i586
--> Running transaction check
---> Package PolicyKit-gnome-libs.i586 0:0.9.2-3.fc11 set to be updated
--> Finished Dependency Resolution  

Dependencies Resolved

=============================================================================================================================
 Package                         Arch      Version                  Repository                        Size
=============================================================================================================================
Installing:
 PolicyKit-gnome                 i586      0.9.2-3.fc11             fedora-dvd                         142 k

Installing for dependencies:
 PolicyKit-gnome-libs            i586      0.9.2-3.fc11             fedora-dvd                          22 k

Transaction Summary
============================================================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 165 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): PolicyKit-gnome-libs-0.9.2-3.fc11.i586.rpm                                                   |  22 kB     00:00
(2/2): PolicyKit-gnome-0.9.2-3.fc11.i586.rpm                                                        | 142 kB     00:00
-----------------------------------------------------------------------------------------------------------------------------
Total                                                                                      328 kB/s | 165 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing     : PolicyKit-gnome-libs-0.9.2-3.fc11.i586 1/2
Installing     : PolicyKit-gnome-0.9.2-3.fc11.i586      2/2 

Installed:
  PolicyKit-gnome.i586 0:0.9.2-3.fc11                                                                                                                      

Dependency Installed:
  PolicyKit-gnome-libs.i586 0:0.9.2-3.fc11                                                                                                                 

Complete!
#

That was more like it, and I'd now be able to remove PolicyKit-kde:

# rpm -e PolicyKit-kde
#

I could now do the rest of the updates:

# yum update
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package dhclient.i586 12:4.1.0p1-2.fc11 set to be updated
--> Finished Dependency Resolution  

Dependencies Resolved

=============================================================================================================================
 Package                         Arch      Version                  Repository                        Size
=============================================================================================================================
Updating:
 dhclient                        i586      12:4.1.0p1-2.fc11        updates-local                     347 k

Transaction Summary
============================================================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total download size: 347 k
Is this ok [y/N]: y
Downloading Packages:
dhclient-4.1.0p1-2.fc11.i586.rpm                                              | 347 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
 Updating       : 12:dhclient-4.1.0p1-2.fc11.i586  1/2
 Cleanup        : 12:dhclient-4.1.0-23.fc11.i586   2/2 

Updated:
  dhclient.i586 12:4.1.0p1-2.fc11                                                                                                                          

Complete!
# 

Much better!

Local Packages

Updated xv to merge patches from RPM Fusion and translations from PLD Linux, plus fix some potential buffer overflows and some compiler warnings. I'll try getting my changes merged into RPM Fusion soon.


Recent