[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