Add patch for libtiff 4.0 API changes
This commit is contained in:
parent
42b5fea005
commit
980a5258c4
160
FreeImage-3.10.0-libtiff4.patch
Normal file
160
FreeImage-3.10.0-libtiff4.patch
Normal file
@ -0,0 +1,160 @@
|
||||
This patch depends on functions that will appear in upstream libtiff in
|
||||
4.0.3. In Fedora, it will only build against libtiff 4.0.2-5 or later.
|
||||
|
||||
|
||||
diff -Naur FreeImage-3.10.0-syslibs/Source/Metadata/XTIFF.cpp FreeImage-3.10.0/Source/Metadata/XTIFF.cpp
|
||||
--- FreeImage-3.10.0-syslibs/Source/Metadata/XTIFF.cpp 2012-07-29 14:15:00.057023161 -0400
|
||||
+++ FreeImage-3.10.0/Source/Metadata/XTIFF.cpp 2012-07-29 14:21:35.278415039 -0400
|
||||
@@ -214,7 +214,7 @@
|
||||
count = (short) TIFFGetTagListCount(tif);
|
||||
for(i = 0; i < count; i++) {
|
||||
ttag_t tag = TIFFGetTagListEntry(tif, i);
|
||||
- const TIFFFieldInfo *fip;
|
||||
+ const TIFFField *fip;
|
||||
uint32 value_count;
|
||||
int mem_alloc = 0;
|
||||
void *raw_data;
|
||||
@@ -229,29 +229,30 @@
|
||||
if(fip == NULL)
|
||||
continue;
|
||||
|
||||
- if(fip->field_passcount) {
|
||||
+ if(TIFFFieldPassCount(fip)) {
|
||||
if(TIFFGetField(tif, tag, &value_count, &raw_data) != 1)
|
||||
continue;
|
||||
} else {
|
||||
- if (fip->field_readcount == TIFF_VARIABLE || fip->field_readcount == TIFF_VARIABLE2)
|
||||
+ if (TIFFFieldReadCount(fip) == TIFF_VARIABLE ||
|
||||
+ TIFFFieldReadCount(fip) == TIFF_VARIABLE2)
|
||||
value_count = 1;
|
||||
- else if (fip->field_readcount == TIFF_SPP) {
|
||||
+ else if (TIFFFieldReadCount(fip) == TIFF_SPP) {
|
||||
uint16 spp;
|
||||
TIFFGetFieldDefaulted(tif,
|
||||
TIFFTAG_SAMPLESPERPIXEL, &spp);
|
||||
value_count = spp;
|
||||
}
|
||||
else
|
||||
- value_count = fip->field_readcount;
|
||||
- if (fip->field_type == TIFF_ASCII
|
||||
- || fip->field_readcount == TIFF_VARIABLE
|
||||
- || fip->field_readcount == TIFF_VARIABLE2
|
||||
- || fip->field_readcount == TIFF_SPP
|
||||
+ value_count = TIFFFieldReadCount(fip);
|
||||
+ if (TIFFFieldDataType(fip) == TIFF_ASCII
|
||||
+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE
|
||||
+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE2
|
||||
+ || TIFFFieldReadCount(fip) == TIFF_SPP
|
||||
|| value_count > 1) {
|
||||
if(TIFFGetField(tif, tag, &raw_data) != 1)
|
||||
continue;
|
||||
} else {
|
||||
- raw_data = _TIFFmalloc(_TIFFDataSize(fip->field_type) * value_count);
|
||||
+ raw_data = _TIFFmalloc(_TIFFDataSize(TIFFFieldDataType(fip)) * value_count);
|
||||
mem_alloc = 1;
|
||||
if(TIFFGetField(tif, tag, raw_data) != 1) {
|
||||
_TIFFfree(raw_data);
|
||||
@@ -271,59 +272,59 @@
|
||||
FreeImage_SetTagID(fitag, (WORD)tag);
|
||||
FreeImage_SetTagKey(fitag, key);
|
||||
|
||||
- switch(fip->field_type) {
|
||||
+ switch(TIFFFieldDataType(fip)) {
|
||||
case TIFF_BYTE:
|
||||
FreeImage_SetTagType(fitag, FIDT_BYTE);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_UNDEFINED:
|
||||
FreeImage_SetTagType(fitag, FIDT_UNDEFINED);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_SBYTE:
|
||||
FreeImage_SetTagType(fitag, FIDT_SBYTE);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_SHORT:
|
||||
FreeImage_SetTagType(fitag, FIDT_SHORT);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_SSHORT:
|
||||
FreeImage_SetTagType(fitag, FIDT_SSHORT);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_LONG:
|
||||
FreeImage_SetTagType(fitag, FIDT_LONG);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_IFD:
|
||||
FreeImage_SetTagType(fitag, FIDT_IFD);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_SLONG:
|
||||
FreeImage_SetTagType(fitag, FIDT_SLONG);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
@@ -339,7 +340,7 @@
|
||||
rvalue[2*i+1] = rational.getDenominator();
|
||||
}
|
||||
FreeImage_SetTagType(fitag, FIDT_RATIONAL);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, rvalue);
|
||||
free(rvalue);
|
||||
@@ -357,7 +358,7 @@
|
||||
rvalue[2*i+1] = rational.getDenominator();
|
||||
}
|
||||
FreeImage_SetTagType(fitag, FIDT_RATIONAL);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, rvalue);
|
||||
free(rvalue);
|
||||
@@ -366,14 +367,14 @@
|
||||
|
||||
case TIFF_FLOAT:
|
||||
FreeImage_SetTagType(fitag, FIDT_FLOAT);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_DOUBLE:
|
||||
FreeImage_SetTagType(fitag, FIDT_DOUBLE);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
@ -3,7 +3,7 @@
|
||||
|
||||
Name: freeimage
|
||||
Version: 3.10.0
|
||||
Release: 10%{?dist}
|
||||
Release: 11%{?dist}
|
||||
Summary: Multi-format image decoder library
|
||||
Group: System Environment/Libraries
|
||||
# freeimage is dual-licensed, see Whatsnew.txt (search for license) or:
|
||||
@ -14,6 +14,7 @@ Source0: http://downloads.sourceforge.net/%{name}/FreeImage%{_version}.zi
|
||||
Patch0: FreeImage-3.10.0-syslibs.patch
|
||||
Patch1: FreeImage-3.10.0-doxygen.patch
|
||||
Patch2: FreeImage-3.10.0-libpng15.patch
|
||||
Patch3: FreeImage-3.10.0-libtiff4.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: libjpeg-devel libpng-devel libtiff-devel OpenEXR-devel
|
||||
BuildRequires: libmng-devel openjpeg-devel doxygen
|
||||
@ -39,6 +40,7 @@ developing applications that use %{name}.
|
||||
%patch0 -p1 -z .syslibs
|
||||
%patch1 -p1
|
||||
%patch2 -p0
|
||||
%patch3 -p1
|
||||
touch -r Source/FreeImage.h.syslibs Source/FreeImage.h
|
||||
|
||||
# remove all included libs to make sure these don't get used during compile
|
||||
@ -116,6 +118,10 @@ rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Aug 3 2012 Tom Lane <tgl@redhat.com> 3.10.0-11
|
||||
- Add patch for libtiff 4.0 API changes
|
||||
Resolves: #845407
|
||||
|
||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10.0-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user