After updating media-libs/openexr and dev-libs/imath to 3.0.1, freeimage rebuild fails: Source/FreeImage/PluginEXR.cpp:69:17: error: ‘Int64’ in namespace ‘Imath’ does not name a type 69 | virtual Imath::Int64 tellg() { | ^~~~~ Source/FreeImage/PluginEXR.cpp:73:28: error: ‘Imath::Int64’ has not been declared 73 | virtual void seekg(Imath::Int64 pos) { | ^~~~~ Source/FreeImage/PluginEXR.cpp:103:17: error: ‘Int64’ in namespace ‘Imath’ does not name a type 103 | virtual Imath::Int64 tellp() { | ^~~~~ Source/FreeImage/PluginEXR.cpp:107:28: error: ‘Imath::Int64’ has not been declared 107 | virtual void seekp(Imath::Int64 pos) { | ^~~~~ Source/FreeImage/PluginEXR.cpp: In function ‘FIBITMAP* Load(FreeImageIO*, fi_handle, int, int, void*)’: Source/FreeImage/PluginEXR.cpp:190:13: error: cannot declare variable ‘istream’ to be of abstract type ‘C_IStream’ 190 | C_IStream istream(io, handle); | ^~~~~~~ Source/FreeImage/PluginEXR.cpp:55:7: note: because the following virtual functions are pure within ‘C_IStream’: 55 | class C_IStream : public Imf::IStream { | ^~~~~~~~~ In file included from Source/FreeImage/PluginEXR.cpp:31: /usr/include/OpenEXR/ImfIO.h:82:22: note: ‘virtual uint64_t Imf_3_0::IStream::tellg()’ 82 | virtual uint64_t tellg () = 0; | ^~~~~ /usr/include/OpenEXR/ImfIO.h:90:18: note: ‘virtual void Imf_3_0::IStream::seekg(uint64_t)’ 90 | virtual void seekg (uint64_t pos) = 0; | ^~~~~ Source/FreeImage/PluginEXR.cpp: In function ‘BOOL Save(FreeImageIO*, FIBITMAP*, fi_handle, int, int, void*)’: Source/FreeImage/PluginEXR.cpp:576:13: error: cannot declare variable ‘ostream’ to be of abstract type ‘C_OStream’ 576 | C_OStream ostream(io, handle); | ^~~~~~~ Source/FreeImage/PluginEXR.cpp:87:7: note: because the following virtual functions are pure within ‘C_OStream’: 87 | class C_OStream : public Imf::OStream { | ^~~~~~~~~ In file included from Source/FreeImage/PluginEXR.cpp:31: /usr/include/OpenEXR/ImfIO.h:154:22: note: ‘virtual uint64_t Imf_3_0::OStream::tellp()’ 154 | virtual uint64_t tellp () = 0; | ^~~~~ /usr/include/OpenEXR/ImfIO.h:162:18: note: ‘virtual void Imf_3_0::OStream::seekp(uint64_t)’ 162 | virtual void seekp (uint64_t pos) = 0; | ^~~~~ make: *** [Makefile.gnu:83: Source/FreeImage/PluginEXR.o] Error 1 Reproducible: Always
Full build.log and emerge —-info please, as always
Created attachment 706293 [details] build.log and emerge --info.txt I'll provide, this is an incompatibility with new openexr/imath-3.0.3 and it'd be good to keep track of what it breaks. (it's currently masked so you'll be asked to downgrade which should fix this for you)
With imath upstream has dropped their own Int64 types and now relates on standard int types (int64_t and friends). See https://github.com/AcademySoftwareFoundation/Imath/pull/106. The ImathInt64.h header is deprecated and shouldn't be used anymore. It should be a simple matter of changing Imath::Int64 to int64_t and Imath::SInt64 to uint64_t Also check the Porting guide at https://github.com/AcademySoftwareFoundation/Imath/blob/master/docs/PortingGuide2-3.md
From upstream data, I'd recommend to stick to :0 for now. They have an unanswered feature request from June, to update their internal openexr-2.2.1 to a more up-to-date 2.5 or 3.0 version. And their Whatsnew.txt[1] file so far doesn't state to update to a newer release of openexr for the upcoming 3.19.0 release. I can come up with a PR to restrict to :0, if so desired. [1] https://sourceforge.net/p/freeimage/svn/HEAD/tree/FreeImage/trunk/Whatsnew.txt
(In reply to Bernd from comment #4) > From upstream data, I'd recommend to stick to :0 for now. They have an > unanswered feature request from June, to update their internal openexr-2.2.1 > to a more up-to-date 2.5 or 3.0 version. And their Whatsnew.txt[1] file so > far doesn't state to update to a newer release of openexr for the upcoming > 3.19.0 release. > > I can come up with a PR to restrict to :0, if so desired. > > [1] > https://sourceforge.net/p/freeimage/svn/HEAD/tree/FreeImage/trunk/Whatsnew. > txt Yes please!
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=39428fadcfe3ebc4b90bc471af27aba690fe2cc7 commit 39428fadcfe3ebc4b90bc471af27aba690fe2cc7 Author: Bernd Waibel <waebbl-gentoo@posteo.net> AuthorDate: 2021-11-02 05:13:48 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2021-11-02 10:04:12 +0000 media-libs/freeimage: restrict dependency on openexr Package does not yet support OpenEXR-3, so restrict to :0 Closes: https://bugs.gentoo.org/788349 Closes: https://bugs.gentoo.org/820671 Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Bernd Waibel <waebbl-gentoo@posteo.net> Closes: https://github.com/gentoo/gentoo/pull/22793 Signed-off-by: Sam James <sam@gentoo.org> media-libs/freeimage/freeimage-3.18.0-r3.ebuild | 121 ++++++++++++++++++++++++ 1 file changed, 121 insertions(+)