Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 9996 - sylpheed-claws, libaspell and portage cleaning
Summary: sylpheed-claws, libaspell and portage cleaning
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Jonathan Nall
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-10-30 21:44 UTC by TGL
Modified: 2003-02-04 19:42 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description TGL 2002-10-30 21:44:30 UTC
Hi, 

I've seen that the new "clean by default" portage behavior is currently
discussed on gentoo-dev ml... Here is an example of a bad consequence, where an
actual runtime dependency is stronger than the ebuild dependency protected from
cleaning:

 - I've installed sylpheed-claws 0.8.5 while aspell-0.50.1 was installed
 - I've then upgraded to aspell-0.50.2
 - libaspell-common-0.50.1.so deleted by portage cleaning
 - sylpheed-claws then refused to start, because it was still looking for
libaspell-common-0.50.1.so 

I don't know why it was looking for the minor version installed while compiling
and not the symlink (libaspell-common.so, or at least libaspell-common.50.so),
but "ldd" output was explicit. It's probably just a sylpheed-claws bug. I had to
reemerge it. Now, "ldd" still gives me a dependency on the minor version, so the
problem will occur again when I upgrade aspell:

thomas@gromit thomas $ ldd /usr/bin/sylpheed-claws 
	libaspell.so.15 => /usr/lib/libaspell.so.15 (0x4002a000)
	libaspell-common-0.50.2.so => /usr/lib/libaspell-common-0.50.2.so (0x400e4000)
[...]
Comment 1 Jonathan Nall 2002-11-01 08:14:22 UTC
ok, after talking with the aspell author, i've come to some conclusions about
how to fix this.

libaspell-common is a library used internally by libaspell. applications should
never need to link against this. furthermore, libaspell-common's interface may
change at any time, so it's actually not safe for apps to link against it.
they're currently linked against it because it's listed in the dependency_libs
list of libaspell.la. i've spoken with the aspell author and he doesn't know of
a good way to prevent this problem.


so how do we prevent apps from linking against it? i've come up with 2 ways:

1. we can find every package that links against aspell and patch its libtool to
set link_all_deplibs to "no". this will cause the package to link against
libaspell.so, but none of its dependencies (libaspell-common.0.51.0.so). this is
probably the "right" thing to do, but it's kind of a maintenance nightmare.

2. we can sed out the libaspell-common.la dependency from libaspell.la before
installing it. this is probably the easiest solution. i don't think removing the
libaspell-common.la from libaspell.la has any ramifications other than
preventing packages linking against libaspell from also linking against
libaspell-common. this change is made in only one place (the aspell ebuild) and
can be removed if the aspell author solves the problem. this is my preferred
solution.

in any case, it'll cause a lot of things to need to be rebuilt. (eg: packages
that link with libaspell; packages that link w/ packages that link with
libaspell, etc..)

seemant, do you know of any reason not to go with solution #2?
Comment 2 Seemant Kulleen (RETIRED) gentoo-dev 2002-11-01 15:23:56 UTC
I think it would be the best course of action, to be honest.  I am not entirely
sure if it would require a lot of recompilation. It might, but might not. 
aspell is relatively new in the tree (this version) and not everything works it
at the moment.  It's something to investigate anyway.
Comment 3 Seemant Kulleen (RETIRED) gentoo-dev 2002-11-02 00:34:55 UTC
*** Bug 9980 has been marked as a duplicate of this bug. ***
Comment 4 Jonathan Nall 2002-11-11 07:56:23 UTC
i just checked in aspell-0.50.2-r1. this should fix the bad dependency on aspell-common. you'll need to recompile everything that depends on aspell afterwards.

closing
Comment 5 Jonathan Nall 2002-11-11 14:03:28 UTC
just adding some words so people finding this with apps other than
sylpheed-claws might find this bug.

a list of the current packages depending on aspell:
abiword gnome-spell sylpheed-claws lyx gtkspell gtk+licq balsa