#acl PaulHowarth:read,write,admin,revert,delete All:read === 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. ----