fastports

openexr 3.4.10

graphics/openexr

High dynamic-range (HDR) image file format

Category
graphics
Maintainer
mandree@FreeBSD.org
WWW
https://www.openexr.com/
License
BSD3CLAUSE
USES
cmake:testing compiler:c++14-lang cpe pathfix pkgconfig

Description

OpenEXR is a high dynamic-range (HDR) image file format developed by
Industrial Light & Magic for use in computer imaging applications.

OpenEXR is used by ILM on all motion pictures currently in production.
The first movies to employ OpenEXR were Harry Potter and the Sorcerers Stone,
Men in Black II, Gangs of New York, and Signs. Since then, OpenEXR has become
ILM's main image file format.

OpenEXR's features include:
* Higher dynamic range and color precision than existing 8- and 10-bit
  image file formats.
* Support for 16-bit floating-point, 32-bit floating-point, and 32-bit
  integer pixels. The 16-bit floating-point format, called "half", is compatible
  with the half data type in NVIDIA's Cg graphics language and is supported
  natively on their new GeForce FX and Quadro FX 3D graphics solutions.
* Multiple lossless image compression algorithms. Some of the included codecs
  can achieve 2:1 lossless compression ratios on images with film grain.
* Extensibility. New compression codecs and image types can easily be added
  by extending the C++ classes included in the OpenEXR software distribution.
  New image attributes (strings, vectors, integers, etc.) can be added to
  OpenEXR image headers without affecting backward compatibility with existing
  OpenEXR applications.

Dependencies

Commit History

may be incomplete — full history at freebsd-ports on GitHub

Commit Credits Log message
3.4.10
a096d170b8 files touched
Matthias Andree (mandree)
graphics/openexr*: Security update to 3.4.10
Addresses security vulnerabilities

Changelog:
https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.10

Obtained from:	GitHub repo
Security:	CVE-2026-39886
		CVE-2026-40244
		CVE-2026-40250
3.4.9
ff3b84dc9b files touched
Matthias Andree (mandree)
graphics/openexr*: Security update to 3.4.9
Addresses several security vulnerabilities

Changelog:
https://github.com/AcademySoftwareFoundation/openexr/blob/v3.4.9/CHANGES.md#version-349-april--3-2026

PR:		294197
Security:       CVE-2026-34589, CVE-2026-34588, CVE-2026-34380,
		CVE-2026-34379, CVE-2026-34378,
		adb096d4-2e72-11f1-acc1-339a1a6999b0
3.4.8
d4d175a4cc files touched
Matthias Andree (mandree)
graphics/openexr*: Update to 3.4.8
Bugfix release

Changelog(s):
https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.8
https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.7
https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.6

PR:		293859
3.4.5
6b50d3885e files touched
Matthias Andree (mandree)
graphics/openexr*: Security update to v3.4.5 and i386 fix
"Patch release that fixes an incorrect size check in
istream_nonparallel_read that could lead to a buffer overflow on invalid
input data."

Also fix i386 self-tests by adding -msse2: i386 builds require SSE2, but
the upstream cmake stuff does not enable this, so use CFLAGS_i386.

To prevent people seeing SIGILL crashes down late at run-time,
check if the CPU is sse2-capable by querying the clang compiler from
the pre-install script (pkg-plist's @preexec). Suggested by diizzy@.
  Other than that we could use the cpuid or the lscpu port instead, but
let's for now assume everything that wants to run OpenEXR also has a
working cc that is clang and has -march=native and gives us CPU details).
(GCC also gives us this but will use a different output format.)

While here, make failed tests verbose through ctest's environment so we
can see what's up from the build log already. (We need to go through
this indirection because our cmake.mk's :testing feature wants to go
through the test target instead of calling ctest directly.)

Changelog:	https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.5
Security:	716d25a6-0fdc-11f1-bfdf-ff9355aecb00
MFH:		2026Q1
3.4.4
d6c9802a4a files touched
Po-Chuan Hsieh (sunpoet)
graphics/openjph: Update to 0.26.0
- Bump PORTREVISION of dependent ports for shlib change

Changes:	https://github.com/aous72/OpenJPH/releases
3.4.4
90d4fc1621 files touched
Matthias Andree (mandree)
graphics/openexr: fix build on Sandy Bridge CPUs
OpenEXR attempts to use F16C intrinsics when AVX available and
at least one of these is true: F16C available, GCC used, or clang used.

Intel Sandy Bridge processors do have AVX extensions,
but no F16C instruction set extension, so compilers (clang 19, 20, gcc 14)
complain:

work/openexr-3.4.4/src/lib/OpenEXRCore/unpack.c:37:18:
  error: always_inline function '_mm256_cvtph_ps' requires target feature 'f16c',
  but would be inlined into function 'half_to_float_buffer'
  that is compiled without support for 'f16c'
   37 |             out, _mm256_cvtph_ps (_mm_loadu_si128 ((const __m128i*) in)));
      |                  ^

