Patchwork [001/303] gnu: Add opencolorio.

login
register
mail settings
Submitter ng0
Date Oct. 3, 2016, 12:16 p.m.
Message ID <20161003121629.28265-2-ngillmann@runbox.com>
Download mbox | patch
Permalink /patch/16214/
State New
Headers show

Comments

ng0 - Oct. 3, 2016, 12:16 p.m.
From: ng0 <ng0@we.make.ritual.n0.is>

* gnu/packages/graphics (opencolorio): New variable.
* gnu/packages/patches/opencolorio-avoid-bundled-includes.patch
---
 gnu/local.mk                                       |  1 +
 gnu/packages/graphics.scm                          | 73 ++++++++++++++++++++++
 .../opencolorio-avoid-bundled-includes.patch       | 72 +++++++++++++++++++++
 3 files changed, 146 insertions(+)
 create mode 100644 gnu/packages/patches/opencolorio-avoid-bundled-includes.patch

Patch

diff --git a/gnu/local.mk b/gnu/local.mk
index a7006cb..bc52f1a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -701,6 +701,7 @@  dist_patch_DATA =						\
   %D%/packages/patches/nvi-db4.patch				\
   %D%/packages/patches/ocaml-CVE-2015-8869.patch		\
   %D%/packages/patches/ocaml-findlib-make-install.patch	\
+  %D%/packages/patches/opencolorio-avoid-bundled-includes.patch \
   %D%/packages/patches/openexr-missing-samples.patch		\
   %D%/packages/patches/openjpeg-CVE-2015-6581.patch		\
   %D%/packages/patches/openjpeg-CVE-2016-5157.patch		\
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index d0df830..1f04da2 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -5,6 +5,7 @@ 
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2016 ng0 <ngillmann@runbox.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -46,18 +47,21 @@ 
   #:use-module (gnu packages compression)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages java)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
@@ -510,3 +514,72 @@  and understanding different BRDFs (and other component functions).")
 It supports sub-pixel resolutions and anti-aliasing.  It is also library for
 rendering SVG graphics.")
     (license license:gpl2+)))
