Subject: [bug#70035] [PATCH v3 6/9] gnu: opencolorio: Update to 2.3.2.

From: Vinicius Monego <[email-masked]>
Date: Wed, 3 Apr 2024 01:30:26 +0000

* gnu/packages/image-processing.scm (opencolorio): Update to 2.3.2.
[source]: Remove snippet.
[arguments]<#:configure-flags>: Unset "-DCMAKE-CXX_FLAGS",
"DOCIO_BUILD_STATIC", "-DUSE_EXTERNAL_TINXML", "-DUSE_EXTERNAL_LCMS". Add "-DCIO_BUILD_GPU_TESTS=false".
<#:phases>: Delete the patch-test-suite phase.
[native-inputs]: Remove git, pkg-config. Add openimageio, pybind11-2.10,
python-wrapper.
[inputs]: Remove openexr-2, tinyxml. Add expat, freeglut, glew, imath,
libglvnd, minizip-ng, openexr, pystring, yaml-cpp, zlib.
[license]: Simplify.
* gnu/packages/patches/opencolorio-fix-build-with-gcc11.patch: Delete patch.
* gnu/local.mk (dist_patch_DATA): Unregister it.

Change-Id: Iafd87762df81d0f5c23089251b4241a57d414dc4
---
 gnu/local.mk                                  |  1 -
 gnu/packages/image-processing.scm             | 63 ++++++-------------
 .../opencolorio-fix-build-with-gcc11.patch    | 37 -----------
 3 files changed, 20 insertions(+), 81 deletions(-)
 delete mode 100644 gnu/packages/patches/opencolorio-fix-build-with-gcc11.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index f2b480bded..3a78b71d66 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1765,7 +1765,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/openboardview-use-system-imgui.patch	\
   %D%/packages/patches/openboardview-use-system-mpc.patch	\
   %D%/packages/patches/openbox-python3.patch			\
-  %D%/packages/patches/opencolorio-fix-build-with-gcc11.patch	\
   %D%/packages/patches/openjdk-currency-time-bomb.patch		\
   %D%/packages/patches/openjdk-currency-time-bomb2.patch	\
   %D%/packages/patches/openjdk-9-pointer-comparison.patch       \
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 9d16109b05..8afe50a57a 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -260,57 +260,36 @@ (define-public mia
 (define-public opencolorio
   (package
     (name "opencolorio")
-    (version "1.1.1")
+    (version "2.3.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/AcademySoftwareFoundation/OpenColorIO")
              (commit (string-append "v" version))))
-       (patches (search-patches "opencolorio-fix-build-with-gcc11.patch"))
        (sha256
-        (base32 "12srvxca51czpfjl0gabpidj9n84mw78ivxy5w75qhq2mmc798sb"))
-       (file-name (git-file-name name version))
-       (modules '((guix build utils)))
-       (snippet
-        `(begin
-           ;; Remove bundled tarballs, patches, and .jars(!).  XXX: Upstream
-           ;; claims to have fixed USE_EXTERNAL_YAML, but it still fails with:
-           ;; https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/517
-           ;; When removing it, also remove it from the licence field comment.
-           (for-each delete-file-recursively
-                     (filter
-                      (lambda (full-name)
-                        (let ((file (basename full-name)))
-                          (not (or (string-prefix? "yaml-cpp-0.3" file)
-                                   (string=? "unittest.h" file)))))
-                      (find-files "ext" ".*")))
-
-           #t))))
+        (base32 "1h33s2pfy28nj836kx6xx3iks7v38g3kx7c4f6zn1dpskl0zf809"))
+       (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags
-       (list (string-append "-DCMAKE_CXX_FLAGS="
-                            "-Wno-error=deprecated-declarations "
-                            "-Wno-error=unused-function")
-             "-DOCIO_BUILD_STATIC=OFF"
-             ;; "-DUSE_EXTERNAL_YAML=ON"
-             "-DUSE_EXTERNAL_TINYXML=ON"
-             "-DUSE_EXTERNAL_LCMS=ON")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-test-suite
-           (lambda _
-             (substitute* "src/core_tests/CMakeLists.txt"
-               (("/bin/sh") (which "bash")))
-             #t)))))
+     ;; XXX: GPU tests are failing.
+     (list #:configure-flags #~(list "-DOCIO_BUILD_GPU_TESTS=false")))
     (native-inputs
-     (list git pkg-config))
+     ;; XXX: OCIO has unit tests for openshadinglanguage, but they fail.
+     ;; Add openshadinglanguage to native-inputs to build them.
+     (list openimageio pybind11-2.10 python-wrapper))
     (inputs
-     ;; XXX Adding freeglut, glew, ilmbase, mesa, and openimageio for
-     ;; ocioconvert fails: error: conflicting declaration ?typedef void
-     ;; (* PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum, GLenum, GLfloat*)
-     (list lcms openexr-2 tinyxml))
+     (list expat
+           freeglut
+           glew
+           imath
+           lcms
+           libglvnd
+           minizip-ng
+           openexr
+           pystring
+           yaml-cpp
+           zlib))
     (home-page "https://opencolorio.org")
     (synopsis "Color management for visual effects and animation")
     (description
@@ -323,9 +302,7 @@ (define-public opencolorio
 OCIO is compatible with the @acronym{ACES, Academy Color Encoding
 Specification} and is @acronym{LUT, look-up table}-format agnostic, supporting
 many popular formats.")
-    (license (list license:expat        ; docs/ociotheme/static, ext/yaml-cpp-*
-                   license:zlib         ; src/core/md5
-                   license:bsd-3))))    ; the rest
+    (license (list license:bsd-3))))
 
 (define-public vtk
   (package
diff --git a/gnu/packages/patches/opencolorio-fix-build-with-gcc11.patch b/gnu/packages/patches/opencolorio-fix-build-with-gcc11.patch
deleted file mode 100644
index 06507db206..0000000000
--- a/gnu/packages/patches/opencolorio-fix-build-with-gcc11.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Fix build failure with GCC 11:
-
-------
-[...]
-/tmp/guix-build-opencolorio-1.1.1.drv-0/source/src/core/ImageDesc.cpp:60:51: error: ‘this’ pointer is null [-Werror=nonnull]
-   60 |             os << "width=" << packedImg->getWidth() << ", ";
-      |                                                   ^
-/tmp/guix-build-opencolorio-1.1.1.drv-0/source/src/core/ImageDesc.cpp:274:10: note: in a call to non-static member function ‘long int OpenColorIO::v1::PackedImageDesc::getWidth() const’
-  274 |     long PackedImageDesc::getWidth() const
-      |          ^~~~~~~~~~~~~~~
-/tmp/guix-build-opencolorio-1.1.1.drv-0/source/src/core/ImageDesc.cpp:61:53: error: ‘this’ pointer is null [-Werror=nonnull]
-   61 |             os << "height=" << packedImg->getHeight() << ", ";
-      |                                                     ^
-/tmp/guix-build-opencolorio-1.1.1.drv-0/source/src/core/ImageDesc.cpp:279:10: note: in a call to non-static member function ‘long int OpenColorIO::v1::PackedImageDesc::getHeight() const’
-  279 |     long PackedImageDesc::getHeight() const
-      |          ^~~~~~~~~~~~~~~
-cc1plus: all warnings being treated as errors
-[...]
-------
-
-Patch copied from Gentoo:
-
-https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7e726d850502018b6760da78dbd4a419603016b8
-
-diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
-index 1eb691b6..cff9bd83 100644
---- a/src/core/CMakeLists.txt
-+++ b/src/core/CMakeLists.txt
-@@ -23,8 +23,6 @@ if(WIN32)
-     if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
-         set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} /WX")
-     endif()
--else()
--    set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} -Werror")
- endif()
- 
- # SHARED
-- 
2.39.2