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 :-)