On 22 September 2011 20:23, "Tóth Attila" <at...@atoth.sote.hu> wrote:
> I've suspected, that it won't be a torch-light procession.
> But reality exceeded my expectations.
> Around 60 packages failed out of approx 100! I've followed the ebuild's
> advice, that I leave the old library in place and revdep all packages
> linked to it.
> Acutally it would be better to remove the old library immediately, because
> a bunch of packages still tried to use -lpng14 for linking. In those case
> removing the old libs seems to help most of the time. But it will take
> another day to roll over the packages.
> Of course some packages will still fail. But it could spare me a day of
> useless compiles failing at the end while linking if I would have removed
> the old library for the first time.
> --
> dr Tóth Attila, Radiológus, 06-20-825-8057
> Attila Toth MD, Radiologist, +36-20-825-8057
>
>
>

I managed this about a month back, but it can take a bit of work.

The main resource you need is
https://bugs.gentoo.org/show_bug.cgi?id=354479 which has links to bugs
for packages that have already been tested.  Many have patches
attached, and in a lot of cases, if you get a compilation failure,
it's because the maintainer hasn't yet patched the build, but the
patch is there in Bugzilla.

That applies for compile-time failures (stuff like error: invalid use
of incomplete type ‘png_info {aka struct png_info_def}’) rather than
a link-time occurrence of -lpng14.  This occurs because one of the
dependencies is still linked against libpng 1.4.  As libpng 1.4 is
one of the main system libraries, a lot of packages depend on it, and
in many cases they do so indirectly.  So, a package that
doesn't even depend on libpng can fail, because one of its
dependencies does and hasn't rebuilt.  As a result, the dependency
still
has a libtool ('.la') file with -lpng14 in it.

The solution is to just rebuild the dependencies until you manage to
root out all the libpng14 usage.  Which portage are using?  2.2
will maintain a list of stuff that still links against 1.4, but it may
not always be possible to rebuild these because some dependency
is still using 1.4 or just has it in its libtool file.  As a last
resort, grepping the la files for 'lpng14' and then using equery f to
find out
which package owns that la file can help.
-- 
Andii :-)

Reply via email to