diff options
author | David Spencer <baildon.research@googlemail.com> | 2015-08-04 15:26:47 +0100 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2016-01-17 09:40:16 +0700 |
commit | b6cdff1cab3dcf383d43a21c2ddd168657fabdc5 (patch) | |
tree | a9102006447d61c683ddd432ccba1f143a48a681 /graphics/exact-image/exact-image-libpng15.patch | |
parent | 6052a66182ea460d46aaeef2e3af3c28931ffa0b (diff) |
graphics/exact-image: Updated for version 0.9.1.
Patched to fix build failure with giflib-5.1 & libpng16 (-current).
Signed-off-by: David Spencer <baildon.research@googlemail.com>
Diffstat (limited to 'graphics/exact-image/exact-image-libpng15.patch')
-rw-r--r-- | graphics/exact-image/exact-image-libpng15.patch | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/graphics/exact-image/exact-image-libpng15.patch b/graphics/exact-image/exact-image-libpng15.patch new file mode 100644 index 0000000000000..ba9df19e81c43 --- /dev/null +++ b/graphics/exact-image/exact-image-libpng15.patch @@ -0,0 +1,109 @@ +Description: Fix FTBFS with libpng 1.5 +Author: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> +Approved: Ralf Treinen <treinen@debian.org> +Bug-Debian: #635745 + +--- exactimage-0.8.5.orig/codecs/png.cc ++++ exactimage-0.8.5/codecs/png.cc +@@ -17,6 +17,7 @@ + + #include <stdlib.h> + #include <png.h> ++#include <zlib.h> + + #include <iostream> + +@@ -58,7 +59,7 @@ int PNGCodec::readImage (std::istream* s + png_structp png_ptr; + png_infop info_ptr; + png_uint_32 width, height; +- int bit_depth, color_type, interlace_type; ++ int bit_depth, color_type, interlace_type, num_trans; + + png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, + NULL /*user_error_ptr*/, +@@ -71,7 +72,7 @@ int PNGCodec::readImage (std::istream* s + /* Allocate/initialize the memory for image information. REQUIRED. */ + info_ptr = png_create_info_struct(png_ptr); + if (info_ptr == NULL) { +- png_destroy_read_struct(&png_ptr, png_infopp_NULL, png_infopp_NULL); ++ png_destroy_read_struct(&png_ptr, NULL, NULL); + return 0; + } + +@@ -82,7 +83,7 @@ int PNGCodec::readImage (std::istream* s + + if (setjmp(png_jmpbuf(png_ptr))) { + /* Free all of the memory associated with the png_ptr and info_ptr */ +- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL); ++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + /* If we get here, we had a problem reading the file */ + return 0; + } +@@ -99,13 +100,13 @@ int PNGCodec::readImage (std::istream* s + png_read_info (png_ptr, info_ptr); + + png_get_IHDR (png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, +- &interlace_type, int_p_NULL, int_p_NULL); ++ &interlace_type, NULL, NULL); + + image.w = width; + image.h = height; + image.bps = bit_depth; +- image.spp = info_ptr->channels; +- ++ image.spp = png_get_channels(png_ptr, info_ptr); ++ + png_uint_32 res_x, res_y; + res_x = png_get_x_pixels_per_meter(png_ptr, info_ptr); + res_y = png_get_y_pixels_per_meter(png_ptr, info_ptr); +@@ -119,11 +120,13 @@ int PNGCodec::readImage (std::istream* s + * (not useful if you are using png_set_packing). */ + // png_set_packswap(png_ptr); + ++ png_get_tRNS(png_ptr, info_ptr, NULL, &num_trans, NULL); ++ + /* Expand paletted colors into true RGB triplets */ + if (color_type == PNG_COLOR_TYPE_PALETTE) { + png_set_palette_to_rgb(png_ptr); + image.bps = 8; +- if (info_ptr->num_trans) ++ if (num_trans) + image.spp = 4; + else + image.spp = 3; +@@ -196,11 +199,11 @@ int PNGCodec::readImage (std::istream* s + for (int pass = 0; pass < number_passes; ++pass) + for (unsigned int y = 0; y < height; ++y) { + row_pointers[0] = image.getRawData() + y * stride; +- png_read_rows(png_ptr, row_pointers, png_bytepp_NULL, 1); ++ png_read_rows(png_ptr, row_pointers, NULL, 1); + } + + /* clean up after the read, and free any memory allocated - REQUIRED */ +- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL); ++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + + /* that's it */ + return true; +@@ -224,7 +227,7 @@ bool PNGCodec::writeImage (std::ostream* + /* Allocate/initialize the memory for image information. REQUIRED. */ + info_ptr = png_create_info_struct(png_ptr); + if (info_ptr == NULL) { +- png_destroy_write_struct(&png_ptr, png_infopp_NULL); ++ png_destroy_write_struct(&png_ptr, NULL); + return false; + } + +@@ -244,8 +247,10 @@ bool PNGCodec::writeImage (std::ostream* + else if (quality > Z_BEST_COMPRESSION) quality = Z_BEST_COMPRESSION; + png_set_compression_level(png_ptr, quality); + ++ /* Need? + png_info_init (info_ptr); +- ++ */ ++ + /* Set up our STL stream output control */ + png_set_write_fn (png_ptr, stream, &stdstream_write_data, &stdstream_flush_data); + |