aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2019-09-23 17:15:50 +0200
committerMarius Bakke <mbakke@fastmail.com>2019-09-24 20:12:56 +0200
commit942c7889498fc8e680a16d500e166c9ade84e640 (patch)
treeba82db572d0c84fa79a34d79c26545352852a15d
parentd8fbfbf52363333b5f925a52edc4e5bbc85c45de (diff)
downloadguix-942c7889498fc8e680a16d500e166c9ade84e640.tar
guix-942c7889498fc8e680a16d500e166c9ade84e640.tar.gz
gnu: OpenEXR: Update to 2.4.0 [fixes CVE-2018-18443, CVE-2018-18444].
* gnu/packages/patches/ilmbase-fix-tests.patch: Adjust for new origin. * gnu/packages/patches/ilmbase-openexr-pkg-config.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/graphics.scm (ilmbase): Update to 2.4.0. [source]: Change to GIT-FETCH, as tarballs are no longer provided. Add new patch. [build-system]: Change to CMAKE-BUILD-SYSTEM. [arguments]: Add phase to enter the correct source directory. * gnu/packages/graphics.scm (openexr): Update to 2.4.0. [source]: Inherit from ILMBASE, which comes from the same repository. [build-system]: Change to CMAKE-BUILD-SYSTEM. [arguments]: Add phase to enter the correct source directory. * gnu/packages/gstreamer.scm (gst-plugins-bad)[arguments]: Enable C++11. * gnu/packages/image-processing.scm (opencv)[arguments]: Likewise.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/graphics.scm46
-rw-r--r--gnu/packages/gstreamer.scm5
-rw-r--r--gnu/packages/image-processing.scm4
-rw-r--r--gnu/packages/patches/ilmbase-fix-tests.patch12
-rw-r--r--gnu/packages/patches/ilmbase-openexr-pkg-config.patch40
6 files changed, 81 insertions, 27 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 0e279d8303..bf0f9de26e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -962,6 +962,7 @@ dist_patch_DATA = \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/idris-test-no-node.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
+ %D%/packages/patches/ilmbase-openexr-pkg-config.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
%D%/packages/patches/irrlicht-use-system-libs.patch \
%D%/packages/patches/isc-dhcp-4.4.1-fixes-for-newer-bind.patch \
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index d4e9adb84a..795e750cb5 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -16,6 +16,7 @@
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -327,17 +328,25 @@ many more.")
(define-public ilmbase
(package
(name "ilmbase")
- (version "2.3.0")
+ (version "2.4.0")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/openexr/openexr/releases"
- "/download/v" version "/ilmbase-"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/openexr/openexr")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "ilmbase" version))
(sha256
(base32
- "0qiq5bqq9rxhqjiym2k36sx4vq8adgrz6xf6qwizi9bqm78phsa5"))
- (patches (search-patches "ilmbase-fix-tests.patch"))))
- (build-system gnu-build-system)
+ "0g3rz11cvb7gnphp2np9z7bfl7v4dprq4w5hnsvx7yrasgsdyn8s"))
+ (patches (search-patches "ilmbase-fix-tests.patch"
+ "ilmbase-openexr-pkg-config.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'change-directory
+ (lambda _
+ (chdir "IlmBase")
+ #t)))))
(home-page "http://www.openexr.com/")
(synopsis "Utility C++ libraries for threads, maths, and exceptions")
(description
@@ -409,27 +418,26 @@ graphics.")
(define-public openexr
(package
(name "openexr")
- (version "2.3.0")
+ (version (package-version ilmbase))
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/openexr/openexr/releases"
- "/download/v" version "/openexr-"
- version ".tar.gz"))
- (sha256
- (base32
- "19jywbs9qjvsbkvlvzayzi81s976k53wg53vw4xj66lcgylb6v7x"))
+ (inherit (package-source ilmbase))
+ (file-name (git-file-name "openexr" version))
(modules '((guix build utils)))
(snippet
'(begin
- (substitute* (find-files "." "tmpDir\\.h")
+ (substitute* (find-files "OpenEXR" "tmpDir\\.h")
(("\"/var/tmp/\"")
"\"/tmp/\""))
#t))))
- (build-system gnu-build-system)
+ (build-system cmake-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'disable-broken-test
+ (add-after 'unpack 'change-directory
+ (lambda _
+ (chdir "OpenEXR")
+ #t))
+ (add-after 'change-directory 'disable-broken-test
;; This test fails on i686. Upstream developers suggest that
;; this test is broken on i686 and can be safely disabled:
;; https://github.com/openexr/openexr/issues/67#issuecomment-21169748
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 13c2c2fc27..8b81cc91a0 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -286,6 +286,11 @@ developers consider to have good quality code and correct functionality.")
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; XXX: 13 of 53 tests fail
+
+ ;; FIXME: OpenEXR 2.4.0 requires C++ 11 or later. Remove when the
+ ;; default compiler is >= GCC 5.
+ #:make-flags '("CXXFLAGS=-std=gnu++11")
+
#:configure-flags
(list (string-append "--with-html-dir="
(assoc-ref %outputs "doc")
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index b3972a2b76..460f35dbae 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -269,6 +269,10 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
"-DWITH_CAROTENE=OFF" ; only visible on arm/aarch64
"-DENABLE_PRECOMPILED_HEADERS=OFF"
+ ;; FIXME: OpenEXR requires C++11 or later. Remove this when
+ ;; the default compiler is GCC 7.
+ "-DCMAKE_CXX_FLAGS=-std=gnu++11"
+
;; CPU-Features:
;; See cmake/OpenCVCompilerOptimizations.cmake
;; (CPU_ALL_OPTIMIZATIONS) for a list of all optimizations
diff --git a/gnu/packages/patches/ilmbase-fix-tests.patch b/gnu/packages/patches/ilmbase-fix-tests.patch
index fcaa37d201..34d3a180c4 100644
--- a/gnu/packages/patches/ilmbase-fix-tests.patch
+++ b/gnu/packages/patches/ilmbase-fix-tests.patch
@@ -22,10 +22,8 @@ Date: Wed, 24 Feb 2016 01:04:11 +0000
Also fix a pre-existing typo.
-Index: ilmbase/ImathTest/testBoxAlgo.cpp
-===================================================================
---- ilmbase.orig/ImathTest/testBoxAlgo.cpp
-+++ ilmbase/ImathTest/testBoxAlgo.cpp
+--- a/IlmBase/ImathTest/testBoxAlgo.cpp
++++ b/IlmBase/ImathTest/testBoxAlgo.cpp
@@ -886,10 +886,11 @@ boxMatrixTransform ()
assert (approximatelyEqual (b2.min, b4.min, e));
@@ -54,10 +52,8 @@ On 32-bit x86, allow even greater discrepency at double
precision, due to possible double-rounding. See
https://lists.nongnu.org/archive/html/openexr-devel/2015-12/msg00001.html
-Index: ilmbase/ImathTest/testBox.cpp
-===================================================================
---- ilmbase.orig/ImathTest/testBox.cpp
-+++ ilmbase/ImathTest/testBox.cpp
+--- a/IlmBase/ImathTest/testBox.cpp
++++ b/IlmBase/ImathTest/testBox.cpp
@@ -47,6 +47,58 @@ using namespace IMATH_INTERNAL_NAMESPACE
namespace {
diff --git a/gnu/packages/patches/ilmbase-openexr-pkg-config.patch b/gnu/packages/patches/ilmbase-openexr-pkg-config.patch
new file mode 100644
index 0000000000..99613080d8
--- /dev/null
+++ b/gnu/packages/patches/ilmbase-openexr-pkg-config.patch
@@ -0,0 +1,40 @@
+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
+