;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
-;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2018 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(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 (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages audio)
#: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 haskell)
- #:use-module (gnu packages image)
- #:use-module (gnu packages python)
#:use-module (gnu packages flex)
#:use-module (gnu packages fonts)
#: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 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 qt)
#:use-module (gnu packages readline)
#: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
(package
(name "blender")
- (version "2.79")
+ (version "2.79b")
(source (origin
(method url-fetch)
(uri (string-append "https://download.blender.org/source/"
"blender-" version ".tar.gz"))
(sha256
(base32
- "16f84mdzkmwjmqahjj64kbyk4kagdj4mcr8qjazs1952d7kh7pm9"))))
+ "1g4kcdqmf67srzhi3hkdnr4z1ph4h9sza1pahz38mrj998q4r52c"))
+ (patches (search-patches "blender-newer-ffmpeg.patch"))))
(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)))))
+ (let ((python-version (version-major+minor (package-version python))))
+ `(;; 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_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))
+ #: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)
("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)
("freetype" ,freetype)
("glew" ,glew)
("openal" ,openal)
- ("python" ,python-wrapper)
+ ("python" ,python)
("zlib" ,zlib)))
(home-page "https://blender.org/")
(synopsis "3D graphics creation suite")
(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
(define-public ilmbase
(package
(name "ilmbase")
- (version "2.2.0")
+ (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
- "1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c"))
+ "0qiq5bqq9rxhqjiym2k36sx4vq8adgrz6xf6qwizi9bqm78phsa5"))
(patches (search-patches "ilmbase-fix-tests.patch"))))
(build-system gnu-build-system)
(home-page "http://www.openexr.com/")
(define-public ogre
(package
(name "ogre")
- (version "1.10.7")
+ (version "1.10.11")
(source
(origin
(method url-fetch)
"/archive/v" version ".tar.gz"))
(sha256
(base32
- "1ab354bmwwryxr4zgxchfkm6h4z38mjgif8yn89x640rsrgw5ipj"))
+ "13bdh9v4026qf8w8rbfln2rmwf0rby1a8fz55zpdvpy105i6cbpz"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(arguments
(define-public openexr
(package
(name "openexr")
- (version "2.2.0")
+ (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
- "0ca2j526n4wlamrxb85y2jrgcv0gf21b3a19rr0gh4rjqkv1581n"))
+ "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"))))
- (patches (search-patches "openexr-missing-samples.patch"))))
+ #t))))
(build-system gnu-build-system)
(arguments
'(#:phases
(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
(inputs
`(("boost" ,boost)
("libpng" ,libpng)
- ("libjpeg" ,libjpeg-8)
+ ("libjpeg" ,libjpeg)
("libtiff" ,libtiff)
("giflib" ,giflib)
("openexr" ,openexr)
(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
;; 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")
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("xvfb" ,xorg-server)))
- (home-page "http://rapicorn.org")
+ (home-page "https://rapicorn.testbit.org/")
(synopsis "Toolkit for rapid development of user interfaces")
(description
"Rapicorn is a toolkit for rapid development of user interfaces in C++
(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)
(define-public python2-pastel
(package-with-python2 python-pastel))
+
+(define-public fgallery
+ (package
+ (name "fgallery")
+ (version "1.8.2")
+ (source (origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "http://www.thregr.org/~wavexx/software/fgallery/releases/"
+ "fgallery-" version ".zip"))
+ (sha256
+ (base32
+ "18wlvqbxcng8pawimbc8f2422s8fnk840hfr6946lzsxr0ijakvf"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/"))
+ (share (string-append out "/share/fgallery"))
+ (man (string-append out "/share/man/man1"))
+ (perl5lib (getenv "PERL5LIB"))
+ (script (string-append share "/fgallery")))
+ (define (bin-directory input-name)
+ (string-append (assoc-ref inputs input-name) "/bin"))
+
+ (mkdir-p man)
+ (copy-file "fgallery.1" (string-append man "/fgallery.1"))
+
+ (mkdir-p share)
+ (copy-recursively "." share)
+
+ ;; fgallery copies files from store when it is run. The
+ ;; read-only permissions from the store directories will cause
+ ;; fgallery to fail. Do not preserve file attributes when
+ ;; copying files to prevent it.
+ (substitute* script
+ (("'cp'")
+ "'cp', '--no-preserve=all'"))
+
+ (mkdir-p bin)
+ (symlink script (string-append out "/bin/fgallery"))
+
+ (wrap-program script
+ `("PATH" ":" prefix
+ ,(map bin-directory '("imagemagick"
+ "lcms"
+ "fbida"
+ "libjpeg"
+ "zip"
+ "jpegoptim"
+ "pngcrush"
+ "p7zip")))
+ `("PERL5LIB" ":" prefix (,perl5lib)))
+ #t))))))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ ;; TODO: Add missing optional dependency: facedetect.
+ (inputs
+ `(("imagemagick" ,imagemagick)
+ ("lcms" ,lcms)
+ ("fbida" ,fbida)
+ ("libjpeg" ,libjpeg)
+ ("zip" ,zip)
+ ("perl" ,perl)
+ ("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
+ ("perl-image-exiftool" ,perl-image-exiftool)
+ ("jpegoptim" ,jpegoptim)
+ ("pngcrush" ,pngcrush)
+ ("p7zip" ,p7zip)))
+ (home-page "http://www.thregr.org/~wavexx/software/fgallery/")
+ (synopsis "Static photo gallery generator")
+ (description
+ "FGallery is a static, JavaScript photo gallery generator with minimalist
+look. The result can be uploaded on any web server without additional
+requirements.")
+ (license license:gpl2+)))