Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-updates-src > by-pkgid > da1cabb3da77d5c4fa703f4675a671a4 > files > 3

freeimage-3.154-1.1.mga5.src.rpm

Description: Disable embedded libraries
 freeimage normally builds with embedded copies of libjpeg, libpng,
 libmng, libopenjpeg, libopenexr, zlib, libtiff.
 .
 Switch to using packaged versions for all of these except libtiff,
 where freeimage digs deep into its internals.
 .
 This patch does not modify Makefile.srcs and fipMakefile.srcs - those
 are patched as part of the patch build process.
Origin: vendor
Forwarded: no
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595560
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/freeimage/+bug/898825
Author: Julien Cristau <jcristau@debian.org>
Author: Evan Broder <evan@ebroder.net>
Last-Update: 2011-12-04

Index: freeimage-3.15.4/gensrclist.sh
===================================================================
--- freeimage-3.15.4.orig/gensrclist.sh
+++ freeimage-3.15.4/gensrclist.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src"
+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit"
 
 echo "VER_MAJOR = 3" > Makefile.srcs
 echo "VER_MINOR = 15.4" >> Makefile.srcs
@@ -12,15 +12,17 @@ for DIR in $DIRLIST; do
 		egrep 'RelativePath=.*\.(c|cpp)' $DIR/*.2008.vcproj | cut -d'"' -f2 | tr '\\' '/' | awk '{print "'$DIR'/"$0}' | tr '\r\n' '  ' | tr -s ' ' >> Makefile.srcs
 	fi
 done
+echo -n ' Source/LibJPEG/transupp.c' >> Makefile.srcs
 echo >> Makefile.srcs
 
 echo -n "INCLS = " >> Makefile.srcs
-find . -name "*.h" -print | xargs echo >> Makefile.srcs
+find . \( -name 'Lib*' -or -name 'OpenEXR' -or -name 'ZLib' \) -prune -or -name '*.h' -print | sort | xargs echo -n >> Makefile.srcs
 echo >> Makefile.srcs
 
 echo -n "INCLUDE =" >> Makefile.srcs
 for DIR in $DIRLIST; do
 	echo -n " -I$DIR" >> Makefile.srcs
 done
+echo ' $(shell pkg-config --cflags zlib OpenEXR libraw libpng libtiff-4)' >> Makefile.srcs
 echo >> Makefile.srcs
 
Index: freeimage-3.15.4/genfipsrclist.sh
===================================================================
--- freeimage-3.15.4.orig/genfipsrclist.sh
+++ freeimage-3.15.4/genfipsrclist.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Wrapper/FreeImagePlus"
+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Wrapper/FreeImagePlus"
 
 
 echo "VER_MAJOR = 3" > fipMakefile.srcs
@@ -13,11 +13,13 @@ for DIR in $DIRLIST; do
 		egrep 'RelativePath=.*\.(c|cpp)' $DIR/*.2008.vcproj | cut -d'"' -f2 | tr '\\' '/' | awk '{print "'$DIR'/"$0}' | tr '\r\n' '  ' | tr -s ' ' >> fipMakefile.srcs
 	fi
 done
+echo -n ' Source/LibJPEG/transupp.c' >> fipMakefile.srcs
 echo >> fipMakefile.srcs
 
 echo -n "INCLUDE =" >> fipMakefile.srcs
 for DIR in $DIRLIST; do
 	echo -n " -I$DIR" >> fipMakefile.srcs
 done
+echo ' $(shell pkg-config --cflags zlib OpenEXR libraw libpng libtiff-4)' >> fipMakefile.srcs
 echo >> fipMakefile.srcs
 
Index: freeimage-3.15.4/Source/FreeImage/ZLibInterface.cpp
===================================================================
--- freeimage-3.15.4.orig/Source/FreeImage/ZLibInterface.cpp
+++ freeimage-3.15.4/Source/FreeImage/ZLibInterface.cpp
@@ -19,10 +19,10 @@
 // Use at your own risk!
 // ==========================================================
 
-#include "../ZLib/zlib.h"
+#include <zlib.h>
 #include "FreeImage.h"
 #include "Utilities.h"
-#include "../ZLib/zutil.h"	/* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
+//#include "../ZLib/zutil.h"	/* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
 
 /**
 Compresses a source buffer into a target buffer, using the ZLib library. 
@@ -115,7 +115,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t
 			return 0;
         case Z_OK: {
             // patch header, setup crc and length (stolen from mod_trace_output)
-            BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code
+            BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code
  	        crc = crc32(crc, source, source_size);
 	        memcpy(target + 4 + dest_len, &crc, 4);
 	        memcpy(target + 8 + dest_len, &source_size, 4);
Index: freeimage-3.15.4/Source/FreeImage/PluginJPEG.cpp
===================================================================
--- freeimage-3.15.4.orig/Source/FreeImage/PluginJPEG.cpp
+++ freeimage-3.15.4/Source/FreeImage/PluginJPEG.cpp
@@ -35,9 +35,10 @@ extern "C" {
 #undef FAR
 #include <setjmp.h>
 
-#include "../LibJPEG/jinclude.h"
-#include "../LibJPEG/jpeglib.h"
-#include "../LibJPEG/jerror.h"
+#include <sys/types.h>
+#include <stdio.h>
+#include <jpeglib.h>
+#include <jerror.h>
 }
 
 #include "FreeImage.h"
Index: freeimage-3.15.4/Source/FreeImage/PluginEXR.cpp
===================================================================
--- freeimage-3.15.4.orig/Source/FreeImage/PluginEXR.cpp
+++ freeimage-3.15.4/Source/FreeImage/PluginEXR.cpp
@@ -22,16 +22,16 @@
 
 #include "FreeImage.h"
 #include "Utilities.h"
-#include "../OpenEXR/IlmImf/ImfIO.h"
-#include "../OpenEXR/Iex/Iex.h"
-#include "../OpenEXR/IlmImf/ImfOutputFile.h"
-#include "../OpenEXR/IlmImf/ImfInputFile.h"
-#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
-#include "../OpenEXR/IlmImf/ImfChannelList.h"
-#include "../OpenEXR/IlmImf/ImfRgba.h"
-#include "../OpenEXR/IlmImf/ImfArray.h"
-#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
-#include "../OpenEXR/Half/half.h"
+#include <OpenEXR/ImfIO.h>
+#include <OpenEXR/Iex.h>
+#include <OpenEXR/ImfOutputFile.h>
+#include <OpenEXR/ImfInputFile.h>
+#include <OpenEXR/ImfRgbaFile.h>
+#include <OpenEXR/ImfPreviewImage.h>
+#include <OpenEXR/ImfChannelList.h>
+#include <OpenEXR/ImfRgba.h>
+#include <OpenEXR/ImfArray.h>
+#include <OpenEXR/half.h>
 
 
 // ==========================================================
Index: freeimage-3.15.4/Source/FreeImage/PluginJ2K.cpp
===================================================================
--- freeimage-3.15.4.orig/Source/FreeImage/PluginJ2K.cpp
+++ freeimage-3.15.4/Source/FreeImage/PluginJ2K.cpp
@@ -21,7 +21,7 @@
 
 #include "FreeImage.h"
 #include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
 
 // ==========================================================
 // Plugin Interface
Index: freeimage-3.15.4/Source/FreeImage/PluginPNG.cpp
===================================================================
--- freeimage-3.15.4.orig/Source/FreeImage/PluginPNG.cpp
+++ freeimage-3.15.4/Source/FreeImage/PluginPNG.cpp
@@ -37,8 +37,7 @@
 
 // ----------------------------------------------------------
 
-#include "../ZLib/zlib.h"
-#include "../LibPNG/png.h"
+#include <png.h>
 
 // ----------------------------------------------------------
 
@@ -106,7 +105,10 @@ ReadMetadata(png_structp png_ptr, png_in
 			tag = FreeImage_CreateTag();
 			if(!tag) return FALSE;
 
-			DWORD tag_length = (DWORD) MAX(text_ptr[i].text_length, text_ptr[i].itxt_length);
+			DWORD tag_length = text_ptr[i].text_length;
+#ifdef PNG_iTXt_SUPPORTED
+			tag_length = MAX(tag_length, text_ptr[i].itxt_length);
+#endif
 
 			FreeImage_SetTagLength(tag, tag_length);
 			FreeImage_SetTagCount(tag, tag_length);
@@ -149,13 +151,19 @@ WriteMetadata(png_structp png_ptr, png_i
 	if(mdhandle) {
 		do {
 			memset(&text_metadata, 0, sizeof(png_text));
+#ifdef PNG_iTXt_SUPPORTED
 			text_metadata.compression = 1;							// iTXt, none
+#else
+			text_metadata.compression = -1;
+#endif
 			text_metadata.key = (char*)FreeImage_GetTagKey(tag);	// keyword, 1-79 character description of "text"
 			text_metadata.text = (char*)FreeImage_GetTagValue(tag);	// comment, may be an empty string (ie "")
 			text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
+#ifdef PNG_iTXt_SUPPORTED
 			text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
 			text_metadata.lang = 0;		 // language code, 0-79 characters or a NULL pointer
 			text_metadata.lang_key = 0;	 // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
+#endif
 
 			// set the tag 
 			png_set_text(png_ptr, info_ptr, &text_metadata, 1);
@@ -175,9 +183,11 @@ WriteMetadata(png_structp png_ptr, png_i
 		text_metadata.key = (char*)g_png_xmp_keyword;					// keyword, 1-79 character description of "text"
 		text_metadata.text = (char*)FreeImage_GetTagValue(tag);	// comment, may be an empty string (ie "")
 		text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
+#ifdef PNG_iTXt_SUPPORTED
 		text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
 		text_metadata.lang = 0;		 // language code, 0-79 characters or a NULL pointer
 		text_metadata.lang_key = 0;	 // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
+#endif
 
 		// set the tag 
 		png_set_text(png_ptr, info_ptr, &text_metadata, 1);
@@ -559,7 +569,7 @@ Load(FreeImageIO *io, fi_handle handle,
 
 			if (png_get_valid(png_ptr, info_ptr, PNG_INFO_iCCP)) {
 				png_charp profile_name = NULL;
-				png_bytep profile_data = NULL;
+				png_charp profile_data = NULL;
 				png_uint_32 profile_length = 0;
 				int  compression_type;
 
@@ -599,7 +609,9 @@ Load(FreeImageIO *io, fi_handle handle,
 				row_pointers[height - 1 - k] = FreeImage_GetScanLine(dib, k);			
 			}
 
+#ifdef PNG_BENIGN_ERRORS_SUPPORTED
 			png_set_benign_errors(png_ptr, 1);
+#endif
 			png_read_image(png_ptr, row_pointers);
 
 			// check if the bitmap contains transparency, if so enable it in the header
@@ -843,7 +855,7 @@ Save(FreeImageIO *io, FIBITMAP *dib, fi_
 
 			FIICCPROFILE *iccProfile = FreeImage_GetICCProfile(dib);
 			if (iccProfile->size && iccProfile->data) {
-				png_set_iCCP(png_ptr, info_ptr, "Embedded Profile", 0, (png_const_bytep)iccProfile->data, iccProfile->size);
+				png_set_iCCP(png_ptr, info_ptr, "Embedded Profile", 0, (png_charp)iccProfile->data, iccProfile->size);
 			}
 
 			// write metadata
Index: freeimage-3.15.4/Source/FreeImage/J2KHelper.cpp
===================================================================
--- freeimage-3.15.4.orig/Source/FreeImage/J2KHelper.cpp
+++ freeimage-3.15.4/Source/FreeImage/J2KHelper.cpp
@@ -21,7 +21,7 @@
 
 #include "FreeImage.h"
 #include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
 
 /**
 Divide an integer by a power of 2 and round upwards
Index: freeimage-3.15.4/Source/FreeImage/PluginJP2.cpp
===================================================================
--- freeimage-3.15.4.orig/Source/FreeImage/PluginJP2.cpp
+++ freeimage-3.15.4/Source/FreeImage/PluginJP2.cpp
@@ -21,7 +21,7 @@
 
 #include "FreeImage.h"
 #include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
 
 // ==========================================================
 // Plugin Interface
Index: freeimage-3.15.4/Source/FreeImage/PluginRAW.cpp
===================================================================
--- freeimage-3.15.4.orig/Source/FreeImage/PluginRAW.cpp
+++ freeimage-3.15.4/Source/FreeImage/PluginRAW.cpp
@@ -19,7 +19,7 @@
 // Use at your own risk!
 // ==========================================================
 
-#include "../LibRawLite/libraw/libraw.h"
+#include <libraw/libraw.h>
 
 #include "FreeImage.h"
 #include "Utilities.h"
Index: freeimage-3.15.4/Source/FreeImageToolkit/JPEGTransform.cpp
===================================================================
--- freeimage-3.15.4.orig/Source/FreeImageToolkit/JPEGTransform.cpp
+++ freeimage-3.15.4/Source/FreeImageToolkit/JPEGTransform.cpp
@@ -25,9 +25,10 @@ extern "C" {
 #undef FAR
 #include <setjmp.h>
 
-#include "../LibJPEG/jinclude.h"
-#include "../LibJPEG/jpeglib.h"
-#include "../LibJPEG/jerror.h"
+#include <sys/types.h>
+#include <stdio.h>
+#include <jpeglib.h>
+#include <jerror.h>
 #include "../LibJPEG/transupp.h"
 }
 
Index: freeimage-3.15.4/Makefile.fip
===================================================================
--- freeimage-3.15.4.orig/Makefile.fip
+++ freeimage-3.15.4/Makefile.fip
@@ -11,7 +11,7 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib
 # Converts cr/lf to just lf
 DOS2UNIX = dos2unix
 
-LIBRARIES = -lstdc++
+LIBRARIES = -lstdc++ -lmng -ljpeg -lopenjpeg $(shell pkg-config --libs zlib OpenEXR libraw libpng libtiff-4)
 
 MODULES = $(SRCS:.c=.o)
 MODULES := $(MODULES:.cpp=.o)
Index: freeimage-3.15.4/Makefile.gnu
===================================================================
--- freeimage-3.15.4.orig/Makefile.gnu
+++ freeimage-3.15.4/Makefile.gnu
@@ -11,7 +11,7 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib
 # Converts cr/lf to just lf
 DOS2UNIX = dos2unix
 
-LIBRARIES = -lstdc++
+LIBRARIES = -lstdc++ -ljpeg -lmng -lopenjpeg $(shell pkg-config --libs zlib OpenEXR libraw libpng libtiff-4) -lm
 
 MODULES = $(SRCS:.c=.o)
 MODULES := $(MODULES:.cpp=.o)
Index: freeimage-3.15.4/Source/FreeImage/PluginTIFF.cpp
===================================================================
--- freeimage-3.15.4.orig/Source/FreeImage/PluginTIFF.cpp
+++ freeimage-3.15.4/Source/FreeImage/PluginTIFF.cpp
@@ -39,7 +39,7 @@
 #include "Utilities.h"
 #include "../LibTIFF4/tiffiop.h"
 #include "../Metadata/FreeImageTag.h"
-#include "../OpenEXR/Half/half.h"
+#include <OpenEXR/half.h>
 
 #include "FreeImageIO.h"
 #include "PSDParser.h"
Index: freeimage-3.15.4/Source/LibTIFF4/tiffiop.h
===================================================================
--- freeimage-3.15.4.orig/Source/LibTIFF4/tiffiop.h
+++ freeimage-3.15.4/Source/LibTIFF4/tiffiop.h
@@ -30,7 +30,9 @@
  * ``Library-private'' definitions.
  */
 
-#include "tif_config.h"
+#include <tiffconf.h>
+#define HAVE_SEARCH_H
+#define HAVE_FCNTL_H
 
 #ifdef HAVE_FCNTL_H
 # include <fcntl.h>