Not bumping PORTREVISION because this is not a supported configuration.

https://github.com/AcademySoftwareFoundation/openexr/issues/2231

Reported by:	"UnitedMarsupials"
MFH:		2025Q4
3.4.4
d947a5b3b6 files touched
Matthias Andree (mandree)
graphics/openexr*: update to 3.4.4
ChangeLog:	https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.4
3.4.3
4d835e846e files touched
Po-Chuan Hsieh (sunpoet)
graphics/openjph: Update to 0.25.0
- Bump PORTREVISION of dependent ports for shlib change

Changes:	https://github.com/aous72/OpenJPH/releases
3.4.3
2dc4c91ea5 files touched
Matthias Andree (mandree)
graphics/openexr*: security update to 3.4.3
Changelog:	https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.3
Security:	c71a3914-ba96-11f0-aada-f59a8ea34d12
MFH:		2025Q4
3.4.1
c0f85663f3 files touched
Matthias Andree (mandree)
graphics/openexr: use official WITH_DEBUG=yes fix
We've developed an officially accepted solution with upstream and
upstream reporter of the issue that prompted the change that broke our
DEBUG builds, so let's switch to the official change to minimize
differences from upstream.

https://github.com/AcademySoftwareFoundation/openexr/issues/1981
https://github.com/AcademySoftwareFoundation/openexr/pull/2166/commits/efa3b861ab0ab515ec7923ce02500acf667eabb0

PR:		290615

Note I am not updating to v3.4.2 because it does not contain changes
for FreeBSD - it contains a fix for Windows, and the other Imath change
is unnecessary for us because our ports system handles the requisite.
3.4.1
fc6615ea1d files touched
Matthias Andree (mandree)
graphics/openexr: avoid _d suffix WITH_DEBUG
Apparently broken with upstream commit
https://github.com/AcademySoftwareFoundation/openexr/commit/848f84ae7504adcd89ec0da182499d5cd4e3b245

Might fix
PR:		290615
MFH:		2025Q4

No PORTREVISION bump because packaging fails if the issue strikes.
3.4.1
49b2153e79 files touched
Po-Chuan Hsieh (sunpoet)
graphics/openjph: Update to 0.24.1
- Bump PORTREVISION of dependent ports for shlib change

Changes:	https://github.com/aous72/OpenJPH/releases
3.4.1
c2ae2ac8b0 files touched
Matthias Andree (mandree)
graphics/openexr*: update to v3.4.1
ChangeLog:	<https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.1>
3.4.0
3325dbe6f1 files touched
Po-Chuan Hsieh (sunpoet)
graphics/openexr: Fix build with openjph 0.23.0+
- Add BUILD_DEPENDS check

Approved by:	portmgr (blanket)
Obtained from:	https://github.com/AcademySoftwareFoundation/openexr/pull/2122
3.4.0
7231244c85 files touched
Matthias Andree (mandree)
graphics/openexr*: update to v3.4.0
Adds lossless compression with High Throughput JPEG-2000 (HTJ2K)
encoding, which adds an OpenJPH dependency.

The OneAPI TBB option isn't provided because it massively increases
self-test time on FreeBSD 14.3-amd64 and I don't see how production
use would be different.  This is with an AMD Ryzen processor.

ChangeLog:	https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.0
3.3.5
566d74ed6b files touched
Matthias Andree (mandree)
*: Bump PORTREVISION for math/Imath update
3.3.5
a4bf931ee7 files touched
Matthias Andree (mandree)
math/Imath: update to v3.2.0 bugfix release
ChangeLog: https://github.com/AcademySoftwareFoundation/Imath/releases/tag/v3.2.0

Note this changes the .so versioning again, so I'll again need to
do additional cleanups because people don't just depend on Imath.
This is unneeded extra work except in the situation of OpenEXR
which is co-developed with Imath by the upstream maintainer,
Academy Software Foundation (ASWF).

I have no intentions of MFH'ing this due to the .so versioning change.
3.3.5
5df7fe4fe3 files touched
Matthias Andree (mandree)
graphics/openexr*: update to v3.3.5 bugfix release
Changelog:	https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.3.5
MFH:		2025Q3 (after a few days)
3.3.4
01fd7c5307 files touched
Matthias Andree (mandree)
graphics/openexr*: Update to v3.3.4
Changelog:	https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.3.4
MFH:		2025Q2
3.3.3
81a38fb8f2 files touched
Matthias Andree (mandree)
graphics/openexr*: update to v3.3.3
This contains out-of-bounds memory access fixes, hence:

