aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/graphics.scm11
-rw-r--r--gnu/packages/patches/ilmbase-fix-test-arm.patch60
-rw-r--r--gnu/packages/patches/ilmbase-openexr-pkg-config.patch40
4 files changed, 65 insertions, 48 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index fb2e90b413..eb149cbd51 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1093,7 +1093,7 @@ dist_patch_DATA = \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
- %D%/packages/patches/ilmbase-openexr-pkg-config.patch \
+ %D%/packages/patches/ilmbase-fix-test-arm.patch \
%D%/packages/patches/inetutils-hurd.patch \
%D%/packages/patches/inkscape-poppler-0.76.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 16ab9d20a4..97dff5b3b9 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -299,7 +299,7 @@ many more.")
(define-public ilmbase
(package
(name "ilmbase")
- (version "2.4.1")
+ (version "2.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -308,9 +308,9 @@ many more.")
(file-name (git-file-name "ilmbase" version))
(sha256
(base32
- "020gyl8zv83ag6gbcchmqiyx9rh2jca7j8n52zx1gk4rck7kwc01"))
+ "1k50cvi3sk6gf6w713lkk2gv5cvs74vkc7s7k4z6nmyhi4g89w4y"))
(patches (search-patches "ilmbase-fix-tests.patch"
- "ilmbase-openexr-pkg-config.patch"))))
+ "ilmbase-fix-test-arm.patch"))))
(build-system cmake-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -426,10 +426,7 @@ graphics.")
;; https://github.com/openexr/openexr/issues/67#issuecomment-21169748
(lambda _
(substitute* "IlmImfTest/main.cpp"
- ((".*testOptimizedInterleavePatterns.*") "")
- ;; This test is broken in 2.4.0 and will be fixed in a later
- ;; release: <https://github.com/openexr/openexr/issues/571>.
- ((".*testLargeDataWindowOffsets.*") ""))
+ ((".*testOptimizedInterleavePatterns.*") ""))
#t)))
'()))))
(native-inputs
diff --git a/gnu/packages/patches/ilmbase-fix-test-arm.patch b/gnu/packages/patches/ilmbase-fix-test-arm.patch
new file mode 100644
index 0000000000..2dbc55e8c4
--- /dev/null
+++ b/gnu/packages/patches/ilmbase-fix-test-arm.patch
@@ -0,0 +1,60 @@
+Fix a test failure on ARM platforms:
+
+https://github.com/AcademySoftwareFoundation/openexr/issues/713
+
+Taken from upstream:
+
+https://github.com/AcademySoftwareFoundation/openexr/commit/76d9839cd1b300398f8b801dfcb4bcf2f8c0096f
+
+diff --git a/OpenEXR/IlmImfTest/testHuf.cpp b/OpenEXR/IlmImfTest/testHuf.cpp
+index 4c887ee8..a93b8ea9 100644
+--- a/OpenEXR/IlmImfTest/testHuf.cpp
++++ b/OpenEXR/IlmImfTest/testHuf.cpp
+@@ -181,9 +181,9 @@ compressUncompressSubset(const unsigned short raw[], int n)
+ // This DEK hash is determined from an aprior initial run of this
+ // test noting its value from the assert message compressVerify().
+ //
+-#define HUF_COMPRESS_DEK_HASH_FOR_FILL4_USHRT_MAX_PLUS_ONE 2956869585U
+-#define HUF_COMPRESS_DEK_HASH_FOR_FILL4_N 3414126535U
+-#define HUF_COMPRESS_DEK_HASH_FOR_FILL5_N 169791374U
++#define HUF_COMPRESS_DEK_HASH_FOR_FILL4_USHRT_MAX_PLUS_ONE 2013380646U
++#define HUF_COMPRESS_DEK_HASH_FOR_FILL4_N 213880353U
++#define HUF_COMPRESS_DEK_HASH_FOR_FILL5_N 2492982090U
+
+ void
+ compressVerify (const unsigned short raw[],
+@@ -200,7 +200,7 @@ compressVerify (const unsigned short raw[],
+ // under the topic of sorting and search chapter 6.4.
+ //
+ unsigned int compressedHash = nCompressed;
+- const char* cptr = compressed;
++ const unsigned char* cptr = reinterpret_cast<const unsigned char*>( (const char*) compressed);
+ for (int i = 0; i < nCompressed; ++i)
+ {
+ compressedHash =
+@@ -210,6 +210,25 @@ compressVerify (const unsigned short raw[],
+ cout << "verifying compressed checksum hash = "
+ << compressedHash << std::endl;
+
++ if (compressedHash != dekHash)
++ {
++ cout << "hash verification failed. Got " << compressedHash << " expected " << dekHash << std::endl;
++ const unsigned char* cptr = reinterpret_cast<const unsigned char*>( (const char*) compressed);
++ for(int i = 0 ; i < nCompressed ; ++i )
++ {
++ cout << std::hex << (0xFF & (int) (*cptr++));
++ if ( (i & 0xF) ==0 )
++ {
++ cout << '\n';
++ }
++ else
++ {
++ cout << ' ';
++ }
++ }
++ cout << "\n";
++ }
++
+ assert (compressedHash == dekHash);
+ }
+
diff --git a/gnu/packages/patches/ilmbase-openexr-pkg-config.patch b/gnu/packages/patches/ilmbase-openexr-pkg-config.patch
deleted file mode 100644
index 99613080d8..0000000000
--- a/gnu/packages/patches/ilmbase-openexr-pkg-config.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Fix pkg-config files when using the CMake build system.
-
-Upstream bug report:
-https://github.com/openexr/openexr/issues/567
-
-diff --git a/IlmBase/config/CMakeLists.txt b/IlmBase/config/CMakeLists.txt
-index 508176a..9e6ab91 100644
---- a/IlmBase/config/CMakeLists.txt
-+++ b/IlmBase/config/CMakeLists.txt
-@@ -71,9 +71,9 @@ if(ILMBASE_INSTALL_PKG_CONFIG)
- # use a helper function to avoid variable pollution, but pretty simple
- function(ilmbase_pkg_config_help pcinfile)
- set(prefix ${CMAKE_INSTALL_PREFIX})
-- set(exec_prefix ${CMAKE_INSTALL_BINDIR})
-- set(libdir ${CMAKE_INSTALL_LIBDIR})
-- set(includedir ${CMAKE_INSTALL_INCLUDEDIR})
-+ set(exec_prefix ${CMAKE_INSTALL_FULL_BINDIR})
-+ set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
-+ set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
- set(LIB_SUFFIX_DASH ${ILMBASE_LIB_SUFFIX})
- if(TARGET Threads::Threads)
- # hrm, can't use properties as they end up as generator expressions
-diff --git a/OpenEXR/config/CMakeLists.txt b/OpenEXR/config/CMakeLists.txt
-index 1ef829a..b8dc141 100644
---- a/OpenEXR/config/CMakeLists.txt
-+++ b/OpenEXR/config/CMakeLists.txt
-@@ -72,9 +72,9 @@ if(OPENEXR_INSTALL_PKG_CONFIG)
- # use a helper function to avoid variable pollution, but pretty simple
- function(openexr_pkg_config_help pcinfile)
- set(prefix ${CMAKE_INSTALL_PREFIX})
-- set(exec_prefix ${CMAKE_INSTALL_BINDIR})
-- set(libdir ${CMAKE_INSTALL_LIBDIR})
-- set(includedir ${CMAKE_INSTALL_INCLUDEDIR})
-+ set(exec_prefix ${CMAKE_INSTALL_FULL_BINDIR})
-+ set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
-+ set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
- set(LIB_SUFFIX_DASH ${OPENEXR_LIB_SUFFIX})
- if(TARGET Threads::Threads)
- # hrm, can't use properties as they end up as generator expressions
-