Minor release with several additions, changes and improvements:
* Zip compression via ``libdeflate``
As of OpenEXR release v3.2, OpenEXR depends on
[libdeflate](https://github.com/ebiggers/libdeflate) for
DEFLATE-based compression. Previous OpenEXR releases relied on
[zlib](https://www.zlib.net). Builds of OpenEXR can choose either an
``libdeflate`` installation, or CMake can auto-fetch the source and
build it internally. The internal build is linked statically, so no
extra shared object is produced.
See [website/install.rst](website/install.rst) for more details.
* New camdkit/camdkit-enabled standard attributes
These changes bring to OpenEXR new standard optional attributes that
were discussed in the [SMPTE Rapid Industry Solutions On-Set Virtual
Production
Initiative)](https://www.smpte.org/blog/update-on-smptes-rapid-industry-solutions-ris-on-set-virtual-production-osvp-initiative). Additionally,
some useful attributes from the SMPTE ACES Container File Layout
standard, SMPTE ST 2065-4:2023, have been included as well. The new
attributes are:
Support automated editorial workflow:
- ``reelName``
- ``imageCounter``
- ``ascFramingDecisionList``
Support forensics:
- ``cameraMake``
- ``cameraModel``
- ``cameraSerialNumber``
- ``cameraFirmware``
- ``cameraUuid``
- ``cameraLabel``
- ``lensMake``
- ``lensModel``
- ``lensSerialNumber``
- ``lensFirmware``
- ``cameraColorBalance``
Support pickup shots:
- ``shutterAngle``
- ``cameraCCTSetting``
- ``cameraTintSetting``
Support metadata-driven match move:
- ``sensorCenterOffset``
- ``sensorOverallDimensions``
- ``sensorPhotositePitch``
- ``sensorAcquisitionRectangle``
- ``nominalFocalLength``
- ``effectiveFocalLength``
- ``pinholeFocalLength``
- ``entrancePupilOffset``
- ``tStop`` (complementing existing aperture)
Also, ``renderingTransform`` and ``lookTransform`` have been deprecated.
See
[website/StandardAttributes.rst](website/StandardAttributes.rst)
and [PR
1383](https://github.com/AcademySoftwareFoundation/openexr/pull/1383)
for more details.
* Updated SO versioning policy
This change adopts a policy of appending the ``MAJOR.MINOR.PATCH``
software release name to the ``SONAME`` to form the real name of the
shared library.
See [website/install.rst](website/install.rst) and [PR
1498](https://github.com/AcademySoftwareFoundation/openexr/pull/1498)
for more details.
* Python bindings & PyPI wheel
Support for the [OpenEXR python
bindings](https://pypi.org/project/OpenEXR) have been formally
adopted by the OpenEXR project.
* Miscellaneous improvements:
- "docs" renamed to "website" ([PR
1504](https://github.com/AcademySoftwareFoundation/openexr/pull/1504))
- Additional deep & multipart code examples ([PR
1493](https://github.com/AcademySoftwareFoundation/openexr/pull/1493)
and [PR
1502](https://github.com/AcademySoftwareFoundation/openexr/pull/1502))
- Many small build/test fixes
- bin tools man pages
- Expanded test coverage
Specific OSS-fuzz issues addressed:
* OSS-fuzz [46459](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46459)
Out-of-memory in ``openexr_exrcheck_fuzzer``
* OSS-fuzz [46432](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46432)
Heap-buffer-overflow in ``generic_unpack``
* OSS-fuzz [46413](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46413)
Integer-overflow in ``reconstruct_chunk_table``
* OSS-fuzz [45718](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=45718)
Heap-double-free in ``Imf_3_1::RgbaInputFile::~RgbaInputFile``
* OSS-fuzz [45716](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=45716)
Abrt in ``Imf_3_1::RgbaInputFile::~RgbaInputFile``
* OSS-fuzz [43771](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43771)
Direct-leak in ``Imf_3_1::RgbaInputFile::RgbaInputFile``
Merged Pull Requests
* [1527](https://github.com/AcademySoftwareFoundation/openexr/pull/1527)
`OpenEXRConfig.h.in` uses version extracted from `openexr_version.h`
* [1525](https://github.com/AcademySoftwareFoundation/openexr/pull/1525)
Add bzlmod support
* [1523](https://github.com/AcademySoftwareFoundation/openexr/pull/1523)
Add `DEPENDENCIES Imath::Imath` for OpenEXRCore (1523)
* [1522](https://github.com/AcademySoftwareFoundation/openexr/pull/1522)
Rename cifuzz workflow to OSS-Fuzz, and filter out unnecessary triggers
* [1520](https://github.com/AcademySoftwareFoundation/openexr/pull/1520)
fix memory leaks in exrmultipart
* [1519](https://github.com/AcademySoftwareFoundation/openexr/pull/1519)
Remove .bazelrc file
* [1518](https://github.com/AcademySoftwareFoundation/openexr/pull/1518)
Bazel support: Simplify use of libdeflate dependency
* [1517](https://github.com/AcademySoftwareFoundation/openexr/pull/1517)
Streamline Python wheel workflow, and add tests and a CMake setup for bindings
* [1516](https://github.com/AcademySoftwareFoundation/openexr/pull/1516)
Bazel support: Remove Bazel specific example and use same examples as CMake build
* [1513](https://github.com/AcademySoftwareFoundation/openexr/pull/1513)
Separate Actions workflow for the website
* [1511](https://github.com/AcademySoftwareFoundation/openexr/pull/1511)
Website "Attributes" page now describes all attributes
* [1510](https://github.com/AcademySoftwareFoundation/openexr/pull/1510)
Deprecate renderingTransform and lookModTransform
* [1509](https://github.com/AcademySoftwareFoundation/openexr/pull/1509)
Initialize regs[] to 0 in check_for_x86_simd
* [1507](https://github.com/AcademySoftwareFoundation/openexr/pull/1507)
Fix CPUID detection with ``-march=x86-64-v3``
* [1505](https://github.com/AcademySoftwareFoundation/openexr/pull/1505)
Add missing copyright/license specifiers
* [1504](https://github.com/AcademySoftwareFoundation/openexr/pull/1504)
Rename "docs" to "website"
* [1503](https://github.com/AcademySoftwareFoundation/openexr/pull/1503)
Reorganize ``share/util`` and remove unnecessary files
* [1502](https://github.com/AcademySoftwareFoundation/openexr/pull/1502)
multipart code examples
* [1501](https://github.com/AcademySoftwareFoundation/openexr/pull/1501)
Add website example source files to the CMake build for validation
* [1500](https://github.com/AcademySoftwareFoundation/openexr/pull/1500)
Add 2023 Virtual Town Hall to news
* [1498](https://github.com/AcademySoftwareFoundation/openexr/pull/1498)
Update and simplify SO versioning policy
* [1496](https://github.com/AcademySoftwareFoundation/openexr/pull/1496)
Bazel update
* [1495](https://github.com/AcademySoftwareFoundation/openexr/pull/1495)
Rename ``IMATH_REPO/TAG`` to ``OPENEXR_IMATH_REPO/TAG`` and update install docs
* [1494](https://github.com/AcademySoftwareFoundation/openexr/pull/1494)
Reorder attributes in doc to match order in header
* [1493](https://github.com/AcademySoftwareFoundation/openexr/pull/1493)
adds deep examples, fixes the deep examples in docs
* [1490](https://github.com/AcademySoftwareFoundation/openexr/pull/1490)
Readdress 1456: disallow NaNs in ``testOptimizedInterleavePatterns``
* [1489](https://github.com/AcademySoftwareFoundation/openexr/pull/1489)
Add ``sensorCenterOffset``, ``sensorOverallDimensions``, ``sensorPhotositePitch``
* [1488](https://github.com/AcademySoftwareFoundation/openexr/pull/1488)
Revert pre-computed values
* [1487](https://github.com/AcademySoftwareFoundation/openexr/pull/1487)
Python wheels
* [1486](https://github.com/AcademySoftwareFoundation/openexr/pull/1486)
Replace ``ILMBASE_THREADING_ENABLED`` with ``ILMTHREAD_THREADING_ENABLED``
* [1484](https://github.com/AcademySoftwareFoundation/openexr/pull/1484)
Fix handling for corrupt number of DC components
* [1483](https://github.com/AcademySoftwareFoundation/openexr/pull/1483)
Add ``ImfMisc.h`` and ``ImfCompressor.h`` as installed headers
* [1482](https://github.com/AcademySoftwareFoundation/openexr/pull/1482)
Add ``OPENEXR_MISSING_ARM_VLD1`` workaround to ``internal_dwa_simd.h``
* [1475](https://github.com/AcademySoftwareFoundation/openexr/pull/1475)
Update CI with vfx2023 Linux jobs.
* [1473](https://github.com/AcademySoftwareFoundation/openexr/pull/1473)
consolidate project configurations to one place
* [1472](https://github.com/AcademySoftwareFoundation/openexr/pull/1472)
Fix range check in dwa compressor
* [1471](https://github.com/AcademySoftwareFoundation/openexr/pull/1471)
Add detailed instructions for making both patch and major/minor release
* [1468](https://github.com/AcademySoftwareFoundation/openexr/pull/1468)
Remove old zlib reference
* [1464](https://github.com/AcademySoftwareFoundation/openexr/pull/1464)