[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Package voberon and imlib/gdk-imlib



Hello,

I am sending this message to each maintainer of a package that
build-depends on either imlib or gdk-imlib.  I have just uploaded
imlib revision 1.9.14-7 in which the libraries have switched from
using libpng2 to using libpng3.

This change introduces a change in the libraries' ABI and consequently
the library SOVERSION numbers were incremented to 2.  Upstream has
not yet incremented the SOVERSION, but they have indicated to me that
they will do so in the next release.

The change in SOVERSION means that the library package names have
changed to imlib2 and gdk-imlib2.  These will be flagged as new
packages and dealt with by hand, so it may be some time before the new
packages are available from the archive.  

With this upload, the imlib1 and gdk-imlib1 packages become
unbuildable.  I expect that all code that uses imlib can simply
recompile with the newer version.  If this proves not to be the case,
let me know and I'll reintroduce imlib1 and/or gdk-imlib1 compiled
with libpng2.

If your package does not build with libpng directly or indirectly
(e.g. through a third library), then the rest of this message will not
apply to you.

Any package that requires both imlib and libpng to build will likely
become unbuildable, since imlib-dev depends on libpng3-dev and
conflicts with libpng2-dev.  Likely all you need to do is update your
build-depends lines and recompile.

A package that requires both gdk-imlib and libpng, on the other hand
may build but fail at runtime, if built with libpng2.  This is because
gdk-imlib employs libpng3 via a dlopened() module.  Consequently,
gdk-imlib-dev does not depend on nor conflict with any libpng -dev
package.  As with imlib, you will need to inspect your build-depends
lines and change libpng*-dev to libpng3-dev as necessary.

If your package is a library that uses imlib, this change to imlib
implies a change to the ABI of your library also.  It is therefore
recommended that your library SOVERSION should change.  Should this
prove infeasible, Junichi Uekawa has an alternate suggestion:

    http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html#BINARYCOMPAT


If you accidentally link an application with imlib and libpng2, the
application may behave in unpredictible ways, possibly crashing,
possibly emitting warnings similar to the following:

  libpng warning: Application was compiled with png.h from libpng-1.2.1
  libpng warning: Application  is running with png.c from libpng-1.0.12
  libpng error: Incompatible libpng version in application and library



I hope this change does not cause too many headaches for you.
Please let me know if you have any concerns,
-Steve




Reply to: