[PATCH 0/3] Add OpenEXR version 3.

  • Done
  • quality assurance status badge
Details
2 participants
  • Leo Famulari
  • Vinicius Monego
Owner
unassigned
Submitted by
Vinicius Monego
Severity
normal
V
V
Vinicius Monego wrote on 23 Oct 2021 14:13
(address . guix-patches@gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211023121332.5443-1-monego@posteo.net
These patches add OpenEXR version 3.

There were structural changes in this version. Part of "ilmbase" (the library for openexr 2) was split into the "imath" package (now in a separate repository), and the other part was merged into openexr 3.

Patches #2 and #3 do not cause any change in derivation (no rebuild).

The description of the openexr packages was also changed to reflect both versions.

Vinicius Monego (3):
gnu: Add imath.
gnu: Rename openexr to openexr-2.
gnu: Add OpenEXR 3.

gnu/packages/animation.scm | 2 +-
gnu/packages/gimp.scm | 4 +-
gnu/packages/graphics.scm | 80 ++++++++++++++++++++++++++-----
gnu/packages/gstreamer.scm | 2 +-
gnu/packages/image-processing.scm | 12 ++---
gnu/packages/image-viewers.scm | 2 +-
gnu/packages/image.scm | 6 +--
gnu/packages/kde-frameworks.scm | 2 +-
gnu/packages/kde.scm | 2 +-
gnu/packages/photo.scm | 6 +--
10 files changed, 87 insertions(+), 31 deletions(-)


base-commit: e1261ddd38cf02a0f046f3a5360502d659b4e7d4
--
2.30.2
V
V
Vinicius Monego wrote on 23 Oct 2021 14:17
[PATCH 1/3] gnu: Add imath.
(address . 51350@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211023121801.5889-1-monego@posteo.net
* gnu/packages/graphics.scm (imath): New variable.
---
gnu/packages/graphics.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 9a5e2f2195..404617aa7b 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -26,6 +26,7 @@
;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
;;; Copyright © 2021 Andy Tai <atai@atai.org>
;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -796,6 +797,29 @@ many more.")
;; permissive licenses.
(license license:gpl3+)))
+(define-public imath
+ (package
+ (name "imath")
+ (version "3.1.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/AcademySoftwareFoundation/Imath")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1nyld18mf220ghm1vidnfnn0rdns9z5i4l9s66xgd0kfdgarb31f"))))
+ (build-system cmake-build-system)
+ (home-page "https://github.com/AcademySoftwareFoundation/Imath")
+ (synopsis "Library of math operations for computer graphics")
+ (description
+ "Imath is a basic, light-weight, and efficient C++ representation of 2D
+and 3D vectors and matrices and other simple but useful mathematical objects,
+functions, and data types common in computer graphics applications, including
+the @code{half} 16-bit floating-point type.")
+ (license license:bsd-3)))
+
(define-public ilmbase
(package
(name "ilmbase")
--
2.30.2
V
V
Vinicius Monego wrote on 23 Oct 2021 14:18
[PATCH 2/3] gnu: Rename openexr to openexr-2.
(address . 51350@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211023121801.5889-2-monego@posteo.net
This change was automated via the following command:

$ git ls-files | xargs sed -i 's/,openexr)/,openexr-2)/g'
$ git checkout etc # to clear some spurious changes

This is done so the openexr package can be upgraded to version 3 in the
following commit.
---
gnu/packages/animation.scm | 2 +-
gnu/packages/gimp.scm | 4 ++--
gnu/packages/graphics.scm | 12 ++++++------
gnu/packages/gstreamer.scm | 2 +-
gnu/packages/image-processing.scm | 12 ++++++------
gnu/packages/image-viewers.scm | 2 +-
gnu/packages/image.scm | 6 +++---
gnu/packages/kde-frameworks.scm | 2 +-
gnu/packages/kde.scm | 2 +-
gnu/packages/photo.scm | 6 +++---
10 files changed, 25 insertions(+), 25 deletions(-)

Toggle diff (267 lines)
diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm
index 6f116af63c..a8ead4295c 100644
--- a/gnu/packages/animation.scm
+++ b/gnu/packages/animation.scm
@@ -179,7 +179,7 @@ C++ @dfn{Standard Template Library} (STL).")
("libxml++" ,libxml++)
("libsigc++" ,libsigc++)
("mlt" ,mlt-6)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("pango" ,pango)))
(native-inputs
`(("intltool" ,intltool)
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index ae59385d45..11ec47b7e5 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -265,7 +265,7 @@ provided, as well as a framework to add new color models and data types.")
("libtiff" ,libtiff)
("libwebp" ,libwebp)
("maxflow" ,maxflow)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("pango" ,pango)
("poppler" ,poppler)
("sdl2" ,sdl2)))
@@ -352,7 +352,7 @@ buffers.")
("libmng" ,libmng) ; optional, MNG support
("librsvg" ,librsvg) ; optional, SVG support
("libxcursor" ,libxcursor) ; optional, Mouse Cursor support
- ("openexr" ,openexr) ; optional, EXR support
+ ("openexr" ,openexr-2) ; optional, EXR support
("openjpeg" ,openjpeg) ; optional, JPEG 2000 support
("poppler" ,poppler) ; optional, PDF support
("poppler-data" ,poppler-data) ; optional, PDF support
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 404617aa7b..6f478a0b81 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -569,7 +569,7 @@ typically encountered in feature film production.")
("libxrender" ,libxrender)
("opencolorio" ,opencolorio)
("openimageio" ,openimageio)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("opensubdiv" ,opensubdiv)
("ilmbase" ,ilmbase)
("openjpeg" ,openjpeg)
@@ -669,7 +669,7 @@ application can be customized via its API for Python scripting.")
("libx11" ,libx11)
("opencolorio" ,opencolorio)
("openimageio" ,openimageio)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("ilmbase" ,ilmbase)
("openjpeg" ,openjpeg)
("libjpeg" ,libjpeg-turbo)
@@ -1106,7 +1106,7 @@ graphics.")
(home-page "https://www.ogre3d.org/")
(license license:expat)))
-(define-public openexr
+(define-public openexr-2
(package
(name "openexr")
(version (package-version ilmbase))
@@ -1190,7 +1190,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
("libjpeg" ,libjpeg-turbo)
("libtiff" ,libtiff)
("giflib" ,giflib)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("ilmbase" ,ilmbase)
("pugixml" ,pugixml)
("python" ,python-wrapper)
@@ -1393,7 +1393,7 @@ in Julia).")
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libtiff" ,libtiff)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("sdl" ,sdl)
("zlib" ,zlib)))
(arguments
@@ -1514,7 +1514,7 @@ and is connected to the programming logic using data bindings and commands.")
(arguments '(#:tests? #f)) ;no 'test' target
;; Headers include OpenEXR and IlmBase headers.
- (propagated-inputs `(("openexr" ,openexr)))
+ (propagated-inputs `(("openexr" ,openexr-2)))
(home-page "http://ampasctl.sourceforge.net")
(synopsis "Color Transformation Language")
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 73ae2c9815..bb991789da 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -768,7 +768,7 @@ model to base your own plug-in on, here it is.")
("mesa" ,mesa)
("neon" ,neon)
("openal" ,openal)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("openjpeg" ,openjpeg)
("openssl" ,openssl)
("opus" ,opus)
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index c8b1f20c63..a972ce052c 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -160,7 +160,7 @@ licences similar to the Modified BSD licence."))))
("maxflow" ,maxflow)
("niftilib" ,niftilib)
("nlopt" ,nlopt)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("python-lxml" ,python2-lxml)
("vtk" ,vtk)))
(native-inputs
@@ -230,7 +230,7 @@ of external libraries that provide additional functionality.")
;; ocioconvert fails: error: conflicting declaration ?typedef void
;; (* PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum, GLenum, GLfloat*)
`(("lcms" ,lcms)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("tinyxml" ,tinyxml)))
(home-page "https://opencolorio.org")
(synopsis "Color management for visual effects and animation")
@@ -635,7 +635,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
("libwebp" ,libwebp)
("zlib" ,zlib)
("gtkglext" ,gtkglext)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("ilmbase" ,ilmbase)
("gtk+" ,gtk+-2)
("python-numpy" ,python-numpy)
@@ -701,7 +701,7 @@ vision algorithms. It can be used to do things like:
("libwebp" ,libwebp)
("matio" ,matio)
("niftilib" ,niftilib)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("orc" ,orc)
("pango" ,pango)
("poppler" ,poppler)))
@@ -753,7 +753,7 @@ due to its architecture which automatically parallelises the image workflows.")
("libtiff" ,libtiff)
("libx11" ,libx11)
;;("opencv" ,opencv) ;OpenCV is currently broken in the CI
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("zlib" ,zlib)))
(home-page "https://gmic.eu/")
(synopsis "Full-featured framework for digital image processing")
@@ -840,7 +840,7 @@ including 2D color images.")
("matio" ,matio)
("lcms" ,lcms)
("libwebp" ,libwebp)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("poppler" ,poppler)
("gsl" ,gsl)))
(native-inputs
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index 0bd53aae8f..4f87b63ca1 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -544,7 +544,7 @@ It supports JPEG, PNG and GIF formats.")
("libpng" ,libpng)
("libjpeg" ,libjpeg-turbo)
("lcms" ,lcms)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("fftw" ,fftwf)
("gsl" ,gsl)
("libtiff" ,libtiff)))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 8a632c85d3..c1781ba4f2 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1158,7 +1158,7 @@ supplies a generic doubly-linked list and some string functions.")
("libraw" ,libraw)
("libtiff" ,libtiff)
("libwebp" ,libwebp)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("openjpeg" ,openjpeg)
("zlib" ,zlib)))
(synopsis "Library for handling popular graphics image formats")
@@ -1192,7 +1192,7 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libtiff" ,libtiff)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("python" ,python-wrapper)
("python-numpy" ,python-numpy)
("zlib" ,zlib)))
@@ -1405,7 +1405,7 @@ and XMP metadata of images in various formats.")
("libmng" ,libmng)
("libpng" ,libpng)
("libtiff" ,libtiff)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("zlib" ,zlib)))
(synopsis "Library for manipulating many image formats")
(description "Developer's Image Library (DevIL) is a library to develop
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 00d5eb049d..6a48dc229a 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1816,7 +1816,7 @@ by applications to write metadata.")
("pkg-config" ,pkg-config)))
(inputs
`(("karchive" ,karchive) ; for Krita and OpenRaster images
- ("openexr" ,openexr) ; for OpenEXR high dynamic-range images
+ ("openexr" ,openexr-2) ; for OpenEXR high dynamic-range images
("qtbase" ,qtbase-5)))
(arguments
`(#:phases
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 6cba017af0..c6f5227e8b 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -522,7 +522,7 @@ illustrate project schedules.")
("libx11" ,libx11)
("libxcb" ,libxcb)
("libxi" ,libxi)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("perl" ,perl)
("poppler-qt5" ,poppler-qt5)
("qtbase" ,qtbase-5)
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 908a872b6b..6364323731 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -413,7 +413,7 @@ overlapping images, as well as some command line tools.")
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libtiff" ,libtiff)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("vigra" ,vigra)
("zlib" ,zlib)))
(arguments
@@ -568,7 +568,7 @@ photographic equipment.")
("libxslt" ,libxslt)
("lua" ,lua) ;optional, for plugins
("opencl-icd-loader" ,opencl-icd-loader) ;optional, for OpenCL support
- ("openexr" ,openexr) ;optional, for EXR import/export
+ ("openexr" ,openexr-2) ;optional, for EXR import/export
("openjpeg" ,openjpeg) ;optional, for JPEG2000 export
("osm-gps-map" ,osm-gps-map) ;optional, for geotagging view
("pugixml" ,pugixml)
@@ -726,7 +726,7 @@ off' shooting directly from the controlling computer.")
("libxi" ,libxi)
("libxmu" ,libxmu)
("mesa" ,mesa)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("sqlite" ,sqlite)
("vigra" ,vigra)
("wxwidgets" ,wxwidgets)
--
2.30.2
V
V
Vinicius Monego wrote on 23 Oct 2021 14:18
[PATCH 3/3] gnu: Add OpenEXR 3.
(address . 51350@debbugs.gnu.org)(name . Vinicius Monego)(address . monego@posteo.net)
20211023121801.5889-3-monego@posteo.net
* gnu/packages/graphics.scm (openexr): New variable.
(openexr-2)[home-page]: Use home-page from openexr.
[synopsis]: Use synopsis from openexr.
[description]: Use description from openexr.
[license]: Use license from openexr.
---
gnu/packages/graphics.scm | 46 +++++++++++++++++++++++++++++++++------
1 file changed, 39 insertions(+), 7 deletions(-)

Toggle diff (66 lines)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 6f478a0b81..0baf0af6ac 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -1106,6 +1106,41 @@ graphics.")
(home-page "https://www.ogre3d.org/")
(license license:expat)))
+(define-public openexr
+ (package
+ (name "openexr")
+ (version "3.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/AcademySoftwareFoundation/openexr")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0vyclrrikphwkkpyjg8kzh3qzflzk3d6xsidgqllgfdgllr9wmgv"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (with-directory-excursion "src/test"
+ (substitute* (append (find-files "." "tmpDir\\.h")
+ '("OpenEXRCoreTest/main.cpp"))
+ (("\"/var/tmp/\"")
+ "\"/tmp/\"")))
+ #t))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("imath" ,imath)
+ ("zlib" ,zlib)))
+ (home-page "https://www.openexr.com/")
+ (synopsis "High-dynamic-range file format library")
+ (description
+ "OpenEXR provides the specification and reference implementation of the
+EXR file format. The purpose of EXR format is to accurately and efficiently
+represent high-dynamic-range scene-linear image data and associated metadata,
+with strong support for multi-part, multi-channel use cases.")
+ (license license:bsd-3)))
+
(define-public openexr-2
(package
(name "openexr")
@@ -1153,13 +1188,10 @@ graphics.")
(propagated-inputs
`(("ilmbase" ,ilmbase) ;used in public headers
("zlib" ,zlib))) ;OpenEXR.pc reads "-lz"
- (home-page "https://www.openexr.com/")
- (synopsis "High-dynamic range file format library")
- (description
- "OpenEXR is a high dynamic-range (HDR) image file format developed for
-use in computer imaging applications. The IlmImf C++ libraries support
-storage of the \"EXR\" file format for storing 16-bit floating-point images.")
- (license license:bsd-3)))
+ (home-page (package-home-page openexr))
+ (synopsis (package-synopsis openexr))
+ (description (package-description openexr))
+ (license (package-license openexr))))
(define-public openimageio
(package
--
2.30.2
L
L
Leo Famulari wrote on 23 Oct 2021 22:23
Re: [bug#51350] [PATCH 1/3] gnu: Add imath.
(name . Vinicius Monego)(address . monego@posteo.net)(address . 51350@debbugs.gnu.org)
YXRvWxJt+BStEMjG@jasmine.lan
On Sat, Oct 23, 2021 at 12:17:59PM +0000, Vinicius Monego wrote:
Toggle quote (2 lines)
> * gnu/packages/graphics.scm (imath): New variable.

Thanks! This is necessary for updating Blender, so I'm very grateful for
the patch.

Toggle quote (6 lines)
> + (description
> + "Imath is a basic, light-weight, and efficient C++ representation of 2D
> +and 3D vectors and matrices and other simple but useful mathematical objects,
> +functions, and data types common in computer graphics applications, including
> +the @code{half} 16-bit floating-point type.")

I tweaked the description to remove what I consider "marketing language"
such as "light-weight and efficient", and also to properly quote "half".

I pushed this commit as ae3fa855f38bd3952e2cf510bbb58bbe74aeb3f8
L
L
Leo Famulari wrote on 23 Oct 2021 22:24
Re: [bug#51350] [PATCH 2/3] gnu: Rename openexr to openexr-2.
(name . Vinicius Monego)(address . monego@posteo.net)(address . 51350@debbugs.gnu.org)
YXRvcn+ONvEAmd13@jasmine.lan
On Sat, Oct 23, 2021 at 12:18:00PM +0000, Vinicius Monego wrote:
Toggle quote (8 lines)
> This change was automated via the following command:
>
> $ git ls-files | xargs sed -i 's/,openexr)/,openexr-2)/g'
> $ git checkout etc # to clear some spurious changes
>
> This is done so the openexr package can be upgraded to version 3 in the
> following commit.

Thanks! I wrote the commit message and pushed this patch as commit
d71336b2e3c86432f174645163d06a3ef83deaae
L
L
Leo Famulari wrote on 23 Oct 2021 22:28
Re: [bug#51350] [PATCH 3/3] gnu: Add OpenEXR 3.
(name . Vinicius Monego)(address . monego@posteo.net)(address . 51350-done@debbugs.gnu.org)
YXRwYqu/DSI0dzKq@jasmine.lan
On Sat, Oct 23, 2021 at 12:18:01PM +0000, Vinicius Monego wrote:
Toggle quote (6 lines)
> * gnu/packages/graphics.scm (openexr): New variable.
> (openexr-2)[home-page]: Use home-page from openexr.
> [synopsis]: Use synopsis from openexr.
> [description]: Use description from openexr.
> [license]: Use license from openexr.

Thanks! Pushed as c52ba63c673f90be1d3b52be0051961ed2a9181a

Toggle quote (9 lines)
> + (snippet
> + '(begin
> + (with-directory-excursion "src/test"
> + (substitute* (append (find-files "." "tmpDir\\.h")
> + '("OpenEXRCoreTest/main.cpp"))
> + (("\"/var/tmp/\"")
> + "\"/tmp/\"")))
> + #t))))

I pushed this patch separately from the rest of the series because I was
going to ask you to revise it, changing this snippet to a build phase.
But then I realized that it was already like this in the OpenEXR 2
package so I went ahead and pushed.

I'll make that change myself shortly. Snippets should be reserved for
really critical problems like fixing bugs or removing nonfree
components.
Closed
?