[packman] gamin update 0.pm.3 breaks kde login
Martin Vogt
vogt at itwm.fraunhofer.de
Tue Sep 1 13:15:10 CEST 2009
Hello Pascal,
the recent gamin update leads to an unusable kde on 64bit
hosts with 32bit packages.
-->The user cannot login anymore(!)
I will try to explain what happens during the update.
This is the list what the updater do: (it wants to update
these packages)
1)---> Package gamin.i586 0:0.1.10-0.pm.3 set to be updated
2)---> Package gamin.x86_64 0:0.1.10-0.pm.3 set to be updated
3)---> Package gamin-devel.x86_64 0:0.1.10-0.pm.3 set to be updated
Replaced:
fam.i586 0:2.7.0-130.21
This will not work, as we will see, for 64bit hosts with 32bit
compatibility packages installed.(read on)
After the update the user gets (from a failsafe shell:)
>ksplash: error while loading shared libraries: libfam.so.0: cannot open
>shared object file: No such file or directory
>/opt/kde3/bin/kdeinit: error while loading shared libraries: >libfam.so.0:
>cannot open shared object file: No such file or directory
>startkde: Could not start kdeinit. Check your installation.
What did happen?
I will do this on the command line to show the problem
The installer installs the i586 package first:
>root at pxe4[tmp]>rpm -U /tmp/gamin-0.1.10-0.pm.3.i586.rpm
fine this worked.
Now it tries to install the 64bit package:
>root at pxe4[tmp]>rpm -U gamin-0.1.10-0.pm.3.x86_64.rpm
>
>error: Failed dependencies:
>libfam.so.0 is needed by (installed)gnome-vfs2-32bit-2.24.0-7.4.x86_64
>libfam.so.0 is needed by (installed) kdelibs3-32bit-3.5.10-23.26.x86_64
As you can see, rpm tries to replace the previous 32bit installation
with the 64bit one. This fails because the 64bit host has the
compatibility 32bit (gnome-vfs and kdelibs) packages installed.
(And rpm complains that this would break dependencies, and its right)
But the installer installs with --nodeps:
>root at pxe4tmp]>rpm -U --nodeps gamin-0.1.10-0.pm.3.x86_64.rpm
>package gamin-0.1.10-0.pm.3.x86_64 is already installed
And rpm does not install the 64bit package because its already
installed.(but its the i586 package)
So the update works smothless, but not successful :)
After that the user cannot login anymore, because kde3 uses the 64bit
libfam.
How did suse managed to get around the problem?
They used a fam-32bit package (thus a package with a different name)
./os11.1/suse/x86_64/fam-32bit-2.7.0-130.1.x86_64.rpm
This is the solution in this case.
gamin needs an additional gamin-32bit package on x86_64 archs, so that
the user can use the 32bit compatibility libs (like kdelibs3-32bit)
I think in the upcomming 11.2 they get rid of this and fixed rpm
internally, but for now in 11.1 its needed.
Can you do a gamin-32bit package? (for x86_64 arch)
I would do a rollback to fam, but I consider this a bug (and for me a
showstopper bug) and it should get a proper fix in packman.
regards,
Martin
More information about the Packman
mailing list