gnu: OpenEXR: Update to 2.5.0.

* gnu/packages/patches/ilmbase-openexr-pkg-config.patch: Delete file.
* gnu/packages/patches/ilmbase-fix-test-arm.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/graphics.scm (ilmbase): Update to 2.5.0.
This commit is contained in:
Marius Bakke 2020-05-08 23:29:25 +02:00
parent fef052b1b8
commit b8bb2f0793
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
4 changed files with 65 additions and 48 deletions

View file

@ -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 \

View file

@ -299,7 +299,7 @@ (define-public cgal
(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 @@ (define-public ilmbase
(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 @@ (define-public openexr
;; 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

View file

@ -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);
}

View file

@ -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