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