On Wed, Jan 20, 2016 at 10:38:27PM +0200, Niko Tyni wrote: > On Wed, Jan 20, 2016 at 02:42:04PM +0100, Chris Lamb wrote: > > Source: libimager-perl > > Version: 1.004+dfsg-1 > > Severity: serious > > Justification: fails to build from source > > User: reproducible-bui...@lists.alioth.debian.org > > Usertags: ftbfs > > X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org > > > libimager-perl fails to build from source in unstable/amd64: > > It broke with src:giflib 5.1.2-0.1 -> 5.1.1-0.2. Don't know > why yet. > > % perl -MImager -e 'Imager->new->read(type => "gif", file => > "GIF/testimg/expected.gif") or die' > > dies with the new giflib but not the old one. > > Cc'ing Matthias Klose as a heads-up, he uploaded 5.1.1-0.2.
The read failures are caused by a bug present in both 5.1.1 and 5.1.2, partly fixed in giflib git at commit ef0cb9b4be572262b49fbc26fb2348683f44a517. A similar fix is required to DGifOpen() for Imager's GIF support to work (reliably), reported upstream as https://sourceforge.net/p/giflib/bugs/81/ Without the fix the Private member RunningBits isn't initialized, leaving RunningBits as whatever happened to be in memory at that point, so the check in DGifSetupDecompress() has a large chance of failing with a D_GIF_ERR_READ_FAILED error. Adding the initialization allows Imager to pass its tests. That said, there is a bug in that test script, since its custom ok() doesn't have a prototype, the tests on line 65 and 78 pass when they should fail, leading to the crash on line 79 when it tries to compare uninitialized images. Adding a prototype fixes it, though I'll probably end up tossing the custom code and using Test::More. Tony