+
+(define-public opencolorio
+  (package
+    (name "opencolorio")
+    (version "1.0.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/imageworks/OpenColorIO/"
+                                  "archive/v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0zzacmfs4k6lk4yd9v8f6p1616k7sm5wmhk0np93qx8m3ilixj17"))
+              (patches (search-patches
+                        "opencolorio-avoid-bundled-includes.patch"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "-DOCIO_BUILD_JNIGLUE=OFF" "-DOCIO_BUILD_SHARED=ON"
+             "-DOCIO_BUILD_NUKE=OFF" ; Nuke is commerical software
+             "-DOCIO_BUILD_STATIC=OFF" "-DOCIO_STATIC_JNIGLUE=OFF"
+             "-DOCIO_BUILD_TRUELIGHT=OFF" ; Another external software
+             "-DUSE_EXTERNAL_LCMS=ON" "-DUSE_EXTERNAL_TINYXML=ON"
+             "-DUSE_EXTERNAL_YAML=ON" ;;"-DOCIO_BUILD_DOCS=ON"
+             "-DOCIO_BUILD_APPS=ON" ;;"-DOCIO_BUILD_PDF_DOCS=ON"
+             "-DOCIO_BUILD_PYGLUE=ON")
+       ;;"-DOCIO_BUILD_TESTS")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'fix-fixes
+           (lambda _
+             (substitute* "docs/CMakeLists.txt"
+               (("add_dependencies(doc Sphinx)") "")
+               (("add_dependencies(pdf latex)") "")))))))
+    (inputs
+     `(("lcms" ,lcms)
+       ("openimageio" ,openimageio)
+       ("glew" ,glew)
+       ("freeglut" ,freeglut)
+       ("python" ,python)
+       ("yaml-cpp" ,yaml-cpp)
+       ("yaml" ,yaml)
+       ("boost" ,boost)
+       ("tinyxml" ,tinyxml)
+       ("python-sphinx" ,python-sphinx)
+       ("mesa" ,mesa)
+       ("libxi" ,libxi)
+       ("libxmu" ,libxmu)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python)
+       ;; https://github.com/imageworks/OpenColorIO/tree/master/ext:
+       ;; ("python-setuptools" ,python-setuptools) python3.
+       ("python-jinja2" ,python-jinja2)
+       ("python-pygments" ,python-pygments)
+       ("python-docutils" ,python-docutils)
+       ("java-junit" ,java-junit)))
+    (home-page "http://opencolorio.org/")
+    (synopsis "color management framework for visual effects and animation")
+    (description
+     "OpenColorIO (OCIO) is a complete color management solution geared towards
+motion picture production with an emphasis on visual effects and computer animation.
+OCIO provides a straightforward and consistent user experience across all
+supporting applications while allowing for sophisticated back-end configuration
+options suitable for high-end production usage.  OCIO is compatible with the
+Academy Color Encoding Specification (ACES) and is LUT-format agnostic,
+supporting many popular formats.
+OpenColorIO is natively supported in commercial applications like Katana, Mari,
+Silhouette FX, and others coming soon.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/patches/opencolorio-avoid-bundled-includes.patch b/gnu/packages/patches/opencolorio-avoid-bundled-includes.patch
new file mode 100644
index 0000000..e77f733
--- /dev/null
+++ b/gnu/packages/patches/opencolorio-avoid-bundled-includes.patch
@@ -0,0 +1,72 @@ 
+Do not use bundled applications from the source of OpenColorIO.
+
+--- OpenColorIO-1.0.9/docs/CMakeLists.txt.orig	2016-09-15 09:40:03.932004575 +0000
++++ OpenColorIO-1.0.9/docs/CMakeLists.txt	2016-09-15 09:41:04.420845978 +0000
+@@ -1,67 +1,3 @@
+-
+-###############################################################################
+-### External Doc Apps ###
+-
+-# setuptools
+-# https://pypi.python.org/pypi/setuptools
+-set(SETUPTOOLS_VERSION 1.1.6)
+-ExternalProject_Add(setuptools
+-    URL ${CMAKE_SOURCE_DIR}/ext/setuptools-${SETUPTOOLS_VERSION}.tar.gz
+-    BUILD_IN_SOURCE 1
+-    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTDIST_PYTHONPATH}
+-    BUILD_COMMAND PYTHONPATH=${PYTHONPATH} ${PYTHON} setup.py build
+-    INSTALL_COMMAND PYTHONPATH=${PYTHONPATH} ${PYTHON} setup.py install --prefix=${EXTDIST_ROOT}
+-)
+-
+-# docutils
+-# https://pypi.python.org/pypi/docutils
+-set(DOCUTILS_VERSION 0.11)
+-ExternalProject_Add(docutils
+-    DEPENDS setuptools
+-    URL ${CMAKE_SOURCE_DIR}/ext/docutils-${DOCUTILS_VERSION}.tar.gz
+-    BUILD_IN_SOURCE 1
+-    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTDIST_PYTHONPATH}
+-    BUILD_COMMAND PYTHONPATH=${PYTHONPATH} ${PYTHON} setup.py build
+-    INSTALL_COMMAND PYTHONPATH=${PYTHONPATH} ${PYTHON} setup.py install --prefix=${EXTDIST_ROOT}
+-)
+-
+-# jinja2
+-# https://pypi.python.org/pypi/Jinja2
+-set(JINJA2_VERSION 2.7.1)
+-ExternalProject_Add(Jinja2
+-    DEPENDS setuptools
+-    URL ${CMAKE_SOURCE_DIR}/ext/Jinja2-${JINJA2_VERSION}.tar.gz
+-    BUILD_IN_SOURCE 1
+-    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTDIST_PYTHONPATH}
+-    BUILD_COMMAND PYTHONPATH=${PYTHONPATH} ${PYTHON} setup.py build
+-    INSTALL_COMMAND PYTHONPATH=${PYTHONPATH} ${PYTHON} setup.py install --prefix=${EXTDIST_ROOT}
+-)
+-
+-# Pygments
+-# https://pypi.python.org/pypi/Pygments
+-set(PYGMENTS_VERSION 1.6)
+-ExternalProject_Add(Pygments
+-    DEPENDS setuptools
+-    URL ${CMAKE_SOURCE_DIR}/ext/Pygments-${PYGMENTS_VERSION}.tar.gz
+-    BUILD_IN_SOURCE 1
+-    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTDIST_PYTHONPATH}
+-    BUILD_COMMAND PYTHONPATH=${PYTHONPATH} ${PYTHON} setup.py build
+-    INSTALL_COMMAND PYTHONPATH=${PYTHONPATH} ${PYTHON} setup.py install --prefix=${EXTDIST_ROOT}
+-)
+-
+-# sphinx
+-# https://pypi.python.org/pypi/Sphinx
+-set(SPHINX_VERSION 1.2b3)
+-ExternalProject_Add(Sphinx
+-    DEPENDS setuptools docutils Jinja2 Pygments
+-    URL ${CMAKE_SOURCE_DIR}/ext/Sphinx-${SPHINX_VERSION}.tar.gz
+-    PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/ext/Sphinx-${SPHINX_VERSION}.patch
+-    BUILD_IN_SOURCE 1
+-    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTDIST_PYTHONPATH}
+-    BUILD_COMMAND PYTHONPATH=${PYTHONPATH} ${PYTHON} setup.py build
+-    INSTALL_COMMAND PYTHONPATH=${PYTHONPATH} ${PYTHON} setup.py install --prefix=${EXTDIST_ROOT} --install-scripts=${EXTDIST_ROOT}/bin
+-)
+-
+ ###############################################################################
+ ### Create Doc Targets ###
+