diff --git a/.github/workflows/bazel_build.yml b/.github/workflows/bazel_build.yml index 834f84e324..6ed03b4c95 100644 --- a/.github/workflows/bazel_build.yml +++ b/.github/workflows/bazel_build.yml @@ -22,6 +22,7 @@ on: - '!**.md' - '!website/**' - 'website/src/**' + - '!src/wrappers/**' pull_request: branches-ignore: - RB-2.* @@ -33,6 +34,7 @@ on: - '!**.md' - '!website/**' - 'website/src/**' + - '!src/wrappers/**' permissions: contents: read diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index d8eff25e06..3aac7583e8 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -24,6 +24,7 @@ on: - '!website/**' - 'website/src/**' - '!bazel/**' + - '!src/wrappers/**' pull_request: branches-ignore: - RB-2.* @@ -36,6 +37,7 @@ on: - '!website/**' - 'website/src/**' - '!bazel/**' + - '!src/wrappers/**' permissions: contents: read @@ -118,7 +120,7 @@ jobs: # Static, Release - build: 4 build-type: Release - build-shared: 'ON' + build-shared: 'OFF' cxx-standard: 17 cxx-compiler: g++ cc-compiler: gcc diff --git a/.github/workflows/ossfuzz_workflow.yml b/.github/workflows/ossfuzz_workflow.yml index 461087313c..6fbc043b69 100644 --- a/.github/workflows/ossfuzz_workflow.yml +++ b/.github/workflows/ossfuzz_workflow.yml @@ -18,6 +18,7 @@ on: - '!**.md' - '!website/**' - '!bazel/**' + - '!src/wrappers/**' pull_request: branches-ignore: - RB-2.* @@ -29,6 +30,7 @@ on: - '!**.md' - '!website/**' - '!bazel/**' + - '!src/wrappers/**' permissions: contents: read diff --git a/.github/workflows/python-wheels.yml b/.github/workflows/python-wheels.yml index 67ab3a92a1..da62b6ec40 100644 --- a/.github/workflows/python-wheels.yml +++ b/.github/workflows/python-wheels.yml @@ -30,6 +30,9 @@ on: - 'website/src/**' - '!bazel/**' +permissions: + contents: read + jobs: build_wheels: name: Build Python wheels diff --git a/CHANGES.md b/CHANGES.md index 339be45a91..12a312a934 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,7 @@ # OpenEXR Release Notes +* [Version 3.2.1](#version-321-september-27-2023) September 27, 2023 * [Version 3.2.0](#version-320-august-30-2023) August 30, 2023 * [Version 3.1.11](#version-3111-august-13-2023) August 13, 2023 * [Version 3.1.10](#version-3110-august-2-2023) August 2, 2023 @@ -66,6 +67,50 @@ * [Version 1.0.1](#version-101) * [Version 1.0](#version-10) +## Version 3.2.1 (September 27, 2023) + +Patch release with miscellaneous build fixes: + +* Fix for linking statically against an external ``libdeflate`` +* Fix a compile error with ``OPENEXR_VERSION_HEX`` +* Fix various compiler warnings +* Pkg-config generation is now on by default for all systems, including Windows + +### Merged Pull Requests + +* [1568](https://github.com/AcademySoftwareFoundation/openexr/pull/1568) +Fix Imf/Iex/IlmThread namespaces in python bindings and website code +* [1565](https://github.com/AcademySoftwareFoundation/openexr/pull/1565) +Update openexr_deps.bzl +* [1562](https://github.com/AcademySoftwareFoundation/openexr/pull/1562) +Bazel: Improve module +* [1561](https://github.com/AcademySoftwareFoundation/openexr/pull/1561) +Clean up handling of libdeflate when linking static +* [1560](https://github.com/AcademySoftwareFoundation/openexr/pull/1560) +Omit OPENEXR_IMAGES_TAG from test image url if empty +* [1557](https://github.com/AcademySoftwareFoundation/openexr/pull/1557) +Set build-shared:OFF for Static build +* [1541](https://github.com/AcademySoftwareFoundation/openexr/pull/1541) +OPENEXR_INSTALL_PKG_CONFIG is on by default, even on Windows +* [1540](https://github.com/AcademySoftwareFoundation/openexr/pull/1540) +Default value for chromaticities attribute constructor in exrstdattr +* [1539](https://github.com/AcademySoftwareFoundation/openexr/pull/1539) +Fix OPENEXR_VERSION_HEX +* [1536](https://github.com/AcademySoftwareFoundation/openexr/pull/1536) +Python wheel setup gets version from OpenEXR.pc/Imath.pc +* [1534](https://github.com/AcademySoftwareFoundation/openexr/pull/1534) +Fix warnings from cross-compiling with x86_64-w64-mingw32-gcc-posix +* [1533](https://github.com/AcademySoftwareFoundation/openexr/pull/1533) +Fix warnings in multipartExamples.cpp +* [1532](https://github.com/AcademySoftwareFoundation/openexr/pull/1532) +Don't trigger ci/bazel/ossfuzz builds on pushes/PRs to src/wrappers +* [1531](https://github.com/AcademySoftwareFoundation/openexr/pull/1531) +Propagate OPENEXR_INSTALL_PKG_CONFIG to internal Imath +* [1530](https://github.com/AcademySoftwareFoundation/openexr/pull/1530) +Set minimal permissions for workflow python-wheels.yml +* [1528](https://github.com/AcademySoftwareFoundation/openexr/pull/1528) +Remove check for _MSC_VER in internal_cpuid.h + ## Version 3.2.0 (August 30, 2023) Minor release with several additions, changes and improvements: @@ -138,7 +183,7 @@ Minor release with several additions, changes and improvements: #1383](https://github.com/AcademySoftwareFoundation/openexr/pull/1383) for more details. -* Updated SO versioning policy +* 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 @@ -153,7 +198,7 @@ Minor release with several additions, changes and improvements: 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 @@ -165,7 +210,7 @@ Minor release with several additions, changes and improvements: #1502](https://github.com/AcademySoftwareFoundation/openexr/pull/1502)) - Many small build/test fixes - + - bin tools man pages - Expanded test coverage @@ -173,17 +218,17 @@ Minor release with several additions, changes and improvements: 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`` +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`` +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`` +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`` +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`` +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`` +Direct-leak in ``Imf_3_1::RgbaInputFile::RgbaInputFile`` ### Merged Pull Requests @@ -206,11 +251,11 @@ 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 +Separate Actions workflow for the website * [1511](https://github.com/AcademySoftwareFoundation/openexr/pull/1511) -Website "Attributes" page now describes all attributes +Website "Attributes" page now describes all attributes * [1510](https://github.com/AcademySoftwareFoundation/openexr/pull/1510) -Deprecate renderingTransform and lookModTransform +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) @@ -238,7 +283,7 @@ 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`` +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) @@ -252,7 +297,7 @@ 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`` +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) @@ -270,7 +315,7 @@ CIFuzz skips PRs that only modify markdown * [1428](https://github.com/AcademySoftwareFoundation/openexr/pull/1428) Add simple abi checker util * [1427](https://github.com/AcademySoftwareFoundation/openexr/pull/1427) -Fix handling of builddir and cxxwarns in ``clang_coverage.sh`` +Fix handling of builddir and cxxwarns in ``clang_coverage.sh`` * [1426](https://github.com/AcademySoftwareFoundation/openexr/pull/1426) Prevent re-download of images if already in place * [1425](https://github.com/AcademySoftwareFoundation/openexr/pull/1425) @@ -306,11 +351,11 @@ Updated Mac and Windows jobs for VFX platform 2023. * [1387](https://github.com/AcademySoftwareFoundation/openexr/pull/1387) Switch to embedding libdeflate into EXRCore * [1386](https://github.com/AcademySoftwareFoundation/openexr/pull/1386) -Govern library version by ``OpenEXRVersion.h`` +Govern library version by ``OpenEXRVersion.h`` * [1383](https://github.com/AcademySoftwareFoundation/openexr/pull/1383) Add selected SMPTE camdkit or camdkit-enabling standard optional attributes * [1381](https://github.com/AcademySoftwareFoundation/openexr/pull/1381) -Deprecate ``exrbuild.cpp`` +Deprecate ``exrbuild.cpp`` * [1380](https://github.com/AcademySoftwareFoundation/openexr/pull/1380) Tool manpages, doc page, and standardized ``--help`` messages * [1379](https://github.com/AcademySoftwareFoundation/openexr/pull/1379) @@ -346,7 +391,7 @@ Update GitHub checkout action from V2 to V3 * [1241](https://github.com/AcademySoftwareFoundation/openexr/pull/1241) Bump version to 3.2.0 on the main branch * [1240](https://github.com/AcademySoftwareFoundation/openexr/pull/1240) -prevent double-free of ``RgbaInputFile::_inputPart`` +prevent double-free of ``RgbaInputFile::_inputPart`` * [1228](https://github.com/AcademySoftwareFoundation/openexr/pull/1228) Fix build script so auto-build of imath uses the new branch name * [1226](https://github.com/AcademySoftwareFoundation/openexr/pull/1226) @@ -466,9 +511,9 @@ Also: Patch release that addresses miscellaneous build issues, for macOS in particular, but also includes: - + * Support for DWA compression in OpenEXRCore -* Fix for threadpool deadlocks during shutdown on Windows +* Fix for threadpool deadlocks during shutdown on Windows This release also addresses: @@ -507,17 +552,17 @@ issue with zlib. ### Merged Pull Requests * [1368](https://github.com/AcademySoftwareFoundation/openexr/pull/1368) -Fix ARMv7 build for DwaCompressor, too. -* [1366](https://github.com/AcademySoftwareFoundation/openexr/pull/1366) -Fix ARMv7 build by making recent ZIP NEON optimizations be ARMv8 (aarch64) only -* [1361](https://github.com/AcademySoftwareFoundation/openexr/pull/1361) -Fix the zlib build error that was reported in #1360. -* [1358](https://github.com/AcademySoftwareFoundation/openexr/pull/1358) -Detect missing vst1q_f32_x2 and provide replacement if necessary -* [1355](https://github.com/AcademySoftwareFoundation/openexr/pull/1355) -Fix typo in release notes -* [1354](https://github.com/AcademySoftwareFoundation/openexr/pull/1354) -Test for AVX in unpack.c +Fix ARMv7 build for DwaCompressor, too. +* [1366](https://github.com/AcademySoftwareFoundation/openexr/pull/1366) +Fix ARMv7 build by making recent ZIP NEON optimizations be ARMv8 (aarch64) only +* [1361](https://github.com/AcademySoftwareFoundation/openexr/pull/1361) +Fix the zlib build error that was reported in #1360. +* [1358](https://github.com/AcademySoftwareFoundation/openexr/pull/1358) +Detect missing vst1q_f32_x2 and provide replacement if necessary +* [1355](https://github.com/AcademySoftwareFoundation/openexr/pull/1355) +Fix typo in release notes +* [1354](https://github.com/AcademySoftwareFoundation/openexr/pull/1354) +Test for AVX in unpack.c ## Version 3.1.6 (March 9, 2023) @@ -549,9 +594,9 @@ Specific OSS-fuzz issues address: ### Merged Pull Requests * [1348](https://github.com/AcademySoftwareFoundation/openexr/pull/1348) -NEON optimizations for ZIP reading (reconstruct and interleave) +NEON optimizations for ZIP reading (reconstruct and interleave) * [1347](https://github.com/AcademySoftwareFoundation/openexr/pull/1347) -Reduce memory in ``testDeepScanLineBasic`` +Reduce memory in ``testDeepScanLineBasic`` * [1346](https://github.com/AcademySoftwareFoundation/openexr/pull/1346) Add pointers to installing doxygen/sphinx to the build instructions * [1345](https://github.com/AcademySoftwareFoundation/openexr/pull/1345) @@ -565,7 +610,7 @@ Update PortingGuide.rst * [1340](https://github.com/AcademySoftwareFoundation/openexr/pull/1340) Remove duplicate ``tmpDir.h`` files * [1339](https://github.com/AcademySoftwareFoundation/openexr/pull/1339) -Build docs in CI, and rename ``DOCS`` CMake config variable to ``BUILD_DOCS`` +Build docs in CI, and rename ``DOCS`` CMake config variable to ``BUILD_DOCS`` * [1338](https://github.com/AcademySoftwareFoundation/openexr/pull/1338) Add header files for IDEs * [1337](https://github.com/AcademySoftwareFoundation/openexr/pull/1337) @@ -613,7 +658,7 @@ fix huf memory boundary checks * [1289](https://github.com/AcademySoftwareFoundation/openexr/pull/1289) Fix a typo breaking the link to ``Imath`` repository in readme * [1287](https://github.com/AcademySoftwareFoundation/openexr/pull/1287) -Using ``PRId64`` in place of ``%ld`` in ``chunk.c`` +Using ``PRId64`` in place of ``%ld`` in ``chunk.c`` * [1286](https://github.com/AcademySoftwareFoundation/openexr/pull/1286) Fix NDK compile error * [1279](https://github.com/AcademySoftwareFoundation/openexr/pull/1279) @@ -647,7 +692,7 @@ Patch release that address various bug/build/doc issues: original behavior of the the c++ library. Fixes reading of certain files by the new core. * Fix build failures on MSVC14 and MSVC 2022 -* Fix build failure on latest 64-bit Ubuntu +* Fix build failure on latest 64-bit Ubuntu * Documentation refers to primary branch as "main" * Update the CI workflow matrix to VFX-CY2022 * Update auto-fetch Imath version to v3.1.5 @@ -672,13 +717,13 @@ handle potential overflow in CheckFile core reading * [1249](https://github.cmo/AcademySoftwareFoundation/openexr/pull/1249) prevent excessive internal memory in CheckFile deep tests * [1247](https://github.com/AcademySoftwareFoundation/openexr/pull/1247) -Update to zlib 1.2.12 and Imath 3.1.5 +Update to zlib 1.2.12 and Imath 3.1.5 * [1246](https://github.com/AcademySoftwareFoundation/openexr/pull/1246) -move out of bounds check inside loop +move out of bounds check inside loop * [1245](https://github.com/AcademySoftwareFoundation/openexr/pull/1245) -Implement corrupt chunk table reconstruction for Core +Implement corrupt chunk table reconstruction for Core * [1244](https://github.com/AcademySoftwareFoundation/openexr/pull/1244) -Match cpp header checks +Match cpp header checks * [1239](https://github.com/AcademySoftwareFoundation/openexr/pull/1239) Add #include for MSVC14 * [1238](https://github.com/AcademySoftwareFoundation/openexr/pull/1238) @@ -698,7 +743,7 @@ Make local build with Imath Patch release that addresses various issues: -* Several bug fixes to properly reject invalid input upon read +* Several bug fixes to properly reject invalid input upon read * A check to enable SSE2 when building with Visual Studio * A check to fix building with VisualStudio on ARM64 * Update the automatically-downloaded version of Imath to v3.1.4 @@ -735,11 +780,11 @@ Specific OSS-fuzz issues: * [1225](https://github.com/AcademySoftwareFoundation/openexr/pull/1225) Bazel build: Update Imath * [1224](https://github.com/AcademySoftwareFoundation/openexr/pull/1224) -Add error check to prevent corrupt files trying to unpack +Add error check to prevent corrupt files trying to unpack * [1223](https://github.com/AcademySoftwareFoundation/openexr/pull/1223) Fix issues with a a "short" huf table and checking boundary conditions, missing return value * [1222](https://github.com/AcademySoftwareFoundation/openexr/pull/1222) -Fix OSS Fuzz 43763, 43745 +Fix OSS Fuzz 43763, 43745 * [1218](https://github.com/AcademySoftwareFoundation/openexr/pull/1218) OSS-Fuzz pass 15jan2022 * [1217](https://github.com/AcademySoftwareFoundation/openexr/pull/1217) @@ -950,9 +995,9 @@ Specific OSS-fuzz issues: * [1159](https://github.com/AcademySoftwareFoundation/openexr/pull/1159) Fix unterminated string causing issue with print * [1158](https://github.com/AcademySoftwareFoundation/openexr/pull/1158) - Fix memory leak when unable to parse the channel list + Fix memory leak when unable to parse the channel list * [1157](https://github.com/AcademySoftwareFoundation/openexr/pull/1157) - Fix leak when parsing header with duplicate attribute names + Fix leak when parsing header with duplicate attribute names * [1156](https://github.com/AcademySoftwareFoundation/openexr/pull/1156) Fixes a use-after-free when an invalid type string is provided * [1155](https://github.com/AcademySoftwareFoundation/openexr/pull/1155) @@ -960,47 +1005,47 @@ Specific OSS-fuzz issues: * [1153](https://github.com/AcademySoftwareFoundation/openexr/pull/1153) Avoid div by zero with test for bad chromaticities in RGBtoXYZ * [1152](https://github.com/AcademySoftwareFoundation/openexr/pull/1152) - prevent overflow in bytesPerDeepLineTable + prevent overflow in bytesPerDeepLineTable * [1151](https://github.com/AcademySoftwareFoundation/openexr/pull/1151) - Add additional text to ensure correct detection for threads + Add additional text to ensure correct detection for threads * [1147](https://github.com/AcademySoftwareFoundation/openexr/pull/1147) - Simplify the definition for bswap_32 for NetBSD + Simplify the definition for bswap_32 for NetBSD * [1142](https://github.com/AcademySoftwareFoundation/openexr/pull/1142) - Cleanup cmake thread detection + Cleanup cmake thread detection * [1141](https://github.com/AcademySoftwareFoundation/openexr/pull/1141) - Fix issue with unpacked size computation + Fix issue with unpacked size computation * [1138](https://github.com/AcademySoftwareFoundation/openexr/pull/1138) - the HufDec struct used during decompression also contains a pointer + the HufDec struct used during decompression also contains a pointer * [1136](https://github.com/AcademySoftwareFoundation/openexr/pull/1136) - Fixes #1135, test which assumed 64-bit pointer size + Fixes #1135, test which assumed 64-bit pointer size * [1134](https://github.com/AcademySoftwareFoundation/openexr/pull/1134) - Clean up enum declarations in OpenEXRCore + Clean up enum declarations in OpenEXRCore * [1133](https://github.com/AcademySoftwareFoundation/openexr/pull/1133) - Fix copy/paste error in special case unpack routine + Fix copy/paste error in special case unpack routine * [1132](https://github.com/AcademySoftwareFoundation/openexr/pull/1132) - Build sphinx/doxygen docs with CMake + Build sphinx/doxygen docs with CMake * [1131](https://github.com/AcademySoftwareFoundation/openexr/pull/1131) - Retire old docs + Retire old docs * [1130](https://github.com/AcademySoftwareFoundation/openexr/pull/1130) - Clean up OpenEXRCore doxygen comments + Clean up OpenEXRCore doxygen comments * [1129](https://github.com/AcademySoftwareFoundation/openexr/pull/1129) - Guard ``__has_attribute`` for compilers that don't support it + Guard ``__has_attribute`` for compilers that don't support it * [1124](https://github.com/AcademySoftwareFoundation/openexr/pull/1124) - Remove throw from ~IlmThread + Remove throw from ~IlmThread * [1123](https://github.com/AcademySoftwareFoundation/openexr/pull/1123) - Require Imath 3.1 + Require Imath 3.1 * [1122](https://github.com/AcademySoftwareFoundation/openexr/pull/1122) - Remove stray and unnecessary Imf:: namespace prefixes + Remove stray and unnecessary Imf:: namespace prefixes * [1120](https://github.com/AcademySoftwareFoundation/openexr/pull/1120) - Docs: fixed wrong code examples in "how to read a file" section + Docs: fixed wrong code examples in "how to read a file" section * [1111](https://github.com/AcademySoftwareFoundation/openexr/pull/1111) - Fix document cross-references in .rst files and other gotchas + Fix document cross-references in .rst files and other gotchas * [1108](https://github.com/AcademySoftwareFoundation/openexr/pull/1108) - Fix formatting in InterpretingDeepPixels.rst: + Fix formatting in InterpretingDeepPixels.rst: * [1104](https://github.com/AcademySoftwareFoundation/openexr/pull/1104) - ``TheoryDeepPixels.rst`` first pass converson from latex + ``TheoryDeepPixels.rst`` first pass converson from latex * [1042](https://github.com/AcademySoftwareFoundation/openexr/pull/1042) - Fix broken link for releases + Fix broken link for releases ## Version 3.1.1 (August 2, 2021) @@ -1124,7 +1169,7 @@ pkg-config, as well as miscellaneous bugs/security issues. * [1064](https://github.com/AcademySoftwareFoundation/openexr/pull/1064) Use CMAKE_INSTALL_FULL_LIBDIR/INCLUDEDIR in pkgconfig for 3.* * [1051](https://github.com/AcademySoftwareFoundation/openexr/pull/1051) Fix non-versioned library symlinks in debug build. * [1050](https://github.com/AcademySoftwareFoundation/openexr/pull/1050) Use CMAKE__POSTFIX for .pc file lib suffix. -* [1045](https://github.com/AcademySoftwareFoundation/openexr/pull/1045) Fixes #1039: The vtable for TiledRgbaInputFile was not properly tagged as export +* [1045](https://github.com/AcademySoftwareFoundation/openexr/pull/1045) Fixes #1039: The vtable for TiledRgbaInputFile was not properly tagged as export * [1038](https://github.com/AcademySoftwareFoundation/openexr/pull/1038) fix/extend part number validation in MultiPart methods * [1037](https://github.com/AcademySoftwareFoundation/openexr/pull/1037) verify data size in deepscanlines with NO_COMPRESSION * [1036](https://github.com/AcademySoftwareFoundation/openexr/pull/1036) detect buffer overflows in RleUncompress @@ -1159,17 +1204,17 @@ Specific OSS-fuzz issues: ### Merged Pull Requests -* [1015](https://github.com/AcademySoftwareFoundation/openexr/pull/1015) Improvements for Bazel build support -* [1011](https://github.com/AcademySoftwareFoundation/openexr/pull/1011) Restore fix to macOS universal 2 build lost from #854 -* [1009](https://github.com/AcademySoftwareFoundation/openexr/pull/1009) Remove test/warning about CMake version < 3.11 -* [1008](https://github.com/AcademySoftwareFoundation/openexr/pull/1008) Clean up setting of OpenEXR version -* [1007](https://github.com/AcademySoftwareFoundation/openexr/pull/1007) Fix TimeCode.frame max value to be 29 instead of 59 -* [1003](https://github.com/AcademySoftwareFoundation/openexr/pull/1003) Prevent overflow in getScanlineChunkOffsetTableSize -* [1001](https://github.com/AcademySoftwareFoundation/openexr/pull/1001) Update CHANGES and SECURITY with recent CVE's -* [995](https://github.com/AcademySoftwareFoundation/openexr/pull/995) Don't impose C++14 on downstream projects -* [993](https://github.com/AcademySoftwareFoundation/openexr/pull/993) Add STATUS message showing Imath_DIR -* [992](https://github.com/AcademySoftwareFoundation/openexr/pull/992) exrcheck -v prints OpenEXR and Imath versions and lib versions -* [991](https://github.com/AcademySoftwareFoundation/openexr/pull/991) exrcheck: make readDeepTile allocate memory for just one tile +* [1015](https://github.com/AcademySoftwareFoundation/openexr/pull/1015) Improvements for Bazel build support +* [1011](https://github.com/AcademySoftwareFoundation/openexr/pull/1011) Restore fix to macOS universal 2 build lost from #854 +* [1009](https://github.com/AcademySoftwareFoundation/openexr/pull/1009) Remove test/warning about CMake version < 3.11 +* [1008](https://github.com/AcademySoftwareFoundation/openexr/pull/1008) Clean up setting of OpenEXR version +* [1007](https://github.com/AcademySoftwareFoundation/openexr/pull/1007) Fix TimeCode.frame max value to be 29 instead of 59 +* [1003](https://github.com/AcademySoftwareFoundation/openexr/pull/1003) Prevent overflow in getScanlineChunkOffsetTableSize +* [1001](https://github.com/AcademySoftwareFoundation/openexr/pull/1001) Update CHANGES and SECURITY with recent CVE's +* [995](https://github.com/AcademySoftwareFoundation/openexr/pull/995) Don't impose C++14 on downstream projects +* [993](https://github.com/AcademySoftwareFoundation/openexr/pull/993) Add STATUS message showing Imath_DIR +* [992](https://github.com/AcademySoftwareFoundation/openexr/pull/992) exrcheck -v prints OpenEXR and Imath versions and lib versions +* [991](https://github.com/AcademySoftwareFoundation/openexr/pull/991) exrcheck: make readDeepTile allocate memory for just one tile ## Version 3.0.1 (April 1, 2021) @@ -1223,18 +1268,18 @@ Contains all changes in [3.0.1-beta](#version-301-beta-march-28-2021) and [3.0.0 Beta patch release: -* OSS-fuzz [32370](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32370) Out-of-memory in openexr_exrcheck_fuzzer ([987](https://github.com/AcademySoftwareFoundation/openexr/pull/987)) -* OSS-fuzz [32067](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32067) Out-of-memory in openexr_exrcheck_fuzzer ([966](https://github.com/AcademySoftwareFoundation/openexr/pull/966)) -* OSS-fuzz [31172](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31172) Timeout in openexr_exrcheck_fuzzer ([987](https://github.com/AcademySoftwareFoundation/openexr/pull/987)) +* OSS-fuzz [32370](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32370) Out-of-memory in openexr_exrcheck_fuzzer ([987](https://github.com/AcademySoftwareFoundation/openexr/pull/987)) +* OSS-fuzz [32067](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32067) Out-of-memory in openexr_exrcheck_fuzzer ([966](https://github.com/AcademySoftwareFoundation/openexr/pull/966)) +* OSS-fuzz [31172](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31172) Timeout in openexr_exrcheck_fuzzer ([987](https://github.com/AcademySoftwareFoundation/openexr/pull/987)) ### Merged Pull Requests * [989](https://github.com/AcademySoftwareFoundation/openexr/pull/989) Release notes for 3.0.1-beta * [988](https://github.com/AcademySoftwareFoundation/openexr/pull/988) Remove deprecated argument to getChunkOffsetTableSize() -* [987](https://github.com/AcademySoftwareFoundation/openexr/pull/987) exrcheck: reduceMemory now checks pixel size and scanline compression mode +* [987](https://github.com/AcademySoftwareFoundation/openexr/pull/987) exrcheck: reduceMemory now checks pixel size and scanline compression mode * [983](https://github.com/AcademySoftwareFoundation/openexr/pull/983) Reduce warnigns reported in #982 * [980](https://github.com/AcademySoftwareFoundation/openexr/pull/980) Bazel cherry picks -* [979](https://github.com/AcademySoftwareFoundation/openexr/pull/979) Pin Imath version to 3.0.0-beta on RB-3.0 +* [979](https://github.com/AcademySoftwareFoundation/openexr/pull/979) Pin Imath version to 3.0.0-beta on RB-3.0 * [968](https://github.com/AcademySoftwareFoundation/openexr/pull/968) Fix typos in Int64/SInt64 deprecation warnings * [966](https://github.com/AcademySoftwareFoundation/openexr/pull/966) exrcheck: account for size of pixels when estimating memory @@ -1288,32 +1333,32 @@ new features: Specific OSS-fuzz issues addressed include: -* OSS-fuzz [31539](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31539) Out-of-memory in openexr_exrcheck_fuzzer ([946](https://github.com/AcademySoftwareFoundation/openexr/pull/946)) -* OSS-fuzz [31390](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31390) Out-of-memory in openexr_exrcheck_fuzzer ([939](https://github.com/AcademySoftwareFoundation/openexr/pull/939)) -* OSS-fuzz [31293](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31293) Segv on unknown address in Imf_2_5::copyIntoFrameBuffer ([932](https://github.com/AcademySoftwareFoundation/openexr/pull/932)) -* OSS-fuzz [31291](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31291) Sanitizer CHECK failure in "((0 && "Address is not in memory and not in shadow?")) != (0)" (0x0, 0x0) ([932](https://github.com/AcademySoftwareFoundation/openexr/pull/932)) -* OSS-fuzz [31228](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31228) Integer-overflow in bool Imf_2_5::readDeepTile ([930](https://github.com/AcademySoftwareFoundation/openexr/pull/930)) -* OSS-fuzz [31221](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31221) Integer-overflow in bool Imf_2_5::readDeepTile ([930](https://github.com/AcademySoftwareFoundation/openexr/pull/930)) -* OSS-fuzz [31072](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31072) Out-of-memory in openexr_exrcheck_fuzzer ([928](https://github.com/AcademySoftwareFoundation/openexr/pull/928)) -* OSS-fuzz [31044](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31044) Timeout in openexr_exrcheck_fuzzer ([926](https://github.com/AcademySoftwareFoundation/openexr/pull/926)) -* OSS-fuzz [31015](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31015) Direct-leak in Imf_2_5::TypedAttribute::readValueFrom ([925](https://github.com/AcademySoftwareFoundation/openexr/pull/925)) -* OSS-fuzz [30969](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30969) Direct-leak in Imf_2_5::DwaCompressor::LossyDctDecoderBase::execute ([923](https://github.com/AcademySoftwareFoundation/openexr/pull/923)) -* OSS-fuzz [30616](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30616) Timeout in openexr_exrcheck_fuzzer ([919](https://github.com/AcademySoftwareFoundation/openexr/pull/919)) -* OSS-fuzz [30605](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30605) Out-of-memory in openexr_exrcheck_fuzzer ([920](https://github.com/AcademySoftwareFoundation/openexr/pull/920)) -* OSS-fuzz [30249](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30249) Out-of-memory in openexr_exrcheck_fuzzer ([915](https://github.com/AcademySoftwareFoundation/openexr/pull/915)) -* OSS-fuzz [29682](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29682) Out-of-memory in openexr_exrcheck_fuzzer ([902](https://github.com/AcademySoftwareFoundation/openexr/pull/902)) -* OSS-fuzz [29393](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29393) Timeout in openexr_exrcheck_fuzzer ([902](https://github.com/AcademySoftwareFoundation/openexr/pull/902)) -* OSS-fuzz [28419](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28419) Out-of-memory in openexr_exrcheck_fuzzer ([895](https://github.com/AcademySoftwareFoundation/openexr/pull/895)) -* OSS-fuzz [28155](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28155) Crash in Imf_2_5::PtrIStream::read ([872](https://github.com/AcademySoftwareFoundation/openexr/pull/872)) -* OSS-fuzz [28051](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28051) Heap-buffer-overflow in Imf_2_5::copyIntoFrameBuffer ([872](https://github.com/AcademySoftwareFoundation/openexr/pull/872)) -* OSS-fuzz [27409](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27409) Out-of-memory in openexr_exrcheck_fuzzer ([863](https://github.com/AcademySoftwareFoundation/openexr/pull/863)) -* OSS-fuzz [26641](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=26641) Invalid-enum-value in readSingleImage ([859](https://github.com/AcademySoftwareFoundation/openexr/pull/859)) -* OSS-fuzz [25648](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25648) Out-of-memory in openexr_scanlines_fuzzer ([839](https://github.com/AcademySoftwareFoundation/openexr/pull/839)) -* OSS-fuzz [25156](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25156) Out-of-memory in openexr_scanlines_fuzzer ([824](https://github.com/AcademySoftwareFoundation/openexr/pull/824)) -* OSS-fuzz [25002](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25002) Out-of-memory in openexr_deepscanlines_fuzzer ([824](https://github.com/AcademySoftwareFoundation/openexr/pull/824)) -* OSS-fuzz [24959](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24959) Integer-overflow in Imf_2_5::cachePadding ([824](https://github.com/AcademySoftwareFoundation/openexr/pull/824)) -* OSS-fuzz [24857](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24857) Out-of-memory in openexr_exrheader_fuzzer ([824](https://github.com/AcademySoftwareFoundation/openexr/pull/824)) -* OSS-fuzz [24573](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24573) Out-of-memory in openexr_exrenvmap_fuzzer ([824](https://github.com/AcademySoftwareFoundation/openexr/pull/824)) +* OSS-fuzz [31539](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31539) Out-of-memory in openexr_exrcheck_fuzzer ([946](https://github.com/AcademySoftwareFoundation/openexr/pull/946)) +* OSS-fuzz [31390](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31390) Out-of-memory in openexr_exrcheck_fuzzer ([939](https://github.com/AcademySoftwareFoundation/openexr/pull/939)) +* OSS-fuzz [31293](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31293) Segv on unknown address in Imf_2_5::copyIntoFrameBuffer ([932](https://github.com/AcademySoftwareFoundation/openexr/pull/932)) +* OSS-fuzz [31291](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31291) Sanitizer CHECK failure in "((0 && "Address is not in memory and not in shadow?")) != (0)" (0x0, 0x0) ([932](https://github.com/AcademySoftwareFoundation/openexr/pull/932)) +* OSS-fuzz [31228](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31228) Integer-overflow in bool Imf_2_5::readDeepTile ([930](https://github.com/AcademySoftwareFoundation/openexr/pull/930)) +* OSS-fuzz [31221](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31221) Integer-overflow in bool Imf_2_5::readDeepTile ([930](https://github.com/AcademySoftwareFoundation/openexr/pull/930)) +* OSS-fuzz [31072](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31072) Out-of-memory in openexr_exrcheck_fuzzer ([928](https://github.com/AcademySoftwareFoundation/openexr/pull/928)) +* OSS-fuzz [31044](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31044) Timeout in openexr_exrcheck_fuzzer ([926](https://github.com/AcademySoftwareFoundation/openexr/pull/926)) +* OSS-fuzz [31015](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31015) Direct-leak in Imf_2_5::TypedAttribute::readValueFrom ([925](https://github.com/AcademySoftwareFoundation/openexr/pull/925)) +* OSS-fuzz [30969](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30969) Direct-leak in Imf_2_5::DwaCompressor::LossyDctDecoderBase::execute ([923](https://github.com/AcademySoftwareFoundation/openexr/pull/923)) +* OSS-fuzz [30616](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30616) Timeout in openexr_exrcheck_fuzzer ([919](https://github.com/AcademySoftwareFoundation/openexr/pull/919)) +* OSS-fuzz [30605](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30605) Out-of-memory in openexr_exrcheck_fuzzer ([920](https://github.com/AcademySoftwareFoundation/openexr/pull/920)) +* OSS-fuzz [30249](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30249) Out-of-memory in openexr_exrcheck_fuzzer ([915](https://github.com/AcademySoftwareFoundation/openexr/pull/915)) +* OSS-fuzz [29682](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29682) Out-of-memory in openexr_exrcheck_fuzzer ([902](https://github.com/AcademySoftwareFoundation/openexr/pull/902)) +* OSS-fuzz [29393](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29393) Timeout in openexr_exrcheck_fuzzer ([902](https://github.com/AcademySoftwareFoundation/openexr/pull/902)) +* OSS-fuzz [28419](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28419) Out-of-memory in openexr_exrcheck_fuzzer ([895](https://github.com/AcademySoftwareFoundation/openexr/pull/895)) +* OSS-fuzz [28155](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28155) Crash in Imf_2_5::PtrIStream::read ([872](https://github.com/AcademySoftwareFoundation/openexr/pull/872)) +* OSS-fuzz [28051](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28051) Heap-buffer-overflow in Imf_2_5::copyIntoFrameBuffer ([872](https://github.com/AcademySoftwareFoundation/openexr/pull/872)) +* OSS-fuzz [27409](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27409) Out-of-memory in openexr_exrcheck_fuzzer ([863](https://github.com/AcademySoftwareFoundation/openexr/pull/863)) +* OSS-fuzz [26641](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=26641) Invalid-enum-value in readSingleImage ([859](https://github.com/AcademySoftwareFoundation/openexr/pull/859)) +* OSS-fuzz [25648](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25648) Out-of-memory in openexr_scanlines_fuzzer ([839](https://github.com/AcademySoftwareFoundation/openexr/pull/839)) +* OSS-fuzz [25156](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25156) Out-of-memory in openexr_scanlines_fuzzer ([824](https://github.com/AcademySoftwareFoundation/openexr/pull/824)) +* OSS-fuzz [25002](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25002) Out-of-memory in openexr_deepscanlines_fuzzer ([824](https://github.com/AcademySoftwareFoundation/openexr/pull/824)) +* OSS-fuzz [24959](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24959) Integer-overflow in Imf_2_5::cachePadding ([824](https://github.com/AcademySoftwareFoundation/openexr/pull/824)) +* OSS-fuzz [24857](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24857) Out-of-memory in openexr_exrheader_fuzzer ([824](https://github.com/AcademySoftwareFoundation/openexr/pull/824)) +* OSS-fuzz [24573](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24573) Out-of-memory in openexr_exrenvmap_fuzzer ([824](https://github.com/AcademySoftwareFoundation/openexr/pull/824)) ### Merged Pull Requests @@ -1397,7 +1442,7 @@ Patch release that backports two fixes: Patch release with security and build fixes: * OSS-fuzz [28051](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28051) Heap-buffer-overflow in Imf_2_5::copyIntoFrameBuffer -* OSS-fuzz [28155](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28155) Crash in Imf_2_5::PtrIStream::read +* OSS-fuzz [28155](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28155) Crash in Imf_2_5::PtrIStream::read * Fix pkg-config lib suffix for cmake debug builds ### Merged Pull Requests @@ -1439,9 +1484,9 @@ Specific OSS-fuzz issues include: * [893](https://github.com/AcademySoftwareFoundation/openexr/pull/893) Include where required by newer compilers * [889](https://github.com/AcademySoftwareFoundation/openexr/pull/889) Add explicit #include for numeric_limits * [854](https://github.com/AcademySoftwareFoundation/openexr/pull/854) Fix Apple Universal 2 (arm64/x86_64) builds - + ## Version 2.5.4 (December 31, 2020) - + Patch release with various bug/sanitizer/security fixes, primarily related to reading corrupted input files. @@ -1525,7 +1570,7 @@ Patch release with various bug/security fixes and build/install fixes, plus a pe * [812](https://github.com/AcademySoftwareFoundation/openexr/pull/812) free memory if precalculateTileInfo throws * [809](https://github.com/AcademySoftwareFoundation/openexr/pull/809) Avoid integer overflow in calculateNumTiles() * [806](https://github.com/AcademySoftwareFoundation/openexr/pull/806) suppress clang undefined behavior sanitizer in EnvmapAttribute::copyValuesFrom() -* [805](https://github.com/AcademySoftwareFoundation/openexr/pull/805) remove extraneous vector allocation in getScanlineChunkOffsetTableSize +* [805](https://github.com/AcademySoftwareFoundation/openexr/pull/805) remove extraneous vector allocation in getScanlineChunkOffsetTableSize * [804](https://github.com/AcademySoftwareFoundation/openexr/pull/804) prevent invalid tile description enums * [803](https://github.com/AcademySoftwareFoundation/openexr/pull/803) Fix stack corruption in Matrix tests * [801](https://github.com/AcademySoftwareFoundation/openexr/pull/801) prevent invalid Compression enum values being read from file @@ -1601,10 +1646,10 @@ Patch release with various bug/security fixes and build/install fixes. ### Summary -* [CVE-2020-15305](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15305) Invalid input could cause a heap-use-after-free error in DeepScanLineInputFile::DeepScanLineInputFile() -* [CVE-2020-15306](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15306) Invalid chunkCount attributes could cause heap buffer overflow in getChunkOffsetTableSize() -* [CVE-2020-15304](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15304) Invalid tiled input file could cause invalid memory access TiledInputFile::TiledInputFile() -* OpenEXRConfig.h now correctly sets OPENEXR_PACKAGE_STRING to "OpenEXR" (rather than "IlmBase") +* [CVE-2020-15305](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15305) Invalid input could cause a heap-use-after-free error in DeepScanLineInputFile::DeepScanLineInputFile() +* [CVE-2020-15306](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15306) Invalid chunkCount attributes could cause heap buffer overflow in getChunkOffsetTableSize() +* [CVE-2020-15304](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15304) Invalid tiled input file could cause invalid memory access TiledInputFile::TiledInputFile() +* OpenEXRConfig.h now correctly sets OPENEXR_PACKAGE_STRING to "OpenEXR" (rather than "IlmBase") * Various Windows build fixes ### Merged Pull Requests @@ -1675,11 +1720,11 @@ Minor release with miscellaneous bug fixes and small features ### Merged Pull Requests * [712](https://github.com/AcademySoftwareFoundation/openexr/pull/712) Removed #include PyIlmBaseConfigInternal.h from all public .h files. -* [711](https://github.com/AcademySoftwareFoundation/openexr/pull/711) Rewrote testToFloat(). +* [711](https://github.com/AcademySoftwareFoundation/openexr/pull/711) Rewrote testToFloat(). * [709](https://github.com/AcademySoftwareFoundation/openexr/pull/709) Fix clean pthreads strikes back * [708](https://github.com/AcademySoftwareFoundation/openexr/pull/708) Fix clean pthreads -* [707](https://github.com/AcademySoftwareFoundation/openexr/pull/707) A clean version of #673: Allow the use of Pthreads with WIN32/64 -* [705](https://github.com/AcademySoftwareFoundation/openexr/pull/705) added recent commits and PR's to 2.5.0 release notes +* [707](https://github.com/AcademySoftwareFoundation/openexr/pull/707) A clean version of #673: Allow the use of Pthreads with WIN32/64 +* [705](https://github.com/AcademySoftwareFoundation/openexr/pull/705) added recent commits and PR's to 2.5.0 release notes * [704](https://github.com/AcademySoftwareFoundation/openexr/pull/704) fixed typos in README.md * [703](https://github.com/AcademySoftwareFoundation/openexr/pull/703) Release notes for 2.2.2 * [702](https://github.com/AcademySoftwareFoundation/openexr/pull/702) bump version on the 2.2 branch to 2.2.2 @@ -2029,9 +2074,9 @@ Also: This is a patch release that includes fixes for the following security vulnerabilities: -* [CVE-2020-15305](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15305) Invalid input could cause a heap-use-after-free error in DeepScanLineInputFile::DeepScanLineInputFile() -* [CVE-2020-15306](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15306) Invalid chunkCount attributes could cause heap buffer overflow in getChunkOffsetTableSize() -* [CVE-2020-15304](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15304) Invalid tiled input file could cause invalid memory access TiledInputFile::TiledInputFile() +* [CVE-2020-15305](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15305) Invalid input could cause a heap-use-after-free error in DeepScanLineInputFile::DeepScanLineInputFile() +* [CVE-2020-15306](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15306) Invalid chunkCount attributes could cause heap buffer overflow in getChunkOffsetTableSize() +* [CVE-2020-15304](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15304) Invalid tiled input file could cause invalid memory access TiledInputFile::TiledInputFile() * OpenEXRConfig.h now correctly sets OPENEXR_PACKAGE_STRING to "OpenEXR" (rather than "IlmBase") ### Merged Pull Requests @@ -2069,12 +2114,12 @@ This version fixes the following security vulnerabilities: ### Merged Pull Requests * [659](https://github.com/AcademySoftwareFoundation/openexr/pull/659) fix memory leaks and invalid memory accesses -* [609](https://github.com/AcademySoftwareFoundation/openexr/pull/609) Fixes #593, others - issues with pyilmbase install -* [605](https://github.com/AcademySoftwareFoundation/openexr/pull/605) No longer install ImfMisc.h -* [603](https://github.com/AcademySoftwareFoundation/openexr/pull/603) Update Azure build to work with new RB-2.4 branch. +* [609](https://github.com/AcademySoftwareFoundation/openexr/pull/609) Fixes #593, others - issues with pyilmbase install +* [605](https://github.com/AcademySoftwareFoundation/openexr/pull/605) No longer install ImfMisc.h +* [603](https://github.com/AcademySoftwareFoundation/openexr/pull/603) Update Azure build to work with new RB-2.4 branch. * [596](https://github.com/AcademySoftwareFoundation/openexr/pull/596) Add Boost::Python to Python modules link libraries * [592](https://github.com/AcademySoftwareFoundation/openexr/pull/592) Take DESTDIR into account when creating library symlinks -* [589](https://github.com/AcademySoftwareFoundation/openexr/pull/589) Fix int32 overflow bugs with deep images +* [589](https://github.com/AcademySoftwareFoundation/openexr/pull/589) Fix int32 overflow bugs with deep images ### Commits \[ git log v2.4.0...v2.4.1\] @@ -2168,7 +2213,7 @@ This version fixes the following security vulnerabilities: * [357](https://github.com/AcademySoftwareFoundation/openexr/issues/357) Move ILMBASE_HAVE_CONTROL_REGISTER_SUPPORT to a private header * [353](https://github.com/AcademySoftwareFoundation/openexr/issues/353) Add --with-cg-libdir option to support arch dependant Cg library paths * [352](https://github.com/AcademySoftwareFoundation/openexr/issues/352) buffer-overflow -* [351](https://github.com/AcademySoftwareFoundation/openexr/issues/351) Out of Memory +* [351](https://github.com/AcademySoftwareFoundation/openexr/issues/351) Out of Memory * [350](https://github.com/AcademySoftwareFoundation/openexr/issues/350) heap-buffer-overflow * [348](https://github.com/AcademySoftwareFoundation/openexr/issues/348) Possible compile/install issues in PyIlmBase with multiple jobs * [343](https://github.com/AcademySoftwareFoundation/openexr/issues/343) CMake issues on Windows @@ -2205,7 +2250,7 @@ This version fixes the following security vulnerabilities: * [244](https://github.com/AcademySoftwareFoundation/openexr/issues/244) Cannot write to Z channel * [240](https://github.com/AcademySoftwareFoundation/openexr/issues/240) CpuId' was not declared in this scope * [239](https://github.com/AcademySoftwareFoundation/openexr/issues/239) pyilmbase error vs2015 with boost1.61 and python27 please help ,alse error -* [238](https://github.com/AcademySoftwareFoundation/openexr/issues/238) heap-based buffer overflow in exrmaketiled +* [238](https://github.com/AcademySoftwareFoundation/openexr/issues/238) heap-based buffer overflow in exrmaketiled * [237](https://github.com/AcademySoftwareFoundation/openexr/issues/237) Can RgbaOutputFile use 32-bit float? * [234](https://github.com/AcademySoftwareFoundation/openexr/issues/234) How to link compress2, uncompress and compress on 64 bit Windows 7 & Visual Studio 2015 when building openexr? * [232](https://github.com/AcademySoftwareFoundation/openexr/issues/232) Multiple segmentation faults CVE-2017-9110 to CVE-2017-9116 @@ -2214,7 +2259,7 @@ This version fixes the following security vulnerabilities: * [226](https://github.com/AcademySoftwareFoundation/openexr/issues/226) IMathExc - multiple definitions on linking. * [224](https://github.com/AcademySoftwareFoundation/openexr/issues/224) Make PyIlmBase compatible with Python 3.x * [217](https://github.com/AcademySoftwareFoundation/openexr/issues/217) Issue with optimized build compiled with Intel C/C++ compiler (ICC) -* [213](https://github.com/AcademySoftwareFoundation/openexr/issues/213) AddressSanitizer CHECK failed in ImageMagick fuzz test. +* [213](https://github.com/AcademySoftwareFoundation/openexr/issues/213) AddressSanitizer CHECK failed in ImageMagick fuzz test. * [208](https://github.com/AcademySoftwareFoundation/openexr/issues/208) build issues on OSX: ``ImfDwaCompressorSimd.h:483:no such instruction: vmovaps (%rsi), %ymm0`` * [205](https://github.com/AcademySoftwareFoundation/openexr/issues/205) Building with VS 2015 * [202](https://github.com/AcademySoftwareFoundation/openexr/issues/202) Documentation error: File Layout "Verson Field" lists wrong bits @@ -2238,7 +2283,7 @@ This version fixes the following security vulnerabilities: * [125](https://github.com/AcademySoftwareFoundation/openexr/issues/125) cmake: cannot link against static ilmbase libraries * [123](https://github.com/AcademySoftwareFoundation/openexr/issues/123) cmake: allow building of static and dynamic libs at the same time * [105](https://github.com/AcademySoftwareFoundation/openexr/issues/105) Building pyilmbase 1.0.0 issues -* [098](https://github.com/AcademySoftwareFoundation/openexr/issues/98) Race condition in creation of LockedTypeMap and registerAttributeTypes +* [098](https://github.com/AcademySoftwareFoundation/openexr/issues/98) Race condition in creation of LockedTypeMap and registerAttributeTypes * [095](https://github.com/AcademySoftwareFoundation/openexr/issues/95) Compile fail with MinGW-w64 on Windows * [094](https://github.com/AcademySoftwareFoundation/openexr/issues/94) CMake does not generate "toFloat.h" with Ninja * [092](https://github.com/AcademySoftwareFoundation/openexr/issues/92) MultiPartOutputFile API fails when single part has no type @@ -2465,7 +2510,7 @@ was leading to a failure to find PyImath.h. Signed-off-by: Cary Phillips -* [remove sanityCheck for 32 bit overflow. Add test for large offsets](https://github.com/AcademySoftwareFoundation/openexr/commit/b0acdd7bcbd006ff93972cc3c6d66c617280c557) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-23) +* [remove sanityCheck for 32 bit overflow. Add test for large offsets](https://github.com/AcademySoftwareFoundation/openexr/commit/b0acdd7bcbd006ff93972cc3c6d66c617280c557) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-23) * [Makes building of fuzz test optional](https://github.com/AcademySoftwareFoundation/openexr/commit/73d5676079d77b4241719f57d0219a3287503b8b) ([Kimball Thurston](@kdt3rd@gmail.com) 2019-08-09) This further makes the fuzz test compilation dependent on whether you want to include the fuzz test in the ctest "make test" rule. This is @@ -2473,13 +2518,13 @@ mostly for sonar cloud such that it doesn't complain that the fuzz test code isn't being run as a false positive (because it isn't included in the test) Signed-off-by: Kimball Thurston -* [Added MacOS jobs to Azure pipeline](https://github.com/AcademySoftwareFoundation/openexr/commit/29eab92cdee9130b7d1cc6adb801966d0bc87c94) ([Christina Tempelaar-Lietz](@xlietz@gmail.com) 2019-07-27) +* [Added MacOS jobs to Azure pipeline](https://github.com/AcademySoftwareFoundation/openexr/commit/29eab92cdee9130b7d1cc6adb801966d0bc87c94) ([Christina Tempelaar-Lietz](@xlietz@gmail.com) 2019-07-27) * [initial draft of release notes for 2.3.1](https://github.com/AcademySoftwareFoundation/openexr/commit/4fa4251dc1cce417a7832478f6d05421561e2fd2) ([Cary Phillips](@cary@ilm.com) 2019-08-06) Signed-off-by: Cary Phillips * [Add //NOSONAR to the "unhandled exception" catches that SonarCloud identifies as vulnerabilities, to suppress the warning. In each of these cases, a comment explains that no action is called for in the catch, so it should not, in fact, be regarded as a bug or vulnerability.](https://github.com/AcademySoftwareFoundation/openexr/commit/c46428acaca50e824403403ebdaec45b97d92bca) ([Cary Phillips](@cary@ilm.com) 2019-07-28) Signed-off-by: Cary Phillips -* [explicitly name the path for the autoconf-generated files in .gitignore.](https://github.com/AcademySoftwareFoundation/openexr/commit/220cfcdd7e08d28098bf13c992d48df4b0ab191d) ([Cary Phillips](@cary@ilm.com) 2019-08-04) +* [explicitly name the path for the autoconf-generated files in .gitignore.](https://github.com/AcademySoftwareFoundation/openexr/commit/220cfcdd7e08d28098bf13c992d48df4b0ab191d) ([Cary Phillips](@cary@ilm.com) 2019-08-04) * [add the file generated by bootstrap/configure to .gitignore.](https://github.com/AcademySoftwareFoundation/openexr/commit/81af15fd5ea58c33cfa18c60797daaba55126c1b) ([Cary Phillips](@cary@ilm.com) 2019-08-04) Signed-off-by: Cary Phillips @@ -2496,17 +2541,17 @@ Signed-off-by: Kimball Thurston * [Fix another set of warnings that crept in during previous fix merges](https://github.com/AcademySoftwareFoundation/openexr/commit/e07ef34af508b7ce9115ebc5454edeaacb35fb8c) ([Kimball Thurston](@kdt3rd@gmail.com) 2019-07-25) Signed-off-by: Kimball Thurston -* [Fix logic for 1 pixel high/wide preview images (Fixes #493)](https://github.com/AcademySoftwareFoundation/openexr/commit/74504503cff86e986bac441213c403b0ba28d58f) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-25) +* [Fix logic for 1 pixel high/wide preview images (Fixes #493)](https://github.com/AcademySoftwareFoundation/openexr/commit/74504503cff86e986bac441213c403b0ba28d58f) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-25) -* [Fix for #494: validate tile coordinates when doing copyPixels](https://github.com/AcademySoftwareFoundation/openexr/commit/6bb36714528a9563dd3b92720c5063a1284b86f8) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-25) +* [Fix for #494: validate tile coordinates when doing copyPixels](https://github.com/AcademySoftwareFoundation/openexr/commit/6bb36714528a9563dd3b92720c5063a1284b86f8) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-25) -* [add test for filled channels in DeepScanlines](https://github.com/AcademySoftwareFoundation/openexr/commit/c04673810a86ba050d809da42339aeb7129fc910) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-18) +* [add test for filled channels in DeepScanlines](https://github.com/AcademySoftwareFoundation/openexr/commit/c04673810a86ba050d809da42339aeb7129fc910) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-18) -* [add test for skipped and filled channels in DeepTiles](https://github.com/AcademySoftwareFoundation/openexr/commit/b1a5c8ca1921a3fc573952c8034fddd8fdac214b) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-18) +* [add test for skipped and filled channels in DeepTiles](https://github.com/AcademySoftwareFoundation/openexr/commit/b1a5c8ca1921a3fc573952c8034fddd8fdac214b) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-18) -* [slightly rearrange test for filled channels](https://github.com/AcademySoftwareFoundation/openexr/commit/3c9d0b244ec31ab5e5849e1b6020c55096707ab5) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-18) +* [slightly rearrange test for filled channels](https://github.com/AcademySoftwareFoundation/openexr/commit/3c9d0b244ec31ab5e5849e1b6020c55096707ab5) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-18) -* [Make sure to skip over slices that will only be filled when computing the uncompressed pixel size. Otherwise chunks that compressed to larger sizes than the original will fail to load.](https://github.com/AcademySoftwareFoundation/openexr/commit/14905ee6d802b27752890d39880cd05338337e39) ([Halfdan Ingvarsson](@halfdan@sidefx.com) 2013-04-25) +* [Make sure to skip over slices that will only be filled when computing the uncompressed pixel size. Otherwise chunks that compressed to larger sizes than the original will fail to load.](https://github.com/AcademySoftwareFoundation/openexr/commit/14905ee6d802b27752890d39880cd05338337e39) ([Halfdan Ingvarsson](@halfdan@sidefx.com) 2013-04-25) * [Fix #491, issue with part number range check reconstructing chunk offset table](https://github.com/AcademySoftwareFoundation/openexr/commit/8b5370c688a7362673c3a5256d93695617a4cd9a) ([Kimball Thurston](@kdt3rd@gmail.com) 2019-07-25) The chunk offset was incorrectly testing for a part number that was the same size (i.e. an invalid index) @@ -2524,7 +2569,7 @@ Signed-off-by: Kimball Thurston * [Revised the overview information in README.md, and condensed the information in the module README.md's, and removed the local AUTHORS, NEWS, ChangeLog files.](https://github.com/AcademySoftwareFoundation/openexr/commit/0c04c734d1a7ba3f3f85577ec56388238c9202c6) ([Cary Phillips](@cary@ilm.com) 2019-07-23) Signed-off-by: Cary Phillips -* [Azure: updated docker containers, added windows install scripts.](https://github.com/AcademySoftwareFoundation/openexr/commit/941082379a49a1aecafe2b9e84f3403314d910a9) ([Christina Tempelaar-Lietz](@xlietz@gmail.com) 2019-07-22) +* [Azure: updated docker containers, added windows install scripts.](https://github.com/AcademySoftwareFoundation/openexr/commit/941082379a49a1aecafe2b9e84f3403314d910a9) ([Christina Tempelaar-Lietz](@xlietz@gmail.com) 2019-07-22) * [rewrite of build and installation documentation in INSTALL.md](https://github.com/AcademySoftwareFoundation/openexr/commit/591b671ba549bccca1e41ad457f569107242565d) ([Cary Phillips](@cary@ilm.com) 2019-07-22) Signed-off-by: Cary Phillips @@ -2651,9 +2696,9 @@ Signed-off-by: Kimball Thurston ThreadPool::hardwareConcurrency, so no abi breakage or api change Signed-off-by: Kimball Thurston -* [use headers.data() instead of &headers[0]](https://github.com/AcademySoftwareFoundation/openexr/commit/42665b55f4062f1492156c7bc9482318c7b49cda) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-17) +* [use headers.data() instead of &headers[0]](https://github.com/AcademySoftwareFoundation/openexr/commit/42665b55f4062f1492156c7bc9482318c7b49cda) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-17) -* [don't index empty array in testMultiPartSharedAttributes](https://github.com/AcademySoftwareFoundation/openexr/commit/bb5aad9b793b1113cae42d80fea8925503607de1) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-16) +* [don't index empty array in testMultiPartSharedAttributes](https://github.com/AcademySoftwareFoundation/openexr/commit/bb5aad9b793b1113cae42d80fea8925503607de1) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-16) * [Added IlmThreadSemaphoreOSX to IlmBase/IlmThread/Makefile.am and added PyIlmBase/PyIlmBase.pc.in back in, looks like it got inadvertently removed by a previous commit.](https://github.com/AcademySoftwareFoundation/openexr/commit/c580d3531c36ed1de35fbfe359eed5f74c2de6dc) ([Cary Phillips](@cary@ilm.com) 2019-07-16) Signed-off-by: Cary Phillips @@ -2691,9 +2736,9 @@ Signed-off-by: Kimball Thurston * [Properly include additional cmake files in "make dist" under autoconf](https://github.com/AcademySoftwareFoundation/openexr/commit/ae54f3d656f8c6336c22385ee5d5ab1f35324c37) ([Kimball Thurston](@kdt3rd@gmail.com) 2019-07-13) Signed-off-by: Kimball Thurston -* [First pass updating the documentation for cmake builds](https://github.com/AcademySoftwareFoundation/openexr/commit/120b93ecf33c45284dff68eaf0ee779fa1cb6747) ([Kimball Thurston](@kdt3rd@gmail.com) 2019-07-12) +* [First pass updating the documentation for cmake builds](https://github.com/AcademySoftwareFoundation/openexr/commit/120b93ecf33c45284dff68eaf0ee779fa1cb6747) ([Kimball Thurston](@kdt3rd@gmail.com) 2019-07-12) -* [Switch testing control to use standard ctest setting option](https://github.com/AcademySoftwareFoundation/openexr/commit/fe6bf4c585723ff8851dfe965343a2adb0f1c1f4) ([Kimball Thurston](@kdt3rd@gmail.com) 2019-07-12) +* [Switch testing control to use standard ctest setting option](https://github.com/AcademySoftwareFoundation/openexr/commit/fe6bf4c585723ff8851dfe965343a2adb0f1c1f4) ([Kimball Thurston](@kdt3rd@gmail.com) 2019-07-12) * [First pass making cross compile work, cross compiling windows using mingw on linux](https://github.com/AcademySoftwareFoundation/openexr/commit/f44721e0c504b0b400a71513600295fc5e00f014) ([Kimball Thurston](@kdt3rd@gmail.com) 2019-07-12) This currently works for building using static libraries, but not yet tested with dlls. @@ -2712,9 +2757,9 @@ distinct / standalone sub-projects with their own finds that should work. Signed-off-by: Kimball Thurston -* [TiledInputFile only supports regular TILEDIMAGE types, not DEEPTILE or unknown tiled types. Enforce for both InputFile and InputPart API. Fixes #266, Related to #70](https://github.com/AcademySoftwareFoundation/openexr/commit/ece555214a63aaf0917ad9df26be7e17451fefb9) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-15) +* [TiledInputFile only supports regular TILEDIMAGE types, not DEEPTILE or unknown tiled types. Enforce for both InputFile and InputPart API. Fixes #266, Related to #70](https://github.com/AcademySoftwareFoundation/openexr/commit/ece555214a63aaf0917ad9df26be7e17451fefb9) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-15) -* [address #271: catch scanlines with negative sizes](https://github.com/AcademySoftwareFoundation/openexr/commit/849c616e0c96665559341451a08fe730534d3cec) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-12) +* [address #271: catch scanlines with negative sizes](https://github.com/AcademySoftwareFoundation/openexr/commit/849c616e0c96665559341451a08fe730534d3cec) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-12) * [TSC meeting notes, July 7, 2019](https://github.com/AcademySoftwareFoundation/openexr/commit/960a56f58da13be6c97c59eae1f57bd8882c4588) ([Cary Phillips](@cary@ilm.com) 2019-07-12) Signed-off-by: Cary Phillips @@ -2738,25 +2783,25 @@ Signed-off-by: Cary Phillips * [New CI with aswfstaging/ci-base image](https://github.com/AcademySoftwareFoundation/openexr/commit/5e7cde5c082881009516aa57a711a19e3eb92f64) ([aloysb](@aloysb@al.com.au) 2019-06-17) Signed-off-by: Aloys Baillet Conflicts: - azure-pipelines.yml + azure-pipelines.yml -* [use static_cast in error test](https://github.com/AcademySoftwareFoundation/openexr/commit/700e4996ce619743d5bebe07b4158ccc4547e9ad) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-11) +* [use static_cast in error test](https://github.com/AcademySoftwareFoundation/openexr/commit/700e4996ce619743d5bebe07b4158ccc4547e9ad) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-11) -* [throw better exceptions in multipart chunk reconstruction](https://github.com/AcademySoftwareFoundation/openexr/commit/001a852cca078c23d98c6a550c65268cc160042a) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-11) +* [throw better exceptions in multipart chunk reconstruction](https://github.com/AcademySoftwareFoundation/openexr/commit/001a852cca078c23d98c6a550c65268cc160042a) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-11) -* [Fix for #263: prevent overflow in multipart chunk offset table reconstruction](https://github.com/AcademySoftwareFoundation/openexr/commit/6e4b6ac0b5223f6e813e025532b3f0fc4e02f541) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-09) +* [Fix for #263: prevent overflow in multipart chunk offset table reconstruction](https://github.com/AcademySoftwareFoundation/openexr/commit/6e4b6ac0b5223f6e813e025532b3f0fc4e02f541) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-09) -* [protect against negative sized tiles](https://github.com/AcademySoftwareFoundation/openexr/commit/395aa4cbcaf91ce37aeb5e9876c44291bed4d1f9) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-11) +* [protect against negative sized tiles](https://github.com/AcademySoftwareFoundation/openexr/commit/395aa4cbcaf91ce37aeb5e9876c44291bed4d1f9) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-11) -* [apply suggested for for #262](https://github.com/AcademySoftwareFoundation/openexr/commit/9e9e4616f60891a8b27ee9cdeac930e5686dca4f) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-10) +* [apply suggested for for #262](https://github.com/AcademySoftwareFoundation/openexr/commit/9e9e4616f60891a8b27ee9cdeac930e5686dca4f) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-10) -* [specific check for bad size field in header attributes (related to #248)](https://github.com/AcademySoftwareFoundation/openexr/commit/4c146c50e952655bc193567224c2a081c7da5e98) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-12) +* [specific check for bad size field in header attributes (related to #248)](https://github.com/AcademySoftwareFoundation/openexr/commit/4c146c50e952655bc193567224c2a081c7da5e98) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-12) -* [use static_cast and numeric_limits as suggested](https://github.com/AcademySoftwareFoundation/openexr/commit/eda733c5880e226873116ba66ce9069dbc844bdd) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-09) +* [use static_cast and numeric_limits as suggested](https://github.com/AcademySoftwareFoundation/openexr/commit/eda733c5880e226873116ba66ce9069dbc844bdd) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-09) -* [Address #270: limit to INT_MAX tiles total](https://github.com/AcademySoftwareFoundation/openexr/commit/7f438ffac4f6feb46383f66cb7e83ab41074943d) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-05) +* [Address #270: limit to INT_MAX tiles total](https://github.com/AcademySoftwareFoundation/openexr/commit/7f438ffac4f6feb46383f66cb7e83ab41074943d) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-05) -* [exr2aces wasn't built via the configure script](https://github.com/AcademySoftwareFoundation/openexr/commit/1959f74ee7f47948038a1ecb16c8ba8b84d4eb89) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-05) +* [exr2aces wasn't built via the configure script](https://github.com/AcademySoftwareFoundation/openexr/commit/1959f74ee7f47948038a1ecb16c8ba8b84d4eb89) ([Peter Hillman](@peterh@wetafx.co.nz) 2019-07-05) * [added links for CVE's](https://github.com/AcademySoftwareFoundation/openexr/commit/afd9beac8b7e114def78793b6810cbad8764a477) ([Cary Phillips](@cary@ilm.com) 2019-07-02) Signed-off-by: Cary Phillips @@ -2770,13 +2815,13 @@ Conflicts: * [adding source .odt files for the .pdf's on the documention page on openexr.com](https://github.com/AcademySoftwareFoundation/openexr/commit/2f7847e3faf7146f2be8c1c0c3053c50b7ee9d97) ([Cary Phillips](@cary@ilm.com) 2019-07-03) Signed-off-by: Cary Phillips -* [fix readme typo](https://github.com/AcademySoftwareFoundation/openexr/commit/67c1d4d2fc62f1bbc94202e49e65bd92de2e580f) ([Nick Porcino](@meshula@hotmail.com) 2019-07-08) +* [fix readme typo](https://github.com/AcademySoftwareFoundation/openexr/commit/67c1d4d2fc62f1bbc94202e49e65bd92de2e580f) ([Nick Porcino](@meshula@hotmail.com) 2019-07-08) * [Handle exceptions, per SonarCloud rules; all catch blocks must do something to indicate the exception isn't ignored.](https://github.com/AcademySoftwareFoundation/openexr/commit/fbce9002eff631b3feeeb18d45419c1fba4204ea) ([Cary Phillips](@cary@ilm.com) 2019-07-07) Signed-off-by: Cary Phillips * [TSC meeting notes June 27, 2019](https://github.com/AcademySoftwareFoundation/openexr/commit/4093d0fbb16ad687779ec6cc7b44308596d5579f) ([Cary Phillips](@cary@ilm.com) 2019-06-28) Signed-off-by: Cary Phillips -* [Implement semaphore for osx](https://github.com/AcademySoftwareFoundation/openexr/commit/fbb912c3c8b13a9581ffde445e390c1603bae35d) ([oleksii.vorobiov](@oleksii.vorobiov@globallogic.com) 2018-11-01) +* [Implement semaphore for osx](https://github.com/AcademySoftwareFoundation/openexr/commit/fbb912c3c8b13a9581ffde445e390c1603bae35d) ([oleksii.vorobiov](@oleksii.vorobiov@globallogic.com) 2018-11-01) * [Various fixes to address compiler warnings: - removed unused variables and functions - added default cases to switch statements - member initialization order in class constructors - lots of signed/unsigned comparisons fixed either by changing a loop iterator from int to size_t, or by selective type casting.](https://github.com/AcademySoftwareFoundation/openexr/commit/c8a7f6a5ebce9a6d5bd9a3320bc746221789f407) ([Cary Phillips](@cary@ilm.com) 2019-06-24) Signed-off-by: Cary Phillips @@ -2800,18 +2845,18 @@ Signed-off-by: Kimball Thurston * [Add initial rules for running clang-format on the code base](https://github.com/AcademySoftwareFoundation/openexr/commit/6513fcf2e25ebd92c8f80f18e8cd7718ba7c4a41) ([Kimball Thurston](@kdt3rd@gmail.com) 2019-06-27) Signed-off-by: Kimball Thurston -* [find Boost.Python 3 on older Boost versions](https://github.com/AcademySoftwareFoundation/openexr/commit/9b58cf0fc197947dc5798854de639233bb35c6cb) ([Jens Lindgren](@lindgren_jens@hotmail.com) 2018-11-19) +* [find Boost.Python 3 on older Boost versions](https://github.com/AcademySoftwareFoundation/openexr/commit/9b58cf0fc197947dc5798854de639233bb35c6cb) ([Jens Lindgren](@lindgren_jens@hotmail.com) 2018-11-19) -* [MSYS support](https://github.com/AcademySoftwareFoundation/openexr/commit/a19c806a7b52cdf74bfa6966b720efd8b24a2590) ([Harry Mallon](@hjmallon@gmail.com) 2019-01-30) +* [MSYS support](https://github.com/AcademySoftwareFoundation/openexr/commit/a19c806a7b52cdf74bfa6966b720efd8b24a2590) ([Harry Mallon](@hjmallon@gmail.com) 2019-01-30) -* [Only find_package ZLIB when required](https://github.com/AcademySoftwareFoundation/openexr/commit/ab357b0a7a6d7e0ee761bf8ee5846688626d9236) ([Harry Mallon](@hjmallon@gmail.com) 2019-02-06) +* [Only find_package ZLIB when required](https://github.com/AcademySoftwareFoundation/openexr/commit/ab357b0a7a6d7e0ee761bf8ee5846688626d9236) ([Harry Mallon](@hjmallon@gmail.com) 2019-02-06) -* [Remove unused headers](https://github.com/AcademySoftwareFoundation/openexr/commit/db9fcdc9c448a9f0d0da78010492398a394c87e7) ([Grant Kim](@6302240+enpinion@users.noreply.github.com) 2019-06-13) +* [Remove unused headers](https://github.com/AcademySoftwareFoundation/openexr/commit/db9fcdc9c448a9f0d0da78010492398a394c87e7) ([Grant Kim](@6302240+enpinion@users.noreply.github.com) 2019-06-13) * [WIN32 to _WIN32 for Compiler portability](https://github.com/AcademySoftwareFoundation/openexr/commit/6e2a73ed8721da899a5bd844397444d5b15a5c71) ([Grant Kim](@6302240+enpinion@users.noreply.github.com) 2019-06-11) https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019 _WIN32 is the standard according to the official documentation from Microsoft and also this fixes MinGW compile error. -* [Update README.md](https://github.com/AcademySoftwareFoundation/openexr/commit/45e9910be6009ac4ddf4db51c3c505daafc942a3) ([Huibean Luo](@huibean.luo@gmail.com) 2019-04-08) +* [Update README.md](https://github.com/AcademySoftwareFoundation/openexr/commit/45e9910be6009ac4ddf4db51c3c505daafc942a3) ([Huibean Luo](@huibean.luo@gmail.com) 2019-04-08) * [Added a few people to CREDITS.](https://github.com/AcademySoftwareFoundation/openexr/commit/db512f5de8f4cc0f6ff81a67bf1bb7e8e7f0cc53) ([Cary Phillips](@cary@ilm.com) 2019-06-20) Signed-off-by: Cary Phillips @@ -2835,46 +2880,46 @@ _WIN32 is the standard according to the official documentation from Microsoft an * [- Formatting section is TBD - fixed references to license - removed references to CI - added section on GitHub labels](https://github.com/AcademySoftwareFoundation/openexr/commit/0045a12d20112b253895d88b4e2bce3ffcff0d90) ([Cary Phillips](@cary@ilm.com) 2019-06-14) Signed-off-by: Cary Phillips -* [fixing minor typos](https://github.com/AcademySoftwareFoundation/openexr/commit/f62e9c0f9903e03c1d0d80e68e29ffba573c7f8d) ([xlietz](@31363633+xlietz@users.noreply.github.com) 2019-06-12) +* [fixing minor typos](https://github.com/AcademySoftwareFoundation/openexr/commit/f62e9c0f9903e03c1d0d80e68e29ffba573c7f8d) ([xlietz](@31363633+xlietz@users.noreply.github.com) 2019-06-12) -* [Edits to README.md and CONTRIBUTING.md](https://github.com/AcademySoftwareFoundation/openexr/commit/55a674bde7ee63c1badacbe061d3cb222927c68e) ([Cary Phillips](@cary@ilm.com) 2019-06-11) +* [Edits to README.md and CONTRIBUTING.md](https://github.com/AcademySoftwareFoundation/openexr/commit/55a674bde7ee63c1badacbe061d3cb222927c68e) ([Cary Phillips](@cary@ilm.com) 2019-06-11) -* [Add initial Azure pipeline setup file](https://github.com/AcademySoftwareFoundation/openexr/commit/9ed83bd964008c4ff19958b0e2824e08bdf6e610) ([seabeepea](@seabeepea@gmail.com) 2019-06-12) +* [Add initial Azure pipeline setup file](https://github.com/AcademySoftwareFoundation/openexr/commit/9ed83bd964008c4ff19958b0e2824e08bdf6e610) ([seabeepea](@seabeepea@gmail.com) 2019-06-12) -* [typos](https://github.com/AcademySoftwareFoundation/openexr/commit/10e33e334df9202cd8c8a940c7cd3ec36548d7d8) ([seabeepea](@seabeepea@gmail.com) 2019-06-09) +* [typos](https://github.com/AcademySoftwareFoundation/openexr/commit/10e33e334df9202cd8c8a940c7cd3ec36548d7d8) ([seabeepea](@seabeepea@gmail.com) 2019-06-09) -* [Contributing and Goverance sections](https://github.com/AcademySoftwareFoundation/openexr/commit/ce9f05fbcc4c47330c43815cc40fc164e2ad53d3) ([seabeepea](@seabeepea@gmail.com) 2019-06-09) +* [Contributing and Goverance sections](https://github.com/AcademySoftwareFoundation/openexr/commit/ce9f05fbcc4c47330c43815cc40fc164e2ad53d3) ([seabeepea](@seabeepea@gmail.com) 2019-06-09) -* [meeting notes](https://github.com/AcademySoftwareFoundation/openexr/commit/eed7c0aa972cf8b5f5641ca9946b27a3a054155f) ([Cary Phillips](@cary@ilm.com) 2019-05-09) +* [meeting notes](https://github.com/AcademySoftwareFoundation/openexr/commit/eed7c0aa972cf8b5f5641ca9946b27a3a054155f) ([Cary Phillips](@cary@ilm.com) 2019-05-09) * [Fixed formatting](https://github.com/AcademySoftwareFoundation/openexr/commit/b10e1015e349313b589f4c0b5b4bddefd3da64f7) ([John Mertic](@jmertic@linuxfoundation.org) 2019-05-08) Signed-off-by: John Mertic -* [moved charter to charter subfolder.](https://github.com/AcademySoftwareFoundation/openexr/commit/db49dcfdfcfaca5a60a84f65ced11df97d0df1ec) ([Cary Phillips](@cary@ilm.com) 2019-05-08) +* [moved charter to charter subfolder.](https://github.com/AcademySoftwareFoundation/openexr/commit/db49dcfdfcfaca5a60a84f65ced11df97d0df1ec) ([Cary Phillips](@cary@ilm.com) 2019-05-08) -* [OpenEXR-Technical-Charter.md](https://github.com/AcademySoftwareFoundation/openexr/commit/2a33b9a4ca520490c5f368d6028decb9c76f8837) ([Cary Phillips](@cary@ilm.com) 2019-05-08) +* [OpenEXR-Technical-Charter.md](https://github.com/AcademySoftwareFoundation/openexr/commit/2a33b9a4ca520490c5f368d6028decb9c76f8837) ([Cary Phillips](@cary@ilm.com) 2019-05-08) -* [OpenEXR-Adoption-Proposal.md](https://github.com/AcademySoftwareFoundation/openexr/commit/3e22cab39663b5c97ba3fd20df02ae634e21fc84) ([Cary Phillips](@cary@ilm.com) 2019-05-08) +* [OpenEXR-Adoption-Proposal.md](https://github.com/AcademySoftwareFoundation/openexr/commit/3e22cab39663b5c97ba3fd20df02ae634e21fc84) ([Cary Phillips](@cary@ilm.com) 2019-05-08) -* [Meeting notes 2019-5-2](https://github.com/AcademySoftwareFoundation/openexr/commit/c33d52f6c5a7d453d4b969224ab33852e47fe084) ([Cary Phillips](@cary@ilm.com) 2019-05-05) +* [Meeting notes 2019-5-2](https://github.com/AcademySoftwareFoundation/openexr/commit/c33d52f6c5a7d453d4b969224ab33852e47fe084) ([Cary Phillips](@cary@ilm.com) 2019-05-05) -* [Remove unused cmake variable](https://github.com/AcademySoftwareFoundation/openexr/commit/c3a1da6f47279d34c23d29f6e2f264cf2126a4f8) ([Nick Porcino](@nick.porcino@oculus.com) 2019-03-29) +* [Remove unused cmake variable](https://github.com/AcademySoftwareFoundation/openexr/commit/c3a1da6f47279d34c23d29f6e2f264cf2126a4f8) ([Nick Porcino](@nick.porcino@oculus.com) 2019-03-29) -* [add build-win/, build-nuget/, and *~ to .gitignore.](https://github.com/AcademySoftwareFoundation/openexr/commit/94ab55d8d4103881324ec15b8a41b3298ca7e467) ([Cary Phillips](@cary@ilm.com) 2018-09-22) +* [add build-win/, build-nuget/, and *~ to .gitignore.](https://github.com/AcademySoftwareFoundation/openexr/commit/94ab55d8d4103881324ec15b8a41b3298ca7e467) ([Cary Phillips](@cary@ilm.com) 2018-09-22) -* [Update the README files with instructions for building on Windows, specifically calling out the proper Visual Studio version.](https://github.com/AcademySoftwareFoundation/openexr/commit/ab742b86a37a7eb93f0312d98fc47f7526ddd65a) ([Cary Phillips](@cary@ilm.com) 2018-09-22) +* [Update the README files with instructions for building on Windows, specifically calling out the proper Visual Studio version.](https://github.com/AcademySoftwareFoundation/openexr/commit/ab742b86a37a7eb93f0312d98fc47f7526ddd65a) ([Cary Phillips](@cary@ilm.com) 2018-09-22) -* [Removed OpenEXRViewers.pc.in and PyIlmBase.pc.in. Since these modules are binaries, not libraries, there is no need to support pkgconfig for them.](https://github.com/AcademySoftwareFoundation/openexr/commit/999a49d721604bb88178b596675deda4dc25cf1b) ([Cary Phillips](@cary@ilm.com) 2018-09-22) +* [Removed OpenEXRViewers.pc.in and PyIlmBase.pc.in. Since these modules are binaries, not libraries, there is no need to support pkgconfig for them.](https://github.com/AcademySoftwareFoundation/openexr/commit/999a49d721604bb88178b596675deda4dc25cf1b) ([Cary Phillips](@cary@ilm.com) 2018-09-22) -* [Rebuild OpenEXR NuGet with 2.3 source and enable exrviewer for testing purposes](https://github.com/AcademySoftwareFoundation/openexr/commit/c0d0a637a25e1741f528999a2556eda39102ddac) ([mancoast](@RobertPancoast77@gmail.com) 2018-09-15) +* [Rebuild OpenEXR NuGet with 2.3 source and enable exrviewer for testing purposes](https://github.com/AcademySoftwareFoundation/openexr/commit/c0d0a637a25e1741f528999a2556eda39102ddac) ([mancoast](@RobertPancoast77@gmail.com) 2018-09-15) * [fix standalone and combined cmake](https://github.com/AcademySoftwareFoundation/openexr/commit/017d027cc27ac0a7b2af90196fe3e49c4afe1aab) ([Kimball Thurston](@kdt3rd@gmail.com) 2018-09-08) This puts the version numbers into one file, and the settings and variables for building into another, that is then replicated and conditionally included when building a standalone package. Signed-off-by: Kimball Thurston -* [CONTRIBUTING.md, INSTALL.md, and changes README.md and INSTALL.md](https://github.com/AcademySoftwareFoundation/openexr/commit/d1d9f19475c858e66c1260fcc2be9e26dcddfc03) ([seabeepea](@seabeepea@gmail.com) 2019-06-09) +* [CONTRIBUTING.md, INSTALL.md, and changes README.md and INSTALL.md](https://github.com/AcademySoftwareFoundation/openexr/commit/d1d9f19475c858e66c1260fcc2be9e26dcddfc03) ([seabeepea](@seabeepea@gmail.com) 2019-06-09) -* [added GOVERNANCE.md](https://github.com/AcademySoftwareFoundation/openexr/commit/09a11a92b149f0e7d51a62086572050ad4fdc4fe) ([seabeepea](@seabeepea@gmail.com) 2019-06-09) +* [added GOVERNANCE.md](https://github.com/AcademySoftwareFoundation/openexr/commit/09a11a92b149f0e7d51a62086572050ad4fdc4fe) ([seabeepea](@seabeepea@gmail.com) 2019-06-09) @@ -3227,328 +3272,328 @@ Signed-off-by: Kimball Thurston cmake/FindNumPy.cmake | 51 + cmake/FindOpenEXR.cmake | 198 + 321 files changed, 12796 insertions(+), 16398 deletions(-) - + ### Commits \[ git log v2.2.1...v.2.3.0\] -* [Reverted python library -l line logic to go back to the old PYTHON_VERSION based logic.](https://github.com/AcademySoftwareFoundation/openexr/commit/02310c624547fd765cd6e08abe459755d4ecebcc) ([Nick Rasmussen](@nick@ilm.com), 2018-08-09) +* [Reverted python library -l line logic to go back to the old PYTHON_VERSION based logic.](https://github.com/AcademySoftwareFoundation/openexr/commit/02310c624547fd765cd6e08abe459755d4ecebcc) ([Nick Rasmussen](@nick@ilm.com), 2018-08-09) -* [Updated build system to use local copies of the ax_cxx_copmile_stdcxx.m4 macro.](https://github.com/AcademySoftwareFoundation/openexr/commit/3d6c9302b3d7f394a90ac3c95d12b1db1c183812) ([Nick Rasmussen](@nick@ilm.com), 2018-08-09) +* [Updated build system to use local copies of the ax_cxx_copmile_stdcxx.m4 macro.](https://github.com/AcademySoftwareFoundation/openexr/commit/3d6c9302b3d7f394a90ac3c95d12b1db1c183812) ([Nick Rasmussen](@nick@ilm.com), 2018-08-09) -* [accidentally commited Makefile instead of Makefile.am](https://github.com/AcademySoftwareFoundation/openexr/commit/46dda162ef2b3defceaa25e6bdd2b71b98844685) ([Cary Phillips](@cary@ilm.com), 2018-08-09) +* [accidentally commited Makefile instead of Makefile.am](https://github.com/AcademySoftwareFoundation/openexr/commit/46dda162ef2b3defceaa25e6bdd2b71b98844685) ([Cary Phillips](@cary@ilm.com), 2018-08-09) -* [update CHANGES.md](https://github.com/AcademySoftwareFoundation/openexr/commit/ea46c15be9572f81549eaa76a1bdf8dbe364f780) ([Cary Phillips](@cary@ilm.com), 2018-08-08) +* [update CHANGES.md](https://github.com/AcademySoftwareFoundation/openexr/commit/ea46c15be9572f81549eaa76a1bdf8dbe364f780) ([Cary Phillips](@cary@ilm.com), 2018-08-08) -* [Added FindNumPy.cmake](https://github.com/AcademySoftwareFoundation/openexr/commit/63870bb10415ca7ea76ecfdafdfe70f5894f66f2) ([Nick Porcino](@meshula@hotmail.com), 2018-08-08) +* [Added FindNumPy.cmake](https://github.com/AcademySoftwareFoundation/openexr/commit/63870bb10415ca7ea76ecfdafdfe70f5894f66f2) ([Nick Porcino](@meshula@hotmail.com), 2018-08-08) -* [Add PyImathNumpyTest to Makefile and configure.ac](https://github.com/AcademySoftwareFoundation/openexr/commit/36abd2b728e8759b010ceffe94363d5f473fe6dc) ([Cary Phillips](@cary@ilm.com), 2018-08-08) +* [Add PyImathNumpyTest to Makefile and configure.ac](https://github.com/AcademySoftwareFoundation/openexr/commit/36abd2b728e8759b010ceffe94363d5f473fe6dc) ([Cary Phillips](@cary@ilm.com), 2018-08-08) -* [Add ImfExportUtil.h to Makefile.am](https://github.com/AcademySoftwareFoundation/openexr/commit/82f78f4a895e29b42d2ccc0d66be08948203f507) ([Cary Phillips](@cary@ilm.com), 2018-08-08) +* [Add ImfExportUtil.h to Makefile.am](https://github.com/AcademySoftwareFoundation/openexr/commit/82f78f4a895e29b42d2ccc0d66be08948203f507) ([Cary Phillips](@cary@ilm.com), 2018-08-08) -* [fix pyilmbase tests, static compilation](https://github.com/AcademySoftwareFoundation/openexr/commit/75c918b65c2394c7f7a9f769fee87572d06e81b5) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-09) - python extensions must be shared, so can not follow the overall lib type for the library. - the code should be compiled fPIC when building a static library such that it can be linked into a .so - remove the dependency on the particle python extension in the numpy test - add environment variables such that the python tests will work in the build tree without a "make install" (win32 doesn't neede ld_library_path, but it doesn't hurt, but may need path?) Signed-off-by: Kimball Thurston +* [fix pyilmbase tests, static compilation](https://github.com/AcademySoftwareFoundation/openexr/commit/75c918b65c2394c7f7a9f769fee87572d06e81b5) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-09) - python extensions must be shared, so can not follow the overall lib type for the library. - the code should be compiled fPIC when building a static library such that it can be linked into a .so - remove the dependency on the particle python extension in the numpy test - add environment variables such that the python tests will work in the build tree without a "make install" (win32 doesn't neede ld_library_path, but it doesn't hurt, but may need path?) Signed-off-by: Kimball Thurston -* [fix OPENEXR_VERSION and OPENEXR_SOVERSION](https://github.com/AcademySoftwareFoundation/openexr/commit/4481442b467e492a3a515b0992391dc160282786) ([Cary Phillips](@cary@ilm.com), 2018-08-08) +* [fix OPENEXR_VERSION and OPENEXR_SOVERSION](https://github.com/AcademySoftwareFoundation/openexr/commit/4481442b467e492a3a515b0992391dc160282786) ([Cary Phillips](@cary@ilm.com), 2018-08-08) -* [update readme documentation for new cmake option](https://github.com/AcademySoftwareFoundation/openexr/commit/081c9f9f9f26afc6943f1b2e63d171802895bee5) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) Signed-off-by: Kimball Thurston +* [update readme documentation for new cmake option](https://github.com/AcademySoftwareFoundation/openexr/commit/081c9f9f9f26afc6943f1b2e63d171802895bee5) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) Signed-off-by: Kimball Thurston -* [fix compile errors under c++17](https://github.com/AcademySoftwareFoundation/openexr/commit/6d9e3f6e2a9545e9d060f599967868d228d9a56a) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) Fixes errors with collisions due to the addition of clamp to the std namespace Signed-off-by: Kimball Thurston +* [fix compile errors under c++17](https://github.com/AcademySoftwareFoundation/openexr/commit/6d9e3f6e2a9545e9d060f599967868d228d9a56a) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) Fixes errors with collisions due to the addition of clamp to the std namespace Signed-off-by: Kimball Thurston -* [add last ditch effort for numpy](https://github.com/AcademySoftwareFoundation/openexr/commit/af5fa2d84acf74e411d6592201890b1e489978c4) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) Apparently not all distributions include a FindNumPy.cmake or similar, even if numpy is indeed installed. This makes a second effort to find using python itself Signed-off-by: Kimball Thurston +* [add last ditch effort for numpy](https://github.com/AcademySoftwareFoundation/openexr/commit/af5fa2d84acf74e411d6592201890b1e489978c4) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) Apparently not all distributions include a FindNumPy.cmake or similar, even if numpy is indeed installed. This makes a second effort to find using python itself Signed-off-by: Kimball Thurston -* [make pyilmbase tests conditional](https://github.com/AcademySoftwareFoundation/openexr/commit/07951c8bdf6164e34f37c3d88799e4e98e46d1ee) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) This makes the PyIlmBase tests conditional in the same manner as OpenEXR and IlmBase Signed-off-by: Kimball Thurston +* [make pyilmbase tests conditional](https://github.com/AcademySoftwareFoundation/openexr/commit/07951c8bdf6164e34f37c3d88799e4e98e46d1ee) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) This makes the PyIlmBase tests conditional in the same manner as OpenEXR and IlmBase Signed-off-by: Kimball Thurston -* [optimize regeneration of config files](https://github.com/AcademySoftwareFoundation/openexr/commit/b610ff33e827c38ac3693d3e43ad973c891d808c) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) This makes the config files write to a temporary file, then use cmake's configure_file command with copyonly to compare the contents and not copy if they are the same. Incremental builds are much faster as a result when working on new features and adding files to the cmakelists.txt Signed-off-by: Kimball Thurston +* [optimize regeneration of config files](https://github.com/AcademySoftwareFoundation/openexr/commit/b610ff33e827c38ac3693d3e43ad973c891d808c) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) This makes the config files write to a temporary file, then use cmake's configure_file command with copyonly to compare the contents and not copy if they are the same. Incremental builds are much faster as a result when working on new features and adding files to the cmakelists.txt Signed-off-by: Kimball Thurston -* [make fuzz test optional like autoconf](https://github.com/AcademySoftwareFoundation/openexr/commit/79a50ea7eb869a94bb226841aebad9d46ecc3836) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) This makes running the fuzz tests as part of the "make test" rule optional. Even with this off by default, if building tests is enabled, the fuzz test will still be compiled, and is available to run via "make fuzz". This should enable a weekly jenkins build config to run the fuzz tests, given that it takes a long time to run. Signed-off-by: Kimball Thurston +* [make fuzz test optional like autoconf](https://github.com/AcademySoftwareFoundation/openexr/commit/79a50ea7eb869a94bb226841aebad9d46ecc3836) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) This makes running the fuzz tests as part of the "make test" rule optional. Even with this off by default, if building tests is enabled, the fuzz test will still be compiled, and is available to run via "make fuzz". This should enable a weekly jenkins build config to run the fuzz tests, given that it takes a long time to run. Signed-off-by: Kimball Thurston -* [Fix SO version](https://github.com/AcademySoftwareFoundation/openexr/commit/f4055c33bb128bd4544d265b167337c584364716) ([Nick Porcino](@meshula@hotmail.com), 2018-08-07) +* [Fix SO version](https://github.com/AcademySoftwareFoundation/openexr/commit/f4055c33bb128bd4544d265b167337c584364716) ([Nick Porcino](@meshula@hotmail.com), 2018-08-07) -* [CHANGES.md formatting](https://github.com/AcademySoftwareFoundation/openexr/commit/8cd1b9210855fa4f6923c1b94df8a86166be19b1) ([Cary Phillips](@cary@ilm.com), 2018-08-07) +* [CHANGES.md formatting](https://github.com/AcademySoftwareFoundation/openexr/commit/8cd1b9210855fa4f6923c1b94df8a86166be19b1) ([Cary Phillips](@cary@ilm.com), 2018-08-07) -* [format old release notes](https://github.com/AcademySoftwareFoundation/openexr/commit/3c5b5f894def68cf5240e8f427147c867f745912) ([Cary Phillips](@cary@ilm.com), 2018-08-07) +* [format old release notes](https://github.com/AcademySoftwareFoundation/openexr/commit/3c5b5f894def68cf5240e8f427147c867f745912) ([Cary Phillips](@cary@ilm.com), 2018-08-07) -* [release notes upates](https://github.com/AcademySoftwareFoundation/openexr/commit/534e4bcde71ce34b9f8fa9fc39e9df1a58aa3f80) ([Cary Phillips](@cary@ilm.com), 2018-08-07) +* [release notes upates](https://github.com/AcademySoftwareFoundation/openexr/commit/534e4bcde71ce34b9f8fa9fc39e9df1a58aa3f80) ([Cary Phillips](@cary@ilm.com), 2018-08-07) -* [CHANGES.md](https://github.com/AcademySoftwareFoundation/openexr/commit/471d7bd1c558c54ecc3cbbb2a65932f1e448a370) ([Cary Phillips](@cary@ilm.com), 2018-08-07) +* [CHANGES.md](https://github.com/AcademySoftwareFoundation/openexr/commit/471d7bd1c558c54ecc3cbbb2a65932f1e448a370) ([Cary Phillips](@cary@ilm.com), 2018-08-07) * [OpenEXR_Viewers/README.md formatting](https://github.com/AcademySoftwareFoundation/openexr/commit/806db743cf0bcb7710d08f56ee6f2ece10e31367) ([Cary Phillips](@cary@ilm.com), 2018-08-07) -* [more README fixes.](https://github.com/AcademySoftwareFoundation/openexr/commit/82bc701e605e092ae5f31d142450d921c293ded1) ([Cary Phillips](@cary@ilm.com), 2018-08-07) +* [more README fixes.](https://github.com/AcademySoftwareFoundation/openexr/commit/82bc701e605e092ae5f31d142450d921c293ded1) ([Cary Phillips](@cary@ilm.com), 2018-08-07) -* [README.md cleanup](https://github.com/AcademySoftwareFoundation/openexr/commit/d1d9760b084f460cf21de2b8e273e8d6adcfb4f6) ([Cary Phillips](@cary@ilm.com), 2018-08-07) +* [README.md cleanup](https://github.com/AcademySoftwareFoundation/openexr/commit/d1d9760b084f460cf21de2b8e273e8d6adcfb4f6) ([Cary Phillips](@cary@ilm.com), 2018-08-07) -* [fix dependencies when building static](https://github.com/AcademySoftwareFoundation/openexr/commit/03329c8d34c93ecafb4a35a8cc645cd3bea14217) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) Signed-off-by: Kimball Thurston +* [fix dependencies when building static](https://github.com/AcademySoftwareFoundation/openexr/commit/03329c8d34c93ecafb4a35a8cc645cd3bea14217) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-08) Signed-off-by: Kimball Thurston -* [fix exrdisplay compile under cmake](https://github.com/AcademySoftwareFoundation/openexr/commit/a617dc1a9cc8c7b85df040f5587f1727dec31caf) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-07) Signed-off-by: Kimball Thurston +* [fix exrdisplay compile under cmake](https://github.com/AcademySoftwareFoundation/openexr/commit/a617dc1a9cc8c7b85df040f5587f1727dec31caf) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-07) Signed-off-by: Kimball Thurston -* [PyIlmBase README.md cleanup](https://github.com/AcademySoftwareFoundation/openexr/commit/a385fd4f09ab5dd1163fab6870393f1b71e163eb) ([Cary Phillips](@cary@ilm.com), 2018-08-07) +* [PyIlmBase README.md cleanup](https://github.com/AcademySoftwareFoundation/openexr/commit/a385fd4f09ab5dd1163fab6870393f1b71e163eb) ([Cary Phillips](@cary@ilm.com), 2018-08-07) -* [Updates to README's](https://github.com/AcademySoftwareFoundation/openexr/commit/0690e762bb45afadd89e94838270080447998a48) ([Cary Phillips](@cary@ilm.com), 2018-08-07) +* [Updates to README's](https://github.com/AcademySoftwareFoundation/openexr/commit/0690e762bb45afadd89e94838270080447998a48) ([Cary Phillips](@cary@ilm.com), 2018-08-07) -* [added --foreign to automake in bootstrap](https://github.com/AcademySoftwareFoundation/openexr/commit/4a74696f2066dd4bb58433bbcb706fdf526a7770) ([Cary Phillips](@cary@ilm.com), 2018-08-06) +* [added --foreign to automake in bootstrap](https://github.com/AcademySoftwareFoundation/openexr/commit/4a74696f2066dd4bb58433bbcb706fdf526a7770) ([Cary Phillips](@cary@ilm.com), 2018-08-06) -* [Remove obsolete README files from Makefile.am](https://github.com/AcademySoftwareFoundation/openexr/commit/57259b7811f3adce23a1e4c99411d686c55fefed) ([Cary Phillips](@cary@ilm.com), 2018-08-06) +* [Remove obsolete README files from Makefile.am](https://github.com/AcademySoftwareFoundation/openexr/commit/57259b7811f3adce23a1e4c99411d686c55fefed) ([Cary Phillips](@cary@ilm.com), 2018-08-06) -* [Removed COPYING, INSTALL, README.cmake.txt](https://github.com/AcademySoftwareFoundation/openexr/commit/54d3bbcfef10a367591cced99f759b89e8478b07) ([Cary Phillips](@cary@ilm.com), 2018-08-05) +* [Removed COPYING, INSTALL, README.cmake.txt](https://github.com/AcademySoftwareFoundation/openexr/commit/54d3bbcfef10a367591cced99f759b89e8478b07) ([Cary Phillips](@cary@ilm.com), 2018-08-05) -* [cleaned up README files for root and IlmBase](https://github.com/AcademySoftwareFoundation/openexr/commit/54e6ae149addd5b9673d1ee0f2954759b5ed073d) ([Cary Phillips](@cary@ilm.com), 2018-08-05) +* [cleaned up README files for root and IlmBase](https://github.com/AcademySoftwareFoundation/openexr/commit/54e6ae149addd5b9673d1ee0f2954759b5ed073d) ([Cary Phillips](@cary@ilm.com), 2018-08-05) -* [LIBTOOL_CURRENT=24](https://github.com/AcademySoftwareFoundation/openexr/commit/7b7ea9c86bbf8744cb41df6fa7e5f7dd270294a5) ([Cary Phillips](@cary@ilm.com), 2018-08-06) +* [LIBTOOL_CURRENT=24](https://github.com/AcademySoftwareFoundation/openexr/commit/7b7ea9c86bbf8744cb41df6fa7e5f7dd270294a5) ([Cary Phillips](@cary@ilm.com), 2018-08-06) -* [bump version to 2.3](https://github.com/AcademySoftwareFoundation/openexr/commit/8a7b4ad263103e725fda4e624962cc0f559c4faa) ([Cary Phillips](@cary@ilm.com), 2018-08-05) +* [bump version to 2.3](https://github.com/AcademySoftwareFoundation/openexr/commit/8a7b4ad263103e725fda4e624962cc0f559c4faa) ([Cary Phillips](@cary@ilm.com), 2018-08-05) -* [folding in internal ILM changes - conditional delete in exception catch block.](https://github.com/AcademySoftwareFoundation/openexr/commit/656f898dff3ab7d06c4d35219385251f7948437b) ([Cary Phillips](@cary@ilm.com), 2018-08-05) +* [folding in internal ILM changes - conditional delete in exception catch block.](https://github.com/AcademySoftwareFoundation/openexr/commit/656f898dff3ab7d06c4d35219385251f7948437b) ([Cary Phillips](@cary@ilm.com), 2018-08-05) -* [Removed COPYING, INSTALL, README.cmake.txt](https://github.com/AcademySoftwareFoundation/openexr/commit/94ece7ca86ffccb3ec2bf4138f4ad47e3f496167) ([Cary Phillips](@cary@ilm.com), 2018-08-05) +* [Removed COPYING, INSTALL, README.cmake.txt](https://github.com/AcademySoftwareFoundation/openexr/commit/94ece7ca86ffccb3ec2bf4138f4ad47e3f496167) ([Cary Phillips](@cary@ilm.com), 2018-08-05) -* [edits to READMEs](https://github.com/AcademySoftwareFoundation/openexr/commit/405fa911ad974eeaf3c3769820b7c4a0c59f0099) ([Cary Phillips](@cary@ilm.com), 2018-08-05) +* [edits to READMEs](https://github.com/AcademySoftwareFoundation/openexr/commit/405fa911ad974eeaf3c3769820b7c4a0c59f0099) ([Cary Phillips](@cary@ilm.com), 2018-08-05) -* [README fixes.](https://github.com/AcademySoftwareFoundation/openexr/commit/c612d8276a5d9e28ae6bdc39b770cbc083e21cf4) ([Cary Phillips](@cary@ilm.com), 2018-08-05) +* [README fixes.](https://github.com/AcademySoftwareFoundation/openexr/commit/c612d8276a5d9e28ae6bdc39b770cbc083e21cf4) ([Cary Phillips](@cary@ilm.com), 2018-08-05) -* [cleaned up README files for root and IlmBase](https://github.com/AcademySoftwareFoundation/openexr/commit/cda04c6451b0b196c887b03e68d8a80863f58832) ([Cary Phillips](@cary@ilm.com), 2018-08-05) +* [cleaned up README files for root and IlmBase](https://github.com/AcademySoftwareFoundation/openexr/commit/cda04c6451b0b196c887b03e68d8a80863f58832) ([Cary Phillips](@cary@ilm.com), 2018-08-05) -* [Fallback default system provided Boost Python](https://github.com/AcademySoftwareFoundation/openexr/commit/a174497d1fd84378423f733053f1a058608d81f0) ([Thanh Ha](@thanh.ha@linuxfoundation.org), 2018-08-03) User provided Python version via OPENEXR_PYTHON_MAJOR and OPENEXR_PYTHON_MINOR parameters, failing that fallback onto the system's default "python" whichever that may be. Signed-off-by: Thanh Ha +* [Fallback default system provided Boost Python](https://github.com/AcademySoftwareFoundation/openexr/commit/a174497d1fd84378423f733053f1a058608d81f0) ([Thanh Ha](@thanh.ha@linuxfoundation.org), 2018-08-03) User provided Python version via OPENEXR_PYTHON_MAJOR and OPENEXR_PYTHON_MINOR parameters, failing that fallback onto the system's default "python" whichever that may be. Signed-off-by: Thanh Ha -* [fix double delete in multipart files, check logic in others](https://github.com/AcademySoftwareFoundation/openexr/commit/da96e3759758c1fcac5963e07eab8e1f58a674e7) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) Multipart files have a Data object that automatically cleans up it's stream if appropriate, the other file objects have the destructor of the file object perform the delete (instead of Data). This causes a double delete to happen in MultiPart objects when unable to open a stream. Additionally, fix tabs / spaces to just be spaces Signed-off-by: Kimball Thurston +* [fix double delete in multipart files, check logic in others](https://github.com/AcademySoftwareFoundation/openexr/commit/da96e3759758c1fcac5963e07eab8e1f58a674e7) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) Multipart files have a Data object that automatically cleans up it's stream if appropriate, the other file objects have the destructor of the file object perform the delete (instead of Data). This causes a double delete to happen in MultiPart objects when unable to open a stream. Additionally, fix tabs / spaces to just be spaces Signed-off-by: Kimball Thurston -* [fix scenario where ilmimf is being compiled from parent directory](https://github.com/AcademySoftwareFoundation/openexr/commit/c246315fe392815399aee224f38bafd01585594b) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) need to use current source dir so test images can be found Signed-off-by: Kimball Thurston +* [fix scenario where ilmimf is being compiled from parent directory](https://github.com/AcademySoftwareFoundation/openexr/commit/c246315fe392815399aee224f38bafd01585594b) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) need to use current source dir so test images can be found Signed-off-by: Kimball Thurston -* [Fix logic errors with BUILD_DWALOOKUPS](https://github.com/AcademySoftwareFoundation/openexr/commit/dc7cb41c4e8a3abd60dec46d0bcb6a1c9ef31452) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) Signed-off-by: Kimball Thurston +* [Fix logic errors with BUILD_DWALOOKUPS](https://github.com/AcademySoftwareFoundation/openexr/commit/dc7cb41c4e8a3abd60dec46d0bcb6a1c9ef31452) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) Signed-off-by: Kimball Thurston -* [remove debug print](https://github.com/AcademySoftwareFoundation/openexr/commit/8e16aa8930a85f1ef3f1f6ba454af275aabc205d) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) Signed-off-by: Kimball Thurston +* [remove debug print](https://github.com/AcademySoftwareFoundation/openexr/commit/8e16aa8930a85f1ef3f1f6ba454af275aabc205d) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) Signed-off-by: Kimball Thurston -* [fully set variables as pkg config does not seem to by default](https://github.com/AcademySoftwareFoundation/openexr/commit/f478511f796e5d05dada28f9841dcf9ebd9730ac) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) +* [fully set variables as pkg config does not seem to by default](https://github.com/AcademySoftwareFoundation/openexr/commit/f478511f796e5d05dada28f9841dcf9ebd9730ac) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) -* [add check with error message for zlib, fix defaults, restore old thread check](https://github.com/AcademySoftwareFoundation/openexr/commit/788956537282cfcca712c1e9690d72cd19978ce0) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) +* [add check with error message for zlib, fix defaults, restore old thread check](https://github.com/AcademySoftwareFoundation/openexr/commit/788956537282cfcca712c1e9690d72cd19978ce0) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-04) -* [PR #187 CMake enhancements to speed up dependency builds of OpenEXR.](https://github.com/AcademySoftwareFoundation/openexr/commit/17e10ab10ddf937bc2809bda858bf17af6fb3448) ([Nick Porcino](@meshula@hotmail.com), 2018-08-02) +* [PR #187 CMake enhancements to speed up dependency builds of OpenEXR.](https://github.com/AcademySoftwareFoundation/openexr/commit/17e10ab10ddf937bc2809bda858bf17af6fb3448) ([Nick Porcino](@meshula@hotmail.com), 2018-08-02) -* [restore prefix, update to use PKG_CHECK_MODULES](https://github.com/AcademySoftwareFoundation/openexr/commit/fb9d1be5c07779c90e7744ccbf27201fcafcdfdb) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-03) previous commit from dracwyrm had made it such that pkg-config must be used and ilmbase must be installed in the default pkg-config path by default. restore the original behaviour by which a prefix could be provided, yet still retain use of PKG_CHECK_MODULES to find IlmBase if the prefix is not specified, and continue to use pkg-config to find zlib instead of assuming -lz Signed-off-by: Kimball Thurston +* [restore prefix, update to use PKG_CHECK_MODULES](https://github.com/AcademySoftwareFoundation/openexr/commit/fb9d1be5c07779c90e7744ccbf27201fcafcdfdb) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-03) previous commit from dracwyrm had made it such that pkg-config must be used and ilmbase must be installed in the default pkg-config path by default. restore the original behaviour by which a prefix could be provided, yet still retain use of PKG_CHECK_MODULES to find IlmBase if the prefix is not specified, and continue to use pkg-config to find zlib instead of assuming -lz Signed-off-by: Kimball Thurston -* [restore original API for Lock since we can't use typedef to unique_lock](https://github.com/AcademySoftwareFoundation/openexr/commit/e7fc2258a16ab7fe17d24855d16d4e56b80c172e) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-02) +* [restore original API for Lock since we can't use typedef to unique_lock](https://github.com/AcademySoftwareFoundation/openexr/commit/e7fc2258a16ab7fe17d24855d16d4e56b80c172e) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-02) -* [fixes #292, issue with utf-8 filenames](https://github.com/AcademySoftwareFoundation/openexr/commit/846fe64c584ebb89434aaa02f5d431fbd3ca6165) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-01) windows needs to widen the string to properly open files, this implements a solution for compiling with MSVC anyway using the extension for fstream to take a wchar Signed-off-by: Kimball Thurston +* [fixes #292, issue with utf-8 filenames](https://github.com/AcademySoftwareFoundation/openexr/commit/846fe64c584ebb89434aaa02f5d431fbd3ca6165) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-01) windows needs to widen the string to properly open files, this implements a solution for compiling with MSVC anyway using the extension for fstream to take a wchar Signed-off-by: Kimball Thurston -* [fix maintainer mode issue, extra line in paste](https://github.com/AcademySoftwareFoundation/openexr/commit/772ff9ad045032fc338af1b684cb50983191bc0d) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-02) +* [fix maintainer mode issue, extra line in paste](https://github.com/AcademySoftwareFoundation/openexr/commit/772ff9ad045032fc338af1b684cb50983191bc0d) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-08-02) -* [Default the python bindings to on](https://github.com/AcademySoftwareFoundation/openexr/commit/dc5e26136b1c5edce911ff0eccc17cda40388b54) ([Nick Porcino](@meshula@hotmail.com), 2018-08-01) +* [Default the python bindings to on](https://github.com/AcademySoftwareFoundation/openexr/commit/dc5e26136b1c5edce911ff0eccc17cda40388b54) ([Nick Porcino](@meshula@hotmail.com), 2018-08-01) -* [Add Find scripts, and ability to build OpenEXR with pre-existing IlmBase](https://github.com/AcademySoftwareFoundation/openexr/commit/34ee51e9118097f784653f08c9482c886f83d2ef) ([Nick Porcino](@meshula@hotmail.com), 2018-08-01) +* [Add Find scripts, and ability to build OpenEXR with pre-existing IlmBase](https://github.com/AcademySoftwareFoundation/openexr/commit/34ee51e9118097f784653f08c9482c886f83d2ef) ([Nick Porcino](@meshula@hotmail.com), 2018-08-01) -* [fix names, disable rules when not building shared](https://github.com/AcademySoftwareFoundation/openexr/commit/dbd3b34baf4104e844c273b682e7b133304294f2) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-31) +* [fix names, disable rules when not building shared](https://github.com/AcademySoftwareFoundation/openexr/commit/dbd3b34baf4104e844c273b682e7b133304294f2) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-31) -* [add suffix variable for target names to enable static-only build](https://github.com/AcademySoftwareFoundation/openexr/commit/7b1ed10e241e793db9d8933df30dd305a93835dd) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-31) +* [add suffix variable for target names to enable static-only build](https://github.com/AcademySoftwareFoundation/openexr/commit/7b1ed10e241e793db9d8933df30dd305a93835dd) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-31) -* [The string field is now called _message.](https://github.com/AcademySoftwareFoundation/openexr/commit/bd32e84632da4754cfe6db47f2e72c29f4d7df27) ([Cary Phillips](@cary@ilm.com), 2018-08-01) +* [The string field is now called _message.](https://github.com/AcademySoftwareFoundation/openexr/commit/bd32e84632da4754cfe6db47f2e72c29f4d7df27) ([Cary Phillips](@cary@ilm.com), 2018-08-01) -* [C++11 support for numeric_limits::max_digits10() and lowest()](https://github.com/AcademySoftwareFoundation/openexr/commit/2d931bab38840ab3cdf9c6322767a862aae4037d) ([Cary Phillips](@cary@ilm.com), 2018-07-31) +* [C++11 support for numeric_limits::max_digits10() and lowest()](https://github.com/AcademySoftwareFoundation/openexr/commit/2d931bab38840ab3cdf9c6322767a862aae4037d) ([Cary Phillips](@cary@ilm.com), 2018-07-31) -* [fixes for GCC 6.3.1 (courtesy of Will Harrower): - renamed local variables in THROW macros to avoid warnings - cast to bool](https://github.com/AcademySoftwareFoundation/openexr/commit/7fda69a377ee41979284137795cb338bb3c6d147) ([Cary Phillips](@cary@rnd-build7-sf-38.lucasfilm.com), 2018-07-31) +* [fixes for GCC 6.3.1 (courtesy of Will Harrower): - renamed local variables in THROW macros to avoid warnings - cast to bool](https://github.com/AcademySoftwareFoundation/openexr/commit/7fda69a377ee41979284137795cb338bb3c6d147) ([Cary Phillips](@cary@rnd-build7-sf-38.lucasfilm.com), 2018-07-31) -* [renames name to message and removes implicit cast](https://github.com/AcademySoftwareFoundation/openexr/commit/54105e3c292c6884e7870ecfddb561deda7a3458) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-31) This removes the implicit cast, which is arguably more "standard", and also less surprising. Further, renames the name function to message to match internal ILM changes, and message makes more sense as a function name than ... name. +* [renames name to message and removes implicit cast](https://github.com/AcademySoftwareFoundation/openexr/commit/54105e3c292c6884e7870ecfddb561deda7a3458) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-31) This removes the implicit cast, which is arguably more "standard", and also less surprising. Further, renames the name function to message to match internal ILM changes, and message makes more sense as a function name than ... name. -* [Remove IEX_THROW_SPEC](https://github.com/AcademySoftwareFoundation/openexr/commit/02c896501da244ec6345d7ee5ef825d71ba1f0a2) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-31) This removes the macro and uses therein. We changed the API with removing the subclass from std::string of Iex::BaseExc, so there is no reason to retain this compatibility as well, especially since it isn't really meaningful anyway in (modern) C++ +* [Remove IEX_THROW_SPEC](https://github.com/AcademySoftwareFoundation/openexr/commit/02c896501da244ec6345d7ee5ef825d71ba1f0a2) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-31) This removes the macro and uses therein. We changed the API with removing the subclass from std::string of Iex::BaseExc, so there is no reason to retain this compatibility as well, especially since it isn't really meaningful anyway in (modern) C++ -* [CMake3 port. Various Windows fixes](https://github.com/AcademySoftwareFoundation/openexr/commit/b2d37be8b874b300be1907f10339cac47e39170b) ([Nick Porcino](@meshula@hotmail.com), 2018-07-29) +* [CMake3 port. Various Windows fixes](https://github.com/AcademySoftwareFoundation/openexr/commit/b2d37be8b874b300be1907f10339cac47e39170b) ([Nick Porcino](@meshula@hotmail.com), 2018-07-29) -* [changes to enable custom namespace defines to be used](https://github.com/AcademySoftwareFoundation/openexr/commit/acd76e16276b54186096b04b06bd118eb32a1bcf) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-29) +* [changes to enable custom namespace defines to be used](https://github.com/AcademySoftwareFoundation/openexr/commit/acd76e16276b54186096b04b06bd118eb32a1bcf) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-29) -* [fix extraneous unsigned compare accidentally merged](https://github.com/AcademySoftwareFoundation/openexr/commit/a56773bd7a1f9a8bb10afe5fb36c4e03f622eff6) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-29) +* [fix extraneous unsigned compare accidentally merged](https://github.com/AcademySoftwareFoundation/openexr/commit/a56773bd7a1f9a8bb10afe5fb36c4e03f622eff6) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-29) -* [Use proper definition of namespaces instead of default values.](https://github.com/AcademySoftwareFoundation/openexr/commit/c6978f9fd998df32b2c56a7b25bbbd52005bbf9e) ([Juri Abramov](@gabramov@nvidia.com), 2014-08-18) +* [Use proper definition of namespaces instead of default values.](https://github.com/AcademySoftwareFoundation/openexr/commit/c6978f9fd998df32b2c56a7b25bbbd52005bbf9e) ([Juri Abramov](@gabramov@nvidia.com), 2014-08-18) -* [fixes #260, out of bounds vector access](https://github.com/AcademySoftwareFoundation/openexr/commit/efc360fc17935453e95f62939dd5d7caacce4bf7) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-29) noticed by Google Autofuzz Signed-off-by: Kimball Thurston +* [fixes #260, out of bounds vector access](https://github.com/AcademySoftwareFoundation/openexr/commit/efc360fc17935453e95f62939dd5d7caacce4bf7) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-29) noticed by Google Autofuzz Signed-off-by: Kimball Thurston -* [fix potential io streams leak in case of exceptions during 'initialize' function](https://github.com/AcademySoftwareFoundation/openexr/commit/19bac86f27bab8649858ef79658224e9a54cb4cf) ([CAHEK7](@ghosts.in.a.box@gmail.com), 2016-02-12) +* [fix potential io streams leak in case of exceptions during 'initialize' function](https://github.com/AcademySoftwareFoundation/openexr/commit/19bac86f27bab8649858ef79658224e9a54cb4cf) ([CAHEK7](@ghosts.in.a.box@gmail.com), 2016-02-12) -* [OpenEXR: Fix build system and change doc install](https://github.com/AcademySoftwareFoundation/openexr/commit/60cc8b711ab402c5526ca1f872de5209ad15ec7d) ([dracwyrm](@j.scruggs@gmail.com), 2017-08-11) The build sysem for the OpenEXR sub-module is has issues. This patch is being used on Gentoo Linux with great success. It also adresses the issue of linking to previously installed versions. Signed-off by: Jonathan Scruggs (j.scruggs@gmail.com) Signed-off by: David Seifert (soap@gentoo.org) +* [OpenEXR: Fix build system and change doc install](https://github.com/AcademySoftwareFoundation/openexr/commit/60cc8b711ab402c5526ca1f872de5209ad15ec7d) ([dracwyrm](@j.scruggs@gmail.com), 2017-08-11) The build sysem for the OpenEXR sub-module is has issues. This patch is being used on Gentoo Linux with great success. It also adresses the issue of linking to previously installed versions. Signed-off by: Jonathan Scruggs (j.scruggs@gmail.com) Signed-off by: David Seifert (soap@gentoo.org) -* [Note that numpy is required to build PyIlmBase](https://github.com/AcademySoftwareFoundation/openexr/commit/76935a912a8e365ed4fe8c7a54b60561790dafd5) ([Thanh Ha](@thanh.ha@linuxfoundation.org), 2018-07-20) Signed-off-by: Thanh Ha +* [Note that numpy is required to build PyIlmBase](https://github.com/AcademySoftwareFoundation/openexr/commit/76935a912a8e365ed4fe8c7a54b60561790dafd5) ([Thanh Ha](@thanh.ha@linuxfoundation.org), 2018-07-20) Signed-off-by: Thanh Ha -* [Fixed exports on DeepImageChannel and FlatImageChannel. If the whole class isn't exported, the typeinfo doesn't get exported, and so dynamic casting into those classes will not work.](https://github.com/AcademySoftwareFoundation/openexr/commit/942ff971d30cba1b237c91e9f448376d279dc5ee) ([Halfdan Ingvarsson](@halfdan@sidefx.com), 2014-10-06) Also fixed angle-bracket include to a quoted include. +* [Fixed exports on DeepImageChannel and FlatImageChannel. If the whole class isn't exported, the typeinfo doesn't get exported, and so dynamic casting into those classes will not work.](https://github.com/AcademySoftwareFoundation/openexr/commit/942ff971d30cba1b237c91e9f448376d279dc5ee) ([Halfdan Ingvarsson](@halfdan@sidefx.com), 2014-10-06) Also fixed angle-bracket include to a quoted include. -* [Fixed angle bracket vs quote includes.](https://github.com/AcademySoftwareFoundation/openexr/commit/fd8570927a7124ff2990f5f38556b2ec03d77a44) ([Halfdan Ingvarsson](@halfdan@sidefx.com), 2014-03-18) +* [Fixed angle bracket vs quote includes.](https://github.com/AcademySoftwareFoundation/openexr/commit/fd8570927a7124ff2990f5f38556b2ec03d77a44) ([Halfdan Ingvarsson](@halfdan@sidefx.com), 2014-03-18) -* [Change IexBaseExc to no longer derive from std::string, but instead include it as a member variable. This resolves a problem with MSVC 2012 and dllexport-ing template classes.](https://github.com/AcademySoftwareFoundation/openexr/commit/fa59776fd83a8f35ed5418b83bbc9975ba0ef3bc) ([Halfdan Ingvarsson](@halfdan@sidefx.com), 2014-03-03) +* [Change IexBaseExc to no longer derive from std::string, but instead include it as a member variable. This resolves a problem with MSVC 2012 and dllexport-ing template classes.](https://github.com/AcademySoftwareFoundation/openexr/commit/fa59776fd83a8f35ed5418b83bbc9975ba0ef3bc) ([Halfdan Ingvarsson](@halfdan@sidefx.com), 2014-03-03) -* [make code more amenable to compiling with mingw for cross-compiling](https://github.com/AcademySoftwareFoundation/openexr/commit/dd867668c4c63d23c034cc2ea8f2352451e8554d) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-29) Signed-off-by: Kimball Thurston +* [make code more amenable to compiling with mingw for cross-compiling](https://github.com/AcademySoftwareFoundation/openexr/commit/dd867668c4c63d23c034cc2ea8f2352451e8554d) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-07-29) Signed-off-by: Kimball Thurston -* [Fix shebang line to bash](https://github.com/AcademySoftwareFoundation/openexr/commit/d3512e07a5af5053397ed62bd0d306b10357358c) ([Thanh Ha](@thanh.ha@linuxfoundation.org), 2018-07-19) Depending on the distro running the script the following error might appear: ./bootstrap: 4: [: Linux: unexpected operator This is because #!/bin/sh is not the same on every distro and this script is actually expecting bash. So update the shebang line to be bash. Signed-off-by: Thanh Ha +* [Fix shebang line to bash](https://github.com/AcademySoftwareFoundation/openexr/commit/d3512e07a5af5053397ed62bd0d306b10357358c) ([Thanh Ha](@thanh.ha@linuxfoundation.org), 2018-07-19) Depending on the distro running the script the following error might appear: ./bootstrap: 4: [: Linux: unexpected operator This is because #!/bin/sh is not the same on every distro and this script is actually expecting bash. So update the shebang line to be bash. Signed-off-by: Thanh Ha -* [Visual Studio and Windows fixes](https://github.com/AcademySoftwareFoundation/openexr/commit/4cfefeab4be94b8c46d604075367b6496d29dcb5) ([Liam Fernandez](@liam@utexas.edu), 2018-06-20) IlmBase: Fix IF/ELSEIF clause (WIN32 only) PyImath: Install *.h in 'include' dir PyImathNumpy: Change python library filename to 'imathnumpy.pyd' (WIN32 only) +* [Visual Studio and Windows fixes](https://github.com/AcademySoftwareFoundation/openexr/commit/4cfefeab4be94b8c46d604075367b6496d29dcb5) ([Liam Fernandez](@liam@utexas.edu), 2018-06-20) IlmBase: Fix IF/ELSEIF clause (WIN32 only) PyImath: Install *.h in 'include' dir PyImathNumpy: Change python library filename to 'imathnumpy.pyd' (WIN32 only) -* [Fix probable typo for static builds.](https://github.com/AcademySoftwareFoundation/openexr/commit/31e1ae8acad3126a63044dfb8518d70390131c7b) ([Simon Otter](@skurmedel@gmail.com), 2018-06-18) +* [Fix probable typo for static builds.](https://github.com/AcademySoftwareFoundation/openexr/commit/31e1ae8acad3126a63044dfb8518d70390131c7b) ([Simon Otter](@skurmedel@gmail.com), 2018-06-18) -* [Must also export protected methods](https://github.com/AcademySoftwareFoundation/openexr/commit/17384ee01e5fa842f282c833ab2bc2aa33e07125) ([Nick Porcino](@meshula@hotmail.com), 2018-06-10) +* [Must also export protected methods](https://github.com/AcademySoftwareFoundation/openexr/commit/17384ee01e5fa842f282c833ab2bc2aa33e07125) ([Nick Porcino](@meshula@hotmail.com), 2018-06-10) -* [IlmImfUtilTest compiles successfully](https://github.com/AcademySoftwareFoundation/openexr/commit/6093789bc7b7c543f128ab2b055987808ec15167) ([Nick Porcino](@meshula@hotmail.com), 2018-06-09) +* [IlmImfUtilTest compiles successfully](https://github.com/AcademySoftwareFoundation/openexr/commit/6093789bc7b7c543f128ab2b055987808ec15167) ([Nick Porcino](@meshula@hotmail.com), 2018-06-09) -* [IlmImfUtil now builds on Windows](https://github.com/AcademySoftwareFoundation/openexr/commit/d7328287d1ea363ab7839201e90d7d7f4deb635f) ([Nick Porcino](@meshula@hotmail.com), 2018-06-09) +* [IlmImfUtil now builds on Windows](https://github.com/AcademySoftwareFoundation/openexr/commit/d7328287d1ea363ab7839201e90d7d7f4deb635f) ([Nick Porcino](@meshula@hotmail.com), 2018-06-09) -* [Set python module suffix per platform](https://github.com/AcademySoftwareFoundation/openexr/commit/39b9edfdfcad5e77601d4462a6f9ba93bef83835) ([Nick Porcino](@meshula@hotmail.com), 2018-06-05) +* [Set python module suffix per platform](https://github.com/AcademySoftwareFoundation/openexr/commit/39b9edfdfcad5e77601d4462a6f9ba93bef83835) ([Nick Porcino](@meshula@hotmail.com), 2018-06-05) -* [fix include ifdef](https://github.com/AcademySoftwareFoundation/openexr/commit/32723d8112d1addf0064e8295b824faab60f0162) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-05-26) +* [fix include ifdef](https://github.com/AcademySoftwareFoundation/openexr/commit/32723d8112d1addf0064e8295b824faab60f0162) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-05-26) -* [switch from shared pointer to a manually counted object as gcc 4.8 and 4.9 do not provide proper shared_ptr atomic functions](https://github.com/AcademySoftwareFoundation/openexr/commit/3f532a7ab81c33f61dc6786a8c7ce6e0c09acc07) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-05-26) +* [switch from shared pointer to a manually counted object as gcc 4.8 and 4.9 do not provide proper shared_ptr atomic functions](https://github.com/AcademySoftwareFoundation/openexr/commit/3f532a7ab81c33f61dc6786a8c7ce6e0c09acc07) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-05-26) -* [Fix typos to TheoryDeepPixels document](https://github.com/AcademySoftwareFoundation/openexr/commit/655f96032e0eddd868a122fee80bd558e0cbf17d) ([peterhillman](@peter@peterhillman.org.uk), 2018-05-17) Equations 6 and 7 were incorrect. +* [Fix typos to TheoryDeepPixels document](https://github.com/AcademySoftwareFoundation/openexr/commit/655f96032e0eddd868a122fee80bd558e0cbf17d) ([peterhillman](@peter@peterhillman.org.uk), 2018-05-17) Equations 6 and 7 were incorrect. -* [initial port of PyIlmBase to python 3](https://github.com/AcademySoftwareFoundation/openexr/commit/84dbf637c5c3ac4296181dd93de4fb5ffdc4b582) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-05-04) +* [initial port of PyIlmBase to python 3](https://github.com/AcademySoftwareFoundation/openexr/commit/84dbf637c5c3ac4296181dd93de4fb5ffdc4b582) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-05-04) -* [replicate configure / cmake changes from ilmbase](https://github.com/AcademySoftwareFoundation/openexr/commit/00df2c72ca1b7cb148e19a9bdc44651a6c74c9e4) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-05-04) This propagates the same chnages to configure.ac and cmakelists.txt to enable compiling with c++11/14. Additionally, adds some minor changes to configure to enable python 3 to be configured (source code changes tbd) +* [replicate configure / cmake changes from ilmbase](https://github.com/AcademySoftwareFoundation/openexr/commit/00df2c72ca1b7cb148e19a9bdc44651a6c74c9e4) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-05-04) This propagates the same chnages to configure.ac and cmakelists.txt to enable compiling with c++11/14. Additionally, adds some minor changes to configure to enable python 3 to be configured (source code changes tbd) -* [add move constructor and assignment operator](https://github.com/AcademySoftwareFoundation/openexr/commit/cfebcc24e1a1cc307678ea757ec38bff02a5dc51) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-05-03) +* [add move constructor and assignment operator](https://github.com/AcademySoftwareFoundation/openexr/commit/cfebcc24e1a1cc307678ea757ec38bff02a5dc51) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-05-03) -* [Fix Windows Python binding builds. Does not address PyImath runtime issues, but does allow build to succeed](https://github.com/AcademySoftwareFoundation/openexr/commit/15ce54ca02fdfa16c4a99f45a30c7a54826c6ac3) ([Nick Porcino](@meshula@hotmail.com), 2018-04-30) +* [Fix Windows Python binding builds. Does not address PyImath runtime issues, but does allow build to succeed](https://github.com/AcademySoftwareFoundation/openexr/commit/15ce54ca02fdfa16c4a99f45a30c7a54826c6ac3) ([Nick Porcino](@meshula@hotmail.com), 2018-04-30) -* [Fix c++11 detection issue on windows. Fix ilmbase DLL export warnings](https://github.com/AcademySoftwareFoundation/openexr/commit/7376f9b736f9503a9d34b67c99bc48ce826a6334) ([Nick Porcino](@meshula@hotmail.com), 2018-04-27) +* [Fix c++11 detection issue on windows. Fix ilmbase DLL export warnings](https://github.com/AcademySoftwareFoundation/openexr/commit/7376f9b736f9503a9d34b67c99bc48ce826a6334) ([Nick Porcino](@meshula@hotmail.com), 2018-04-27) -* [enable different c++ standards to be selected instead of just c++14](https://github.com/AcademySoftwareFoundation/openexr/commit/99ecfcabbc2b95acb40283f04ab358b3db9cc0f9) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-15) +* [enable different c++ standards to be selected instead of just c++14](https://github.com/AcademySoftwareFoundation/openexr/commit/99ecfcabbc2b95acb40283f04ab358b3db9cc0f9) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-15) -* [Incorporate review feedback](https://github.com/AcademySoftwareFoundation/openexr/commit/99b367d963ba0892e7ab830458b6a990aa3033ce) ([Nick Porcino](@meshula@hotmail.com), 2018-04-04) +* [Incorporate review feedback](https://github.com/AcademySoftwareFoundation/openexr/commit/99b367d963ba0892e7ab830458b6a990aa3033ce) ([Nick Porcino](@meshula@hotmail.com), 2018-04-04) -* [add compatibility std::condition_variable semaphore when posix semaphores not available](https://github.com/AcademySoftwareFoundation/openexr/commit/b6dc2a6b71f9373640d988979f9ae1929640397a) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) +* [add compatibility std::condition_variable semaphore when posix semaphores not available](https://github.com/AcademySoftwareFoundation/openexr/commit/b6dc2a6b71f9373640d988979f9ae1929640397a) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) -* [fix error overwriting beginning of config file](https://github.com/AcademySoftwareFoundation/openexr/commit/01680dc4d90c9f7fd64e498e57588f630a52a214) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) +* [fix error overwriting beginning of config file](https://github.com/AcademySoftwareFoundation/openexr/commit/01680dc4d90c9f7fd64e498e57588f630a52a214) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) -* [remove the dynamic exception for all versions of c++ unless FORCE_CXX03 is on](https://github.com/AcademySoftwareFoundation/openexr/commit/45cb2c8fb2418afaa3900c553e26ad3886cd5acf) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) +* [remove the dynamic exception for all versions of c++ unless FORCE_CXX03 is on](https://github.com/AcademySoftwareFoundation/openexr/commit/45cb2c8fb2418afaa3900c553e26ad3886cd5acf) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) -* [ThreadPool improvements](https://github.com/AcademySoftwareFoundation/openexr/commit/bf0cb8cdce32fce36017107c9982e1e5db2fb3fa) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) - switch to use c++11 features - Add API to enable replacement of the thread pool - Add custom, low-latency handling when threads is 0 - Lower lock boundary when adding tasks (or eliminate in c++11 mode) +* [ThreadPool improvements](https://github.com/AcademySoftwareFoundation/openexr/commit/bf0cb8cdce32fce36017107c9982e1e5db2fb3fa) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) - switch to use c++11 features - Add API to enable replacement of the thread pool - Add custom, low-latency handling when threads is 0 - Lower lock boundary when adding tasks (or eliminate in c++11 mode) -* [switch mutex to be based on std::mutex when available](https://github.com/AcademySoftwareFoundation/openexr/commit/848c8c329b16aeee0d3773e827d506a2a53d4840) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) +* [switch mutex to be based on std::mutex when available](https://github.com/AcademySoftwareFoundation/openexr/commit/848c8c329b16aeee0d3773e827d506a2a53d4840) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) -* [switch IlmThread to use c++11 threads when enabled](https://github.com/AcademySoftwareFoundation/openexr/commit/eea1e607177e339e05daa1a2ec969a9dd12f2497) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) +* [switch IlmThread to use c++11 threads when enabled](https://github.com/AcademySoftwareFoundation/openexr/commit/eea1e607177e339e05daa1a2ec969a9dd12f2497) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) -* [use dynamic exception macro to avoid warnings in c++14 mode](https://github.com/AcademySoftwareFoundation/openexr/commit/610179cbe3ffc2db206252343e75a16221d162b4) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) +* [use dynamic exception macro to avoid warnings in c++14 mode](https://github.com/AcademySoftwareFoundation/openexr/commit/610179cbe3ffc2db206252343e75a16221d162b4) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) -* [add #define to manage dynamic exception deprecation in c++11/14](https://github.com/AcademySoftwareFoundation/openexr/commit/b133b769aaee98566e695191476f59f32eece591) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) +* [add #define to manage dynamic exception deprecation in c++11/14](https://github.com/AcademySoftwareFoundation/openexr/commit/b133b769aaee98566e695191476f59f32eece591) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) -* [configuration changes to enable c++14](https://github.com/AcademySoftwareFoundation/openexr/commit/5f58c94aea83d44e27afd1f65e4defc0f523f6be) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) +* [configuration changes to enable c++14](https://github.com/AcademySoftwareFoundation/openexr/commit/5f58c94aea83d44e27afd1f65e4defc0f523f6be) ([Kimball Thurston](@kdt3rd@gmail.com), 2018-04-04) -* [Cmake now building OpenEXR successfully for Windows](https://github.com/AcademySoftwareFoundation/openexr/commit/ac055a9e50c974f4cd58c28a5a0bb96011812072) ([Nick Porcino](@meshula@hotmail.com), 2018-03-28) +* [Cmake now building OpenEXR successfully for Windows](https://github.com/AcademySoftwareFoundation/openexr/commit/ac055a9e50c974f4cd58c28a5a0bb96011812072) ([Nick Porcino](@meshula@hotmail.com), 2018-03-28) -* [Missing symbols on Windows due to missing IMF_EXPORT](https://github.com/AcademySoftwareFoundation/openexr/commit/965c1eb6513ad80c71b425c8a1b04a70b3bae291) ([Ibraheem Alhashim](@ibraheem.alhashim@gmail.com), 2018-03-05) +* [Missing symbols on Windows due to missing IMF_EXPORT](https://github.com/AcademySoftwareFoundation/openexr/commit/965c1eb6513ad80c71b425c8a1b04a70b3bae291) ([Ibraheem Alhashim](@ibraheem.alhashim@gmail.com), 2018-03-05) -* [Implement SIMD-accelerated ImfZip::uncompress](https://github.com/AcademySoftwareFoundation/openexr/commit/32f2aa58fe4f6f6691eef322fdfbbc9aa8363f80) ([John Loy](@jloy@pixar.com), 2017-04-12) The main bottleneck in ImfZip::uncompress appears not to be zlib but the predictor & interleaving loops that run after zlib's decompression. Fortunately, throughput in both of these loops can be improved with SIMD operations. Even though each trip of the predictor loop has data dependencies on all previous values, the usual SIMD prefix-sum construction is able to provide a significant speedup. While the uses of SSSE3 and SSE4.1 are minor in this change and could maybe be replaced with some slightly more complicated SSE2, SSE4.1 was released in 2007, so it doesn't seem unreasonable to require it in 2017. +* [Implement SIMD-accelerated ImfZip::uncompress](https://github.com/AcademySoftwareFoundation/openexr/commit/32f2aa58fe4f6f6691eef322fdfbbc9aa8363f80) ([John Loy](@jloy@pixar.com), 2017-04-12) The main bottleneck in ImfZip::uncompress appears not to be zlib but the predictor & interleaving loops that run after zlib's decompression. Fortunately, throughput in both of these loops can be improved with SIMD operations. Even though each trip of the predictor loop has data dependencies on all previous values, the usual SIMD prefix-sum construction is able to provide a significant speedup. While the uses of SSSE3 and SSE4.1 are minor in this change and could maybe be replaced with some slightly more complicated SSE2, SSE4.1 was released in 2007, so it doesn't seem unreasonable to require it in 2017. -* [Compute sample locations directly in Imf::readPerDeepLineTable.](https://github.com/AcademySoftwareFoundation/openexr/commit/e64095257a29f9bc423298ee8dbc09a317f22046) ([John Loy](@jloy@pixar.com), 2017-04-06) By changing the function to iterate over sample locations directly instead of discarding unsampled pixel positions, we can avoid computing a lot of modulos (more than one per pixel.) Even on modern x86 processors, idiv is a relatively expensive instruction. Though it may appear like this optimization could be performed by a sufficiently sophisticated compiler, gcc 4.8 does not get there (even at -O3.) +* [Compute sample locations directly in Imf::readPerDeepLineTable.](https://github.com/AcademySoftwareFoundation/openexr/commit/e64095257a29f9bc423298ee8dbc09a317f22046) ([John Loy](@jloy@pixar.com), 2017-04-06) By changing the function to iterate over sample locations directly instead of discarding unsampled pixel positions, we can avoid computing a lot of modulos (more than one per pixel.) Even on modern x86 processors, idiv is a relatively expensive instruction. Though it may appear like this optimization could be performed by a sufficiently sophisticated compiler, gcc 4.8 does not get there (even at -O3.) -* [Manually hoist loop invariants in Imf::bytesPerDeepLineTable.](https://github.com/AcademySoftwareFoundation/openexr/commit/71b8109a4ad123ef0d5783f01922463a16d2ca59) ([John Loy](@jloy@pixar.com), 2017-04-05) This is primarily done to avoid a call to pixelTypeSize within the inner loop. In particular, gcc makes the call to pixelTypeSize via PLT indirection so it may have arbitrary side-effects (i.e. ELF symbol interposition strikes again) and may not be moved out of the loop by the compiler. +* [Manually hoist loop invariants in Imf::bytesPerDeepLineTable.](https://github.com/AcademySoftwareFoundation/openexr/commit/71b8109a4ad123ef0d5783f01922463a16d2ca59) ([John Loy](@jloy@pixar.com), 2017-04-05) This is primarily done to avoid a call to pixelTypeSize within the inner loop. In particular, gcc makes the call to pixelTypeSize via PLT indirection so it may have arbitrary side-effects (i.e. ELF symbol interposition strikes again) and may not be moved out of the loop by the compiler. -* [Inline Imf::sampleCount; this is an ABI-breaking change.](https://github.com/AcademySoftwareFoundation/openexr/commit/5aa0afd5a4f8df9e09d6461f115e6e0cec5cbe46) ([John Loy](@jloy@pixar.com), 2017-03-29) gcc generates calls to sampleCount via PLT indirection even within libIlmImf. As such, they are not inlined and must be treated as having arbitrary side effects (because of ELF symbol interposition.) Making addressing computations visible at call sites allows a much wider range of optimizations by the compiler beyond simply eliminating the function call overhead. +* [Inline Imf::sampleCount; this is an ABI-breaking change.](https://github.com/AcademySoftwareFoundation/openexr/commit/5aa0afd5a4f8df9e09d6461f115e6e0cec5cbe46) ([John Loy](@jloy@pixar.com), 2017-03-29) gcc generates calls to sampleCount via PLT indirection even within libIlmImf. As such, they are not inlined and must be treated as having arbitrary side effects (because of ELF symbol interposition.) Making addressing computations visible at call sites allows a much wider range of optimizations by the compiler beyond simply eliminating the function call overhead. -* [Delete build.log](https://github.com/AcademySoftwareFoundation/openexr/commit/148f1c230b5ecd94d795ca172a8246785c7caca7) ([Arkady Shapkin](@arkady.shapkin@gmail.com), 2017-02-18) +* [Delete build.log](https://github.com/AcademySoftwareFoundation/openexr/commit/148f1c230b5ecd94d795ca172a8246785c7caca7) ([Arkady Shapkin](@arkady.shapkin@gmail.com), 2017-02-18) -* [fix defect in semaphore implementation which caused application hang at exit time, because not all worker threads get woken up when task semaphore is repeatedly posted (to wake them up) after setting the stopping flag in the thread pool](https://github.com/AcademySoftwareFoundation/openexr/commit/4706d615e942462a532381a8a86bc5fe820c6816) ([Richard Goedeken](@Richard@fascinationsoftware.com), 2016-11-22) +* [fix defect in semaphore implementation which caused application hang at exit time, because not all worker threads get woken up when task semaphore is repeatedly posted (to wake them up) after setting the stopping flag in the thread pool](https://github.com/AcademySoftwareFoundation/openexr/commit/4706d615e942462a532381a8a86bc5fe820c6816) ([Richard Goedeken](@Richard@fascinationsoftware.com), 2016-11-22) -* [fix comparison of unsigned expression < 0 (Issue #165)](https://github.com/AcademySoftwareFoundation/openexr/commit/9e3913c94c55549640c732f549d2912fbd85c336) ([CAHEK7](@ghosts.in.a.box@gmail.com), 2016-02-15) +* [fix comparison of unsigned expression < 0 (Issue #165)](https://github.com/AcademySoftwareFoundation/openexr/commit/9e3913c94c55549640c732f549d2912fbd85c336) ([CAHEK7](@ghosts.in.a.box@gmail.com), 2016-02-15) -* [Added Iex library once more for linker dependency](https://github.com/AcademySoftwareFoundation/openexr/commit/b0b50791b5b36fddb010b5ad630dd429f947a080) ([Eric Sommerlade](@es0m@users.noreply.github.com), 2015-02-20) +* [Added Iex library once more for linker dependency](https://github.com/AcademySoftwareFoundation/openexr/commit/b0b50791b5b36fddb010b5ad630dd429f947a080) ([Eric Sommerlade](@es0m@users.noreply.github.com), 2015-02-20) -* [windows/cmake: Commands depend on Half.dll which needs to be in path. Running commands in Half.dll's directory addresses this and the commands run on first invocation](https://github.com/AcademySoftwareFoundation/openexr/commit/1a23716fd7e9ae167f53c7f2099651ede1279fbb) ([E Sommerlade](@es0m@users.noreply.github.com), 2015-02-10) +* [windows/cmake: Commands depend on Half.dll which needs to be in path. Running commands in Half.dll's directory addresses this and the commands run on first invocation](https://github.com/AcademySoftwareFoundation/openexr/commit/1a23716fd7e9ae167f53c7f2099651ede1279fbb) ([E Sommerlade](@es0m@users.noreply.github.com), 2015-02-10) -* [Fixed memory corruption / actual crashes on Window](https://github.com/AcademySoftwareFoundation/openexr/commit/c330c40e1962257b0e59328fdceaa9cdcde3041b) ([JuriAbramov](@openexr@dr-abramov.de), 2015-01-19) Fixed memory corruption caused by missing assignment operator with non-trivial copy constructor logic. FIxes crashes on Windows when "dwaa" or "dwab" codecs are used for saving files. +* [Fixed memory corruption / actual crashes on Window](https://github.com/AcademySoftwareFoundation/openexr/commit/c330c40e1962257b0e59328fdceaa9cdcde3041b) ([JuriAbramov](@openexr@dr-abramov.de), 2015-01-19) Fixed memory corruption caused by missing assignment operator with non-trivial copy constructor logic. FIxes crashes on Windows when "dwaa" or "dwab" codecs are used for saving files. -* [std namespace should be specified for transform](https://github.com/AcademySoftwareFoundation/openexr/commit/4a00a9bc6c92b20443c61f5e9877123e7fef16e6) ([JuriAbramov](@openexr@dr-abramov.de), 2014-08-20) Fixes build with some VS and clang version. +* [std namespace should be specified for transform](https://github.com/AcademySoftwareFoundation/openexr/commit/4a00a9bc6c92b20443c61f5e9877123e7fef16e6) ([JuriAbramov](@openexr@dr-abramov.de), 2014-08-20) Fixes build with some VS and clang version. -* [m4/path.pkgconfig.m4: use PKG_PROG_PKG_CONFIG to find correct pkg-config](https://github.com/AcademySoftwareFoundation/openexr/commit/056cb9f09efa9116c7f5fb8bc0717a260ad23744) ([Michael Thomas (malinka)](@malinka@entropy-development.com), 2016-05-24) pkg-config supplies this macro and prefers it to be used to allow for cross-compilation scenarios where target-prefixed binaries are prefered to pkg-config +* [m4/path.pkgconfig.m4: use PKG_PROG_PKG_CONFIG to find correct pkg-config](https://github.com/AcademySoftwareFoundation/openexr/commit/056cb9f09efa9116c7f5fb8bc0717a260ad23744) ([Michael Thomas (malinka)](@malinka@entropy-development.com), 2016-05-24) pkg-config supplies this macro and prefers it to be used to allow for cross-compilation scenarios where target-prefixed binaries are prefered to pkg-config -* [Updated list of EXTRA_DIST files to reflect the updated test images and prior removal of README.win32](https://github.com/AcademySoftwareFoundation/openexr/commit/165dceaeee86e0f8ce1ed1db3e3030c609a49f17) ([Nick Rasmussen](@nick@ilm.com), 2017-11-17) +* [Updated list of EXTRA_DIST files to reflect the updated test images and prior removal of README.win32](https://github.com/AcademySoftwareFoundation/openexr/commit/165dceaeee86e0f8ce1ed1db3e3030c609a49f17) ([Nick Rasmussen](@nick@ilm.com), 2017-11-17) -* [Updated list of EXTRA_DIST files to reflect the updated test images and prior removal of README.win32](https://github.com/AcademySoftwareFoundation/openexr/commit/dcaf5fdb4d1244d8e60a58832cfe9c54734a2257) ([Nick Rasmussen](@nick@ilm.com), 2017-11-17) +* [Updated list of EXTRA_DIST files to reflect the updated test images and prior removal of README.win32](https://github.com/AcademySoftwareFoundation/openexr/commit/dcaf5fdb4d1244d8e60a58832cfe9c54734a2257) ([Nick Rasmussen](@nick@ilm.com), 2017-11-17) -* [Updated openexr version to 2.2.1, resynced the .so version number to 23 across all projects.](https://github.com/AcademySoftwareFoundation/openexr/commit/e69de40ddbb6bd58341618a506b2e913e5ac1797) ([Nick Rasmussen](@nick@ilm.com), 2017-11-17) +* [Updated openexr version to 2.2.1, resynced the .so version number to 23 across all projects.](https://github.com/AcademySoftwareFoundation/openexr/commit/e69de40ddbb6bd58341618a506b2e913e5ac1797) ([Nick Rasmussen](@nick@ilm.com), 2017-11-17) -* [Add additional input validation in an attempt to resolve issue #232](https://github.com/AcademySoftwareFoundation/openexr/commit/49db4a4192482eec9c27669f75db144cf5434804) ([Shawn Walker-Salas](@shawn.walker@oracle.com), 2017-05-30) +* [Add additional input validation in an attempt to resolve issue #232](https://github.com/AcademySoftwareFoundation/openexr/commit/49db4a4192482eec9c27669f75db144cf5434804) ([Shawn Walker-Salas](@shawn.walker@oracle.com), 2017-05-30) -* [Add additional input validation in an attempt to resolve issue #232](https://github.com/AcademySoftwareFoundation/openexr/commit/f09f5f26c1924c4f7e183428ca79c9881afaf53c) ([Shawn Walker-Salas](@shawn.walker@oracle.com), 2017-05-30) +* [Add additional input validation in an attempt to resolve issue #232](https://github.com/AcademySoftwareFoundation/openexr/commit/f09f5f26c1924c4f7e183428ca79c9881afaf53c) ([Shawn Walker-Salas](@shawn.walker@oracle.com), 2017-05-30) -* [root level LICENSE](https://github.com/AcademySoftwareFoundation/openexr/commit/a774d643b566d56314f26695f2bf9b75f88e64f6) ([cary-ilm](@cary@ilm.com), 2017-10-23) +* [root level LICENSE](https://github.com/AcademySoftwareFoundation/openexr/commit/a774d643b566d56314f26695f2bf9b75f88e64f6) ([cary-ilm](@cary@ilm.com), 2017-10-23) -* [Fix copyright/license notice in halfExport.h](https://github.com/AcademySoftwareFoundation/openexr/commit/20d043d017d4b752356bb76946ffdffaa9c15c72) ([Ed Hanway](@ehanway@ilm.com), 2017-01-09) +* [Fix copyright/license notice in halfExport.h](https://github.com/AcademySoftwareFoundation/openexr/commit/20d043d017d4b752356bb76946ffdffaa9c15c72) ([Ed Hanway](@ehanway@ilm.com), 2017-01-09) -* [Merge branch 'jkingsman-cleanup-readme' into develop](https://github.com/AcademySoftwareFoundation/openexr/commit/6f6d9cea513ea409d4b65da40ac096eab9a549b0) ([Ed Hanway](@ehanway@ilm.com), 2016-10-28) +* [Merge branch 'jkingsman-cleanup-readme' into develop](https://github.com/AcademySoftwareFoundation/openexr/commit/6f6d9cea513ea409d4b65da40ac096eab9a549b0) ([Ed Hanway](@ehanway@ilm.com), 2016-10-28) -* [README edits.](https://github.com/AcademySoftwareFoundation/openexr/commit/098a4893910d522b867082ed38d7388e6265bee0) ([Ed Hanway](@ehanway@ilm.com), 2016-10-28) +* [README edits.](https://github.com/AcademySoftwareFoundation/openexr/commit/098a4893910d522b867082ed38d7388e6265bee0) ([Ed Hanway](@ehanway@ilm.com), 2016-10-28) -* [Merge branch 'cleanup-readme' of https://github.com/jkingsman/openexr into jkingsman-cleanup-readme](https://github.com/AcademySoftwareFoundation/openexr/commit/43e50ed5dca1ddfb3ca2cb4c38c7752497db6e50) ([Ed Hanway](@ehanway@ilm.com), 2016-10-28) +* [Merge branch 'cleanup-readme' of https://github.com/jkingsman/openexr into jkingsman-cleanup-readme](https://github.com/AcademySoftwareFoundation/openexr/commit/43e50ed5dca1ddfb3ca2cb4c38c7752497db6e50) ([Ed Hanway](@ehanway@ilm.com), 2016-10-28) -* [Install ImfStdIO.h](https://github.com/AcademySoftwareFoundation/openexr/commit/2872d3b230a7920696510f80a50d9ce36b6cc94e) ([Ed Hanway](@ehanway@ilm.com), 2016-10-28) This was originally intended to be an internal class only, but its use has become the de facto way to handle UTF-8 filenames on Windows. +* [Install ImfStdIO.h](https://github.com/AcademySoftwareFoundation/openexr/commit/2872d3b230a7920696510f80a50d9ce36b6cc94e) ([Ed Hanway](@ehanway@ilm.com), 2016-10-28) This was originally intended to be an internal class only, but its use has become the de facto way to handle UTF-8 filenames on Windows. -* [Merge pull request #204 from dlemstra/IMF_HAVE_SSE2](https://github.com/AcademySoftwareFoundation/openexr/commit/cbb01bf286a2e04df95fb51458d1c2cbdc08935b) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-10-19) Consistent check for IMF_HAVE_SSE2. +* [Merge pull request #204 from dlemstra/IMF_HAVE_SSE2](https://github.com/AcademySoftwareFoundation/openexr/commit/cbb01bf286a2e04df95fb51458d1c2cbdc08935b) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-10-19) Consistent check for IMF_HAVE_SSE2. -* [Remove fixed-length line breaks](https://github.com/AcademySoftwareFoundation/openexr/commit/0ea6b8c7d077a18fb849c2b2ff532cd952d06a38) ([Jack Kingsman](@jack.kingsman@gmail.com), 2016-10-19) +* [Remove fixed-length line breaks](https://github.com/AcademySoftwareFoundation/openexr/commit/0ea6b8c7d077a18fb849c2b2ff532cd952d06a38) ([Jack Kingsman](@jack.kingsman@gmail.com), 2016-10-19) -* [Update README to markdown](https://github.com/AcademySoftwareFoundation/openexr/commit/9c6d22e23a25d761f5456e08623b8d77c0f8930a) ([Jack Kingsman](@jack.kingsman@gmail.com), 2016-10-18) +* [Update README to markdown](https://github.com/AcademySoftwareFoundation/openexr/commit/9c6d22e23a25d761f5456e08623b8d77c0f8930a) ([Jack Kingsman](@jack.kingsman@gmail.com), 2016-10-18) -* [Merge pull request #206 from lgritz/lg-register](https://github.com/AcademySoftwareFoundation/openexr/commit/6788745398594d479e8cf91a6c301fea0537108b) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-09-30) Remove 'register' keyword. +* [Merge pull request #206 from lgritz/lg-register](https://github.com/AcademySoftwareFoundation/openexr/commit/6788745398594d479e8cf91a6c301fea0537108b) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-09-30) Remove 'register' keyword. -* [Remove 'register' keyword.](https://github.com/AcademySoftwareFoundation/openexr/commit/6d297f35c5dbfacc8a5e94f33b986db7ab468db9) ([Larry Gritz](@lg@larrygritz.com), 2016-09-30) 'register' is a relic of K&R-era C, it's utterly useless in modern compilers. It's been deprecated in C++11, and therefore will generate warnings when encountered -- and many packages that use OpenEXR's public headers use -Werr to turn warnings into errors. Starting in C++17, the keyword is removed entirely, and thus will certainly be a build break for that version of the standard. So it's time for it to go. +* [Remove 'register' keyword.](https://github.com/AcademySoftwareFoundation/openexr/commit/6d297f35c5dbfacc8a5e94f33b986db7ab468db9) ([Larry Gritz](@lg@larrygritz.com), 2016-09-30) 'register' is a relic of K&R-era C, it's utterly useless in modern compilers. It's been deprecated in C++11, and therefore will generate warnings when encountered -- and many packages that use OpenEXR's public headers use -Werr to turn warnings into errors. Starting in C++17, the keyword is removed entirely, and thus will certainly be a build break for that version of the standard. So it's time for it to go. -* [Consistent check for IMF_HAVE_SSE2.](https://github.com/AcademySoftwareFoundation/openexr/commit/7403524c8fed971383c724d85913b2d52672caf3) ([dirk](@dirk@git.imagemagick.org), 2016-09-17) +* [Consistent check for IMF_HAVE_SSE2.](https://github.com/AcademySoftwareFoundation/openexr/commit/7403524c8fed971383c724d85913b2d52672caf3) ([dirk](@dirk@git.imagemagick.org), 2016-09-17) -* [Merge pull request #141 from lucywilkes/develop](https://github.com/AcademySoftwareFoundation/openexr/commit/c23f5345a6cc89627cc416b3e0e6b182cd427479) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-09-16) Adding rawPixelDataToBuffer() function for access to compressed scanlines +* [Merge pull request #141 from lucywilkes/develop](https://github.com/AcademySoftwareFoundation/openexr/commit/c23f5345a6cc89627cc416b3e0e6b182cd427479) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-09-16) Adding rawPixelDataToBuffer() function for access to compressed scanlines -* [Merge pull request #198 from ZeroCrunch/develop](https://github.com/AcademySoftwareFoundation/openexr/commit/891437f74805f6c8ebc897932091cbe0bb7e1163) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-08-02) Windows compile fix +* [Merge pull request #198 from ZeroCrunch/develop](https://github.com/AcademySoftwareFoundation/openexr/commit/891437f74805f6c8ebc897932091cbe0bb7e1163) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-08-02) Windows compile fix -* [Windows compile fix](https://github.com/AcademySoftwareFoundation/openexr/commit/77faf005b50e8f77a8080676738ef9b9c807bf53) ([Jamie Kenyon](@jamie.kenyon@thefoundry.co.uk), 2016-07-29) std::min wasn't found due to not being included. +* [Windows compile fix](https://github.com/AcademySoftwareFoundation/openexr/commit/77faf005b50e8f77a8080676738ef9b9c807bf53) ([Jamie Kenyon](@jamie.kenyon@thefoundry.co.uk), 2016-07-29) std::min wasn't found due to not being included. -* [Merge pull request #179 from CAHEK7/NullptrBug](https://github.com/AcademySoftwareFoundation/openexr/commit/a0a68393a4d3b622251fb7c490ee9d59e080b776) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-07-26) fix potential memory leak +* [Merge pull request #179 from CAHEK7/NullptrBug](https://github.com/AcademySoftwareFoundation/openexr/commit/a0a68393a4d3b622251fb7c490ee9d59e080b776) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-07-26) fix potential memory leak -* [Merge branch 'develop' of https://github.com/r-potter/openexr into r-potter-develop](https://github.com/AcademySoftwareFoundation/openexr/commit/b206a243a03724650b04efcdf863c7761d5d5d5b) ([Ed Hanway](@ehanway@ilm.com), 2016-07-26) +* [Merge branch 'develop' of https://github.com/r-potter/openexr into r-potter-develop](https://github.com/AcademySoftwareFoundation/openexr/commit/b206a243a03724650b04efcdf863c7761d5d5d5b) ([Ed Hanway](@ehanway@ilm.com), 2016-07-26) -* [Merge pull request #154 into develop](https://github.com/AcademySoftwareFoundation/openexr/commit/bc372d47186db31d104e84e4eb9e84850819db8d) ([Ed Hanway](@ehanway@ilm.com), 2016-07-25) +* [Merge pull request #154 into develop](https://github.com/AcademySoftwareFoundation/openexr/commit/bc372d47186db31d104e84e4eb9e84850819db8d) ([Ed Hanway](@ehanway@ilm.com), 2016-07-25) -* [Merge pull request #168 into develop](https://github.com/AcademySoftwareFoundation/openexr/commit/44d077672f558bc63d907891bb88d741b334d807) ([Ed Hanway](@ehanway@ilm.com), 2016-07-25) +* [Merge pull request #168 into develop](https://github.com/AcademySoftwareFoundation/openexr/commit/44d077672f558bc63d907891bb88d741b334d807) ([Ed Hanway](@ehanway@ilm.com), 2016-07-25) -* [Merge pull request #175 into develop](https://github.com/AcademySoftwareFoundation/openexr/commit/7513fd847cf38af89572cc209b03e5b548e6bfc8) ([Ed Hanway](@ehanway@ilm.com), 2016-07-25) +* [Merge pull request #175 into develop](https://github.com/AcademySoftwareFoundation/openexr/commit/7513fd847cf38af89572cc209b03e5b548e6bfc8) ([Ed Hanway](@ehanway@ilm.com), 2016-07-25) -* [Merge pull request #174 into develop](https://github.com/AcademySoftwareFoundation/openexr/commit/b16664a2ee4627c235b9ce798f4fc911e9c5694f) ([Ed Hanway](@ehanway@ilm.com), 2016-07-25) +* [Merge pull request #174 into develop](https://github.com/AcademySoftwareFoundation/openexr/commit/b16664a2ee4627c235b9ce798f4fc911e9c5694f) ([Ed Hanway](@ehanway@ilm.com), 2016-07-25) -* [Merge branch pull request 172 into develop: fix copy and paste bug in ImfDeepTiledInputPart.cpp](https://github.com/AcademySoftwareFoundation/openexr/commit/ef7b78d5988d37dbbc74c21ad245ed5c80927223) ([Ed Hanway](@ehanway@ilm.com), 2016-07-25) +* [Merge branch pull request 172 into develop: fix copy and paste bug in ImfDeepTiledInputPart.cpp](https://github.com/AcademySoftwareFoundation/openexr/commit/ef7b78d5988d37dbbc74c21ad245ed5c80927223) ([Ed Hanway](@ehanway@ilm.com), 2016-07-25) -* [Merge pull request #195 from openexr/master](https://github.com/AcademySoftwareFoundation/openexr/commit/bc234de193bd9cd32d94648e2936270aa4406e91) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-07-25) Catch develop branch up with commits in master. +* [Merge pull request #195 from openexr/master](https://github.com/AcademySoftwareFoundation/openexr/commit/bc234de193bd9cd32d94648e2936270aa4406e91) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2016-07-25) Catch develop branch up with commits in master. -* [fix potential memory leak](https://github.com/AcademySoftwareFoundation/openexr/commit/d2f10c784d52f841b85e382620100cdbf0d3b1e5) ([CAHEK7](@ghosts.in.a.box@gmail.com), 2016-02-05) +* [fix potential memory leak](https://github.com/AcademySoftwareFoundation/openexr/commit/d2f10c784d52f841b85e382620100cdbf0d3b1e5) ([CAHEK7](@ghosts.in.a.box@gmail.com), 2016-02-05) -* [Fix warnings when compiled with MSVC 2013.](https://github.com/AcademySoftwareFoundation/openexr/commit/3aabef263083024db9e563007d0d76609ac8d585) ([Xo Wang](@xow@google.com), 2016-01-06) Similar fix to that from a27e048451ba3084559634e5e045a92a613b1455. +* [Fix warnings when compiled with MSVC 2013.](https://github.com/AcademySoftwareFoundation/openexr/commit/3aabef263083024db9e563007d0d76609ac8d585) ([Xo Wang](@xow@google.com), 2016-01-06) Similar fix to that from a27e048451ba3084559634e5e045a92a613b1455. -* [Fix typo in C bindings (Close #140)](https://github.com/AcademySoftwareFoundation/openexr/commit/c229dfe63380f41dfae1e977b10dfc7c49c7efc7) ([Edward Kmett](@ekmett@gmail.com), 2015-12-09) IMF_RAMDOM_Y should be IMF_RANDOM_Y +* [Fix typo in C bindings (Close #140)](https://github.com/AcademySoftwareFoundation/openexr/commit/c229dfe63380f41dfae1e977b10dfc7c49c7efc7) ([Edward Kmett](@ekmett@gmail.com), 2015-12-09) IMF_RAMDOM_Y should be IMF_RANDOM_Y -* [Fix copy and paste bug](https://github.com/AcademySoftwareFoundation/openexr/commit/501b654d851e2da1d9e5ca010a1e13fe34ae24ab) ([Christopher Kulla](@fpsunflower@users.noreply.github.com), 2015-11-19) The implementation of DeepTiledInputPart::tileXSize was copy and pasted from the function above but not changed. This causes it tor return incorrect values. +* [Fix copy and paste bug](https://github.com/AcademySoftwareFoundation/openexr/commit/501b654d851e2da1d9e5ca010a1e13fe34ae24ab) ([Christopher Kulla](@fpsunflower@users.noreply.github.com), 2015-11-19) The implementation of DeepTiledInputPart::tileXSize was copy and pasted from the function above but not changed. This causes it tor return incorrect values. -* [Switch AVX detection asm to not use an empty clobber list for use with older gcc versions](https://github.com/AcademySoftwareFoundation/openexr/commit/51073d1aa8f96963fc6a3ecad8f844ce70c90991) ([Kevin Wheatley](@kevin.wheatley@framestore.com), 2015-10-14) +* [Switch AVX detection asm to not use an empty clobber list for use with older gcc versions](https://github.com/AcademySoftwareFoundation/openexr/commit/51073d1aa8f96963fc6a3ecad8f844ce70c90991) ([Kevin Wheatley](@kevin.wheatley@framestore.com), 2015-10-14) -* [Merge pull request #145 from karlrasche/DWAx_clamp_float32](https://github.com/AcademySoftwareFoundation/openexr/commit/521b25df787b460e57d5c1e831b232152b93a6ee) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2015-10-23) Clamp, don't cast, float inputs with DWAx compression +* [Merge pull request #145 from karlrasche/DWAx_clamp_float32](https://github.com/AcademySoftwareFoundation/openexr/commit/521b25df787b460e57d5c1e831b232152b93a6ee) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2015-10-23) Clamp, don't cast, float inputs with DWAx compression -* [Merge pull request #143 from karlrasche/DWAx_bad_zigzag_order](https://github.com/AcademySoftwareFoundation/openexr/commit/9547d38199f5db2712c06ccdda9195badbecccaa) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2015-10-23) Wrong zig-zag ordering used for DWAx decode optimization +* [Merge pull request #143 from karlrasche/DWAx_bad_zigzag_order](https://github.com/AcademySoftwareFoundation/openexr/commit/9547d38199f5db2712c06ccdda9195badbecccaa) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2015-10-23) Wrong zig-zag ordering used for DWAx decode optimization -* [Merge pull request #157 from karlrasche/DWAx_compress_bound](https://github.com/AcademySoftwareFoundation/openexr/commit/de27156b77896aeef5b1c99edbca2bc4fa784b51) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2015-10-23) Switch over to use compressBound() instead of manually computing headroom for compress() +* [Merge pull request #157 from karlrasche/DWAx_compress_bound](https://github.com/AcademySoftwareFoundation/openexr/commit/de27156b77896aeef5b1c99edbca2bc4fa784b51) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2015-10-23) Switch over to use compressBound() instead of manually computing headroom for compress() -* [Switch over to use compressBound() instead of manually computing headroom for compress()](https://github.com/AcademySoftwareFoundation/openexr/commit/c9a2e193ce243c66177ddec6be43bc6f655ff78a) ([Karl Rasche](@karl.rasche@dreamworks.com), 2015-02-18) +* [Switch over to use compressBound() instead of manually computing headroom for compress()](https://github.com/AcademySoftwareFoundation/openexr/commit/c9a2e193ce243c66177ddec6be43bc6f655ff78a) ([Karl Rasche](@karl.rasche@dreamworks.com), 2015-02-18) -* [Fix a linker error when compiling OpenEXR statically on Linux](https://github.com/AcademySoftwareFoundation/openexr/commit/caa09c1b361e2b152786d9e8b2b90261c9d9a3aa) ([Wenzel Jakob](@wenzel@inf.ethz.ch), 2015-02-02) Linking OpenEXR and IlmBase statically on Linux failed due to interdependencies between Iex and IlmThread. Simply reversing their order in CMakeLists.txt fixes the issue (which only arises on Linux since the GNU linker is particularly sensitive to the order of static libraries) +* [Fix a linker error when compiling OpenEXR statically on Linux](https://github.com/AcademySoftwareFoundation/openexr/commit/caa09c1b361e2b152786d9e8b2b90261c9d9a3aa) ([Wenzel Jakob](@wenzel@inf.ethz.ch), 2015-02-02) Linking OpenEXR and IlmBase statically on Linux failed due to interdependencies between Iex and IlmThread. Simply reversing their order in CMakeLists.txt fixes the issue (which only arises on Linux since the GNU linker is particularly sensitive to the order of static libraries) -* [Clamp incoming float values to half, instead of simply casting, on encode.](https://github.com/AcademySoftwareFoundation/openexr/commit/cb172eea58b8be078b88eca35f246e12df2de620) ([Karl Rasche](@karl.rasche@dreamworks.com), 2014-11-24) Casting can introduce Infs, which are zero'ed later on, prior to the forward DCT step. This can have the nasty side effect of forcing bright values to zero, instead of clamping them to 65k. +* [Clamp incoming float values to half, instead of simply casting, on encode.](https://github.com/AcademySoftwareFoundation/openexr/commit/cb172eea58b8be078b88eca35f246e12df2de620) ([Karl Rasche](@karl.rasche@dreamworks.com), 2014-11-24) Casting can introduce Infs, which are zero'ed later on, prior to the forward DCT step. This can have the nasty side effect of forcing bright values to zero, instead of clamping them to 65k. -* [Remove errant whitespace](https://github.com/AcademySoftwareFoundation/openexr/commit/fc67c8245dbff48e546abae027cc9c80c98b3db1) ([Karl Rasche](@karl.rasche@dreamworks.com), 2014-11-20) +* [Remove errant whitespace](https://github.com/AcademySoftwareFoundation/openexr/commit/fc67c8245dbff48e546abae027cc9c80c98b3db1) ([Karl Rasche](@karl.rasche@dreamworks.com), 2014-11-20) -* [Use the correct zig-zag ordering when finding choosing between fast-path inverse DCT versions (computing which rows are all zero)](https://github.com/AcademySoftwareFoundation/openexr/commit/b0d0d47b65c5ebcb8c6493aa2238b9f890c4d7fe) ([Karl Rasche](@karl.rasche@dreamworks.com), 2014-11-19) +* [Use the correct zig-zag ordering when finding choosing between fast-path inverse DCT versions (computing which rows are all zero)](https://github.com/AcademySoftwareFoundation/openexr/commit/b0d0d47b65c5ebcb8c6493aa2238b9f890c4d7fe) ([Karl Rasche](@karl.rasche@dreamworks.com), 2014-11-19) -* [Resolve dependency issue building eLut.h/toFloat.h with CMake/Ninja.](https://github.com/AcademySoftwareFoundation/openexr/commit/8eed7012c10f1a835385d750fd55f228d1d35df9) ([Ralph Potter](@r.potter@bath.ac.uk), 2014-11-05) +* [Resolve dependency issue building eLut.h/toFloat.h with CMake/Ninja.](https://github.com/AcademySoftwareFoundation/openexr/commit/8eed7012c10f1a835385d750fd55f228d1d35df9) ([Ralph Potter](@r.potter@bath.ac.uk), 2014-11-05) -* [Adding rawPixelDataToBuffer() function for access to compressed data read from scanline input files.](https://github.com/AcademySoftwareFoundation/openexr/commit/1f6eddeea176ce773dacd5cdee0cbad0ab549bae) ([Lucy Wilkes](@lucywilkes@users.noreply.github.com), 2014-10-22) Changes from The Foundry to add rawPixelDataToBuffer(...) function to the OpenEXR library. This allows you to read raw scan lines into an external buffer. It's similar to the existing function rawPixelData, but unlike this existing function it allows the user to control where the data will be stored instead of reading it into a local buffer. This means you can store multiple raw scan lines at once and enables the decompression of these scan lines to be done in parallel using an application's own threads. (cherry picked from commit ca76ebb40a3c5a5c8e055f0c8d8be03ca52e91c8) +* [Adding rawPixelDataToBuffer() function for access to compressed data read from scanline input files.](https://github.com/AcademySoftwareFoundation/openexr/commit/1f6eddeea176ce773dacd5cdee0cbad0ab549bae) ([Lucy Wilkes](@lucywilkes@users.noreply.github.com), 2014-10-22) Changes from The Foundry to add rawPixelDataToBuffer(...) function to the OpenEXR library. This allows you to read raw scan lines into an external buffer. It's similar to the existing function rawPixelData, but unlike this existing function it allows the user to control where the data will be stored instead of reading it into a local buffer. This means you can store multiple raw scan lines at once and enables the decompression of these scan lines to be done in parallel using an application's own threads. (cherry picked from commit ca76ebb40a3c5a5c8e055f0c8d8be03ca52e91c8) -* [Merge pull request #137 from karlrasche/interleaveByte2_sse_bug](https://github.com/AcademySoftwareFoundation/openexr/commit/f4a6d3b9fabd82a11b63abf938e9e32f42d2d6d7) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2014-10-15) Fixing SSE2 byte interleaving path to work with short runs +* [Merge pull request #137 from karlrasche/interleaveByte2_sse_bug](https://github.com/AcademySoftwareFoundation/openexr/commit/f4a6d3b9fabd82a11b63abf938e9e32f42d2d6d7) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2014-10-15) Fixing SSE2 byte interleaving path to work with short runs -* [Fixing SSE2 byte interleaving path to work with short runs](https://github.com/AcademySoftwareFoundation/openexr/commit/da28ad8cd54dfa3becfdac33872c5b1401a9cc3c) ([Karl Rasche](@karl.rasche@dreamworks.com), 2014-09-08) +* [Fixing SSE2 byte interleaving path to work with short runs](https://github.com/AcademySoftwareFoundation/openexr/commit/da28ad8cd54dfa3becfdac33872c5b1401a9cc3c) ([Karl Rasche](@karl.rasche@dreamworks.com), 2014-09-08) -* [Merge pull request #126 from fnordware/LL_literal](https://github.com/AcademySoftwareFoundation/openexr/commit/91015147e5a6a1914bcb16b12886aede9e1ed065) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2014-08-14) Use LL for 64-bit literals +* [Merge pull request #126 from fnordware/LL_literal](https://github.com/AcademySoftwareFoundation/openexr/commit/91015147e5a6a1914bcb16b12886aede9e1ed065) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2014-08-14) Use LL for 64-bit literals -* [Change suffixes to ULL because Int64 is unsigned](https://github.com/AcademySoftwareFoundation/openexr/commit/353cbc2e89c582e07796f01bce8f203e84c8ae46) ([Brendan Bolles](@brendan@fnordware.com), 2014-08-14) As discusses in pull request #126 +* [Change suffixes to ULL because Int64 is unsigned](https://github.com/AcademySoftwareFoundation/openexr/commit/353cbc2e89c582e07796f01bce8f203e84c8ae46) ([Brendan Bolles](@brendan@fnordware.com), 2014-08-14) As discusses in pull request #126 -* [Merge pull request #127 from openexr/tarball_contents_fix](https://github.com/AcademySoftwareFoundation/openexr/commit/699b4a62d5de9592d26f581a9cade89fdada7e6a) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2014-08-14) Tarball contents fix +* [Merge pull request #127 from openexr/tarball_contents_fix](https://github.com/AcademySoftwareFoundation/openexr/commit/699b4a62d5de9592d26f581a9cade89fdada7e6a) ([Ed Hanway](@ehanway-ilm@users.noreply.github.com), 2014-08-14) Tarball contents fix -* [Add dwa test images to dist (tarball) manifest. Also drop README.win32 from tarball. (Already removed from repo.)](https://github.com/AcademySoftwareFoundation/openexr/commit/cbac202a84b0b0bac0fcd92e5b5c8d634085329e) ([Ed Hanway](@ehanway@ilm.com), 2014-08-14) [New Cmake-centric instructions covering builds for Windows and other platforms to follow.] +* [Add dwa test images to dist (tarball) manifest. Also drop README.win32 from tarball. (Already removed from repo.)](https://github.com/AcademySoftwareFoundation/openexr/commit/cbac202a84b0b0bac0fcd92e5b5c8d634085329e) ([Ed Hanway](@ehanway@ilm.com), 2014-08-14) [New Cmake-centric instructions covering builds for Windows and other platforms to follow.] * [Use LL for 64-bit literals](https://github.com/AcademySoftwareFoundation/openexr/commit/57ecf581d053f5cacf2e8fc3c024490e0bbe536f) ([Brendan Bolles](@brendan@fnordware.com), 2014-08-13) On a 32-bit architecture, these literals are too big for just a long, they need to be long long, otherwise I get an error in GCC. @@ -3620,14 +3665,14 @@ documentation describing deep data in more detail. ### Detailed Changes: * Temporarily turning off optimisation code path (Piotr Stanczyk) - + * Added additional tests for future optimisation refactoring (Piotr - Stanczyk / Peter Hillman) + Stanczyk / Peter Hillman) * Fixes for StringVectors (Peter Hillman) * Additional checks for type mismatches (Peter Hillman) - + * Fix for Composite Deep Scanline (Brendan Bolles) ## Version 2.0 (April 9, 2013) @@ -3725,19 +3770,19 @@ automotive and product prototyping. ### Detailed Changes: * Updated Documentation - (Peter Hillman) + (Peter Hillman) * Updated Namespacing mechanism - (Piotr Stanczyk) + (Piotr Stanczyk) * Fixes for succd & predd - (Peter Hillman) + (Peter Hillman) * Fixes for FPE control registers - (Piotr Stanczyk) + (Piotr Stanczyk) * Additional checks and tests on DeepImages, scanlines and tiles - (Peter Hillman) + (Peter Hillman) * Folded in Autodesk read optimisations for RGB(A) files - (Pascal Jette, Peter Hillman) -* Updated the bootstrap scripts to use libtoolize if glibtoolize isn't available on darwin. - (Nick Rasmussen) + (Pascal Jette, Peter Hillman) +* Updated the bootstrap scripts to use libtoolize if glibtoolize isn't available on darwin. + (Nick Rasmussen) * Numerous minor fixes, missing includes etc ## Version 2.0.0.beta.1 (June 15, 2012) @@ -3772,12 +3817,12 @@ Please read the separate file for v2 additions and changes. ### Detailed Changes: -* Added git specific files - (Piotr Stanczyk) +* Added git specific files + (Piotr Stanczyk) * Updated the so verison to 20 - (Piotr Stanczyk) -* Initial use of the CMake build system - (Nicholas Yue) + (Piotr Stanczyk) +* Initial use of the CMake build system + (Nicholas Yue) ## Version 1.7.1 (July 31, 2012) @@ -3818,13 +3863,13 @@ This release addresses the following security vulnerabilities: * Added support for targeting builds on 64bit Windows and minimising number of compiler warnings on Windows. Thanks to Ger Hobbelt for his contributions to CreateDLL. (Ji Hun Yu) - + * Added new attribute types (Florian Kainz): * **M33dAttribute** 3x3 double-precision matrix * **M44dAttribute** 4x4 double-precision matrix * **V2d** 2D double-precision vector - * **V3d** 3D double-precision vector - + * **V3d** 3D double-precision vector + * Bug fix: crash when reading a damaged image file (found by Apple). An exception thrown inside the PIZ Huffman decoder bypasses initialization of an array of pointers. The uninitialized pointers @@ -3910,7 +3955,7 @@ problem in CTL, and it removes a few unnecessary files from the * Bug fix: crashes, memory leaks and file descriptor leaks when reading damaged image files (some reported by Apple, others found by running IlmImfFuzzTest). (Florian Kainz) - + * Added new IlmImfFuzzTest program to test how resilient the IlmImf library is with respect broken input files: the program first damages OpenEXR files by partially overwriting them with random @@ -3961,7 +4006,7 @@ IlmBase 1.0.0: * Bug fix: for pixels with luminance near HALF_MIN, conversion from RGB to luminance/chroma produces NaNs and infinities (Florian Kainz) - + * Bug fix: excessive desaturation of small details with certain colors after repeatedly loading and saving luminance/chroma encoded images with B44 compression. (Florian Kainz) @@ -3984,7 +4029,7 @@ IlmBase 1.0.0: link with static libraries properly * eliminated some warning messages during install (Andrew Kunz) - + ## Version 1.5.0 (December 15, 2006) The new version includes several significant changes: @@ -4029,7 +4074,7 @@ The new version includes several significant changes: * The OpenEXR sample image set now includes B44-compressed files and files with CIE XYZ pixel data. -### Detailed Changes: +### Detailed Changes: * reorganized packaging of OpenEXR libraries to facilitate integration with CTL. Now this library depends on the library IlmBase. Some @@ -4085,8 +4130,8 @@ The new version includes several significant changes: ## Version 1.4.0a (August 9, 2006) * Fixed the ReleaseDLL targets for Visual Studio 2003. (Barnaby Robson) - -## Version 1.4.0 (August 2, 2006) + +## Version 1.4.0 (August 2, 2006) This is the next major production-ready release of OpenEXR and offers full compatibility with our last production release, which was @@ -4105,7 +4150,7 @@ The new version includes several significant changes: * Fixed the ReleaseDLL targets for Visual Studio 2005. (Nick Porcino, Drew Hess) * Fixes/enhancements for createDLL. (Nick Porcino) - + ## Version 1.3.0 (June 8, 2006) This is a test release. The major new feature in this version is @@ -4145,7 +4190,7 @@ Here's a summary of the changes since version 1.2.2: * Removed openexr.spec file, it's out of date and broken to boot. (Drew Hess) - + * Support for Visual Studio 2005. (Drew Hess, Nick Porcino) * When compiling against OpenEXR headers on Windows, you no longer @@ -4159,16 +4204,16 @@ Here's a summary of the changes since version 1.2.2: * Support for building universal binaries on OS X 10.4. (Drew Hess, Paul Schneider) - + * Minor configure.ac fix to accommodate OS X's automake. (Drew Hess) - + * Removed CPU-specific optimizations from configure.ac, autoconf's - guess at the CPU type isn't very useful, anyway. Closes - #13429. (Drew Hess) - + guess at the CPU type isn't very useful, anyway. Closes + #13429. (Drew Hess) + * Fixed quoting for tests in configure.ac. Closes #13428. (Drew Hess) - + * Use host specification instead of target in configure.ac. Closes #13427. (Drew Hess) @@ -4176,13 +4221,13 @@ Paul Schneider) Hess) * Removed workaround for OS X istream::read bug. (Drew Hess) - + * Added pthread support to OpenEXR pkg-config file. (Drew Hess) - + * Added -no-undefined to LDFLAGS and required libs to LIBADD for library projects with other library dependencies, per Rex Dieter's patch. (Drew Hess) - + * **HAVE_** macros are now defined in the OpenEXRConfig.h header file instead of via compiler flags. There are a handful of public headers which rely on the value of these macros, and projects @@ -4292,78 +4337,75 @@ This is a relatively minor update to the project, with the following changes: * Updated README to remove option for building with Visual C++ 6.0. - (Drew Hess) + (Drew Hess) * Some older versions of gcc don't support a full iomanip - implementation; check for this during configuration. - (Drew Hess) + implementation; check for this during configuration. + (Drew Hess) * Install PDF versions of documentation, remove old/out-of-date - HTML documentation. (Florian Kainz) + HTML documentation. (Florian Kainz) * Removed vc/vc6 directory; Visual C++ 6.0 is no longer - supported. (Drew Hess) + supported. (Drew Hess) * Updated README.win32 with details of new build system. - (Florian Kainz, Drew Hess) + (Florian Kainz, Drew Hess) * New build system for Windows / Visual C++ 7 builds both - static libraries and DLLs. - (Nick Porcino) + static libraries and DLLs. + (Nick Porcino) * Removed Imath::TMatrix and related classes, which are not - used anywhere in OpenEXR. - (Florian Kainz) + used anywhere in OpenEXR. + (Florian Kainz) * Added minimal support for "image layers" to class Imf::ChannelList - (Florian Kainz) + (Florian Kainz) * Added new isComplete() method to InputFile, TiledInputFile - etc., that checks if a file is complete or if any pixels - are missing (for example, because writing the file was - aborted prematurely). - (Florian Kainz) + etc., that checks if a file is complete or if any pixels + are missing (for example, because writing the file was + aborted prematurely). + (Florian Kainz) * Exposed staticInitialize() function in ImfHeader.h in order - to allow thread-safe library initialization in multithreaded - programs. - (Florian Kainz) + to allow thread-safe library initialization in multithreaded + programs. + (Florian Kainz) * Added a new "time code" attribute - (Florian Kainz) + (Florian Kainz) * exrmaketiled: when a MIPMAP_LEVELS or RIPMAP_LEVELS image - is produced, low-pass filtering takes samples outside the - image's data window. This requires extrapolating the image. - The user can now specify how the image is extrapolated - horizontally and vertically (image is surrounded by black / - outermost row of pixels repeats / entire image repeats / - entire image repeats, every other copy is a mirror image). - exrdisplay: added option to swap the top and bottom half, - and the left and right half of an image, so that the image's - four corners end up in the center. This is useful for checking - the seams of wrap-around texture map images. - IlmImf library: Added new "wrapmodes" standard attribute - to indicate the extrapolation mode for MIPMAP_LEVELS and - RIPMAP_LEVELS images. - (Florian Kainz) + is produced, low-pass filtering takes samples outside the + image's data window. This requires extrapolating the image. + The user can now specify how the image is extrapolated + horizontally and vertically (image is surrounded by black / + outermost row of pixels repeats / entire image repeats / + entire image repeats, every other copy is a mirror image). + exrdisplay: added option to swap the top and bottom half, + and the left and right half of an image, so that the image's + four corners end up in the center. This is useful for checking + the seams of wrap-around texture map images. + IlmImf library: Added new "wrapmodes" standard attribute + to indicate the extrapolation mode for MIPMAP_LEVELS and + RIPMAP_LEVELS images. + (Florian Kainz) * Added a new "key code" attribute to identify motion picture - film frames. - (Florian Kainz) - -* Removed #include from ImfAttribute.h, ImfHeader.h - and ImfXdr.h so that including header files such as - ImfInputFile.h no longer defines ASSERT and THROW macros, - which may conflict with similar macros defined by - application programs. - (Florian Kainz) - -* Converted HTML documentation to OpenOffice format to - make maintaining the documents easier: - api.html -> ReadingAndWritingImageFiles.sxw - details.html -> TechnicalIntroduction.sxw - (Florian Kainz) + film frames. + (Florian Kainz) + +* Removed #include from ImfAttribute.h, ImfHeader.h and + ImfXdr.h so that including header files such as ImfInputFile.h no + longer defines ASSERT and THROW macros, which may conflict with + similar macros defined by application programs. (Florian Kainz) + +* Converted HTML documentation to OpenOffice format to make + maintaining the documents easier: api.html -> + ReadingAndWritingImageFiles.sxw details.html -> + TechnicalIntroduction.sxw (Florian Kainz) ## Version 1.2.1 (June 6, 2004) @@ -4373,7 +4415,8 @@ changes: * reduced memory footprint of exrenvmap and exrmaketiled utilities. -* IlmImf: new helper functions to determine whether a file is an OpenEXR file, and whether it's scanline- or tile-based. +* IlmImf: new helper functions to determine whether a file is an + OpenEXR file, and whether it's scanline- or tile-based. * IlmImf: bug fix for PXR24 compression with ySampling != 1. @@ -4384,51 +4427,49 @@ changes: ### Detailed Changes: * exrenvmap and exrmaketiled use slightly less memory - (Florian Kainz) + (Florian Kainz) * Added functions to IlmImf for quickly testing if a file - is an OpenEXR file, and whether the file is scan-line - based or tiled. (Florian Kainz) + is an OpenEXR file, and whether the file is scan-line + based or tiled. (Florian Kainz) * Added preview image examples to IlmImfExamples. Added - description of preview images and environment maps to - docs/api.html (Florian Kainz) + description of preview images and environment maps to + docs/api.html (Florian Kainz) -* Bug fix: PXR24 compression did not work properly for channels - with ySampling != 1. - (Florian Kainz) +* Bug fix: PXR24 compression did not work properly for channels with + ySampling != 1. (Florian Kainz) -* Made ``template `` become ``template `` for - the ``transform(ObjectS, ObjectT)`` methods. This was done to allow - for differing templated objects to be passed in e.g. say a - ``Box>`` and a ``Matrix44``, where S=float and T=double. - (Jeff Yost, Arkell Rasiah) +* Made ``template `` become ``template `` + for the ``transform(ObjectS, ObjectT)`` methods. This was done to + allow for differing templated objects to be passed in e.g. say a + ``Box>`` and a ``Matrix44``, where S=float and T=double. + (Jeff Yost, Arkell Rasiah) -* New method Matrix44::setTheMatrix(). Used for assigning a - M44f to a M44d. (Jeff Yost, Arkell Rasiah) +* New method Matrix44::setTheMatrix(). Used for assigning a M44f to a + M44d. (Jeff Yost, Arkell Rasiah) -* Added convenience Color typedefs for half versions of Color3 - and Color4. Note the Makefile.am for both Imath and ImathTest - have been updated with -I and/or -L pathing to Half. - (Max Chen, Arkell Rasiah) +* Added convenience Color typedefs for half versions of Color3 and + Color4. Note the Makefile.am for both Imath and ImathTest have been + updated with -I and/or -L pathing to Half. (Max Chen, Arkell + Rasiah) * Methods equalWithAbsError() and equalWithRelError() are now - declared as const. (Colette Mullenhoff, Arkell Rasiah) + declared as const. (Colette Mullenhoff, Arkell Rasiah) * Fixes for gcc34. Mainly typename/template/using/this syntax - correctness changes. (Nick Ramussen, Arkell Rasiah) + correctness changes. (Nick Ramussen, Arkell Rasiah) * Added Custom low-level file I/O examples to IlmImfExamples - and to the docs/api.html document. (Florian Kainz) + and to the docs/api.html document. (Florian Kainz) -* Eliminated most warnings messages when OpenEXR is compiled - with Visual C++. The OpenEXR code uses lots of (intentional - and unintended) implicit type conversions. By default, Visual - C++ warns about almost all of them. Most implicit conversions - have been removed from the .h files, so that including them - should not generate warnings even at warning level 3. Most - .cpp files are now compiled with warning level 1. - (Florian Kainz) +* Eliminated most warnings messages when OpenEXR is compiled with + Visual C++. The OpenEXR code uses lots of (intentional and + unintended) implicit type conversions. By default, Visual C++ warns + about almost all of them. Most implicit conversions have been + removed from the .h files, so that including them should not + generate warnings even at warning level 3. Most .cpp files are now + compiled with warning level 1. (Florian Kainz) ## Version 1.2.0 (May 11, 2004) @@ -4474,11 +4515,11 @@ in the 1.2 series as compared to the original 1.0 series: * Add new source files to VC7 IlmImfDll target. (Drew Hess) * Iex: change the way that APPEND_EXC and REPLACE_EXC modify - their what() string to work around an issue with Visual C++ - 7.1. (Florian Kainz, Nick Porcino) + their what() string to work around an issue with Visual C++ + 7.1. (Florian Kainz, Nick Porcino) * Bumped OpenEXR version to 1.2 and .so versions to 2.0.0 in - preparation for the release. (Drew Hess) + preparation for the release. (Drew Hess) * Imath: fixed ImathTMatrix.h to work with gcc 3.4. (Drew Hess) @@ -4487,15 +4528,15 @@ in the 1.2 series as compared to the original 1.0 series: * Quoting fix in acinclude.m4 for automake 1.8. (Brad Hards) * Imath: put inline at beginning of declaration in ImathMatrix.h - to fix a warning. (Ken McGaugh) + to fix a warning. (Ken McGaugh) * Imath: made Vec equalWithError () methods const. * Cleaned up compile-time Win32 support. (Florian Kainz) * Bug fix: Reading a particular broken PIZ-compressed file - caused crashes by indexing off the end of an array. - (Florian Kainz) + caused crashes by indexing off the end of an array. + (Florian Kainz) ## Version 1.1.1 (March 27, 2004) @@ -4508,70 +4549,67 @@ format. ### Detailed Changes: -* Half: operator= and variants now return by reference rather - than by value. This brings half into conformance with - built-in types. (Drew Hess) +* Half: operator= and variants now return by reference rather than by + value. This brings half into conformance with built-in types. + (Drew Hess) -* Half: remove copy constructor, let compiler supply its - own. This improves performance up to 25% on some - expressions using half. (Drew Hess) +* Half: remove copy constructor, let compiler supply its own. This + improves performance up to 25% on some expressions using half. + (Drew Hess) -* configure: don't try to be fancy with CXXFLAGS, just use - what the user supplies or let configure choose a sensible - default if CXXFLAGS is not defined. +* configure: don't try to be fancy with CXXFLAGS, just use what the + user supplies or let configure choose a sensible default if CXXFLAGS + is not defined. * IlmImf: fixed a bug in reading scanline files on big-endian - architectures. (Drew Hess) + architectures. (Drew Hess) -* exrmaketiled: Added an option to select compression type. - (Florian Kainz) +* exrmaketiled: Added an option to select compression type. (Florian + Kainz) -* exrenvmap: Added an option to select compression type. - (Florian Kainz) +* exrenvmap: Added an option to select compression type. (Florian + Kainz) * exrdisplay: Added some new command-line options. (Florian Kainz) -* IlmImf: Added Pixar's new "slightly lossy" image compression - method. The new method, named PXR24, preserves HALF and - UINT data without loss, but FLOAT pixels are converted to - a 24-bit representation. PXR24 appears to compress - FLOAT depth buffers very well without losing much accuracy. - (Loren Carpenter, Florian Kainz) - -* Changed top-level LICENSE file to allow for other copyright - holders for individual files. - -* IlmImf: TILED FILE FORMAT CHANGE. TiledOutputFile was - incorrectly interleaving channels and scanlines before - passing pixel data to a compressor. The lossless compressors - still work, but lossy compressors do not. Fix the bug by - interleaving channels and scanlines in tiled files in the - same way as ScanLineOutputFile does. Programs compiled with - the new version of IlmImf cannot read tiled images produced - with version 1.1.0. (Florian Kainz) +* IlmImf: Added Pixar's new "slightly lossy" image compression method. + The new method, named PXR24, preserves HALF and UINT data without + loss, but FLOAT pixels are converted to a 24-bit representation. + PXR24 appears to compress FLOAT depth buffers very well without + losing much accuracy. (Loren Carpenter, Florian Kainz) + +* Changed top-level LICENSE file to allow for other copyright holders + for individual files. + +* IlmImf: TILED FILE FORMAT CHANGE. TiledOutputFile was incorrectly + interleaving channels and scanlines before passing pixel data to a + compressor. The lossless compressors still work, but lossy + compressors do not. Fix the bug by interleaving channels and + scanlines in tiled files in the same way as ScanLineOutputFile does. + Programs compiled with the new version of IlmImf cannot read tiled + images produced with version 1.1.0. (Florian Kainz) * IlmImf: ImfXdr.h fix for 64-bit architectures. (Florian Kainz) -* IlmImf: OpenEXR now supports YCA (luminance/chroma/alpha) - images with subsampled chroma channels. When an image - is written with the RGBA convenience interface, selecting - WRITE_YCA instead of WRITE_RGBA causes the library to - convert the pixels to YCA format. If WRITE_Y is selected, - only luminance is stored in the file (for black and white - images). When an image file is read with the RGBA convenience - interface, YCA data are automatically converted back to RGBA. - (Florian Kainz) +* IlmImf: OpenEXR now supports YCA (luminance/chroma/alpha) images + with subsampled chroma channels. When an image is written with the + RGBA convenience interface, selecting WRITE_YCA instead of + WRITE_RGBA causes the library to convert the pixels to YCA format. + If WRITE_Y is selected, only luminance is stored in the file (for + black and white images). When an image file is read with the RGBA + convenience interface, YCA data are automatically converted back to + RGBA. (Florian Kainz) * IlmImf: speed up reading tiled files as scan lines. - (Florian Kainz) + (Florian Kainz) * Half: Fixed subtle bug in Half where signaling float NaNs - were being converted to inf in half. (Florian Kainz) + were being converted to inf in half. (Florian Kainz) * gcc 3.3 compiler warning cleanups. (various) * Imath: ImathEuler.h fixes for gcc 3.4. (Garrick Meeker) - + ## Version 1.1.0 (February 6, 2004) OpenEXR 1.1.0 is now available. This is a major new release with @@ -4584,18 +4622,18 @@ format. ### Detailed Changes: * Added new targets to Visual C++ .NET 2003 project - for exrmaketiled, exrenvmap, exrmakepreview, and exrstdattr. - (Drew Hess) + for exrmaketiled, exrenvmap, exrmakepreview, and exrstdattr. + (Drew Hess) * A few assorted Win32 fixes for Imath. (Drew Hess) * GNU autoconf builds now produce versioned libraries. - This release is 1:0:0. (Drew Hess) + This release is 1:0:0. (Drew Hess) * Fixes for Visual C++ .NET 2003. (Paul Schneider) * Updated Visual C++ zlib project file to zlib 1.2.1. - (Drew Hess) + (Drew Hess) * exrdisplay: Fixed fragment shader version. (Drew Hess) @@ -4604,64 +4642,64 @@ format. * Imath: Handle "restrict" keyword properly. (Drew Hess) * IlmImfExamples: Updated to latest versions of example - source code, includes tiling and multi-res images. - (Florian Kainz) + source code, includes tiling and multi-res images. + (Florian Kainz) * exrmakepreview: A new utility to create preview images. - (Florian Kainz) + (Florian Kainz) * exrenvmap: A new utility to create OpenEXR environment - maps. (Florian Kainz) + maps. (Florian Kainz) -* exrstdattr: A new utility to modify standard - attributes. (Florian Kainz) +* exrstdattr: A new utility to modify standard + attributes. (Florian Kainz) * Updated exrheader to print level rounding mode and - preview image size. (Florian Kainz) + preview image size. (Florian Kainz) * Updated exrmaketiled to use level rounding mode. - (Florian Kainz) + (Florian Kainz) * IlmImf: Changed the orientation of lat-long envmaps to - match typical panoramic camera setups. (Florian Kainz) + match typical panoramic camera setups. (Florian Kainz) * IlmImf: Fixed a bug where partially-completed files with - DECREASING_Y could not be read. (Florian Kainz) + DECREASING_Y could not be read. (Florian Kainz) * IlmImf: Added support for selectable rounding mode (up/down) - when generating multiresolution files. (Florian Kainz) + when generating multiresolution files. (Florian Kainz) * exrdisplay: Support for tiled images, mip/ripmaps, preview - images, and display windows. (Florian Kainz, Drew Hess) + images, and display windows. (Florian Kainz, Drew Hess) * exrmaketiled: A new utility which generates tiled - versions of OpenEXR images. (Florian Kainz) + versions of OpenEXR images. (Florian Kainz) * IlmImf: Changed Imf::VERSION to Imf::EXR_VERSION to - work around problems with autoconf VERSION macro - conflict. (Drew Hess) + work around problems with autoconf VERSION macro + conflict. (Drew Hess) * exrheader: Support for tiles, mipmaps, environment - maps. (Florian Kainz) + maps. (Florian Kainz) * IlmImf: Environment map support. (Florian Kainz) * IlmImf: Abstracted stream I/O support. (Florian Kainz) * IlmImf: Support for tiled and mip/ripmapped files; - requires new file format. (Wojciech Jarosz, Florian Kainz) + requires new file format. (Wojciech Jarosz, Florian Kainz) * Imath: **TMatrix**, generic 2D matricies and algorithms. - (Francesco Callari) + (Francesco Callari) * Imath: major quaternions cleanup. (Cary Phillips) * Imath: added GLBegin, GLPushAttrib, GLPushMatrix objects - for automatic cleanup on exceptions. (Cary Phillips) + for automatic cleanup on exceptions. (Cary Phillips) * Imath: removed implicit scalar->vector promotions and vector - comparisons. (Nick Rasmussen) - + comparisons. (Nick Rasmussen) + ## Version 1.0.7 (January 7, 2004) OpenEXR 1.0.7 is now available. In addition to some bug fixes, this @@ -4681,29 +4719,29 @@ we're working to restore them. * Fixed a typo in one of the IlmImfTest tests. (Paul Schneider) * Fixed a bug in exrdisplay that causes the image to display - as all black if there's a NaN or infinity in an OpenEXR - image. (Florian Kainz) + as all black if there's a NaN or infinity in an OpenEXR + image. (Florian Kainz) * Updated exrheader per recent changes to IlmImf library. - (Florian Kainz) + (Florian Kainz) * Changed an errant float to a T in ImathFrame.h nextFrame(). - (Cary Phillips) + (Cary Phillips) * Support for new "optional standard" attributes - (chromaticities, luminance, comments, etc.). - (Florian Kainz, Greg Ward, Joseph Goldstone) + (chromaticities, luminance, comments, etc.). + (Florian Kainz, Greg Ward, Joseph Goldstone) * Fixed a buffer overrun in ImfOpaqueAttribute. (Paul Schneider) * Added new function, isImfMagic (). (Florian Kainz) - + ## Version 1.0.6: * Added README.win32 to disted files. * Fixed OpenEXR.pc.in pkg-config file, OpenEXR now works - with pkg-config. + with pkg-config. * Random fixes to readme files for new release. @@ -4712,34 +4750,34 @@ we're working to restore them. * Added Visual Studio .NET 2003 "solution." * Fixes for Visual Studio .NET 2003 w/ Microsoft C++ compiler. - (Various) + (Various) -* Random Imath fixes and enhancements. Note that - extractSHRT now takes an additional optional - argument, see ImathMatrixAlgo.h for details. (Various) +* Random Imath fixes and enhancements. Note that extractSHRT now + takes an additional optional argument, see ImathMatrixAlgo.h for + details. (Various) * Added Wojciech Jarosz to AUTHORS file. * Added test cases for uncompressed case, preview images, - frame buffer type conversion. (Wojciech Jarosz, - Florian Kainz) + frame buffer type conversion. (Wojciech Jarosz, + Florian Kainz) * Fix a bug in IlmImf where uncompressed data doesn't get - read/written correctly. (Wojciech Jarosz) + read/written correctly. (Wojciech Jarosz) * Added support for preview images and preview image - attributes (thumbnail images) in IlmImf. (Florian Kainz) + attributes (thumbnail images) in IlmImf. (Florian Kainz) * Added support for automatic frame buffer type conversion - in IlmImf. (Florian Kainz) + in IlmImf. (Florian Kainz) * Cleaned up some compile-time checks. * Added HalfTest unit tests. -* [exrdisplay] Download half framebuffer to texture memory - instead of converting to float first. Requires latest - Nvidia drivers. +* [exrdisplay] Download half framebuffer to texture memory + instead of converting to float first. Requires latest + Nvidia drivers. ## Version 1.0.5 (April 3, 2003) @@ -4755,39 +4793,39 @@ the source code. * Added exrheader project to Visual Studio 6.0 workspace. * Added some example code showing how to use the IlmImf library. - (Florian) + (Florian) * Use DLL runtime libs for Win32 libraries rather than static - runtime libs. + runtime libs. * Add an exrdisplay_fragshader project to the Visual Studio 6.0 - workspace to enable fragment shaders in Win32. + workspace to enable fragment shaders in Win32. * Add an IlmImfDll project to the Visual Studio 6.0 workspace. -* In Win32, export the ImfCRgbaFile C interface via a DLL so - that Visual C++ 6.0 users can link against an Intel-compiled - IlmImf. (Andreas Kahler) +* In Win32, export the ImfCRgbaFile C interface via a DLL so that + Visual C++ 6.0 users can link against an Intel-compiled IlmImf. + (Andreas Kahler) -* Use auto_ptr in ImfAutoArray on Win32, it doesn't like large - automatic stacks. +* Use auto_ptr in ImfAutoArray on Win32, it doesn't like large + automatic stacks. * Performance improvements in PIZ decoding, between - 20 and 60% speedup on Athlon and Pentium 4 systems. - (Florian) + 20 and 60% speedup on Athlon and Pentium 4 systems. + (Florian) * Updated the README with various information, made - some cosmetic changes for readability. + some cosmetic changes for readability. * Added fragment shader support to exrdisplay. * Bumped the version to 1.0.5 in prep for release. -* Updated README and README.OSX to talk about CodeWarrior - project files. +* Updated README and README.OSX to talk about CodeWarrior + project files. * Incorporated Rodrigo Damazio's patch for an openexr.m4 - macro file and an openexr.spec file for building RPMs. + macro file and an openexr.spec file for building RPMs. * Small change in ImfAttribute.h to make IlmImf compile with gcc 2.95. @@ -4802,27 +4840,27 @@ the source code. * Added project files for Visual Studio 6.0. * Initial Win32 port. Requires Visual Studio 6.0 and Intel C++ - compiler version 7.0. + compiler version 7.0. * Added new intersectT method in ImathSphere.h * Fixed some bugs in ImathQuat.h * Proper use of fltk-config to get platform-specific FLTK - compile- and link-time flags. + compile- and link-time flags. * exrdisplay uses Imath::Math::pow instead of powf now. - powf is not available on all platforms. + powf is not available on all platforms. * Roll OS X "hack" into the source until Apple fixes their - istream implementation. - + istream implementation. + ## Version 1.0.4 ### Detailed Changes: * OpenEXR is now covered by a modified BSD license. See LICENSE - for the new terms. + for the new terms. ## Version 1.0.3: @@ -4841,22 +4879,21 @@ the source code. * Make IlmImf compile with Metrowerks Codewarrior. * Change large automatic stacks in ImfHuf.C to auto_ptrs allocated - off the heap. MacOS X default stack size isn't large enough. + off the heap. MacOS X default stack size isn't large enough. * std::ios fix for MacOS X in ImfInputFile.C. * Added new FP predecessor/successor functions to Imath, added - tests to ImathTest + tests to ImathTest -* Fixed a bug in Imath::extractSHRT for 3x3 matricies when - exactly one of the original scaling factors is negative, updated - ImathTest to check this case. +* Fixed a bug in Imath::extractSHRT for 3x3 matricies when exactly one + of the original scaling factors is negative, updated ImathTest to + check this case. * Install include files when 'make install' is run. -* exrdisplay requires fltk 1.1+ now in an effort to support - a MacOS X display program (fltk 1.1 runs on OS X), though this - is untested. +* exrdisplay requires fltk 1.1+ now in an effort to support a MacOS X + display program (fltk 1.1 runs on OS X), though this is untested. * renamed configure.in to configure.ac @@ -4864,9 +4901,8 @@ the source code. * Removed ImfHalfXdr.h, it's not used anymore. -* Revamped the autoconf system, added some compile-time - optimizations, a pkgconfig target, and some maintainer-specific - stuff. +* Revamped the autoconf system, added some compile-time optimizations, + a pkgconfig target, and some maintainer-specific stuff. ## Version 1.0.2 @@ -4898,7 +4934,7 @@ the source code. * first official release. * added some high-level documentation, removed the old OpenEXR.html - documentation. + documentation. * fixed a few nagging build problems. diff --git a/LICENSE.md b/LICENSE.md index 0443514b78..b2a016ed19 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,3 @@ - - - Copyright (c) Contributors to the OpenEXR Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/MODULE.bazel b/MODULE.bazel index 5b4bfc99d4..ca3ad9860c 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,9 +1,12 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright Contributors to the OpenEXR Project. + module( name = "openexr", - version = "0.0.0", # The version "0.0.0" is set here and will be patched within the Bazel Central Registry compatibility_level = 1, ) bazel_dep(name = "bazel_skylib", version = "1.4.2") -bazel_dep(name = "imath", version = "3.1.9") -bazel_dep(name = "libdeflate", version = "1.18") +bazel_dep(name = "imath", repo_name = "Imath", version = "3.1.9") +bazel_dep(name = "libdeflate", version = "1.19") +bazel_dep(name = "platforms", version = "0.0.7") diff --git a/bazel/third_party/openexr_deps.bzl b/bazel/third_party/openexr_deps.bzl index bbbca63f59..c0833d1c48 100644 --- a/bazel/third_party/openexr_deps.bzl +++ b/bazel/third_party/openexr_deps.bzl @@ -13,9 +13,9 @@ def openexr_deps(): http_archive, name = "libdeflate", build_file = "@com_openexr//:bazel/third_party/libdeflate.BUILD", - sha256 = "225d982bcaf553221c76726358d2ea139bb34913180b20823c782cede060affd", - strip_prefix = "libdeflate-1.18", - urls = ["https://github.com/ebiggers/libdeflate/archive/refs/tags/v1.18.tar.gz"], + sha256 = "27bf62d71cd64728ff43a9feb92f2ac2f2bf748986d856133cc1e51992428c25", + strip_prefix = "libdeflate-1.19", + urls = ["https://github.com/ebiggers/libdeflate/archive/refs/tags/v1.19.tar.gz"], ) maybe( diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 6ebf5f5ab9..3a4dbf991e 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -219,8 +219,9 @@ if(OPENEXR_INSTALL_PKG_CONFIG) ) endfunction() openexr_pkg_config_help(OpenEXR.pc.in) + message(STATUS "OpenEXR pkg-config generation enabled") else() - message(STATUS "-- pkg-config generation disabled") + message(STATUS "OpenEXR pkg-config generation disabled") endif() ################################################### diff --git a/cmake/OpenEXR.pc.in b/cmake/OpenEXR.pc.in index 818480efc1..bce35c2b1f 100644 --- a/cmake/OpenEXR.pc.in +++ b/cmake/OpenEXR.pc.in @@ -14,7 +14,7 @@ Name: OpenEXR Description: OpenEXR image library Version: @OPENEXR_VERSION@ -Libs: @exr_pthread_libs@ -L${libdir} -lOpenEXR${libsuffix} -lOpenEXRUtil${libsuffix} -lOpenEXRCore${libsuffix} -lIex${libsuffix} -lIlmThread${libsuffix} +Libs: @exr_pthread_libs@ -L${libdir} -lOpenEXR${libsuffix} -lOpenEXRUtil${libsuffix} -lOpenEXRCore${libsuffix} -lIex${libsuffix} -lIlmThread${libsuffix} @EXR_DEFLATE_LDFLAGS@ Cflags: -I${includedir} -I${OpenEXR_includedir} @exr_pthread_cflags@ Requires: Imath diff --git a/cmake/OpenEXRConfig.h.in b/cmake/OpenEXRConfig.h.in index 808d241860..403c9d6a26 100644 --- a/cmake/OpenEXRConfig.h.in +++ b/cmake/OpenEXRConfig.h.in @@ -68,10 +68,10 @@ // clang-format on // Version as a single hex number, e.g. 0x01000300 == 1.0.3 -#define OPENEXR_VERSION_HEX \ - ((uint32_t (OPENEXR_VERSION_MAJOR) << 24) | \ - (uint32_t (OPENEXR_VERSION_MINOR) << 16) | \ - (uint32_t (OPENEXR_VERSION_PATCH) << 8)) +#define OPENEXR_VERSION_HEX \ + (((OPENEXR_VERSION_MAJOR) << 24) | \ + ((OPENEXR_VERSION_MINOR) << 16) | \ + ((OPENEXR_VERSION_PATCH) << 8)) // On modern versions of gcc & clang, __has_attribute can test support for // __attribute__((attr)). Make sure it's safe for other compilers. diff --git a/cmake/OpenEXRSetup.cmake b/cmake/OpenEXRSetup.cmake index ec9db6fd50..ef5c6c0853 100644 --- a/cmake/OpenEXRSetup.cmake +++ b/cmake/OpenEXRSetup.cmake @@ -36,11 +36,7 @@ set(IEX_INTERNAL_NAMESPACE "Iex_${OPENEXR_VERSION_API}" CACHE STRING "Real names set(IEX_NAMESPACE "Iex" CACHE STRING "Public namespace alias for Iex") # Whether to generate and install a pkg-config file OpenEXR.pc -if (WIN32) -option(OPENEXR_INSTALL_PKG_CONFIG "Install OpenEXR.pc file" OFF) -else() option(OPENEXR_INSTALL_PKG_CONFIG "Install OpenEXR.pc file" ON) -endif() # Whether to enable threading. This can be disabled, although thread pool and tasks # are still used, just processed immediately @@ -167,6 +163,9 @@ if(NOT OPENEXR_FORCE_INTERNAL_DEFLATE) include(FindPkgConfig) pkg_check_modules(deflate IMPORTED_TARGET GLOBAL libdeflate) set(CMAKE_IGNORE_PATH) + if (deflate_FOUND) + message(STATUS "Using libdeflate from ${deflate_LINK_LIBRARIES}") + endif() endif() if(NOT TARGET PkgConfig::deflate AND NOT deflate_FOUND) @@ -216,7 +215,13 @@ if(NOT TARGET PkgConfig::deflate AND NOT deflate_FOUND) set(EXR_DEFLATE_LIB) else() set(EXR_DEFLATE_INCLUDE_DIR) - set(EXR_DEFLATE_LIB PkgConfig::deflate) + set(EXR_DEFLATE_LIB ${deflate_LIBRARIES}) + # set EXR_DEFATE_LDFLAGS for OpenEXR.pc.in for static build + if (BUILD_SHARED_LIBS) + set(EXR_DEFLATE_LDFLAGS "") + else() + set(EXR_DEFLATE_LDFLAGS "-l${deflate_LIBRARIES}") + endif() set(EXR_DEFLATE_SOURCES) endif() @@ -253,6 +258,11 @@ if(NOT TARGET Imath::Imath AND NOT Imath_FOUND) FetchContent_GetProperties(Imath) if(NOT Imath_POPULATED) FetchContent_Populate(Imath) + + # Propagate OpenEXR's setting for pkg-config generation to Imath: + # If OpenEXR is generating it, the internal Imath should, too. + set(IMATH_INSTALL_PKG_CONFIG ${OPENEXR_INSTALL_PKG_CONFIG}) + # hrm, cmake makes Imath lowercase for the properties (to imath) add_subdirectory(${imath_SOURCE_DIR} ${imath_BINARY_DIR}) endif() diff --git a/share/ci/scripts/linux/validate_openexr_libs.sh b/share/ci/scripts/linux/validate_openexr_libs.sh index 4dc6509c3b..d8bfe7ac52 100755 --- a/share/ci/scripts/linux/validate_openexr_libs.sh +++ b/share/ci/scripts/linux/validate_openexr_libs.sh @@ -21,26 +21,34 @@ if [[ $# == "0" ]]; then exit -1 fi +set -x + BUILD_ROOT=$1 SRC_ROOT=$2 # Locate OpenEXR.pc and set PKG_CONFIG_PATH accordingly -pkgconfig=$(find $BUILD_ROOT -name OpenEXR.pc) +pkgconfig=$(find $BUILD_ROOT -name OpenEXR.pc | head -1) + if [[ "$pkgconfig" == "" ]]; then echo "Can't find OpenEXR.pc" exit -1 fi + +cat $pkgconfig + export PKG_CONFIG_PATH=$(dirname $pkgconfig) # Build the validation program -CXX_FLAGS=$(pkg-config OpenEXR --cflags) -LD_FLAGS=$(pkg-config OpenEXR --libs --static) +CXX_FLAGS=$(env PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config OpenEXR --cflags) +LD_FLAGS=$(env PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config OpenEXR --libs --static) + +VALIDATE_CPP=$(mktemp --tmpdir "validate_cpp_XXX.cpp") +VALIDATE_BIN=$(mktemp --tmpdir "validate_bin_XXX") +VALIDATE_BUILD=$(mktemp -d --tmpdir "validate_build_XXX") -VALIDATE_CPP=$(mktemp --tmpdir "validate_XXX.cpp") -VALIDATE_BIN=$(mktemp --tmpdir "validate_XXX") -trap "rm -rf $VALIDATE_CPP $VALIDATE_BIN" exit +trap "rm -rf $VALIDATE_CPP $VALIDATE_BIN $VALIDATE_BUILD" exit echo -e '#include \n#include \n#include \nint main() { puts(OPENEXR_PACKAGE_STRING); Imf::Header h; return 0; }' > $VALIDATE_CPP @@ -48,7 +56,7 @@ g++ $CXX_FLAGS $VALIDATE_CPP -o $VALIDATE_BIN $LD_FLAGS # Execute the program -LIB_DIR=$(pkg-config OpenEXR --variable=libdir) +LIB_DIR=$(env PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config OpenEXR --variable=libdir) export LD_LIBRARY_PATH=$LIB_DIR validate=`$VALIDATE_BIN` @@ -62,7 +70,7 @@ if [[ "$status" != "0" ]]; then fi # Get the suffix, e.g. -2_5_d, and determine if there's also a _d -libsuffix=$(pkg-config OpenEXR --variable=libsuffix) +libsuffix=$(env PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config OpenEXR --variable=libsuffix) if [[ $libsuffix != $(basename ./$libsuffix _d) ]]; then _d="_d" else @@ -70,7 +78,7 @@ else fi # Validate each of the libs -libs=$(pkg-config OpenEXR --libs-only-l | sed -e s/-l//g) +libs=$(env PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config OpenEXR --libs-only-l | sed -e s/-l//g) for lib in $libs; do base=$(echo $lib | cut -d- -f1) @@ -105,7 +113,7 @@ if [[ "$?" == "0" ]]; then fi if [[ "$SRC_ROOT" != "" ]]; then - version=$(pkg-config OpenEXR --modversion) + version=$(env PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config OpenEXR --modversion) notes=$(grep "\* \[Version $version\]" $SRC_ROOT/CHANGES.md | head -1) if [[ "$notes" == "" ]]; then echo "No release notes." @@ -113,5 +121,14 @@ if [[ "$SRC_ROOT" != "" ]]; then echo "Release notes: $notes" fi fi - + + +# Confirm that the example programs build, link, and run + +cd $VALIDATE_BUILD + +cmake -DCMAKE_PREFIX_PATH=$BUILD_ROOT $SRC_ROOT/src/examples +cmake --build . +./bin/OpenEXRExamples + echo "ok." diff --git a/src/bin/exrstdattr/main.cpp b/src/bin/exrstdattr/main.cpp index 548e00f794..4101993916 100644 --- a/src/bin/exrstdattr/main.cpp +++ b/src/bin/exrstdattr/main.cpp @@ -485,7 +485,7 @@ getChromaticities ( if (i > argc - 9) throw invalid_argument("Expected 8 chromaticity values"); - ChromaticitiesAttribute* a = new ChromaticitiesAttribute; + ChromaticitiesAttribute* a = new ChromaticitiesAttribute(Chromaticities()); attrs.push_back (SetAttr (attrName, part, a)); a->value ().red.x = static_cast (strtod (argv[i + 1], 0)); diff --git a/src/examples/multipartExamples.cpp b/src/examples/multipartExamples.cpp index 99701c672f..cce1a276c2 100644 --- a/src/examples/multipartExamples.cpp +++ b/src/examples/multipartExamples.cpp @@ -96,7 +96,7 @@ void combineFiles () const char * filenames[] = {"gz1.exr", "tiledgz1.exr", "test.deep.exr", "testTiled.deep.exr"}; - for (int i = 0; i < sizeof (filenames) / sizeof (filenames[0]); i++) + for (size_t i = 0; i < sizeof (filenames) / sizeof (filenames[0]); i++) { MultiPartInputFile * in_file = new MultiPartInputFile (filenames[i]); Header header = in_file->header (0); @@ -112,7 +112,7 @@ void combineFiles () MultiPartOutputFile outputFile ("multipart.exr", headers.data (), (int)headers.size ()); - for (int i = 0; i < sizeof (filenames) / sizeof (filenames[0]); i++) + for (size_t i = 0; i < sizeof (filenames) / sizeof (filenames[0]); i++) { Header & header = headers[i]; const string& type = header.type (); @@ -351,8 +351,8 @@ void modifyDeepChannels(Array2D & sampleCount, list> & ch for (int x = 0; x < channel.width (); x++) { uint32_t count = sampleCount[y][x]; - for (int j = 0; j < count; j++) - channel[y][x][j] += delta; + for (uint32_t j = 0; j < count; j++) + channel[y][x][j] += delta; } } } @@ -414,7 +414,7 @@ void modifyMultipart () Box2i dataWindow = header.dataWindow (); OutputPart outputPart (outputFile, i); outputPart.setFrameBuffer (frameBuffer); - outputPart.writePixels (header.dataWindow ().max.y - header.dataWindow ().min.y + 1); + outputPart.writePixels (dataWindow.max.y - dataWindow.min.y + 1); } else { @@ -466,7 +466,7 @@ void modifyMultipart () Box2i dataWindow = header.dataWindow (); DeepScanLineOutputPart outputPart (outputFile, i); outputPart.setFrameBuffer (frameBuffer); - outputPart.writePixels (header.dataWindow ().max.y - header.dataWindow ().min.y + 1); + outputPart.writePixels (dataWindow.max.y - dataWindow.min.y + 1); } else { diff --git a/src/lib/OpenEXRCore/encoding.c b/src/lib/OpenEXRCore/encoding.c index b074cceab2..b92e0ce356 100644 --- a/src/lib/OpenEXRCore/encoding.c +++ b/src/lib/OpenEXRCore/encoding.c @@ -31,7 +31,7 @@ default_compress_chunk (exr_encode_pipeline_t* encode) return pctxt->print_error ( pctxt, rv, - "error allocating buffer %lu", + "error allocating buffer %zu", exr_compress_max_buffer_size (encode->packed_bytes)); //return rv; diff --git a/src/lib/OpenEXRCore/internal_cpuid.h b/src/lib/OpenEXRCore/internal_cpuid.h index ec2de88a13..439431dcba 100644 --- a/src/lib/OpenEXRCore/internal_cpuid.h +++ b/src/lib/OpenEXRCore/internal_cpuid.h @@ -15,7 +15,7 @@ #endif #if OPENEXR_ENABLE_X86_SIMD_CHECK -# if defined(_MSC_VER) && defined(_WIN32) +# if defined(_WIN32) # include # else # include @@ -51,7 +51,7 @@ check_for_x86_simd (int* f16c, int* avx, int* sse2) #elif OPENEXR_ENABLE_X86_SIMD_CHECK -# if defined(_MSC_VER) && defined(_WIN32) +# if defined(_WIN32) int regs[4]={0}, osxsave; __cpuid (regs, 0); diff --git a/src/lib/OpenEXRCore/openexr_version.h b/src/lib/OpenEXRCore/openexr_version.h index 11f5020e72..b69e77874a 100644 --- a/src/lib/OpenEXRCore/openexr_version.h +++ b/src/lib/OpenEXRCore/openexr_version.h @@ -10,6 +10,6 @@ # define OPENEXR_VERSION_MAJOR 3 # define OPENEXR_VERSION_MINOR 2 -# define OPENEXR_VERSION_PATCH 0 +# define OPENEXR_VERSION_PATCH 1 #endif diff --git a/src/lib/OpenEXRCore/string.c b/src/lib/OpenEXRCore/string.c index 81b3b84e22..59cd502def 100644 --- a/src/lib/OpenEXRCore/string.c +++ b/src/lib/OpenEXRCore/string.c @@ -195,6 +195,9 @@ exr_attr_string_set_with_length ( #ifdef _MSC_VER # pragma warning(push) # pragma warning(disable : 4996) +#elif __MSVCRT__ && __GNUC__ +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wstringop-truncation" #endif if (d) strncpy (sstr, d, (size_t) len); @@ -202,6 +205,8 @@ exr_attr_string_set_with_length ( memset (sstr, 0, (size_t) len); #ifdef _MSC_VER # pragma warning(pop) +#elif __MSVCRT__ && __GNUC__ +#pragma GCC diagnostic pop #endif } sstr[len] = '\0'; diff --git a/src/test/OpenEXRCoreTest/base_units.cpp b/src/test/OpenEXRCoreTest/base_units.cpp index 394557d12e..0e074e5807 100644 --- a/src/test/OpenEXRCoreTest/base_units.cpp +++ b/src/test/OpenEXRCoreTest/base_units.cpp @@ -20,6 +20,7 @@ #include #include +#include #include "../../lib/OpenEXRCore/internal_cpuid.h" #include "../../lib/OpenEXRCore/internal_coding.h" @@ -52,6 +53,18 @@ testBase (const std::string& tempdir) exr_get_library_version (&major, NULL, &patch, &extra); exr_get_library_version (&major, &minor, NULL, &extra); exr_get_library_version (&major, &minor, &patch, NULL); + + major = (OPENEXR_VERSION_HEX >> 24) & 0xff; + minor = (OPENEXR_VERSION_HEX >> 16) & 0xff; + patch = (OPENEXR_VERSION_HEX >> 8) & 0xff; + + EXRCORE_TEST (major == COMP_MAJ); + EXRCORE_TEST (minor == COMP_MIN); + EXRCORE_TEST (patch == COMP_PATCH); + +#if OPENEXR_VERSION_HEX > 0 + // confirm the macro compiles in an #if +#endif } void @@ -352,7 +365,7 @@ testBaseDebug (const std::string& tempdir) void testCPUIdent (const std::string& tempdir) { int hf16c, havx, hsse2; - Imf::CpuId id; + OPENEXR_IMF_NAMESPACE::CpuId id; check_for_x86_simd (&hf16c, &havx, &hsse2); if (hf16c != (int)id.f16c) diff --git a/src/test/OpenEXRTest/testCpuId.cpp b/src/test/OpenEXRTest/testCpuId.cpp index ec2522aad7..cdc993d42c 100644 --- a/src/test/OpenEXRTest/testCpuId.cpp +++ b/src/test/OpenEXRTest/testCpuId.cpp @@ -28,7 +28,7 @@ testCpuId (const string&) std::cout << "IMF_HAVE_AVX: " << false << "\n"; #endif - Imf::CpuId cpuId; + OPENEXR_IMF_NAMESPACE::CpuId cpuId; std::cout << "cpuId.sse2: " << cpuId.sse2 << "\n"; std::cout << "cpuId.sse3: " << cpuId.sse3 << "\n"; std::cout << "cpuId.ssse3: " << cpuId.ssse3 << "\n"; diff --git a/src/test/bin/CMakeLists.txt b/src/test/bin/CMakeLists.txt index 37e40b3cfb..e53b87900f 100644 --- a/src/test/bin/CMakeLists.txt +++ b/src/test/bin/CMakeLists.txt @@ -16,8 +16,12 @@ if(BUILD_TESTING) set(OPENEXR_IMAGES_TAG "v1.0" CACHE STRING "Bin test image repo tag") - set(images_url ${OPENEXR_IMAGES_REPO}/${OPENEXR_IMAGES_TAG}) - + if ("${OPENEXR_IMAGES_TAG}" STREQUAL "") + set(images_url ${OPENEXR_IMAGES_REPO}) + else() + set(images_url ${OPENEXR_IMAGES_REPO}/${OPENEXR_IMAGES_TAG}) + endif() + set(images TestImages/GrayRampsHorizontal.exr LuminanceChroma/Garden.exr diff --git a/src/wrappers/python/CMakeLists.txt b/src/wrappers/python/CMakeLists.txt index 5fc50a2508..a136ad5531 100644 --- a/src/wrappers/python/CMakeLists.txt +++ b/src/wrappers/python/CMakeLists.txt @@ -7,12 +7,6 @@ if(NOT "${CMAKE_PROJECT_NAME}" STREQUAL "OpenEXR") find_package(OpenEXR) endif() -get_cmake_property(_variableNames VARIABLES) -list (SORT _variableNames) -foreach (_variableName ${_variableNames}) - message(STATUS "${_variableName}=${${_variableName}}") -endforeach() - add_library (PyOpenEXR SHARED OpenEXR.cpp) set (Python_ADDITIONAL_VERSIONS 3) diff --git a/src/wrappers/python/OpenEXR.cpp b/src/wrappers/python/OpenEXR.cpp index 4d10116405..964b0f5c01 100644 --- a/src/wrappers/python/OpenEXR.cpp +++ b/src/wrappers/python/OpenEXR.cpp @@ -92,8 +92,8 @@ typedef int Py_ssize_t; #endif using namespace std; -using namespace Imf; -using namespace Imath; +using namespace OPENEXR_IMF_NAMESPACE; +using namespace IMATH_NAMESPACE; static PyObject *OpenEXR_error = NULL; static PyObject *pModuleImath; @@ -155,7 +155,7 @@ C_IStream::read (char c[], int n) memcpy(c, PyString_AsString(data), PyString_Size(data)); Py_DECREF(data); } else { - throw Iex::InputExc("file read failed"); + throw IEX_NAMESPACE::InputExc("file read failed"); } return 0; } @@ -177,7 +177,7 @@ C_IStream::tellg () Py_DECREF(rv); return (Int64)t; } else { - throw Iex::InputExc("tell failed"); + throw IEX_NAMESPACE::InputExc("tell failed"); } } @@ -188,7 +188,7 @@ C_IStream::seekg (Int64 pos) if (data != NULL) { Py_DECREF(data); } else { - throw Iex::InputExc("seek failed"); + throw IEX_NAMESPACE::InputExc("seek failed"); } } @@ -220,7 +220,7 @@ C_OStream::write (const char*c, int n) if (data != NULL) { Py_DECREF(data); } else { - throw Iex::InputExc("file write failed"); + throw IEX_NAMESPACE::InputExc("file write failed"); } } @@ -241,7 +241,7 @@ C_OStream::tellp () Py_DECREF(rv); return (Int64)t; } else { - throw Iex::InputExc("tell failed"); + throw IEX_NAMESPACE::InputExc("tell failed"); } } @@ -252,7 +252,7 @@ C_OStream::seekp (Int64 pos) if (data != NULL) { Py_DECREF(data); } else { - throw Iex::InputExc("seek failed"); + throw IEX_NAMESPACE::InputExc("seek failed"); } } diff --git a/src/wrappers/python/setup.py b/src/wrappers/python/setup.py index e92ba454ba..5cf4cda608 100644 --- a/src/wrappers/python/setup.py +++ b/src/wrappers/python/setup.py @@ -15,28 +15,30 @@ https://github.com/AcademySoftwareFoundation/openexr/issues """ +# Get the version and library suffix for both OpenEXR and Imath from +# the .pc pkg-config file. -version = [] -with open('src/lib/OpenEXRCore/openexr_version.h', 'r') as f: - txt = f.read() - for name in ('MAJOR', 'MINOR', 'PATCH'): - version.append(re.search( - f'VERSION_{name} ([0-9]*)', txt).group(0).split(' ')[-1]) -version_major, version_minor, version_patch = version -version = f"{version_major}.{version_minor}.{version_patch}" +def pkg_config(var, pkg): + with open(f'./openexr.install/lib/pkgconfig/{pkg}.pc', 'r') as f: + return re.search(f'{var}([^ \n]+)', f.read()).group(1) + +imath_libsuffix = pkg_config("libsuffix=", "Imath") +openexr_libsuffix = pkg_config("libsuffix=", "OpenEXR") +openexr_version = pkg_config("Version: ", "OpenEXR") +openexr_version_major, openexr_version_minor, openexr_version_patch = openexr_version.split('.') libs=[] -libs_static=[f'OpenEXR-{version_major}_{version_minor}', - f'IlmThread-{version_major}_{version_minor}', - f'Iex-{version_major}_{version_minor}', - f'Imath-{version_major}_{version_minor}', - f'OpenEXRCore-{version_major}_{version_minor}' +libs_static=[f'OpenEXR{openexr_libsuffix}', + f'IlmThread{openexr_libsuffix}', + f'Iex{openexr_libsuffix}', + f'Imath{imath_libsuffix}', + f'OpenEXRCore{openexr_libsuffix}', ] -definitions = [('PYOPENEXR_VERSION_MAJOR', f'{version_major}'), - ('PYOPENEXR_VERSION_MINOR', f'{version_minor}'), - ('PYOPENEXR_VERSION_PATCH', f'{version_patch}'),] +definitions = [('PYOPENEXR_VERSION_MAJOR', f'{openexr_version_major}'), + ('PYOPENEXR_VERSION_MINOR', f'{openexr_version_minor}'), + ('PYOPENEXR_VERSION_PATCH', f'{openexr_version_patch}'),] if platform.system() == "Windows": - definitions = [('PYOPENEXR_VERSION', f'\\"{version}\\"')] + definitions = [('PYOPENEXR_VERSION', f'\\"{openexr_version}\\"')] extra_compile_args = [] if platform.system() == 'Darwin': extra_compile_args += ['-std=c++11', @@ -64,7 +66,7 @@ url = 'https://github.com/AcademySoftwareFoundation/openexr', description = "Python bindings for the OpenEXR image file format", long_description = DESC, - version=version, + version=openexr_version, ext_modules=[ Extension('OpenEXR', ['OpenEXR.cpp'], diff --git a/website/install.rst b/website/install.rst index 3d26194122..d6bee180bb 100644 --- a/website/install.rst +++ b/website/install.rst @@ -329,6 +329,30 @@ shared object is produced. ``OPENEXR_DEFLATE_TAG``. This means do *not* use any existing installation of ``libdeflate``. +Test Images Dependency +~~~~~~~~~~~~~~~~~~~~~~ + +The OpenEXR test suite relies on images from the `online test image +gallery +`_, which CMake +automatically downloads during configuration. You can provide an +alternate location for the test images via the ``OPENEXR_IMAGES_REPO`` +and ``OPENEXR_IMAGES_TAG`` variables. + +* ``OPENEXR_IMAGES_REPO`` and ``OPENEXR_IMAGES_TAG`` + + The images repo to auto-fetch for the test suite, and the tag to + sync it to. The default repo is + ``https://github.com/AcademySoftwareFoundation/openexr-images.git`` + and the tag is ``v1.0``. + +Note that you can void downloading images by specifying a repo on the +local filesystem via a ``file:`` url: + +.. code-block:: + + cmake -DOPENEXR_IMAGES_REPO=file:///my/clone/of/openexr-images -DOPENEXR_IMAGES_TAG="" + Namespace Options ~~~~~~~~~~~~~~~~~ diff --git a/website/src/C_IStream_read.cpp b/website/src/C_IStream_read.cpp index 7e277db1bf..68f9639e14 100644 --- a/website/src/C_IStream_read.cpp +++ b/website/src/C_IStream_read.cpp @@ -8,9 +8,9 @@ C_IStream::read (char c[], int n) // determine what happened. if (ferror (_file)) - Iex::throwErrnoExc(); + throwErrnoExc(); else - throw Iex::InputExc ("Unexpected end of file."); + throw InputExc ("Unexpected end of file."); } return !feof (_file); diff --git a/website/src/MemoryMappedIStream_read.cpp b/website/src/MemoryMappedIStream_read.cpp index 7c2e4e9016..2fb8a984a6 100644 --- a/website/src/MemoryMappedIStream_read.cpp +++ b/website/src/MemoryMappedIStream_read.cpp @@ -2,10 +2,10 @@ bool MemoryMappedIStream::read (char c[], int n) { if (_readPosition >= _fileLength) - throw Iex::InputExc ("Unexpected end of file."); + throw InputExc ("Unexpected end of file."); if (_readPosition + n > _fileLength) - throw Iex::InputExc ("Reading past end of file."); + throw InputExc ("Reading past end of file."); memcpy (c, _buffer + _readPosition, n); diff --git a/website/src/MemoryMappedIStream_readMemoryMapped.cpp b/website/src/MemoryMappedIStream_readMemoryMapped.cpp index e5fd93595e..907deecf8d 100644 --- a/website/src/MemoryMappedIStream_readMemoryMapped.cpp +++ b/website/src/MemoryMappedIStream_readMemoryMapped.cpp @@ -2,10 +2,10 @@ char * MemoryMappedIStream::readMemoryMapped (int n) { if (_readPosition >= _fileLength) - throw Iex::InputExc ("Unexpected end of file."); + throw InputExc ("Unexpected end of file."); if (_readPosition + n > _fileLength) - throw Iex::InputExc ("Reading past end of file."); + throw InputExc ("Reading past end of file."); char *data = _buffer + _readPosition; diff --git a/website/src/all.cpp b/website/src/all.cpp index 8f21991962..4880887777 100644 --- a/website/src/all.cpp +++ b/website/src/all.cpp @@ -35,8 +35,9 @@ #include #endif -using namespace Imath; -using namespace Imf; +using namespace IMATH_NAMESPACE; +using namespace OPENEXR_IMF_NAMESPACE; +using namespace IEX_NAMESPACE; using std::max;