!12 同步上游补丁以适配Libraw的升级

From: @small_leek
Reviewed-by: @panchenbo,@licihua
Signed-off-by: @licihua
This commit is contained in:
openeuler-ci-bot 2020-12-16 11:04:56 +08:00 committed by Gitee
commit 895280b70a
2 changed files with 62 additions and 7 deletions

View File

@ -5,7 +5,7 @@
Name: freeimage
Version: 3.18.0
Release: 3
Release: 4
Summary: FreeImage is a library project for developers who would like to support popular graphics image formats (PNG, JPEG, TIFF, BMP and others)
License: GPLv2 or GPLv3 and FIPL
URL: https://freeimage.sourceforge.io/
@ -20,6 +20,7 @@ Patch2: FreeImage_unbundle.patch
Patch3: FreeImage_doxygen.patch
# Fix incorrect variable names in BIGENDIAN blocks
Patch4: FreeImage_bigendian.patch
Patch5: substream.patch
BuildRequires: doxygen gcc-c++ make jxrlib-devel libjpeg-devel libmng-devel libpng-devel libtiff-devel libwebp-devel LibRaw-devel OpenEXR-devel openjpeg2-devel
@ -35,12 +36,7 @@ Requires: %{name} = %{version}-%{release}
FreeImage is a library project for developers who would like to support popular graphics image formats (PNG, JPEG, TIFF, BMP and others). Some highlights are: extremely simple in use, not limited to the local PC (unique FreeImageIO) and Plugin driven!
%prep
%setup -q -n FreeImage
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%autosetup -p1 -n FreeImage
# remove all included libs to make sure these don't get used during compile
rm -r Source/Lib* Source/ZLib Source/OpenEXR
@ -109,6 +105,9 @@ ldconfig -n %{buildroot}%{_libdir}
%changelog
* Tue Dec 15 2020 Senlin <xiasenlin1@huawei.com> -3.18.0-4
- Rebuild for new LibRaw
* Mon Nov 09 2020 weidong <weidong@uniontech.com>
- Unbundle bundled libraries
- Fix incorrect path in doxyfile

56
substream.patch Normal file
View File

@ -0,0 +1,56 @@
--- a/Source/FreeImage/PluginRAW.cpp~ 2020-05-08 08:27:31.000000000 -0500
+++ a/Source/FreeImage/PluginRAW.cpp 2020-05-08 08:47:09.011816310 -0500
@@ -63,17 +63,17 @@
}
int read(void *buffer, size_t size, size_t count) {
- if(substream) return substream->read(buffer, size, count);
+ //if(substream) return substream->read(buffer, size, count);
return _io->read_proc(buffer, (unsigned)size, (unsigned)count, _handle);
}
int seek(INT64 offset, int origin) {
- if(substream) return substream->seek(offset, origin);
+ //if(substream) return substream->seek(offset, origin);
return _io->seek_proc(_handle, (long)offset, origin);
}
INT64 tell() {
- if(substream) return substream->tell();
+ //if(substream) return substream->tell();
return _io->tell_proc(_handle);
}
@@ -83,13 +83,13 @@
int get_char() {
int c = 0;
- if(substream) return substream->get_char();
+ //if(substream) return substream->get_char();
if(!_io->read_proc(&c, 1, 1, _handle)) return -1;
return c;
}
char* gets(char *buffer, int length) {
- if (substream) return substream->gets(buffer, length);
+ //if (substream) return substream->gets(buffer, length);
memset(buffer, 0, length);
for(int i = 0; i < length; i++) {
if(!_io->read_proc(&buffer[i], 1, 1, _handle))
@@ -104,7 +104,7 @@
std::string buffer;
char element = 0;
bool bDone = false;
- if(substream) return substream->scanf_one(fmt,val);
+ //if(substream) return substream->scanf_one(fmt,val);
do {
if(_io->read_proc(&element, 1, 1, _handle) == 1) {
switch(element) {
@@ -127,7 +127,7 @@
}
int eof() {
- if(substream) return substream->eof();
+ //if(substream) return substream->eof();
return (_io->tell_proc(_handle) >= _eof);
}