Package: imagemagick Version: 7:6.2.4.5.dfsg1-0.12 Severity: serious Tags: patch Justification: no longer builds from source
Recent libpng actived MMX optimisations on amd64, it seems, and a previously uncompiled code snippet in coders/png.c is now alive. It's example code from libpng's man page, but contains a few cut&paste errors that break compiling. Patch for those is attached. Unfortunately, imagemagick doesn't build on amd64 with these fixes, either because of linker errors due to a missing symbol in libpng. For Debian's purposes, it would also be sufficient to simply disable the #if block as a whole, but I'd prefer libpng to be fixed. Regards, Daniel.
--- imagemagick-6.2.4.5.dfsg1.orig/coders/png.c +++ imagemagick-6.2.4.5.dfsg1/coders/png.c @@ -1704,7 +1704,7 @@ #if defined(PNG_USE_PNGGCCRD) && defined(PNG_ASSEMBLER_CODE_SUPPORTED) \ && (PNG_LIBPNG_VER >= 10200) /* Disable thread-unsafe features of pnggccrd */ - if (png_access_version() >= 10200) + if (png_access_version_number() >= 10200) { png_uint_32 mmx_disable_mask=0; png_uint_32 asm_flags; @@ -1713,8 +1713,8 @@ | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \ | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \ | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ); - asm_flags=png_get_asm_flags(png_ptr); - png_set_asm_flags(png_ptr, asm_flags & ~mmx_disable_mask); + asm_flags=png_get_asm_flags(ping); + png_set_asm_flags(ping, asm_flags & ~mmx_disable_mask); } #endif