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

libpng clarification

As some people were asking for it, and the situation is pretty unclear,
I think it is time for a few answers to the questions that can be asked
about libpng. This mail is targetted to maintainers of packages using

Q: Why are there 4 versions of libpng on my system ?
A: In fact, there are only 2. The libpng12 packages are a rename of the
libpng3 ones, while the libpng10 are the former libpng2 ones. Now,
libpng2(-dev) and libpng3(-dev) only contain compatibility symlinks
ensuring full backwards compatibility.
The reason why there are still 2 versions on the system is that
gdk-imlib1 and Gnome 1 are still linked to libpng2 on other major
distributions. In order to preserve binary compatibility with them, our
gdk-imlib1 is still linked with libpng2.
The reason why the library was renamed is (partly) that it was
impossible to get development files for both versions at the same time.

Those moves were made upstream and are pretty controversial. I hope we
will come to a better solution soon, but in the meantime I can only
offer upgrades as smooth as possible, and compatibility with other

Q: WTF, everything's b0rked !!?!
A: I am not aware of anything truly broken by the latest upload. The
only serious issue that arised is that a few packages (namely gerbv and
terraform) will fail to build as they depend on both gdk-imlib1-dev and
libpng-dev. If you think something is broken, please write a mail or a
bug report.

Q: My package failed to build, what's happening ?
A: This is most likely a temporary issue while the buildd hadn't updated
the libpng packages. However, if you have a build failure on *all*
arches, there is certainly a real problem, and there can be very hairy
cases (e.g. plplot).

Q: I'm maintaining a small package using libpng (and potentially a few
other libs that don't depend on libpng themselves), what should I do ?
A: You should build-depend on libpng-dev. Nothing special is required.
After compilation, your binary package will depend on libpng12-0.

Q: I'm maintaining a package that uses libpng as well as other libraries
using it (gnome, qt/kde, sdl... but NOT gdk-imlib1/gnome 1), what should
I do ?
A: You should build-depend on libpng12-dev, and check the other
libraries you are building against are also using it (or libpng3-dev).

Q: I'm maintaining one of these library packages, what should I do ?
A: You should build-depend on libpng12-dev too. Please avoid libpng-dev
as it is better to ensure you have the same version than that of the
packages which will use it.

Q: I'm maintaining a package using libpng as well as gdk-imlib1 or gnome
1, what should I do ?
A: You are most probably build-depending on libpng2-dev currently
(except for gerbv and terraform), but you should consider moving to
using libpng10-dev. It will require a bit of tweaking from your part,
but you will be able to maintain your package without deinstalling and
reinstalling libpng stuff all the time. This is achieved using
`libpng10-config --cflags` in the CFLAGS and `libpng10-config --ldflags`
instead of -lpng.

Q: I'm maintaining a package that uses gdk-imlib1 as well as other
library packages using libpng, what should I do ?
A: Pray.
More seriously, if such a package exists, it is a serious argument to
make a move against binary-compatibility (maybe plplot is one, but it
requires investigation).

Q: What about versioned symbols ?
A: Upstream is getting interested in those, and thanks to Marcelo's
work, we will probably see them soon (don't ask me when).

Q: Why don't we just say goodbye to binary-compatibility with other
distros on those few corner cases ?
A: I'm not against that, but some people in the project seem to be.
Anyway, this is certainly not a move we can make without thinking.

Any comments ?
 .''`.           Josselin Mouette        /\./\
: :' :           josselin.mouette@ens-lyon.org
`. `'                        joss@debian.org
  `-  Debian GNU/Linux -- The power of freedom

Attachment: signature.asc
Description: PGP signature

Reply to: