X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/a7fb29866520d5661e0ac8e47957c91a2a43e11e..44d10b1f722856ab8e9b942804aa7ef33e2ef739:/gnu/packages/graphics.scm diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index d6feab1197..a25816778a 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -3,12 +3,14 @@ ;;; Copyright © 2015 Tomáš Čech ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016, 2017 Ricardo Wurmus -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2018 Efraim Flashner ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis -;;; Copyright © 2017 Ben Woodcroft -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Ben Woodcroft +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Mathieu Othacehe +;;; Copyright © 2018 Alex Kost +;;; Copyright © 2018 Kei Kebreau ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,14 +28,6 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages graphics) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module (guix packages) - #:use-module (guix build-system gnu) - #:use-module (guix build-system cmake) - #:use-module (guix build-system python) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages audio) @@ -42,51 +36,61 @@ #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages check) + #:use-module (gnu packages compression) #:use-module (gnu packages documentation) - #:use-module (gnu packages ghostscript) - #:use-module (gnu packages haskell) - #:use-module (gnu packages image) - #:use-module (gnu packages imagemagick) - #:use-module (gnu packages python) #:use-module (gnu packages flex) #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) - #:use-module (gnu packages perl) - #:use-module (gnu packages pdf) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate - #: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 gnome) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) - #:use-module (gnu packages gnome) + #:use-module (gnu packages haskell) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages jemalloc) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages pdf) + #:use-module (gnu packages perl) #:use-module (gnu packages photo) + #:use-module (gnu packages pkg-config) #: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 (gnu packages swig) #:use-module (gnu packages video) #:use-module (gnu packages xml) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix build-system python) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils)) (define-public blender + (let ((revision "0") + (commit "3c3d80ea22af15e13237f978181a881b90c41e7c")) (package (name "blender") - (version "2.79") + (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 - "16f84mdzkmwjmqahjj64kbyk4kagdj4mcr8qjazs1952d7kh7pm9")))) + "1hhn8pf3a5556mxyrb2ggsiy6q0h75hnkdpcgq9b6vg284jl2l4q")))) (build-system cmake-build-system) (arguments (let ((python-version (version-major+minor (package-version python)))) @@ -98,29 +102,30 @@ "-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 @@ -138,11 +143,11 @@ ("openimageio" ,openimageio) ("openexr" ,openexr) ("ilmbase" ,ilmbase) - ("openjpeg" ,openjpeg-1) + ("openjpeg" ,openjpeg) ("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libtiff" ,libtiff) - ("ffmpeg-2.8" ,ffmpeg-2.8) ; + ("ffmpeg" ,ffmpeg) ("fftw" ,fftw) ("jack" ,jack-1) ("libsndfile" ,libsndfile) @@ -150,6 +155,7 @@ ("glew" ,glew) ("openal" ,openal) ("python" ,python) + ("python-numpy" ,python-numpy) ("zlib" ,zlib))) (home-page "https://blender.org/") (synopsis "3D graphics creation suite") @@ -157,25 +163,29 @@ "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 (name "assimp") - (version "3.3.1") + (version "4.1.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/assimp/assimp/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/assimp/assimp.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1gy7zlgkf4nmyv8n674p3f30asis0gjz8icyy11i693n13ww71fk")))) + "1rhyqfhzifdj7yibyanph3rh13ykw3i98dnn8mz65j780472hw28")))) (build-system cmake-build-system) (inputs `(("zlib" ,zlib))) - (home-page "http://assimp.org/") + (home-page "http://www.assimp.org/") (synopsis "Asset import library") (description "The Open Asset Import Library loads more than 40 3D file formats into @@ -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/") @@ -251,7 +262,7 @@ exception-handling library.") (define-public ogre (package (name "ogre") - (version "1.10.7") + (version "1.10.11") (source (origin (method url-fetch) @@ -259,7 +270,7 @@ exception-handling library.") "/archive/v" version ".tar.gz")) (sha256 (base32 - "1p0c91cc7zg3c00wjaibnxb0a0xm14mkg0h65pzpw93m0d6nc8wd")) + "13bdh9v4026qf8w8rbfln2rmwf0rby1a8fz55zpdvpy105i6cbpz")) (file-name (string-append name "-" version ".tar.gz")))) (build-system cmake-build-system) (arguments @@ -319,28 +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 - ;; - ;; and . - (substitute* "IlmImf/Makefile.in" - (("ImfIO\\.h") - "ImfIO.h ImfStdIO.h")))) - (patches (search-patches "openexr-missing-samples.patch")))) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -372,15 +377,16 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.") (define-public openimageio (package (name "openimageio") - (version "1.6.15") + (version "1.7.19") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/OpenImageIO/oiio/" - "archive/Release-" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/OpenImageIO/oiio.git") + (commit (string-append "Release-" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "144crq0205d0w5aq4iglh2rhzf54a8rv3pksy6d533b75w5d7rq7")))) + "0yxxy43l3lllw7maqg42dlkgqms2d4772sxzxk7kmxg4lnhsvndc")))) (build-system cmake-build-system) ;; FIXME: To run all tests successfully, test image sets from multiple ;; third party sources have to be present. For details see @@ -391,7 +397,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.") (inputs `(("boost" ,boost) ("libpng" ,libpng) - ("libjpeg" ,libjpeg-8) + ("libjpeg" ,libjpeg) ("libtiff" ,libtiff) ("giflib" ,giflib) ("openexr" ,openexr) @@ -410,38 +416,39 @@ visual effects work for film.") (define-public openscenegraph (package (name "openscenegraph") - (version "3.4.0") + (version "3.6.3") (source (origin - (method url-fetch) - (uri (string-append "http://trac.openscenegraph.org/downloads/developer_releases/" - "OpenSceneGraph-" version ".zip")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/openscenegraph/OpenSceneGraph") + (commit (string-append "OpenSceneGraph-" version)))) (sha256 (base32 - "03h4wfqqk7rf3mpz0sa99gy715cwpala7964z2npd8jxfn27swjw")) - (patches (search-patches "openscenegraph-ffmpeg3.patch")) - (file-name (string-append name "-" version ".zip")))) + "0h32z15sa8sbq276j0iib0n707m8bs4p5ji9z2ah411446paad9q")) + (file-name (git-file-name name version)))) + (properties + `((upstream-name . "OpenSceneGraph"))) (build-system cmake-build-system) (arguments - `(#:tests? #f ;; No test target available. + `(#:tests? #f ; no test target available + ;; Without this flag, 'rd' will be added to the name of the + ;; library binaries and break linking with other programs. + #:build-type "Release" #:configure-flags (list (string-append "-DCMAKE_INSTALL_RPATH=" (assoc-ref %outputs "out") "/lib:" - (assoc-ref %outputs "out") "/lib64") - ;; We need to set this flag or otherwise 'rd' will be added - ;; to the name of the library binaries and break linking - ;; with other programs. - "-DCMAKE_BUILD_TYPE=Release"))) + (assoc-ref %outputs "out") "/lib64")))) (native-inputs - `(("unzip" ,unzip))) + `(("pkg-config" ,pkg-config) + ("unzip" ,unzip))) (inputs - `(("giflib", giflib) - ("jasper", jasper) - ("librsvg", librsvg) - ("pth", pth) - ("qtbase", qtbase) - ("ffmpeg", ffmpeg) - ("mesa", mesa))) + `(("giflib" ,giflib) + ("jasper" ,jasper) + ("librsvg" ,librsvg) + ("libxrandr" ,libxrandr) + ("ffmpeg" ,ffmpeg) + ("mesa" ,mesa))) (synopsis "High performance real-time graphics toolkit") (description "The OpenSceneGraph is a high performance 3D graphics toolkit @@ -452,6 +459,71 @@ virtual reality, scientific visualization and modeling.") ;; LGPL 2.1, but with 4 exceptions. This version is called OSGPL. (license license:lgpl2.1))) +(define-public povray + (package + (name "povray") + (version "3.7.0.8") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/POV-Ray/povray") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1q114n4m3r7qy3yn954fq7p46rg7ypdax5fazxr9yj1jklf1lh6z")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete bundled libraries. + (delete-file-recursively "libraries") + #t)))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (inputs + `(("boost" ,boost) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("openexr" ,openexr) + ("sdl" ,sdl) + ("zlib" ,zlib))) + (arguments + '(#:configure-flags + (list "COMPILED_BY=Guix" + (string-append "--with-boost-libdir=" + (assoc-ref %build-inputs "boost") "/lib") + "CXXFLAGS=-std=c++11" + "--disable-optimiz-arch") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'run-prebuild + (lambda _ + (setenv "HOME" (getcwd)) + (with-directory-excursion "unix" + (substitute* "prebuild.sh" + (("/bin/sh") (which "sh"))) + (invoke "sh" "prebuild.sh")) + #t)) + ;; The bootstrap script is run by the prebuild script in the + ;; "run-prebuild" phase. + (delete 'bootstrap)))) + (synopsis "Tool for creating three-dimensional graphics") + (description + "@code{POV-Ray} is short for the Persistence of Vision Raytracer, a tool +for producing high-quality computer graphics. @code{POV-Ray} creates +three-dimensional, photo-realistic images using a rendering technique called +ray-tracing. It reads in a text file containing information describing the +objects and lighting in a scene and generates an image of that scene from the +view point of a camera also described in the text file. Ray-tracing is not a +fast process by any means, but it produces very high quality images with +realistic reflections, shading, perspective and other effects.") + (home-page "http://www.povray.org/") + (license license:agpl3+))) + (define-public rapicorn (package (name "rapicorn") @@ -643,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)