Description of problem: On removal of a whole bunch of packages (e.g. all 32bit packages), something is complaining about not being able to run /usr/bin/gdk-pixbuf-query-loaders-32 due to missing libz.so.2. Version-Release number of selected component (if applicable): gtk2-2.12.1-5.fc8.i386 How reproducible: Steps to Reproduce: 1. rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort | grep -E "\.i [356]86$" | xargs rpm -e --test 2. rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort | grep -E "\.i [356]86$" | xargs rpm -e Actual results: 1. No complaints. 2. /var/tmp/rpm-tmp.35128: line 24: /etc/pango/i386-redhat-linux-gnu/ pango.modules: No such file or directory /usr/bin/gdk-pixbuf-query-loaders-32: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory warning: /usr/lib/security/classpath.security saved as /usr/lib/security/ classpath.security.rpmsave Expected results: 1. No complaints. 2. No complaints, except warnings. Additional info: I'm assuming some rpm uninstall script is executing gdk-pixbuf-query- loaders-32. This binary is still there at that point, so (presumably) the dependency toward it is correctly coded in that package (or is it? Requires (postun)??). The binary gdk-pixbuf-query-loaders-32 itself, being part of gtk2, is already missing its dependency libz.so.1 (which is correctly coded in that package). If you think rpm or perhaps libz (or some other package) is the culprit, please re-assign. NB: Not that you'd usually want to remove gtk2 and/or libz from your system. ;-) What I was doing is bravely cleaning this fresh Fedora x86_64 install from all its 32bit packages only. (Did I request a 32bit system? No!) By the way, the system _is_ clean of these packages now, just some scripts (which ones, anyway?) failed. As you can see, also apparently some problem with Pango which I cannot track down (/var/tmp/rpm-tmp.35128 is gone).
This is not a gtk problem; gtk+ has a library dependency on libz.so. The problem is that scripts are using gdk-pixbuf-qeuery-loaders without requiring gtk. That is fine, but they need to be prepared for the call to fail. It is not something that can be fixed in gtk
Well, since I uninstalled about a quazillion packages ;-), someone needs to figure out which package is using /usr/bin/gdk-pixbuf-query-loaders-32 but not requiring it or gtk2. I'm having a look at the diff of my package lists, and checking the rpm -q -- scripts of the corresponding 64bit packages (because the 32bit ones are gone, of course). Apart from the gtk2 package itself, only librsvg2-2.18.2-2.fc8 has an explicit call of update-gdk-pixbuf-loaders in its scripts. But looking at its SPEC file, it does have proper dependency: Requires(postun): gtk2 >= %{gtk2_version} I would have loved to change the component on this one, but no go. Perhaps rpm after all? ;-) Oh, well, then I guess this ticket can just stay closed... Thanks, Moritz
Created attachment 266771 [details] list of removed packages This is the list of packages removed when the error occurred. This list was created from two package lists (before/after) using the commandline diff -u RPMs/RPMs.host.installed.2007-11-21-2.list RPMs/RPMs.host.installed.2007-11-22-1.list | grep "^-[^-]" | cut -c2-