Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PATCH to fix ilmbase 2.3.0 compatibility in lib/IlmCtlSimd/CtlSimdInst.cpp #71

Closed
mandree opened this issue Sep 20, 2018 · 4 comments
Closed

Comments

@mandree
Copy link

mandree commented Sep 20, 2018

ilmbase and OpenEXR 2.3.0 change Iex::BaseExc to no longer derive from std::string, mentioned in the release notes here: https://github.com/openexr/openexr/releases/tag/v2.3.0

This causes a compilation error on lib/IlmCtlSimd/CtlSimdInst.cpp when it propagates a caught exception, because there is no longer an implicit conversion from Iex::BaseExc to std::string available.

It appears as though the fix were to use e.what() instead of e, which is what the attached patch does.
patch-lib_IlmCtlSimd_CtlSimdInst.cpp.txt

@mandree
Copy link
Author

mandree commented Sep 20, 2018

This is the patch, inline for a quick glance:

--- lib/IlmCtlSimd/CtlSimdInst.cpp.orig	2014-06-03 01:11:24 UTC
+++ lib/IlmCtlSimd/CtlSimdInst.cpp
@@ -189,7 +189,7 @@ SimdInst::executePath (SimdBoolMask &mas
 	    REPLACE_EXC
 		(e, "\n" <<
 		 xcontext.fileName() << ":" <<
-		 inst->lineNumber() << ": " << e);
+		 inst->lineNumber() << ": " << e.what());
 
 	    throw e;
 	}

uqs pushed a commit to freebsd/freebsd-ports that referenced this issue Sep 22, 2018
Release notes: <https://github.com/openexr/openexr/releases/tag/v2.3.0>

Adjust LIB_DEPENDS of all ports that require ilmbase or openexr to chase
the new lower-case spelling of the name, and to omit the version from the
library name to ease future maintenance.

Bump PORTREVISION of all ports that depend on ilmbase or openexr directly,
so that they all get rebuilt on upgrades.

Add patches to graphics/ampasCTL to keep it alive, with (a) ilmbase now
that its Iex::BaseExc class is no longer derived from std::string,
details were given upstream through ampas/CTL#71
and (b) to unwind semicolon/;-lists in cmake that stem from openexr/
ilmbase pkg-config variables.
(Note ampasCTL is unmaintained as FreeBSD port, and upstream,
and I cannot run-time test it.)

Poudriere build tests on 11.2-RELEASE-p1 amd64 of ALL ports depending
directly or indirectly on ilmbase and/or openexr have passed without
regressions.  Thus invoking due diligence, I believe I have done the
equivalent of an -exp run, and do not require approval for the dependency
chases to third-party ports.


git-svn-id: svn+ssh://svn.freebsd.org/ports/head@480374 35697150-7ecd-e111-bb59-0022644237b5
uqs pushed a commit to freebsd/freebsd-ports that referenced this issue Sep 22, 2018
Release notes: <https://github.com/openexr/openexr/releases/tag/v2.3.0>

Adjust LIB_DEPENDS of all ports that require ilmbase or openexr to chase
the new lower-case spelling of the name, and to omit the version from the
library name to ease future maintenance.

Bump PORTREVISION of all ports that depend on ilmbase or openexr directly,
so that they all get rebuilt on upgrades.

Add patches to graphics/ampasCTL to keep it alive, with (a) ilmbase now
that its Iex::BaseExc class is no longer derived from std::string,
details were given upstream through ampas/CTL#71
and (b) to unwind semicolon/;-lists in cmake that stem from openexr/
ilmbase pkg-config variables.
(Note ampasCTL is unmaintained as FreeBSD port, and upstream,
and I cannot run-time test it.)

Poudriere build tests on 11.2-RELEASE-p1 amd64 of ALL ports depending
directly or indirectly on ilmbase and/or openexr have passed without
regressions.  Thus invoking due diligence, I believe I have done the
equivalent of an -exp run, and do not require approval for the dependency
chases to third-party ports.
Jehops pushed a commit to Jehops/freebsd-ports-legacy that referenced this issue Sep 22, 2018
Release notes: <https://github.com/openexr/openexr/releases/tag/v2.3.0>

Adjust LIB_DEPENDS of all ports that require ilmbase or openexr to chase
the new lower-case spelling of the name, and to omit the version from the
library name to ease future maintenance.

