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

FIX for 2.2.0 buglet in two Makefile.am preventing OpenEXR upgrade with older version installed #130

Closed
mandree opened this issue Aug 15, 2014 · 1 comment

Comments

@mandree
Copy link
Contributor

mandree commented Aug 15, 2014

I have been porting the ilmbase and OpenEXR 2.2.0 packages for FreeBSD and came across one issue with OpenEXR, and that is include file ordering.

If I

  1. have OpenEXR and ilmbase 2.1.0 installed,
  2. upgrade ilmbase to 2.2.0, and
  3. then attempt to build OpenEXR 2.2.0,

it will fail because the OpenEXR 2.2.0 grabs the OpenEXR 2.1.0's header files from the system include directory.

The obvious workaround is "deinstall OpenEXR 2.1.0 before attempting to build 2.2.0", but that subverts all our automation and I believe is a general issue worth fixing.

The culprit apparently is the INCLUDES = statement in the IlmImf/Makefile.am and IlmImfUtil/Makefile.am, these have code similar to, respectively:

INCLUDES = @ILMBASE_CXXFLAGS@ \
           -I$(top_builddir)  \
           -I$(top_srcdir)/config

or

INCLUDES = @ILMBASE_CXXFLAGS@ \
           -I$(top_builddir)  \
           -I$(top_srcdir)/IlmImf  \
           -I$(top_srcdir)/config

Now, on my system ilmbase and OpenEXR share the include path, and both stuff their includes into /usr/local/include/OpenEXR/. This is reflected in @ILMBASE_CXXFLAGS@.

This also means that the OpenEXR 2.2 build will grab the older 2.1 installed include files.

The fix is simple, move the @ILMBASE_CXXFLAGS@ after the local -I$(top_whichever) options, such as (only for IlmImfUtil/Makefile.am):

INCLUDES = -I$(top_builddir)  \
           -I$(top_srcdir)/IlmImf  \
           -I$(top_srcdir)/config \
       @ILMBASE_CXXFLAGS@

Then the local includes will get preference, and the system includes will only fill in the missing pieces (i. e. ilmbase stuff where required).

Please consider making such changes before the next release.

@ehanway-ilm ehanway-ilm added this to the v2.2.1 milestone Aug 15, 2014
tota pushed a commit to tota/freebsd-ports that referenced this issue Aug 24, 2014
GCC 4.2 in FreeBSD 8.X/9.X base is now too old to compile OpenEXR, so
GCC-based systems will upgrade to the default ports compiler (GCC 4.7
currently.)

Add two patches to OpenEXR to permit building it in a live system with
the older OpenEXR version installed. Bug report filed to upstream Github
at AcademySoftwareFoundation/openexr#130

Couple OpenEXR more tightly to ilmbase and require its exact .so
version.

Add UPDATING note, and bump PORTREVISION of all dependent ports.

Proto-STAGE hugin-devel, and mark it IGNORE because hugin is newer.

Approved by:	portmgr (implicit for bumping PORTREVISION on unstaged ports)


git-svn-id: svn+ssh://svn.freebsd.org/ports/head@365038 35697150-7ecd-e111-bb59-0022644237b5
@ehanway-ilm ehanway-ilm modified the milestone: v2.2.1 May 2, 2016
@cary-ilm cary-ilm modified the milestones: v2.2.1, Needs Discussion Jun 28, 2019
@cary-ilm cary-ilm added Autotools and removed Bug A bug in the source code Build A problem with building or installing the library. labels Jun 29, 2019
@cary-ilm cary-ilm removed the Autotools label Feb 6, 2020
@cary-ilm cary-ilm removed this from the Needs Attention milestone Feb 7, 2020
@cary-ilm
Copy link
Member

cary-ilm commented Feb 7, 2020

Looking into the backlog of open OpenEXR issues. This should be resolved with the improvements to cmake. Closing the issue for now, feel free to re-open or file a new issue if you need further help.

@cary-ilm cary-ilm closed this as completed Feb 7, 2020
svmhdvn pushed a commit to svmhdvn/freebsd-ports that referenced this issue Jan 10, 2024
GCC 4.2 in FreeBSD 8.X/9.X base is now too old to compile OpenEXR, so
GCC-based systems will upgrade to the default ports compiler (GCC 4.7
currently.)

Add two patches to OpenEXR to permit building it in a live system with
the older OpenEXR version installed. Bug report filed to upstream Github
at AcademySoftwareFoundation/openexr#130

Couple OpenEXR more tightly to ilmbase and require its exact .so
version.

Add UPDATING note, and bump PORTREVISION of all dependent ports.

Proto-STAGE hugin-devel, and mark it IGNORE because hugin is newer.

Approved by:	portmgr (implicit for bumping PORTREVISION on unstaged 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

No branches or pull requests

3 participants