pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/graphics/openexr
Module Name: pkgsrc
Committed By: wiz
Date: Sun Sep 21 15:10:24 UTC 2025
Modified Files:
pkgsrc/graphics/openexr: Makefile PLIST distinfo
Added Files:
pkgsrc/graphics/openexr/patches:
patch-src_lib_OpenEXRCore_internal__ht.cpp
Log Message:
openexr: update to 3.4.0.
OpenEXR v3.4 introduces a new, additional compression option to
the OpenEXR file format for lossless compression with High Throughput
JPEG-2000 (HTJ2K) encoding:
A new HTJ2K compressor uses the High-Throughput (HT) block
coder. It supports the full range of OpenEXR features, including
16-bit and 32-bit floating-point image channels, both scanline
and tiled.
The HT block coder is standardized in Rec. ITU-T T.814 and
ISO/IEC 15444-15. It is royalty-free, widely used in cinema
and distribution servicing, and implemented in both commercial
and open-source toolkits.
In experiments, we've found that HTJ2K produces smaller files,
and depending on the nature of the image data, is one of the
fastest compression types available in OpenEXR.
Integration with OpenEXR uses the OpenJPH open-source library.
For ease in managing the dependency, the OpenEXR CMake
configuration supports automatically fetching and building
OpenJPH internally, or linking against an external installation.
OpenEXR supports two new compression types with distinct
space/time trade-offs:
htj2k256 -- encodes/decodes chunks of 256 scanlines,
producing slightly smaller file size than htj2k32.
htj2k32 -- encodes/decodes chunks of 32 scanlines, better
suited to multi-threading, so it offers significantly faster
encoding and decoding (4-6x in some cases) than htj2k256,
with a slight increase in file size.
All existing OpenEXR compression options remain unchanged. This
new feature simply extends the range of compression types
available.
Software compiled with OpenEXR v3.4 will be able to read HTJ2K
compressed OpenEXRs without any code changes. Software that
writes files may automatically support the new type, but may
need a small update to make the new type available as a user
option.
⚠️ This is a backwards-compatible extension to the OpenEXR file
format. Files written with OpenEXR v3.4 will be readable by
applications built against previous releases, unless they use
the new htj2k32 or htj2k256 compression options.
⚠️ This feature was first introduced for evaluation in February,
2025 via the htj2k-beta branch with a single 256 scanlines/chunk
compression option, with the 32-scanline option added more
recently. Application software written during this evaluation
period will need to change IMF_HTJ2K_COMPRESSION to
IMF_HTJ2K256_COMPRESSION, although files written with the
earlier evaluation version should still read properly.
Other New Features:
✨ New colorInteropID standard attribute
The ID string endorsed by the Color Interop Forum to communicate
the color space of RGB images in an interoperable manner.
The contents of the string is described in the specification
An ID for Color Interop.
Guidance to application developers is provided in Identifying
the Color Space of OpenEXR Files
✨ New bytes attribute type
Designed to hold an arbitrary binary blob of metadata.
The OpenEXR library forces no interpretations of the
attribute contents; it is strictly application-dependent.
The attribute also holds a typeHint string which applications
can use to suggest the intended interpretation of the
contents, but it is strictly informational.
🔧 TBB as a global thread provider
A new cmake option -DOPENEXR_USE_TBB=ON switches the
internals of the thread pool to use TBB by default. Building
with this option adds a link dependency on the OneAPI TBB
distribution.
🔧 Vendored libdeflate
OpenEXR v3.4 now ships with a bundled distribution of the libdeflate library, replacing the previous "auto-fetch" mechanism.
By default, building OpenEXR will use a system installation of libdeflate as before, but if none is found, the build will use the internal copy of libdeflate.
Use -DOPENEXR_USE_INTERNAL_DEFLATE=ON to force the use of the internal vendored version.
Bug fixes:
🐛 Using openexr via cmake add_subdirectory now works properly.
Changes to the OpenEXR Python module:
🐍 🐛 The Python module now allows an empty part name for a single-part file
🐍 🐛 The header_only option for Python module's OpenEXR.File now works properly.
🐍 📦 ⚠️ pypi distributions now add support for Python 3.13 and drop support for Python 3.7xc.
Merged Pull Requests:
2115 Move openjph to Requires.private in OpenEXR.pc
2114 Remove openjph includes from ImfHTCompressor.h
2113 Improve handling of Imath and OpenJPH library versions
2112 Fix compiler warnings
2106 Bump scikit-build-core from 0.11.5 to 0.11.6
2105 Add details about branches to install instructions
2104 Add support for 32-line HTJ2K Compressor
2103 remove extra allocation, fix invalid dereference on corrupt file
2102 add fallback catch to avoid exceptions from crossing C boundary
2099 documentation install OpenJPH
2098 Create symlink for the add_subdirectory CI test in the CI step
2097 Bump OpenJPH to 0.21.5
2095 docs: fix incorrect function names in C API docs
2094 Properly implement header_only for python module's OpenEXR.File
2093 Update CVE links in SECURITY.md to https://www.cve.org
2090 Fix python module to allow empty part name for single-part file
2088 Add CI test to validate cmake add_subdirectory(openexr)
2087 Fix aliases for IexConfig and IlmThreadConfig
2086 Fix HTJ2K chunk header length error and group common HTJ2K functions
2084 Add CVEs from OSTIF report to SECURITY.md and CHANGES.md
2083 Add CI jobs for C++20, and build tools/tests against standard
2079 Helper script release.py to automate release notes steps
2075 Add colorInteropID standard attribute
2074 OpenEXR - Adds New Bytes Attribute
2072 Add HTJ2K Compressor support to Tiled images
2070 Drop support for python 3.7; add support for python 3.13
2066 Standardize handling of directories and paths in ci_steps.yml
2064 Improve example reader code in README.md/website, and add to CI
2063 Fix problem with OpenJPH downstream dependency
2061 Remove realloc from HTJ2K coder
2058 Add macOS universal2 build to CI, and bump OpenJPG to 0.21.3
2053 Supplemental to 2051: Adjust the "Unknown" compression threshold to 11
2051 add htj2k as one of the compression names
2048 Rename "HT256" to "htj2k"
2044 Improve reliability/readability of bin tests scripts and failure output
2041 merge htj2k-beta branch with main
2037 Add vendored deflate
2017 Fix quoting an cmake args in ci_workflow.yml
2016 Address mingw32 issues
2014 Add MSYS2 jobs to CI
2012 Fix botched htj2k news title
1995 Bazel support: Bump rules_cc
1886 Bump github/codeql-action from 3.26.12 to 3.26.13
1882 Bazel Support: Use Imath and libdeflate live at head
1879 Fetch master branch of libdeflate on main
1852 Add an option to use TBB as the global provider
To generate a diff of this commit:
cvs rdiff -u -r1.70 -r1.71 pkgsrc/graphics/openexr/Makefile
cvs rdiff -u -r1.28 -r1.29 pkgsrc/graphics/openexr/PLIST
cvs rdiff -u -r1.62 -r1.63 pkgsrc/graphics/openexr/distinfo
cvs rdiff -u -r0 -r1.1 \
pkgsrc/graphics/openexr/patches/patch-src_lib_OpenEXRCore_internal__ht.cpp
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/graphics/openexr/Makefile
diff -u pkgsrc/graphics/openexr/Makefile:1.70 pkgsrc/graphics/openexr/Makefile:1.71
--- pkgsrc/graphics/openexr/Makefile:1.70 Sun Aug 10 10:38:56 2025
+++ pkgsrc/graphics/openexr/Makefile Sun Sep 21 15:10:24 2025
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.70 2025/08/10 10:38:56 wiz Exp $
+# $NetBSD: Makefile,v 1.71 2025/09/21 15:10:24 wiz Exp $
-DISTNAME= openexr-3.3.5
-PKGREVISION= 1
+DISTNAME= openexr-3.4.0
CATEGORIES= graphics
MASTER_SITES= ${MASTER_SITE_GITHUB:=openexr/}
GITHUB_PROJECT= openexr
@@ -31,5 +30,6 @@ CHECK_PORTABILITY_SKIP+= share/util/refo
.include "../../devel/cmake/build.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../devel/libdeflate/buildlink3.mk"
+.include "../../graphics/OpenJPH/buildlink3.mk"
.include "../../math/imath/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/graphics/openexr/PLIST
diff -u pkgsrc/graphics/openexr/PLIST:1.28 pkgsrc/graphics/openexr/PLIST:1.29
--- pkgsrc/graphics/openexr/PLIST:1.28 Sat Oct 19 11:53:57 2024
+++ pkgsrc/graphics/openexr/PLIST Sun Sep 21 15:10:24 2025
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.28 2024/10/19 11:53:57 wiz Exp $
+@comment $NetBSD: PLIST,v 1.29 2025/09/21 15:10:24 wiz Exp $
bin/exr2aces
bin/exrenvmap
bin/exrheader
@@ -35,6 +35,7 @@ include/OpenEXR/ImfAcesFile.h
include/OpenEXR/ImfArray.h
include/OpenEXR/ImfAttribute.h
include/OpenEXR/ImfBoxAttribute.h
+include/OpenEXR/ImfBytesAttribute.h
include/OpenEXR/ImfCRgbaFile.h
include/OpenEXR/ImfChannelList.h
include/OpenEXR/ImfChannelListAttribute.h
@@ -79,6 +80,7 @@ include/OpenEXR/ImfFrameBuffer.h
include/OpenEXR/ImfFramesPerSecond.h
include/OpenEXR/ImfGenericInputFile.h
include/OpenEXR/ImfGenericOutputFile.h
+include/OpenEXR/ImfHTCompressor.h
include/OpenEXR/ImfHeader.h
include/OpenEXR/ImfHuf.h
include/OpenEXR/ImfIDManifest.h
@@ -160,25 +162,25 @@ lib/cmake/OpenEXR/OpenEXRConfig.cmake
lib/cmake/OpenEXR/OpenEXRConfigVersion.cmake
lib/cmake/OpenEXR/OpenEXRTargets-release.cmake
lib/cmake/OpenEXR/OpenEXRTargets.cmake
-lib/libIex-3_3.so
-lib/libIex-3_3.so.32
-lib/libIex-3_3.so.32.${PKGVERSION}
+lib/libIex-3_4.so
+lib/libIex-3_4.so.33
+lib/libIex-3_4.so.33.${PKGVERSION}
lib/libIex.so
-lib/libIlmThread-3_3.so
-lib/libIlmThread-3_3.so.32
-lib/libIlmThread-3_3.so.32.${PKGVERSION}
+lib/libIlmThread-3_4.so
+lib/libIlmThread-3_4.so.33
+lib/libIlmThread-3_4.so.33.${PKGVERSION}
lib/libIlmThread.so
-lib/libOpenEXR-3_3.so
-lib/libOpenEXR-3_3.so.32
-lib/libOpenEXR-3_3.so.32.${PKGVERSION}
+lib/libOpenEXR-3_4.so
+lib/libOpenEXR-3_4.so.33
+lib/libOpenEXR-3_4.so.33.${PKGVERSION}
lib/libOpenEXR.so
-lib/libOpenEXRCore-3_3.so
-lib/libOpenEXRCore-3_3.so.32
-lib/libOpenEXRCore-3_3.so.32.${PKGVERSION}
+lib/libOpenEXRCore-3_4.so
+lib/libOpenEXRCore-3_4.so.33
+lib/libOpenEXRCore-3_4.so.33.${PKGVERSION}
lib/libOpenEXRCore.so
-lib/libOpenEXRUtil-3_3.so
-lib/libOpenEXRUtil-3_3.so.32
-lib/libOpenEXRUtil-3_3.so.32.${PKGVERSION}
+lib/libOpenEXRUtil-3_4.so
+lib/libOpenEXRUtil-3_4.so.33
+lib/libOpenEXRUtil-3_4.so.33.${PKGVERSION}
lib/libOpenEXRUtil.so
lib/pkgconfig/OpenEXR.pc
share/doc/OpenEXR/examples/deepExamples.cpp
Index: pkgsrc/graphics/openexr/distinfo
diff -u pkgsrc/graphics/openexr/distinfo:1.62 pkgsrc/graphics/openexr/distinfo:1.63
--- pkgsrc/graphics/openexr/distinfo:1.62 Sun Jul 27 09:11:37 2025
+++ pkgsrc/graphics/openexr/distinfo Sun Sep 21 15:10:24 2025
@@ -1,5 +1,6 @@
-$NetBSD: distinfo,v 1.62 2025/07/27 09:11:37 wiz Exp $
+$NetBSD: distinfo,v 1.63 2025/09/21 15:10:24 wiz Exp $
-BLAKE2s (openexr-3.3.5.tar.gz) = 75cc8d1186f790bc398011336a41dc8390b89a7a7bc4aac4cb803bc490c7346b
-SHA512 (openexr-3.3.5.tar.gz) = adaab57718ef76c5eea587ccf9b3f03bf4c984b32bd90768c93408ccabf8c326a53110c585e302f1194fc0ddf7ea63175ec663a09e68cd2cc5ce8da194058709
-Size (openexr-3.3.5.tar.gz) = 21213874 bytes
+BLAKE2s (openexr-3.4.0.tar.gz) = d111021771ab4f7d37880afc4903c926ad195578b748ce571ab2bd614acfaaa6
+SHA512 (openexr-3.4.0.tar.gz) = c3a0ec50414eb5e2f1a04d5e7da52dd82a03f5ffc1f3a99b0c220fcf6781898802c9fcd126ba6ef2d528b7ea50865276a7f235009ecaad370639417ecd35df29
+Size (openexr-3.4.0.tar.gz) = 25545616 bytes
+SHA1 (patch-src_lib_OpenEXRCore_internal__ht.cpp) = e8ae78b7dd47cae3b9c6eabf49affbf10caaca93
Added files:
Index: pkgsrc/graphics/openexr/patches/patch-src_lib_OpenEXRCore_internal__ht.cpp
diff -u /dev/null pkgsrc/graphics/openexr/patches/patch-src_lib_OpenEXRCore_internal__ht.cpp:1.1
--- /dev/null Sun Sep 21 15:10:24 2025
+++ pkgsrc/graphics/openexr/patches/patch-src_lib_OpenEXRCore_internal__ht.cpp Sun Sep 21 15:10:24 2025
@@ -0,0 +1,26 @@
+$NetBSD: patch-src_lib_OpenEXRCore_internal__ht.cpp,v 1.1 2025/09/21 15:10:24 wiz Exp $
+
+Fix build with openjph >= 0.23.
+https://github.com/AcademySoftwareFoundation/openexr/issues/2130
+
+--- src/lib/OpenEXRCore/internal_ht.cpp.orig 2025-09-21 15:05:53.282469815 +0000
++++ src/lib/OpenEXRCore/internal_ht.cpp
+@@ -7,12 +7,12 @@
+ #include <string>
+ #include <fstream>
+
+-#include <ojph_arch.h>
+-#include <ojph_file.h>
+-#include <ojph_params.h>
+-#include <ojph_mem.h>
+-#include <ojph_codestream.h>
+-#include <ojph_message.h>
++#include <openjph/ojph_arch.h>
++#include <openjph/ojph_file.h>
++#include <openjph/ojph_params.h>
++#include <openjph/ojph_mem.h>
++#include <openjph/ojph_codestream.h>
++#include <openjph/ojph_message.h>
+
+ #include "openexr_decode.h"
+ #include "openexr_encode.h"
Home |
Main Index |
Thread Index |
Old Index