Bug 394421 - rpm -e: libz.so removed too early with rpm -e, possibly before gtk2
rpm -e: libz.so removed too early with rpm -e, possibly before gtk2
Product: Fedora
Classification: Fedora
Component: gtk2 (Show other bugs)
All Linux
low Severity low
: ---
: ---
Assigned To: Matthias Clasen
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2007-11-21 10:48 EST by Moritz Barsnick
Modified: 2007-11-30 17:12 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2007-11-21 17:48:05 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
list of removed packages (9.54 KB, text/plain)
2007-11-22 07:10 EST, Moritz Barsnick
no flags Details

  None (edit)
Description Moritz Barsnick 2007-11-21 10:48:25 EST
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):

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.
/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/

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 

If you think rpm or perhaps libz (or some other package) is the culprit, please 

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).
Comment 1 Matthias Clasen 2007-11-21 17:48:05 EST
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
Comment 2 Moritz Barsnick 2007-11-22 07:09:11 EST
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...

Comment 3 Moritz Barsnick 2007-11-22 07:10:59 EST
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-

Note You need to log in before you can comment on or make changes to this bug.