Brokenness caused by libpng update

Laurent Blume laurent at opencsw.org
Wed May 6 10:00:36 CEST 2015


Le 2015/05/05 19:49 +0200, Riccardo Mottola a écrit:
> hey, I just upgraded... I didn't "break it" more than the last revision,
> it is just necessary to update a dozen of packages, as happened probably
> last time libpng's soname was upgraded.

I was not blaming you. You have to understand that when you're working
with packages that impact the work of other people, you fully assume the
responsibility of not disturbing the work of those people more than
necessary, and fix new issues that appear.

This is tangent to Peter's recent post. We get the feeling that for you,
this is a hobby, you play and learn on obsolete OS's. That's a perfectly
fine and legit reason to work with OpenCSW.
But others still have actual business needs for those packages you are
impacting with your changes. You are very welcome to make those changes,
but you do have to be careful and responsible with them.

> Then probably didn't understand your proposal, sorry. Except for actual
> status which we need to recover, supposing that 15 had already a
> versioned package, I would have just upgraded to 16, producing another
> one, but incompatible to the 16, since both would have the symlink?

No, we don't want both to have the symlink. We want the most recent one
to have the symlink, only the most recent one, so new packages that use
libpng-dev will use that libpng.pc symlink and link to whatever is the
most current one. Yes, they will get an implicit dependency on
libpngXX-dev in the process, but that's apparently the way the libpng
devs want it.
Then, packages that depend on eg libpng15-dev will still be able to use
libpng15.pc

> In other words, the current dev package is fine, except you want it to
> have a versioned name? Let's start with that easy fix.

No, it is not fine.
If you get back to my original post, you will see that my recipes are
broken because they lack the file libpng15.pc.

So you absolutely must respin now a libpng15-dev without the symlink,
that will obsolete libpng-dev, and modify the current libpng-dev so it
becomes libpng16-dev.

> Do you want then to produce the same versioned package for the old 15
> version, doing a partial revert of the Makefile? Fine too. What is it
> for, if you anyway have a symlink in the 16 version? it would overwrite
> a file.

Because the recipes currently need the libpng***15***.pc file, that is
not part of libpng***16***. The symlink is only used for the initial
build of the recipes. Since it points to a versioned file that contains
versioned content, the dependencies of those dependencies will then
later request the versioned content.
If you've not had the time yet, I suggest you have a look at
pkg-config(1) and how it is used to provide build-time informations.

> I can take care of the above steps. But you still have packages
> depending on the "old" unversioned one, right? those need to be updated
> anyway.

Yes, that is precisely why I said you have to contact the maintainers of
the dependencies of your package to make sure that they are aware of
those changes they have to make.

Welcome to dependency hell. It's part of the job :-)

Laurent


More information about the maintainers mailing list