gnu: Separate Python core packages from the rest.
[jackhill/guix/guix.git] / gnu / packages / graphics.scm
index 6632c9a..a258167 100644 (file)
@@ -59,6 +59,7 @@
   #:use-module (gnu packages pth)
   #:use-module (gnu packages pulseaudio)  ; libsndfile, libsamplerate
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
   #:use-module (guix utils))
 
 (define-public blender
+  (let ((revision "0")
+        (commit "3c3d80ea22af15e13237f978181a881b90c41e7c"))
   (package
     (name "blender")
-    (version "2.79b")
+    (version (git-version "2.80-beta" revision commit))
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://download.blender.org/source/"
-                                  "blender-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://git.blender.org/blender.git")
+                     (commit commit)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1g4kcdqmf67srzhi3hkdnr4z1ph4h9sza1pahz38mrj998q4r52c"))))
+                "1hhn8pf3a5556mxyrb2ggsiy6q0h75hnkdpcgq9b6vg284jl2l4q"))))
     (build-system cmake-build-system)
     (arguments
       (let ((python-version (version-major+minor (package-version python))))
                "-DWITH_CYCLES=ON"
                "-DWITH_DOC_MANPAGE=ON"
                "-DWITH_FFTW3=ON"
-               "-DWITH_GAMEENGINE=ON"
                "-DWITH_IMAGE_OPENJPEG=ON"
                "-DWITH_INPUT_NDOF=ON"
                "-DWITH_INSTALL_PORTABLE=OFF"
                "-DWITH_JACK=ON"
                "-DWITH_MOD_OCEANSIM=ON"
-               "-DWITH_PLAYER=ON"
-               "-DWITH_PYTHON_INSTALL=OFF"
                "-DWITH_PYTHON_INSTALL=OFF"
-               "-DWITH_SYSTEM_OPENJPEG=ON"
                (string-append "-DPYTHON_LIBRARY=python" ,python-version "m")
                (string-append "-DPYTHON_LIBPATH=" (assoc-ref %build-inputs "python")
                               "/lib")
                (string-append "-DPYTHON_INCLUDE_DIR=" (assoc-ref %build-inputs "python")
                               "/include/python" ,python-version "m")
-               (string-append "-DPYTHON_VERSION=" ,python-version))
+               (string-append "-DPYTHON_VERSION=" ,python-version)
+               (string-append "-DPYTHON_NUMPY_PATH="
+                              (assoc-ref %build-inputs "python-numpy")
+                              "/lib/python" ,python-version "/site-packages/"))
          #:phases
          (modify-phases %standard-phases
-           (add-after 'unpack 'fix-broken-import
-             (lambda _
-               (substitute* "release/scripts/addons/io_scene_fbx/json2fbx.py"
-                 (("import encode_bin") "from . import encode_bin"))
-               #t))
+           ;; XXX This file doesn't exist in the Git sources but will probably
+           ;; exist in the eventual 2.80 source tarball.
+;           (add-after 'unpack 'fix-broken-import
+;             (lambda _
+;               (substitute* "release/scripts/addons/io_scene_fbx/json2fbx.py"
+;                 (("import encode_bin") "from . import encode_bin"))
+;               #t))
            (add-after 'set-paths 'add-ilmbase-include-path
              (lambda* (#:key inputs #:allow-other-keys)
                ;; OpenEXR propagates ilmbase, but its include files do not appear
        ("openimageio" ,openimageio)
        ("openexr" ,openexr)
        ("ilmbase" ,ilmbase)
-       ("openjpeg" ,openjpeg-1)
+       ("openjpeg" ,openjpeg)
        ("libjpeg" ,libjpeg)
        ("libpng" ,libpng)
        ("libtiff" ,libtiff)
-       ("ffmpeg-2.8" ,ffmpeg-2.8) ;<https://lists.gnu.org/archive/html/guix-devel/2016-04/msg01019.html>
+       ("ffmpeg" ,ffmpeg)
        ("fftw" ,fftw)
        ("jack" ,jack-1)
        ("libsndfile" ,libsndfile)
        ("glew" ,glew)
        ("openal" ,openal)
        ("python" ,python)
+       ("python-numpy" ,python-numpy)
        ("zlib" ,zlib)))
     (home-page "https://blender.org/")
     (synopsis "3D graphics creation suite")
      "Blender is a 3D graphics creation suite.  It supports the entirety of
 the 3D pipeline—modeling, rigging, animation, simulation, rendering,
 compositing and motion tracking, even video editing and game creation.  The
-application can be customized via its API for Python scripting.")
-    (license license:gpl2+)))
+application can be customized via its API for Python scripting.
+
+WARNING: This package offers a beta build of Blender, because the stable release
+no longer works in Guix. See @uref{https://issues.guix.info/issue/33882}.")
+    (license license:gpl2+))))
 
 (define-public assimp
   (package
@@ -228,14 +238,15 @@ many more.")
 (define-public ilmbase
   (package
     (name "ilmbase")
-    (version "2.2.1")
+    (version "2.3.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://savannah/openexr/ilmbase-"
+              (uri (string-append "https://github.com/openexr/openexr/releases"
+                                  "/download/v" version "/ilmbase-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "17k0hq19wplx9s029kjrq6c51x2ryrfmaavcappkd0g67gk0dhna"))
+                "0qiq5bqq9rxhqjiym2k36sx4vq8adgrz6xf6qwizi9bqm78phsa5"))
               (patches (search-patches "ilmbase-fix-tests.patch"))))
     (build-system gnu-build-system)
     (home-page "http://www.openexr.com/")
@@ -319,29 +330,22 @@ graphics.")
 (define-public openexr
   (package
     (name "openexr")
-    (version "2.2.1")
+    (version "2.3.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://savannah/openexr/openexr-"
+              (uri (string-append "https://github.com/openexr/openexr/releases"
+                                  "/download/v" version "/openexr-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1kdf2gqznsdinbd5vcmqnif442nyhdf9l7ckc51410qm2gv5m6lg"))
+                "19jywbs9qjvsbkvlvzayzi81s976k53wg53vw4xj66lcgylb6v7x"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   (substitute* (find-files "." "tmpDir\\.h")
                     (("\"/var/tmp/\"")
                      "\"/tmp/\""))
-
-                  ;; Install 'ImfStdIO.h'.  Reported at
-                  ;; <https://lists.nongnu.org/archive/html/openexr-devel/2016-06/msg00001.html>
-                  ;; and <https://github.com/openexr/openexr/pull/184>.
-                  (substitute* "IlmImf/Makefile.in"
-                    (("ImfIO\\.h")
-                     "ImfIO.h ImfStdIO.h"))
-                  #t))
-              (patches (search-patches "openexr-missing-samples.patch"))))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -412,7 +416,7 @@ visual effects work for film.")
 (define-public openscenegraph
   (package
     (name "openscenegraph")
-    (version "3.6.2")
+    (version "3.6.3")
     (source
      (origin
        (method git-fetch)
@@ -421,8 +425,8 @@ visual effects work for film.")
              (commit (string-append "OpenSceneGraph-" version))))
        (sha256
         (base32
-         "03jk6lclyd4biniaw04w7j0z1spkm69f1c19i37b8v9x3zv1p1id"))
-       (file-name (string-append name "-" version "-checkout"))))
+         "0h32z15sa8sbq276j0iib0n707m8bs4p5ji9z2ah411446paad9q"))
+       (file-name (git-file-name name version))))
     (properties
      `((upstream-name . "OpenSceneGraph")))
     (build-system cmake-build-system)
@@ -443,8 +447,6 @@ visual effects work for film.")
        ("jasper" ,jasper)
        ("librsvg" ,librsvg)
        ("libxrandr" ,libxrandr)
-       ("pth" ,pth)
-       ("qtbase" ,qtbase)
        ("ffmpeg" ,ffmpeg)
        ("mesa" ,mesa)))
     (synopsis "High performance real-time graphics toolkit")
@@ -713,20 +715,20 @@ and understanding different BRDFs (and other component functions).")
        (list (string-append "--x-includes=" (assoc-ref %build-inputs "libx11")
                             "/include")
              (string-append "--x-libraries=" (assoc-ref %build-inputs "libx11")
-                            "/lib"))
+                            "/lib")
+             "--disable-examples")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'autoreconf
+         (replace 'bootstrap
            (lambda _
              ;; let's call configure from configure phase and not now
              (substitute* "autogen.sh" (("./configure") "# ./configure"))
-             (zero? (system* "sh" "autogen.sh")))))))
+             (invoke "sh" "autogen.sh"))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("libtool" ,libtool)
        ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("bash" ,bash)))
+       ("automake" ,automake)))
     (inputs
      `(("libx11" ,libx11)
        ("freetype" ,freetype)