MFH:		2025Q1
ChangeLog: 	https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.3.3
3.3.2
f3a38995f5 files touched
Matthias Andree (mandree)
graphics/openexr-website-docs: unbreak and update to 3.3.2
And while here, decouple our PORTVERSION from the openexr version so we
don't break builds.

v3.3.2 seems to have a regression and causes a warning around Latest
News inserts on one site, so add -DSPHINX_OPTS= to override the default
of -W which means "treat warnings as errors", as of 3.3.2, I see one
warning.
3.3.2
73e8df6a67 files touched
Matthias Andree (mandree)
graphics/openexr: Update to v3.3.2
We can now remove our patch to build the exrmetrics manpage.

ChangeLog:	https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.3.2
3.3.1
e913756366 files touched
Matthias Andree (mandree)
graphics/openexr*: upgrade to 3.3.1
ChangeLog:	https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.3.1

Also add a local docs/CMakeLists.txt patch to add an exrmetrics man
page, omission reported upstream to
https://github.com/AcademySoftwareFoundation/openexr/issues/1881
3.3.0
175bbab74c files touched
Matthias Andree (mandree)
graphics/openexr*: upgrade to 3.3.0
This changes the ABI (but not the API) and .so file name,
so we will need to bump all PORTREVISIONs of users, and we'll also fix
graphics/ctl and multimedia/olive.

This is not going to be MFHd to 2024Q4 due to API change, and therefore
has also waited for 2024Q4 to branch before we committed this to main,
so as to avoid 2024Q4 breakage.

ChangeLog:	https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.3.0
PR:		281859
3.2.4
2ce9c15f88 files touched
Daniel Engberg (diizzy)
graphics/openexr: Only build test suite when requested
In order to avoid ctest performance regressions, we also required
commit cbee39bcd1a2472b8f3e24754f5bb3a3429b79a0 from PR 278533.

PR:		278500
3.2.4
b22709d5c5 files touched
Matthias Andree (mandree)
graphics/openexr-website-docs: fix build with v3.2.4 changes
- share the distfiles directory and the NO_WRKSUBDIR
- update patch for updated upstream CMakeLists.txt infrastructure
3.2.4
5dde67a0a6 files touched
Matthias Andree (mandree)
graphics/openexr: update to bugfix release v3.2.4
ChangeLog: https://github.com/AcademySoftwareFoundation/openexr/blob/main/CHANGES.md#version-324-march-26-2024
ChangeLog: https://github.com/AcademySoftwareFoundation/openexr/blob/main/CHANGES.md#version-323-march-6-2024

Switch from auto-generated tarballs to those that use sigstore,
verify that -- see
https://github.com/AcademySoftwareFoundation/openexr/blob/main/SECURITY.md#signed-releases
and shuffle variables accordingly, including DISTFILES, EXTRACT_ONLY and NO_WRKSUBDIR updates.
3.2.2
ba2257cba9 files touched
Matthias Andree (mandree)
graphics/openexr: support non-root build in poudriere...
...by replacing CPIO with a MKDIR/CP combo.

Reported by:	arrowd@
3.2.2
a967390ae7 files touched
Matthias Andree (mandree)
graphics/openexr: fix post-extract to move testimages into place
...and avoid downloading in the configure phase.

Reported by:	Tatsuki Makino

While here, revert TESTING_UNSAFE, which does not reproduce,
neither under WITH_TESTING=yes in make.conf in poudriere after "make
distclean".

Bump PORTREVISION.
3.2.2
92c5d523ae files touched
Gleb Popov (arrowd)
graphics/openexr: Mark TESTING_UNSAFE
3.2.2
7b057a3f4f files touched
Matthias Andree (mandree)
graphics/openexr: security update to v3.2.2
ChangeLog:	https://github.com/AcademySoftwareFoundation/openexr/blob/v3.2.2/CHANGES.md#version-322-february-11-2024

Security:	CVE-2023-5841
Security:	f161a5ad-c9bd-11ee-b7a7-353f1e043d9a
MFH:		2024Q1
3.2.1
9a529daeee files touched
Matthias Andree (mandree)
graphics/openexr: update to v3.2.1
ChangeLog: https://github.com/AcademySoftwareFoundation/openexr/blob/v3.2.1/CHANGES.md#version-321-september-27-2023

with one additional patch to change deflate_LIBRARIES to
deflate_LINK_LIBRARIES in the cmake stuff in order to unbreak
the build.

Reported upstream: https://github.com/AcademySoftwareFoundation/openexr/issues/1571

Upstream intended to release v3.2.2 on short notice, but the efforts
appear to have stalled, so ship 3.2.1 with our local fix.
3.2.0
a72b285347 files touched
Matthias Andree (mandree)
graphics/openexr: let openexr-website-docs use its own PORTNAME
I forgot to commit this change that was part of my test. Sorry.

