summaryrefslogtreecommitdiff
path: root/gnu/packages/graphics.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/graphics.scm')
-rw-r--r--gnu/packages/graphics.scm103
1 files changed, 102 insertions, 1 deletions
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 560febe958..6edba5025d 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -1,6 +1,8 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,6 +27,8 @@
#:use-module (guix build-system cmake)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
+ #:use-module (gnu packages algebra)
+ #:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
@@ -32,14 +36,96 @@
#:use-module (gnu packages python)
#:use-module (gnu packages fontutils)
#: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 gl)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages jemalloc)
+ #:use-module (gnu packages photo)
+ #:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
+ #:use-module (gnu packages video)
#:use-module (gnu packages xorg))
+(define-public blender
+ (package
+ (name "blender")
+ (version "2.76b")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://download.blender.org/source/"
+ "blender-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0pb0mlj4vj0iir528ifqq67nsh3ca1942933d9cwlbpcja2jm1dx"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(;; Test files are very large and not included in the release tarball.
+ #:tests? #f
+ #:configure-flags
+ (list "-DWITH_CODEC_FFMPEG=ON"
+ "-DWITH_CODEC_SNDFILE=ON"
+ "-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_SYSTEM_OPENJPEG=ON")
+ #: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))
+ (add-after 'set-paths 'add-ilmbase-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; OpenEXR propagates ilmbase, but its include files do not appear
+ ;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to
+ ;; the CPATH to satisfy the dependency on "half.h".
+ (setenv "CPATH"
+ (string-append (assoc-ref inputs "ilmbase")
+ "/include/OpenEXR"
+ ":" (or (getenv "CPATH") "")))
+ #t)))))
+ (inputs
+ `(("boost" ,boost)
+ ("jemalloc" ,jemalloc)
+ ("libx11" ,libx11)
+ ("openimageio" ,openimageio)
+ ("openexr" ,openexr)
+ ("ilmbase" ,ilmbase)
+ ("openjpeg" ,openjpeg-1)
+ ("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ("libtiff" ,libtiff)
+ ("ffmpeg" ,ffmpeg)
+ ("fftw" ,fftw)
+ ("jack" ,jack-1)
+ ("libsndfile" ,libsndfile)
+ ("freetype" ,freetype)
+ ("glew" ,glew)
+ ("openal" ,openal)
+ ("python" ,python-wrapper)
+ ("zlib" ,zlib)))
+ (home-page "http://blender.org/")
+ (synopsis "3D graphics creation suite")
+ (description
+ "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+)))
+
(define-public cgal
(package
(name "cgal")
@@ -89,7 +175,8 @@ many more.")
version ".tar.gz"))
(sha256
(base32
- "1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c"))))
+ "1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c"))
+ (patches (map search-patch '("ilmbase-fix-tests.patch")))))
(build-system gnu-build-system)
(home-page "http://www.openexr.com/")
(synopsis "Utility C++ libraries for threads, maths, and exceptions")
@@ -119,6 +206,20 @@ exception-handling library.")
"\"/tmp/\"")))
(patches (list (search-patch "openexr-missing-samples.patch")))))
(build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-broken-test
+ ;; This test fails on i686. Upstream developers suggest that
+ ;; this test is broken on i686 and can be safely disabled:
+ ;; https://github.com/openexr/openexr/issues/67#issuecomment-21169748
+ (lambda _
+ (substitute* "IlmImfTest/main.cpp"
+ (("#include \"testOptimizedInterleavePatterns.h\"")
+ "//#include \"testOptimizedInterleavePatterns.h\"")
+ (("TEST \\(testOptimizedInterleavePatterns")
+ "//TEST (testOptimizedInterleavePatterns"))
+ #t)))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(propagated-inputs