Bug#819779: gdk-pixbuf: libgdk-pixbuf2.0-dev depends on libpng-dev but gdk-pixbuf2.0.pc requires libpng12-dev
Gianfranco Costamagna
locutusofborg at debian.org
Sun Apr 3 07:49:43 UTC 2016
control: severity -1 important
Hi Tanguy, sorry for the late reply
On 02/04/2016 10:41, Tanguy Ortoo wrote:
> Package: libgdk-pixbuf2.0-dev
> Version: 2.32.3-1.2
> Severity: grave
> Justification: renders package unusable
>
^^ nonsense to me.
if with "unusable" you mean experimental, well, it is there to be broken, and in
case of transition it usually *is* broken, specially because release team
almost never did a binNMU there.
> While trying to build a new version of my package latexila for
> experimental, I noticed it was failing because of libgtk-pixbuf2.0-dev.
> Indeed, that package, in unstable and in experimental as well:
>
> * ships a gdk-pixbuf2.0.pc that requires libpng12.pc;
> * depends on libpng-dev which:
> - on experimental, is a real package that does not ship libpng12.pc
> but only libpng16.pc and libpng.pc;
this is a known issue, and you should just binNMU gdk-pixbuf (I did an NMU with a special libpng16-dev build dependency,
but with the new libpng1.6 that provides a real libpng-dev and no libpng16-dev a new binNMU has to be performed).
> - on unstable, is provided by libpng12-dev which does provide
> libpng12.pc, but that situation should change to that of
> experimental whenever the new libpng-dev real package is uploaded to
> it.
that is going to change soon (TM)
>
>
> Basically, when requiring libpng12.pc, it does not seem right to depend
> on a package, either virtual or real, that is not guaranteed to provide
> it. In my opinion, in its current state, libgdk-pixbuf2.0-dev should
> depend on libpng12-dev as this is what it uses, and not on libpng-dev
> which may or may not provide what it currently needs.
>
where? unstable or experimental? you say both unstable and experimental are broken.
experimental is broken by definition of transition, while unstable should be fixed, simple as is.
in experimental libpng-dev is provided by libpng12-dev so the current transition shoulnd't be an issue.
and I don't even see your point.
"unstable is broken, so I want to upload to experimental which is by definition even more broken"
that sound really strange to me.
>
> Since there is a transition to make to libpng-dev, one solution would be
> to rebuild gdk-pixbuf for experimental, but doing it in an environment
> with libpng12-dev not installed and libpng-dev installed from
> experimental. That way, its configure script (l. 18507) would just pick
> libpng16 and the resulting gdk-pixbuf2.0.pc would require the
> libpng16.pc it provides:
>
conflicts is a good choice here (I didn't test, but it has never given us troubles building it on experimental with
a forced libpng-dev, because real packages has higer priority than Provides packages, so the png16 toolchain
should be choosen with a simple binNMU)
>> for l in libpng16 libpng15 libpng14 libpng12 libpng13 libpng10; do
>> […]
>
>
> In the longer term, it could be better to have the configure script
> check for libpng before libpng16 or libpng12:
>
>> for l in libpng libpng16 libpng15 libpng14 libpng12 libpng13 libpng10; do
>> […]
>
>
> That way, it would not even need to be adapted for future versions of
> libpng.
>
that is something I leave to the current maintainers :)
and now answering to some irc chats:
>mbiebl_ it only depends on libpng-dev though 23:20
>mbiebl_ why am I not surprised that something regarding the libpng transition is broken
well, it was uploaded *before* libpng-dev became a real package, so it is not surprising that I broke
experimental, specially because -release team asked us to do so.
"please push on experimental your solution for unstable", and that obviously meant to break in particular gdk-pixbuf.
I hope that will be fixed with the unstable upload and a binNMU.
>mbiebl_ the libpng transition is a never ending story of fail 23:27
I guess not anymore, now I have refactored a real part of the package, and I became to provide real packages, fixing multiarch and much more.
We got a "please go on" by the maintainers, and this is what we will do.
>Tanguy By the way, do you know why is the libpng16 dev package named libpng-dev and not libpng16-dev? That library is >libpng16, not just libpng, is it? 23:34
we did ~100 NMUs just to change that bits, is this a good answer? :)
the better answer is to not provide a libpng16-dev *at all*, so people will be forced to use the main -dev package.
nobody can support more than one libpng implementation at the same time, so there is *no* real need of that number
as part of the development package (in fact I removed it also from the other binaries, except for the real library of course)
>With unversioned build-deps, the release team can just smack a big "binNMU the world" button, and if there are no drastic >API breaks, it all Just Works. 23:35
>Tanguy Assuming the API does not change, right.
in that case, test rebuilds (as they have been done in 650601), and NMUs as needed.
>mbiebl_ _rene_: ask the ones which NMUed gdk-pixbuf for the libpng transition
> mbiebl_ _rene_: I wouldn't be surprised if something was broken along the way
before we had to force libpng16-dev in the NMU, now it isn't required anymore.
If you want to fix it, just binNMU it.
(that should make the future smooth in terms of next transitions)
>mbiebl_ Tanguy: the breakage comes from turning the virtual libpng-dev package into a real one 00:27
>mbiebl_ we could work around that by reverting the NMU and changing the libpng-dev depends to libpng12-dev again 00:27
why?
unstable has to have libpng-dev, the problem right now is for people mixing unstable and experimental, and will be
over as soon as the transition starts.
>Tanguy mapreri, jcristau: Possibly, the fact is I have a package that cannot build with libgdk-pixbuf2.0-dev/experimental, >and I suspect all packages that use GTK+ will be in the same situation, and if a similar libgdk-pixbuf2.0-dev is uploaded to >unstable, it will result in similar breakage. Now, I think a simple binNMU of gdk-pixbuf in experimental may be just enough >to fix that, but I really do not feel c 09:21
>Tanguy onfident in doing that myself, as it could very well just break more things.
>Tanguy You can update my bug report if you want, as you certainly know better than me! 09:22
thanks for the bug report in first place, but you should be right there. a simple binNMU should be enough.
>mapreri well, there have been 2 NMU of gdk-pixbuf in experimental exactly to have it built against libpng1.6 09:23
>Tanguy Well, not sure of what happens but it seems to still require libpng12. 09:23
>Tanguy Let me check again. 09:24
yes, because a maintainer upload overridden the NMU, and in the meanwhile libpng16-dev has stopped to be provided in experimental.
So that breakage was somewhat expected.
>mapreri there has been a maintainer upload on top of those 2 and now it is built against libpng12 again 09:24
>mapreri let me check with one of the NMUers if he plans to nmu it again. 09:24
>Tanguy Okay, that is why. Thanks. 09:25
>mapreri Tanguy: Gianfranco said he will a look later and maybe follow up on the bug
Here I am
>Tanguy Okay, thanks. 09:38
>Tanguy While speaking of libpng, I noticed the library has soname libpng16.so.16, which would suggest it is really libpng16, >not just libpng, and that API stability is not supposed to be maintained whenever there is a libpng16 or so.
that would be a pain for the next transition, so big no here :)
for the later parts many people on -devel answered in a more appropriate way, so thanks jcristau and everybody else for
the great replies.
Sorry for quoting irc, but it was really easier to do.
(I hope I didn't sound too rude, but we are really near the start of the transition, just waiting for -release ack, and we spent already a lot of time on this, so I prefer to leave stuff like asking binNMUs or fixing experimental to other people, with a ~500 packages to check my priorities are somewhere else).
have many thanks, and sorry for the experimental breakage :)
cheers!
Gianfranco
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20160403/d5c15dc8/attachment.sig>
More information about the pkg-gnome-maintainers
mailing list