summary refs log tree commit diff
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
-