commit: 4e04aa9c3a2fc91635da5023090ba023a1e4932f Author: Larry Pyeatt <larry.pyeatt <AT> sdsmt <DOT> edu> AuthorDate: Mon Dec 28 22:24:36 2020 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Dec 29 01:02:34 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4e04aa9c
media-libs/freeimage: fix build with >=media-libs/libraw-0.20.0 Signed-off-by: Larry Pyeatt <larry.pyeatt <AT> sdsmt.edu> Closes: https://bugs.gentoo.org/734724 Signed-off-by: Sam James <sam <AT> gentoo.org> .../files/freeimage-3.18.0-libraw-0.20.0.patch | 70 ++++++++++++++++++++++ media-libs/freeimage/freeimage-3.18.0-r2.ebuild | 1 + 2 files changed, 71 insertions(+) diff --git a/media-libs/freeimage/files/freeimage-3.18.0-libraw-0.20.0.patch b/media-libs/freeimage/files/freeimage-3.18.0-libraw-0.20.0.patch new file mode 100644 index 00000000000..6b15a99838c --- /dev/null +++ b/media-libs/freeimage/files/freeimage-3.18.0-libraw-0.20.0.patch @@ -0,0 +1,70 @@ +diff --git a/Source/FreeImage/PluginRAW.cpp b/Source/FreeImage/PluginRAW.cpp +index b3f2a8db..ab0499ff 100644 +--- a/Source/FreeImage/PluginRAW.cpp ++++ b/Source/FreeImage/PluginRAW.cpp +@@ -59,21 +59,18 @@ public: + } + + int valid() { +- return (_io && _handle); ++ return (_io && _handle) ? 1 : 0; + } + + int read(void *buffer, size_t size, size_t 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); + return _io->seek_proc(_handle, (long)offset, origin); + } + + INT64 tell() { +- if(substream) return substream->tell(); + return _io->tell_proc(_handle); + } + +@@ -83,19 +80,21 @@ public: + + int get_char() { + int c = 0; +- if(substream) return substream->get_char(); +- if(!_io->read_proc(&c, 1, 1, _handle)) return -1; ++ 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); + memset(buffer, 0, length); + for(int i = 0; i < length; i++) { +- if(!_io->read_proc(&buffer[i], 1, 1, _handle)) ++ if (!_io->read_proc(&buffer[i], 1, 1, _handle)) { + return NULL; +- if(buffer[i] == 0x0A) ++ } ++ if (buffer[i] == 0x0A) { + break; ++ } + } + return buffer; + } +@@ -104,7 +103,6 @@ public: + std::string buffer; + char element = 0; + bool bDone = false; +- if(substream) return substream->scanf_one(fmt,val); + do { + if(_io->read_proc(&element, 1, 1, _handle) == 1) { + switch(element) { +@@ -127,7 +125,6 @@ public: + } + + int eof() { +- if(substream) return substream->eof(); + return (_io->tell_proc(_handle) >= _eof); + } + diff --git a/media-libs/freeimage/freeimage-3.18.0-r2.ebuild b/media-libs/freeimage/freeimage-3.18.0-r2.ebuild index d8b629ca9c1..e833f947fde 100644 --- a/media-libs/freeimage/freeimage-3.18.0-r2.ebuild +++ b/media-libs/freeimage/freeimage-3.18.0-r2.ebuild @@ -51,6 +51,7 @@ PATCHES=( "${FILESDIR}"/${PN}-3.18.0-raw.patch "${FILESDIR}"/${PN}-3.18.0-libjpeg9.patch "${FILESDIR}"/${PN}-3.18.0-CVE-2019-12211-CVE-2019-12213.patch + "${FILESDIR}"/${PN}-3.18.0-libraw-0.20.0.patch ) src_prepare() {
