Bug 394421 - rpm -e: libz.so removed too early with rpm -e, possibly before gtk2
Summary: rpm -e: libz.so removed too early with rpm -e, possibly before gtk2
Keywords:
Status: CLOSED CANTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: gtk2
Version: 8
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Matthias Clasen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-11-21 15:48 UTC by Moritz Barsnick
Modified: 2007-11-30 22:12 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-11-21 22:48:05 UTC
Type: ---
Embargoed:


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

Description Moritz Barsnick 2007-11-21 15:48:25 UTC
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).

Comment 1 Matthias Clasen 2007-11-21 22:48:05 UTC
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 12:09:11 UTC
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

Comment 3 Moritz Barsnick 2007-11-22 12:10:59 UTC
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.