At the meeting last night I was asked how to deal with the libpng
breakage in Gentoo. Where an update to libpng basically breaks most of a
graphical Linux system. Lots of stuff links to libpng, including core
stuff like gtk, cairo, pango, atk, etc.

I was able to get past this in my own hackish ways. I mentioned to some
in Gentoo. But still waiting to become a volunteer Gentoo Developer
again. Till then not really trying to help Gentoo out to much. Long
story there, for another thread and day.

This hackish solution can work for other libraries and core breakage,
not just libpng. It is more of a hack, than a clean or elegant solution.
That said it works quite well and can some what keep your system
functioning in the mean time.

So you just updated your system to libpng-1.4.2 from libpng-1.2.43 and
your system is broken. Here is how you get around that in a hackish way.

Create temporary symlinks to the new libpng

cd /usr/lib
ln -s libpng.so libpng12.so
ln -s libpng.so libpng12.so.0
ln -s libpng.so libpng12.so.0.40.0

Ok, now some things might work, but core stuff likely complains about
wrong version of libpng. So now lets go fix your system the right way.

revdep-rebuild -i --library=libpng12.so.0 -- -qv

That should find anything linked to libpng12.so.0 and recompile it.
Which when it recompiles it will use the temp symlink, but end up linked
to the new version. Keep running revdep-rebuild and you might have to
manually recompile some packages in a specific order. But that really
should not be necessary with the temp links.

After you recompile all apps that were linked to libpng12.so.0, and
running the above revdep-rebuild command does not list any breakage.
Then you can go delete the above temporary links you created and you
should right away.

This can work for more than just libpng, like DirectFB, libtiff, etc.
Though major breakage like this is some what rare in Gentoo. It does
happen quite often in the FOSS world. Luckily in this case all apps seem
to compile against the new libpng without modification. That is not
always the case, and FOSS apps can easily and often are out of sync with
their dependencies.

Anyway hope this helps, if your system ends up in a worse state. Don't
blame me, this is just my way, not the official or best way. Though I
think it works quite well, and I have not had any problems as a
result. :)

-- 
William L. Thomson Jr.
Obsidian-Studios, Inc.
http://www.obsidian-studios.com

This message (including any attachments) contains confidential
information intended for a specific individual and purpose, and is
protected by law. If you are not the intended recipient, you should
delete this message.

Any disclosure, copying, or distribution of this message, or the taking
of any action based on it, is strictly prohibited.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
List archive http://marc.info/?l=jaxlug-list&r=1&w=2
RSS http://www.mail-archive.com/[email protected]/maillist.xml

Reply via email to