Bump PORTREVISION of all ports that depend on ilmbase or openexr directly,
so that they all get rebuilt on upgrades.

Add patches to graphics/ampasCTL to keep it alive, with (a) ilmbase now
that its Iex::BaseExc class is no longer derived from std::string,
details were given upstream through ampas/CTL#71
and (b) to unwind semicolon/;-lists in cmake that stem from openexr/
ilmbase pkg-config variables.
(Note ampasCTL is unmaintained as FreeBSD port, and upstream,
and I cannot run-time test it.)

Poudriere build tests on 11.2-RELEASE-p1 amd64 of ALL ports depending
directly or indirectly on ilmbase and/or openexr have passed without
regressions.  Thus invoking due diligence, I believe I have done the
equivalent of an -exp run, and do not require approval for the dependency
chases to third-party ports.


git-svn-id: svn+ssh://svn.freebsd.org/ports/head@480374 35697150-7ecd-e111-bb59-0022644237b5
swills pushed a commit to swills/freebsd-ports that referenced this issue Sep 23, 2018
Release notes: <https://github.com/openexr/openexr/releases/tag/v2.3.0>

Adjust LIB_DEPENDS of all ports that require ilmbase or openexr to chase
the new lower-case spelling of the name, and to omit the version from the
library name to ease future maintenance.

Bump PORTREVISION of all ports that depend on ilmbase or openexr directly,
so that they all get rebuilt on upgrades.

Add patches to graphics/ampasCTL to keep it alive, with (a) ilmbase now
that its Iex::BaseExc class is no longer derived from std::string,
details were given upstream through ampas/CTL#71
and (b) to unwind semicolon/;-lists in cmake that stem from openexr/
ilmbase pkg-config variables.
(Note ampasCTL is unmaintained as FreeBSD port, and upstream,
and I cannot run-time test it.)

Poudriere build tests on 11.2-RELEASE-p1 amd64 of ALL ports depending
directly or indirectly on ilmbase and/or openexr have passed without
regressions.  Thus invoking due diligence, I believe I have done the
equivalent of an -exp run, and do not require approval for the dependency
chases to third-party ports.


git-svn-id: svn+ssh://svn.freebsd.org/ports/head@480374 35697150-7ecd-e111-bb59-0022644237b5
@remia
Copy link
Collaborator

remia commented Oct 9, 2018

Thanks for the patch, I had the same issue when trying to update IlmBase / OpenEXR to 2.3.0 (needed to compile with C++17 enabled).

Is it planned to update CTL ?

@mandree
Copy link
Author

mandree commented Oct 10, 2018

@remia, given that the latest commit has been made more than four years ago, personally I don't currently believe in CTL upgrades, and I am neither member of the development team nor speaking on their behalf, just guessing from observation. I posted the patch where it is more likely to be found.

fxcoudert added a commit to fxcoudert/CTL that referenced this issue Apr 16, 2019
michaeldsmith added a commit to michaeldsmith/CTL that referenced this issue Jul 29, 2021
michaeldsmith added a commit that referenced this issue May 19, 2022
@michaeldsmith
Copy link
Collaborator

fixed by 80d175b

svmhdvn pushed a commit to svmhdvn/freebsd-ports that referenced this issue Jan 10, 2024
Release notes: <https://github.com/openexr/openexr/releases/tag/v2.3.0>

Adjust LIB_DEPENDS of all ports that require ilmbase or openexr to chase
the new lower-case spelling of the name, and to omit the version from the
library name to ease future maintenance.

Bump PORTREVISION of all ports that depend on ilmbase or openexr directly,
so that they all get rebuilt on upgrades.

Add patches to graphics/ampasCTL to keep it alive, with (a) ilmbase now
that its Iex::BaseExc class is no longer derived from std::string,
details were given upstream through ampas/CTL#71
and (b) to unwind semicolon/;-lists in cmake that stem from openexr/
ilmbase pkg-config variables.
(Note ampasCTL is unmaintained as FreeBSD port, and upstream,
and I cannot run-time test it.)

Poudriere build tests on 11.2-RELEASE-p1 amd64 of ALL ports depending
directly or indirectly on ilmbase and/or openexr have passed without
regressions.  Thus invoking due diligence, I believe I have done the
equivalent of an -exp run, and do not require approval for the dependency
chases to third-party ports.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants