From fcc4b36137ab9030604e7c344e18a628ebd3cc66 Mon Sep 17 00:00:00 2001 From: Tomasz Pala Date: Mon, 6 Oct 2014 15:09:20 +0200 Subject: [PATCH] try some PNG 1.5 patch available https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=15;filename=exactimage_0.8.5-1.patch;att=1;bug=635745 --- exact-image-libs.patch | 33 ------------- exact-image.spec | 8 +-- exactimage_0.8.5-1.patch | 104 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 36 deletions(-) create mode 100644 exactimage_0.8.5-1.patch diff --git a/exact-image-libs.patch b/exact-image-libs.patch index f3983cb..59afafb 100644 --- a/exact-image-libs.patch +++ b/exact-image-libs.patch @@ -10,30 +10,9 @@ diff -ur -urp exact-image-0.8.5.orig/api/lua/Makefile exact-image-0.8.5/api/lua/ # install all:: $($(X_MODULE)_BINARY) -diff -ur -urp exact-image-0.8.5.orig/codecs/png.cc exact-image-0.8.5/codecs/png.cc ---- exact-image-0.8.5.orig/codecs/png.cc 2010-03-03 22:04:44.000000000 +0100 -+++ exact-image-0.8.5/codecs/png.cc 2011-05-14 00:28:20.000000000 +0200 -@@ -16,7 +16,7 @@ - */ - - #include --#include -+#include - - #include - diff -ur -urp exact-image-0.8.5.orig/configure exact-image-0.8.5/configure --- exact-image-0.8.5.orig/configure 2010-11-21 11:01:04.000000000 +0100 +++ exact-image-0.8.5/configure 2011-05-14 00:22:45.000000000 +0200 -@@ -63,7 +63,7 @@ fi - - pkgcheck libjpeg header LIBJPEG cc jconfig.h - pkgcheck libtiff header LIBTIFF c++ tiffconf.h tiffio.h # tiffio.hxx --pkgcheck libpng pkg-config LIBPNG atleast 1.2 -+pkgcheck libpng12 pkg-config LIBPNG atleast 1.2 - pkgcheck libungif header LIBUNGIF c++ gif_lib.h - pkgcheck jasper header JASPER c++ jasper/jasper.h - if pkgcheck expat header EXPAT c++ expat.h; then # just for the SVG parser @@ -91,7 +91,7 @@ pkgcheck swig shell SWIG 'swig -version # supported swig target languages so far @@ -43,15 +22,3 @@ diff -ur -urp exact-image-0.8.5.orig/configure exact-image-0.8.5/configure pkgcheck perl shell PERL 'perl -version 2>/dev/null | sed -n "s/This is perl.*v\([0-9.]*\).*built.*/\1/p"' atleast 5.8.0 && PERLINCS="`perl -MExtUtils::Embed -e ccopts`" -diff -ur -x .svn -x .git -x .bzr -x CVS -urN exact-image-0.8.9/codecs/Makefile b/codecs/Makefile ---- exact-image-0.8.9/codecs/Makefile 2011-06-30 23:23:25.000000000 +0200 -+++ b/codecs/Makefile 2014-10-06 14:17:34.479107173 +0200 -@@ -13,7 +13,7 @@ - endif - - ifeq "$(WITHLIBPNG)" "1" --LDFLAGS += -lpng -+LDFLAGS += -lpng12 - else - NOT_SRCS += png.cc - endif diff --git a/exact-image.spec b/exact-image.spec index b736199..a7bce5a 100644 --- a/exact-image.spec +++ b/exact-image.spec @@ -1,12 +1,13 @@ Summary: A fast, modern and generic image processing library Name: exact-image Version: 0.8.9 -Release: 1 +Release: 2 License: GPL v2 Group: Applications/Graphics Source0: http://dl.exactcode.de/oss/exact-image/%{name}-%{version}.tar.bz2 # Source0-md5: a8694722cd7cc9aa9407950a8440f0cd Patch0: %{name}-libs.patch +Patch1: exactimage_0.8.5-1.patch URL: http://www.exactcode.de/site/open_source/exactimage/ BuildRequires: OpenEXR-devel >= 1.2.0 BuildRequires: agg-devel >= 2.3 @@ -14,7 +15,7 @@ BuildRequires: evas-devel >= 0.9.9 #BuildRequires: giflib4-devel BuildRequires: jasper-devel BuildRequires: lcms-devel >= 1.10 -#BuildRequires: libpng12-devel >= 1.2 +BuildRequires: libpng-devel >= 1.5 BuildRequires: libstdc++-devel BuildRequires: libtiff-cxx-devel BuildRequires: lua51-devel @@ -35,9 +36,10 @@ alternative to ImageMagick. %prep %setup -q %patch0 -p1 +%patch1 -p1 %build -./configure --prefix=%{_prefix} --without-libungif --without-libpng --without-php \ +./configure --prefix=%{_prefix} --without-libungif --without-php \ %ifarch %{x8664} --without-lua --without-perl --without-python %endif diff --git a/exactimage_0.8.5-1.patch b/exactimage_0.8.5-1.patch new file mode 100644 index 0000000..df9fd1f --- /dev/null +++ b/exactimage_0.8.5-1.patch @@ -0,0 +1,104 @@ +--- exactimage-0.8.5.orig/codecs/png.cc ++++ exactimage-0.8.5/codecs/png.cc +@@ -17,6 +17,7 @@ + + #include + #include ++#include + + #include + +@@ -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); + -- 2.44.0