[OpenIndiana-discuss] I am having problems with Inkscape and convert producing PNG's

Bob Friesenhahn bfriesen at simple.dallas.tx.us
Mon Oct 15 19:58:36 UTC 2012


On Mon, 15 Oct 2012, Udo Grabowski (IMK) wrote:
>> Any suggestions on what to install to get this working? :)
>
> This is a annoying problem with nearly everything that's linked
> to png or cairo. I usually run with
>
> env LD_PRELOAD=/usr/lib/libpng12.so convert
>
> but I don't know if libpng12 was intended (I suspect not), and
> if not, if the called functions really do the same as the
> libpng14 ones (save the ones not in libpng12). At least the
> images produced look ok.

The libpng 1.4 structures are not identical to 1.2.  If it seems to be 
working it is due to pleasant accident.

> This was a build error present also on some Linux systems, and
> should be cleaned up, since a lot of programs and libraries
> using or linking to libpng-dependent stuff are affected and
> break without some workaround. I don't know if it is possible
> to build some wrapper libpng as a workaround which can solve
> this until this mess fixed, but I don't have any clue how to
> trick out the version check in such a library. Maybe someone
> else has an idea.

The problem is that library dependencies are causing two versions of 
libpng to be pulled into the same program:

% ldd `which convert`|grep png
         libpng14.so.14 =>        /usr/lib/libpng14.so.14
         libpng12.so.0 =>         /usr/lib/libpng12.so.0

Unless ELF symbol versioning is used in the library, then lazy symbol 
loading might cause functions from either library to be used, 
depending on the sequence of events.

Unless the code using libpng12 can be updated to use libpng14 then the 
simplest solution is to re-build ImageMagick so that it uses libpng 
1.2.

Libpng 1.5 has improved its interface so that the applications can no 
longer access libpng structure members directly.  This is a huge 
improvement but requires that all of the using code be updated to use 
the new API.  Libpng 1.4 offers the new API in a transitional mode to 
allow applications time to update.

Bob
-- 
Bob Friesenhahn
bfriesen at simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/



More information about the OpenIndiana-discuss mailing list