Reported by:	antoine@
3.2.0
49fa9640ff files touched
Matthias Andree (mandree)
graphics/openexr: update to 3.2.0
- Also install manual pages (generated through help2man)
- The website (formerly known "DOCS" build) requires the "convert(1)"
  tool, which is part of ImageMagick, which itself depends on OpenEXR.
  To break the loop, split out the offline website build to a new
  package, graphics/openexr-website-docs
3.1.11
7936ba17c5 files touched
Matthias Andree (mandree)
graphics/openexr: update to 3.1.11
Changelog: https://github.com/AcademySoftwareFoundation/openexr/blob/v3.1.11/CHANGES.md#version-3111-august-13-2023
MFH:       2023Q3
3.1.10
db2c219ed3 files touched
Matthias Andree (mandree)
graphics/openexr: Fix some CPUTYPE builds.
Reported by:	jkim@FreeBSD.org
Obtained from:	https://github.com/AcademySoftwareFoundation/openexr/pull/1507
MFH:		2023Q3
3.1.10
fccca1f5f7 files touched
Matthias Andree (mandree)
graphics/openexr: bugfix update to 3.1.10
Changelog: 	https://github.com/AcademySoftwareFoundation/openexr/blob/v3.1.10/CHANGES.md#version-3110-august-2-2023

MFH:		2023Q3
3.1.9
d8e18f30d1 files touched
Matthias Andree (mandree)
graphics/openexr: bugfix update → 3.1.9
https://github.com/AcademySoftwareFoundation/openexr/blob/v3.1.9/CHANGES.md#version-319-june-25-2023

Security:       06428d91-152e-11ee-8b14-dbdd62da85fb
3.1.8
e9a55ec75c files touched
Matthias Andree (mandree)
graphics/openexr: bugfix update to 3.1.8
ChangeLog:
https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.1.8
3.1.7
a5fbd2fa98 files touched
Matthias Andree (mandree)
*: bump PORTREVISION of Imath users
...because math/Imath 3.1.9 reset the major version of
libImath to 29 from 31. See math/Imath 3.1.9 for details.
3.1.7
e434b50017 files touched
Matthias Andree (mandree)
*: Bump revision of ports using math/Imath
...after its major revision update.
3.1.7
7c80f1eaa6 files touched
Matthias Andree (mandree)
math/Imath: bugfix update to 3.1.8
Changelog:
https://github.com/AcademySoftwareFoundation/Imath/blob/v3.1.8/CHANGES.md#version-318-May-22-2023
3.1.7
8601441eb8 files touched
Matthias Andree (mandree)
graphics/openexr: upgrade to 3.1.7
This is mostly to incorporate build fixes for ARMv7 regressions,
which our 3.1.6_1 port had already brought, and bumps the library's minor
version, so let's take it although it should be functionally the same.

ChangeLog:
https://github.com/AcademySoftwareFoundation/openexr/blob/v3.1.7/CHANGES.md#version-317-march-28-2023
3.1.6
54d6860aac files touched
Matthias Andree (mandree)
graphics/openexr: Fix ARMv7 build
OpenEXR 3.1.6 introduced several NEON-based optimizations
that implied Aarch64. Add patched, either picked from
upstream, or written by mandree@, to enable those
NEON features that also require Aarch64 only there.

PR-1366 is cherry-picked from upstream, and patch-lib/patch-test files
are my work but build upon said PR.

Also cherry-pick PR1354 that adds a missing check for AVX,
which is why I am bumping PORTREVISION because it might change
code (I have not checked).

https://github.com/AcademySoftwareFoundation/openexr/issues/1365

PR:		270348
Reported by:	fuz@ (Robert Clausecker)
3.1.6
c185d09d3e files touched
Matthias Andree (mandree)
graphics/openexr: mark BROKEN on armv7
Upstream bug report:
https://github.com/AcademySoftwareFoundation/openexr/issues/1365

PR:		270348
3.1.6
5f57f503aa files touched
Matthias Andree (mandree)
graphics/openexr: bugfix update to 3.1.6
ChangeLog:
https://github.com/AcademySoftwareFoundation/openexr/blob/v3.1.6/CHANGES.md#version-316-march-9-2023
3.1.5
5327591576 files touched
Matthias Andree (mandree)
*: Bump PORTREVISION of math/Imath users
3.1.5
534dae142a files touched
Matthias Andree (mandree)
graphics/openexr: bump Imath LIB_DEPENDS to .30
...to match the Imath 3.1.7 update.
3.1.5
fb16dfecae files touched
Stefan Eßer (se)
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.

This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.

Approved by:		portmgr (tcberner)
3.1.5
b7f05445c0 files touched
Stefan Eßer (se)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.

Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.

There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.

This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.

There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.

The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.

Approved by:		portmgr (tcberner)

Load all commits →