summaryrefslogtreecommitdiff
path: root/gnu/packages/graphics.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <[email protected]>2022-01-25 22:07:13 -0500
committerMaxim Cournoyer <[email protected]>2022-01-25 22:07:13 -0500
commit1a5302435ff0d2822b823f5a6fe01faa7a85c629 (patch)
treeac7810c88b560532f22d2bab2e59609cd7305c21 /gnu/packages/graphics.scm
parent3ff2ac4980dacf10087e4b42bd9fbc490591900c (diff)
parent070b8a893febd6e7d8b2b7c8c4dcebacf7845aa9 (diff)
Merge branch 'master' into staging.
With "conflicts" solved (all in favor of master except git) in: gnu/local.mk gnu/packages/databases.scm gnu/packages/glib.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/gnuzilla.scm gnu/packages/graphics.scm gnu/packages/gstreamer.scm gnu/packages/gtk.scm gnu/packages/linux.scm gnu/packages/machine-learning.scm gnu/packages/networking.scm gnu/packages/polkit.scm gnu/packages/pulseaudio.scm gnu/packages/rpc.scm gnu/packages/rust.scm gnu/packages/version-control.scm gnu/packages/w3m.scm
Diffstat (limited to 'gnu/packages/graphics.scm')
-rw-r--r--gnu/packages/graphics.scm701
1 files changed, 349 insertions, 352 deletions
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index de7cdc2232..b69ab52aec 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016 Ludovic Courtès <[email protected]>
+;;; Copyright © 2015, 2016, 2021 Ludovic Courtès <[email protected]>
;;; Copyright © 2015 Tomáš Čech <[email protected]>
;;; Copyright © 2016, 2019 Leo Famulari <[email protected]>
;;; Copyright © 2016, 2017, 2019 Ricardo Wurmus <[email protected]>
@@ -26,6 +26,7 @@
;;; Copyright © 2021 Antoine Côté <[email protected]>
;;; Copyright © 2021 Andy Tai <[email protected]>
;;; Copyright © 2021 Ekaitz Zarraga <[email protected]>
+;;; Copyright © 2021 Vinicius Monego <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -78,6 +79,7 @@
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages maths)
#:use-module (gnu packages mp3)
@@ -95,6 +97,7 @@
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
+ #:use-module (gnu packages serialization)
#:use-module (gnu packages stb)
#:use-module (gnu packages swig)
#:use-module (gnu packages tbb)
@@ -118,85 +121,6 @@
#:use-module (guix packages)
#:use-module (guix utils))
-(define-public eglexternalplatform
- (package
- (name "eglexternalplatform")
- (version "1.1")
- (source
- (origin
- (method git-fetch)
- (uri
- (git-reference
- (url "https://github.com/NVIDIA/eglexternalplatform")
- (commit version)))
- (file-name
- (git-file-name name version))
- (sha256
- (base32 "0lr5s2xa1zn220ghmbsiwgmx77l156wk54c7hybia0xpr9yr2nhb"))))
- (build-system copy-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-pkgconfig
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "eglexternalplatform.pc"
- (("/usr")
- (assoc-ref outputs "out")))
- #t))
- (add-after 'install 'revise
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out")))
- (mkdir-p (string-append out "/include/EGL"))
- (rename-file
- (string-append out "/interface")
- (string-append out "/include/EGL"))
- (mkdir-p (string-append out "/share/pkgconfig"))
- (rename-file
- (string-append out "/eglexternalplatform.pc")
- (string-append out "/share/pkgconfig/eglexternalplatform.pc"))
- (for-each delete-file-recursively
- (list
- (string-append out "/samples")
- (string-append out "/COPYING")
- (string-append out "/README.md"))))
- #t)))))
- (synopsis "EGL External Platform interface")
- (description "EGLExternalPlatform is an specification of the EGL External
-Platform interface for writing EGL platforms and their interactions with modern
-window systems on top of existing low-level EGL platform implementations. This
-keeps window system implementation specifics out of EGL drivers by using
-application-facing EGL functions.")
- (home-page "https://github.com/NVIDIA/eglexternalplatform")
- (license license:expat)))
-
-(define-public egl-wayland
- (package
- (name "egl-wayland")
- (version "1.1.7")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/NVIDIA/egl-wayland")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0xcx1132zwyp4qps074m72ngjlfmysi1jc2d0lp1ml1r9bllkam6"))))
- (build-system meson-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("mesa" ,mesa)
- ("wayland" ,wayland)))
- (propagated-inputs
- `(("eglexternalplatform" ,eglexternalplatform)))
- (synopsis "EGLStream-based Wayland external platform")
- (description "EGL-Wayland is an implementation of a EGL External Platform
-library to add client-side Wayland support to EGL on top of EGLDevice and
-EGLStream families of extensions.")
- (home-page "https://github.com/NVIDIA/egl-wayland")
- (license license:expat)))
-
(define-public mmm
(package
(name "mmm")
@@ -214,12 +138,9 @@ EGLStream families of extensions.")
(base32 "1xmcv6rwinqsbr863rgl9005h2jlmd7k2qrwsc1h4fb8r61ykpjl"))))
(build-system meson-build-system)
(native-inputs
- `(("luajit" ,luajit)
- ("pkg-config" ,pkg-config)))
+ (list luajit pkg-config))
(inputs
- `(("alsa" ,alsa-lib)
- ("sdl" ,sdl)
- ("sdl2" ,sdl2)))
+ (list alsa-lib sdl sdl2))
(synopsis "Memory Mapped Machine")
(description "MMM is a shared memory protocol for virtualising access to
framebuffer graphics, audio output and input event.")
@@ -250,11 +171,7 @@ framebuffer graphics, audio output and input event.")
(("^.*\\$srcdir/configure.*") ""))
#t)))))
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("perl" ,perl)
- ("pkg-config" ,pkg-config)))
+ (list autoconf automake libtool perl pkg-config))
(inputs
`(("alsa" ,alsa-lib)
("ffmpeg" ,ffmpeg)
@@ -267,7 +184,6 @@ framebuffer graphics, audio output and input event.")
("libcddb" ,libcddb)
("libdrm" ,libdrm)
("libtimidity" ,libtimidity)
- ("linux-headers" ,linux-libre-headers)
("mad" ,libmad)
("mng" ,libmng)
("mpeg2" ,libmpeg2)
@@ -288,7 +204,7 @@ framebuffer graphics, audio output and input event.")
("xproto" ,xorgproto)
("zlib" ,zlib)))
(propagated-inputs
- `(("flux" ,flux)))
+ (list flux))
(synopsis "DFB Graphics Library")
(description "DirectFB is a graphics library which was designed with embedded
systems in mind. It offers maximum hardware accelerated performance at a
@@ -312,10 +228,7 @@ minimum of resource usage and overhead.")
(base32 "11f3ypg0sdq5kj69zgz6kih1yrzgm48r16spyvzwvlswng147410"))))
(build-system gnu-build-system)
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
+ (list autoconf automake libtool pkg-config))
(synopsis "Interface description language")
(description "Flux is an interface description language used by DirectFB.
Fluxcomp compiles .flux files to .cpp or .c files.")
@@ -347,7 +260,7 @@ Fluxcomp compiles .flux files to .cpp or .c files.")
"/include/freetype2"))))
#t)))))
(native-inputs
- `(("doxygen" ,doxygen)))
+ (list doxygen))
(inputs
`(("bzip2" ,lbzip2)
("freetype" ,freetype)
@@ -453,8 +366,7 @@ with the @command{autotrace} utility or as a C library, @code{libautotrace}.")
(list
"-DEMBREE_ISPC_SUPPORT=OFF")))
(inputs
- `(("tbb" ,tbb)
- ("glfw" ,glfw)))
+ (list tbb glfw))
(home-page "https://www.embree.org/")
(synopsis "High performance ray tracing kernels")
(description
@@ -466,7 +378,7 @@ applications.")
(define-public openvdb
(package
(name "openvdb")
- (version "8.0.1")
+ (version "8.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -476,20 +388,16 @@ applications.")
(file-name (git-file-name name version))
(sha256
(base32
- "0qzx6l5c183k6j9zki31gg9aixf5s1j46wdi7wr1h3bz7k53syg9"))))
+ "0856697hnwk8xsp29kx8y2p1kliy0bdwfsznxm38v4690vna15rk"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(list (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath="
(assoc-ref %outputs "out") "/lib"))))
(inputs
- `(("boost" ,boost)
- ("c-blosc" ,c-blosc)
- ("ilmbase" ,ilmbase)
- ("tbb" ,tbb)
- ("zlib" ,zlib)))
+ (list boost c-blosc ilmbase tbb zlib))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(home-page "https://www.openvdb.org/")
(synopsis "Sparse volume data structure and tools")
(description "OpenVDB is a C++ library comprising a hierarchical data
@@ -502,14 +410,14 @@ typically encountered in feature film production.")
(define-public blender
(package
(name "blender")
- (version "2.92.0")
+ (version "3.0.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.blender.org/source/"
"blender-" version ".tar.xz"))
(sha256
(base32
- "15a5vffn18a920286x0avbc2rap56k6y531wgibq68r90g2cz4g7"))))
+ "1jzirg60c2lhln78a7phbsk2ssvcdqxqb3awp895m0pqrlmz7w2h"))))
(build-system cmake-build-system)
(arguments
(let ((python-version (version-major+minor (package-version python))))
@@ -552,14 +460,19 @@ typically encountered in feature film production.")
#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))))))
+ ;; OpenEXR propagates ilmbase, but its include files do not
+ ;; appear in the C_INCLUDE_PATH, so we need to add
+ ;; "$ilmbase/include/OpenEXR/" to the C_INCLUDE_PATH to satisfy
+ ;; the dependency on "half.h" and "Iex.h".
+ (let ((headers (string-append
+ (assoc-ref inputs "ilmbase")
+ "/include/OpenEXR")))
+ (setenv "C_INCLUDE_PATH"
+ (string-append headers ":"
+ (or (getenv "C_INCLUDE_PATH") "")))
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-append headers ":"
+ (or (getenv "CPLUS_INCLUDE_PATH") ""))))))))))
(inputs
`(("boost" ,boost)
("jemalloc" ,jemalloc)
@@ -568,7 +481,7 @@ typically encountered in feature film production.")
("libxrender" ,libxrender)
("opencolorio" ,opencolorio)
("openimageio" ,openimageio)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("opensubdiv" ,opensubdiv)
("ilmbase" ,ilmbase)
("openjpeg" ,openjpeg)
@@ -588,6 +501,7 @@ typically encountered in feature film production.")
("openvdb" ,openvdb)
("tbb" ,tbb)
("zlib" ,zlib)
+ ("zstd" ,zstd "lib")
("embree" ,embree)))
(home-page "https://blender.org/")
(synopsis "3D graphics creation suite")
@@ -598,104 +512,6 @@ 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 blender-2.79
- (package
- (name "blender")
- (version "2.79b")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://download.blender.org/source/"
- "blender-" version ".tar.gz"))
- (sha256
- (base32
- "1g4kcdqmf67srzhi3hkdnr4z1ph4h9sza1pahz38mrj998q4r52c"))
- (patches (search-patches "blender-2.79-newer-ffmpeg.patch"
- "blender-2.79-oiio2.patch"
- ;; The following patches may be
- ;; needed when the default GCC is
- ;; updated:
- ;; "blender-2.79-gcc8.patch"
- ;; "blender-2.79-gcc9.patch"
- "blender-2.79-python-3.7-fix.patch"
- "blender-2.79-python-3.8-fix.patch"))))
- (build-system cmake-build-system)
- (arguments
- (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)
- (string-append "-DPYTHON_LIBPATH=" (assoc-ref %build-inputs "python")
- "/lib")
- (string-append "-DPYTHON_INCLUDE_DIR=" (assoc-ref %build-inputs "python")
- "/include/python" ,python-version)
- (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)
- ("libx11" ,libx11)
- ("opencolorio" ,opencolorio)
- ("openimageio" ,openimageio)
- ("openexr" ,openexr)
- ("ilmbase" ,ilmbase)
- ("openjpeg" ,openjpeg)
- ("libjpeg" ,libjpeg-turbo)
- ("libpng" ,libpng)
- ("libtiff" ,libtiff)
- ("ffmpeg" ,ffmpeg)
- ("fftw" ,fftw)
- ("jack" ,jack-1)
- ("libsndfile" ,libsndfile)
- ("freetype" ,freetype)
- ("glew" ,glew)
- ("openal" ,openal)
- ("pugixml" ,pugixml)
- ("python" ,python)
- ("zlib" ,zlib)))
- (home-page "https://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.
-
-NOTE: This older version of Blender is the last release that does not require
-OpenGL 3. It is retained for use with older computers.")
- (license license:gpl2+)))
-
(define-public goxel
(package
(name "goxel")
@@ -716,7 +532,7 @@ OpenGL 3. It is retained for use with older computers.")
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
"release")))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(inputs
`(("gtk3" ,gtk+)
("glfw" ,glfw)
@@ -744,7 +560,7 @@ and export to various formats including the format used by Magicavoxel.")
"1rhyqfhzifdj7yibyanph3rh13ykw3i98dnn8mz65j780472hw28"))))
(build-system cmake-build-system)
(inputs
- `(("zlib" ,zlib)))
+ (list zlib))
(home-page "http://www.assimp.org/")
(synopsis "Asset import library")
(description
@@ -756,6 +572,72 @@ vertices, sorting by primitive type, merging of redundant materials and many
more.")
(license license:bsd-3)))
+(define-public openshadinglanguage
+ (package
+ (name "openshadinglanguage")
+ (version "1.11.16.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/AcademySoftwareFoundation/OpenShadingLanguage")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0x0lc163vl2b57l75bf5zxlr6vm2y1f1izlxdnrw3vsapv3r9k9g"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags (list "-DUSE_PARTIO=OFF") ; TODO: not packaged
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'set-paths 'add-ilmbase-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; OpenEXR 2 propagates ilmbase, but its include files do not
+ ;; appear in the C_INCLUDE_PATH.
+ (let ((headers (string-append
+ (assoc-ref inputs "ilmbase")
+ "/include/OpenEXR")))
+ (setenv "C_INCLUDE_PATH"
+ (string-append headers ":"
+ (or (getenv "C_INCLUDE_PATH") "")))
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-append headers ":"
+ (or (getenv "CPLUS_INCLUDE_PATH") ""))))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "ctest" "--exclude-regex"
+ (string-join
+ (list
+ "osl-imageio" ; OIIO not compiled with freetype
+ "osl-imageio.opt" ; OIIO not compiled with freetype
+ "texture-udim" ; file does not exist
+ "texture-udim.opt" ; file does not exist
+ "example-deformer" ; could not find OSLConfig
+ "python-oslquery") ; no module oslquery
+ "|"))))))))
+ (native-inputs
+ (list bison
+ clang
+ flex
+ llvm
+ pybind11
+ python-wrapper))
+ (inputs
+ (list boost
+ imath
+ openexr-2
+ openimageio
+ pugixml
+ qtbase-5
+ zlib))
+ (home-page "https://github.com/AcademySoftwareFoundation/OpenShadingLanguage")
+ (synopsis "Shading language for production GI renderers")
+ (description "Open Shading Language (OSL) is a language for programmable
+shading in advanced renderers and other applications, ideal for describing
+materials, lights, displacement, and pattern generation.")
+ (license license:bsd-3)))
+
(define-public cgal
(package
(name "cgal")
@@ -777,9 +659,7 @@ more.")
,name "-" ,version))
#:tests? #f)) ; no test target
(inputs
- `(("mpfr" ,mpfr)
- ("gmp" ,gmp)
- ("boost" ,boost)))
+ (list mpfr gmp boost))
(home-page "https://www.cgal.org/")
(synopsis "Computational geometry algorithms library")
(description
@@ -796,6 +676,28 @@ many more.")
;; permissive licenses.
(license license:gpl3+)))
+(define-public imath
+ (package
+ (name "imath")
+ (version "3.1.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/AcademySoftwareFoundation/Imath")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1nyld18mf220ghm1vidnfnn0rdns9z5i4l9s66xgd0kfdgarb31f"))))
+ (build-system cmake-build-system)
+ (home-page "https://github.com/AcademySoftwareFoundation/Imath")
+ (synopsis "Library of math operations for computer graphics")
+ (description
+ "Imath is a C++ representation of 2D and 3D vectors and matrices and other
+mathematical objects, functions, and data types common in computer graphics
+applications, including the \"half\" 16-bit floating-point type.")
+ (license license:bsd-3)))
+
(define-public ilmbase
(package
(name "ilmbase")
@@ -864,7 +766,17 @@ exception-handling library.")
(substitute* '("src/cython/CMakeLists.txt"
"src/py2geom/CMakeLists.txt")
(("PYTHON_LIB_INSTALL \"[^\"]*\"")
- (format #f "PYTHON_LIB_INSTALL ~s" site-package)))))))))
+ (format #f "PYTHON_LIB_INSTALL ~s" site-package))))))
+ ,@(if (target-x86-32?)
+ `((add-after 'unpack 'skip-faulty-test
+ (lambda _
+ ;; This test fails on i686 when comparing floating point
+ ;; values, probably due to excess precision. However,
+ ;; '-fexcess-precision' is not implemented for C++ in
+ ;; GCC 10 so just skip it.
+ (substitute* "tests/CMakeLists.txt"
+ (("bezier-test") "")))))
+ '()))))
(native-inputs `(("python" ,python-wrapper)
("googletest" ,googletest)
("pkg-config" ,pkg-config)))
@@ -874,7 +786,7 @@ exception-handling library.")
("glib" ,glib)
("gsl" ,gsl)))
(propagated-inputs
- `(("boost" ,boost))) ;referred to in 2geom/pathvector.h.
+ (list boost)) ;referred to in 2geom/pathvector.h.
(home-page "https://gitlab.com/inkscape/lib2geom/")
(synopsis "C++ 2D graphics library")
(description "2geom is a C++ library of mathematics for paths, curves,
@@ -889,17 +801,17 @@ basic geometries.")
(define-public pstoedit
(package
(name "pstoedit")
- (version "3.75")
+ (version "3.77")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/pstoedit/pstoedit/"
version "/pstoedit-" version ".tar.gz"))
(sha256
(base32
- "1kv46g2wsvsvcngkavxl5gnw3l6g5xqnh4kmyx4b39a01d8xiddp"))))
+ "02av76j75g5sq3bg353yl6dlllda9ihmmk4c8hvgiscix816nv4s"))))
(build-system gnu-build-system)
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(inputs
`(("ghostscript" ,ghostscript)
("imagemagick" ,imagemagick)
@@ -978,9 +890,7 @@ other vector formats such as:
(base32 "1xhk34pzpha6k5l2j150capq66y8czhmsi04ib09wvb34ahqxpby"))))
("pkg-config" ,pkg-config)))
(inputs
- `(("freetype" ,freetype)
- ("stb-rect-pack" ,stb-rect-pack)
- ("stb-truetype" ,stb-truetype)))
+ (list freetype stb-rect-pack stb-truetype))
(home-page "https://github.com/ocornut/imgui")
(synopsis "Immediate-mode C++ GUI library with minimal dependencies")
(description
@@ -997,6 +907,30 @@ applications, full-screen applications, and embedded platforms without standard
operating system features.")
(license license:expat))) ; some examples/ use the zlib licence
+(define-public alembic
+ (package
+ (name "alembic")
+ (version "1.8.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alembic/alembic")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0glfx3cm7r8zn3cn7j4x4ch1ab6igfis0i2lcy23jc56q87r8yj2"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags (list "-DUSE_HDF5=ON")))
+ (inputs
+ (list hdf5 imath zlib))
+ (home-page "http://www.alembic.io/")
+ (synopsis "Framework for storing and sharing scene data")
+ (description "Alembic is a computer graphics interchange framework. It
+distills complex, animated scenes into a set of baked geometric results.")
+ (license license:bsd-3)))
+
(define-public ogre
(package
(name "ogre")
@@ -1047,16 +981,16 @@ operating system features.")
("googletest" ,googletest-1.8)
("pkg-config" ,pkg-config)))
(inputs
- `(("font-dejavu" ,font-dejavu)
- ("freeimage" ,freeimage)
- ("freetype" ,freetype)
- ("glu" ,glu)
- ("libxaw" ,libxaw)
- ("libxrandr" ,libxrandr)
- ("pugixml" ,pugixml)
- ("sdl2" ,sdl2)
- ("tinyxml" ,tinyxml)
- ("zziplib" ,zziplib)))
+ (list font-dejavu
+ freeimage
+ freetype
+ glu
+ libxaw
+ libxrandr
+ pugixml
+ sdl2
+ tinyxml
+ zziplib))
(synopsis "Scene-oriented, flexible 3D engine written in C++")
(description
"OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented,
@@ -1069,17 +1003,46 @@ graphics.")
(define-public openexr
(package
(name "openexr")
+ (version "3.1.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/AcademySoftwareFoundation/openexr")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0c9vla0kbsbbhkk42jlbf94nzfb1anqh7dy9b0b3nna1qr6v4bh6"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; /var/tmp does not exist in the Guix build environment
+ (add-after 'unpack 'patch-test-directory
+ (lambda _
+ (substitute* '("src/test/OpenEXRUtilTest/tmpDir.h"
+ "src/test/OpenEXRFuzzTest/tmpDir.h"
+ "src/test/OpenEXRTest/tmpDir.h"
+ "src/test/OpenEXRCoreTest/main.cpp")
+ (("/var/tmp") "/tmp")))))))
+ (inputs
+ (list imath zlib))
+ (home-page "https://www.openexr.com/")
+ (synopsis "High-dynamic-range file format library")
+ (description
+ "OpenEXR provides the specification and reference implementation of the
+EXR file format. The purpose of EXR format is to accurately and efficiently
+represent high-dynamic-range scene-linear image data and associated metadata,
+with strong support for multi-part, multi-channel use cases.")
+ (license license:bsd-3)))
+
+(define-public openexr-2
+ (package
+ (name "openexr")
(version (package-version ilmbase))
(source (origin
(inherit (package-source ilmbase))
- (file-name (git-file-name "openexr" version))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (substitute* (find-files "OpenEXR" "tmpDir\\.h")
- (("\"/var/tmp/\"")
- "\"/tmp/\""))
- #t))))
+ (file-name (git-file-name "openexr" version))))
(build-system cmake-build-system)
(arguments
`(#:phases
@@ -1088,6 +1051,12 @@ graphics.")
(lambda _
(chdir "OpenEXR")
#t))
+ (add-after 'change-directory 'patch-test-directory
+ (lambda _
+ (substitute* '("IlmImfFuzzTest/tmpDir.h"
+ "IlmImfTest/tmpDir.h"
+ "IlmImfUtilTest/tmpDir.h")
+ (("/var/tmp") "/tmp"))))
(add-after 'change-directory 'increase-test-timeout
(lambda _
;; On armhf-linux, we need to override the CTest default
@@ -1109,22 +1078,19 @@ graphics.")
#t)))
'()))))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(propagated-inputs
- `(("ilmbase" ,ilmbase) ;used in public headers
- ("zlib" ,zlib))) ;OpenEXR.pc reads "-lz"
- (home-page "https://www.openexr.com/")
- (synopsis "High-dynamic range file format library")
- (description
- "OpenEXR is a high dynamic-range (HDR) image file format developed for
-use in computer imaging applications. The IlmImf C++ libraries support
-storage of the \"EXR\" file format for storing 16-bit floating-point images.")
- (license license:bsd-3)))
+ (list ilmbase ;used in public headers
+ zlib)) ;OpenEXR.pc reads "-lz"
+ (home-page (package-home-page openexr))
+ (synopsis (package-synopsis openexr))
+ (description (package-description openexr))
+ (license (package-license openexr))))
(define-public openimageio
(package
(name "openimageio")
- (version "2.2.10.1")
+ (version "2.2.11.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1133,7 +1099,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
(file-name (git-file-name name version))
(sha256
(base32
- "0wzh5n527l7ia1754cf9xmbvv4ya6hj34dy6cbq9xk9372h8gd9q"))))
+ "1i9r6vgz15aj1yzbf5a9lqhlyakjs793yrw5gw720l84lcyigad7"))))
(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
@@ -1142,15 +1108,16 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
`(#:tests? #f
#:configure-flags (list "-DUSE_EXTERNAL_PUGIXML=1")))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(inputs
`(("boost" ,boost)
("fmt" ,fmt)
+ ("libheif" ,libheif)
("libpng" ,libpng)
("libjpeg" ,libjpeg-turbo)
("libtiff" ,libtiff)
("giflib" ,giflib)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("ilmbase" ,ilmbase)
("pugixml" ,pugixml)
("python" ,python-wrapper)
@@ -1192,8 +1159,7 @@ visual effects work for film.")
(assoc-ref %outputs "out") "/lib:"
(assoc-ref %outputs "out") "/lib64"))))
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("unzip" ,unzip)))
+ (list pkg-config unzip))
(inputs
`(("giflib" ,giflib)
("libjpeg" ,libjpeg-turbo) ; required for the JPEG texture plugin.
@@ -1212,32 +1178,56 @@ virtual reality, scientific visualization and modeling.")
;; LGPL 2.1, but with 4 exceptions. This version is called OSGPL.
(license license:lgpl2.1)))
-;; We need this for simgear
-(define-public openscenegraph-3.4
- (package (inherit openscenegraph)
- (name "openscenegraph")
- (version "3.4.1")
+(define-public gr-framework
+ (package
+ (name "gr-framework")
+ (version "0.58.1")
(source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/openscenegraph/OpenSceneGraph")
- (commit (string-append "OpenSceneGraph-" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1fbzg1ihjpxk6smlq80p3h3ggllbr16ihd2fxpfwzam8yr8yxip9"))))
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sciapp/gr")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0q1rz4iyxbh0dc22y4w28ry3hr0yypdwdm6pw2zlwgjya7wkbvsw"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file-recursively "3rdparty")
+ #t))))
+ (build-system cmake-build-system)
(arguments
- (substitute-keyword-arguments (package-arguments openscenegraph)
- ((#:configure-flags flags)
- `(cons
- ;; The jpeg plugin requires conversion between integers and booleans
- "-DCMAKE_CXX_FLAGS=-fpermissive"
- ,flags))))
+ `(#:tests? #f)) ; no test target
(inputs
- `(("libjpeg" ,libjpeg-turbo)
- ,@(package-inputs openscenegraph)))))
-
+ `(("bzip2" ,bzip2)
+ ("cairo" ,cairo)
+ ("fontconfig" ,fontconfig)
+ ("ffmpeg" ,ffmpeg)
+ ("freetype" ,freetype)
+ ("ghostscript" ,ghostscript)
+ ("glfw" ,glfw)
+ ("libjpeg-turbo" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("libtiff" ,libtiff)
+ ("libx11" ,libx11)
+ ("libxft" ,libxft)
+ ("libxt" ,libxt)
+ ("pixman" ,pixman)
+ ("qtbase" ,qtbase-5)
+ ("qhull" ,qhull)
+ ("zlib" ,zlib)))
+ (home-page "https://gr-framework.org/")
+ (synopsis "Graphics library for visualisation applications")
+ (description "GR is a universal framework for cross-platform visualization
+applications. It offers developers a compact, portable and consistent graphics
+library for their programs. Applications range from publication quality 2D
+graphs to the representation of complex 3D scenes. GR is essentially based on
+an implementation of a @acronym{GKS, Graphical Kernel System}. As a
+self-contained system it can quickly and easily be integrated into existing
+applications (i.e. using the @code{ctypes} mechanism in Python or @code{ccall}
+in Julia).")
+ (license license:expat)))
(define-public openmw-openscenegraph
;; OpenMW prefers its own fork of openscenegraph:
@@ -1295,15 +1285,13 @@ virtual reality, scientific visualization and modeling.")
#t))))
(build-system gnu-build-system)
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("pkg-config" ,pkg-config)))
+ (list autoconf automake pkg-config))
(inputs
`(("boost" ,boost)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libtiff" ,libtiff)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("sdl" ,sdl)
("zlib" ,zlib)))
(arguments
@@ -1380,11 +1368,7 @@ realistic reflections, shading, perspective and other effects.")
;; These libraries are listed in the "Required" section of the pkg-config
;; file.
(propagated-inputs
- `(("librsvg" ,librsvg)
- ("cairo" ,cairo)
- ("pango" ,pango)
- ("libxml2" ,libxml2)
- ("python2-enum34" ,python2-enum34)))
+ (list librsvg cairo pango libxml2 python2-enum34))
(inputs
`(("gdk-pixbuf" ,gdk-pixbuf)
("libpng" ,libpng-1.2)
@@ -1424,7 +1408,7 @@ and is connected to the programming logic using data bindings and commands.")
(arguments '(#:tests? #f)) ;no 'test' target
;; Headers include OpenEXR and IlmBase headers.
- (propagated-inputs `(("openexr" ,openexr)))
+ (propagated-inputs (list openexr-2))
(home-page "http://ampasctl.sourceforge.net")
(synopsis "Color Transformation Language")
@@ -1485,13 +1469,9 @@ exec -a \"$0\" ~a/.brdf-real~%"
(chmod "brdf" #o555)))
#t)))))
(native-inputs
- `(("qttools" ,qttools))) ;for 'qmake'
+ (list qttools)) ;for 'qmake'
(inputs
- `(("qtbase" ,qtbase-5)
- ("mesa" ,mesa)
- ("glew" ,glew)
- ("freeglut" ,freeglut)
- ("zlib" ,zlib)))
+ (list qtbase-5 mesa glew freeglut zlib))
(home-page "https://www.disneyanimation.com/technology/brdf.html")
(synopsis
"Analyze bidirectional reflectance distribution functions (BRDFs)")
@@ -1523,7 +1503,8 @@ and understanding different BRDFs (and other component functions).")
version ".tar.gz")))
(sha256
(base32 "07wii4i824vy9qsvjsgqxppgqmfdxq0xa87i5yk53fijriadq7mb"))
- (patches (search-patches "agg-am_c_prototype.patch"))))
+ (patches (search-patches "agg-am_c_prototype.patch"
+ "agg-2.5-gcc8.patch"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
@@ -1540,14 +1521,9 @@ and understanding different BRDFs (and other component functions).")
(substitute* "autogen.sh" (("./configure") "# ./configure"))
(invoke "sh" "autogen.sh"))))))
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("libtool" ,libtool)
- ("autoconf" ,autoconf)
- ("automake" ,automake)))
+ (list pkg-config libtool autoconf automake))
(inputs
- `(("libx11" ,libx11)
- ("freetype" ,freetype)
- ("sdl" ,sdl)))
+ (list libx11 freetype sdl))
;; Antigrain.com was discontinued.
(home-page "http://agg.sourceforge.net/antigrain.com/index.html")
@@ -1575,7 +1551,7 @@ rendering @acronym{SVG, Scalable Vector Graphics}.")
(replace 'check
(lambda _ (invoke "pytest" "pastel" "tests/"))))))
(native-inputs
- `(("python-pytest" ,python-pytest)))
+ (list python-pytest))
(home-page "https://github.com/sdispater/pastel")
(synopsis "Library to colorize strings in your terminal")
(description "Pastel is a simple library to help you colorize strings in
@@ -1646,7 +1622,7 @@ your terminal.")
`("PERL5LIB" ":" prefix (,perl5lib)))
#t))))))
(native-inputs
- `(("unzip" ,unzip)))
+ (list unzip))
;; TODO: Add missing optional dependency: facedetect.
(inputs
`(("imagemagick" ,imagemagick)
@@ -1692,20 +1668,19 @@ requirements.")
(add-before 'check 'start-xorg-server
(lambda* (#:key inputs #:allow-other-keys)
;; The test suite requires a running X server.
- (system (string-append (assoc-ref inputs "xorg-server")
- "/bin/Xvfb :1 &"))
+ (system "Xvfb :1 &")
(setenv "DISPLAY" ":1")
#t)))))
(native-inputs
- `(("xorg-server" ,xorg-server-for-tests)))
+ (list xorg-server-for-tests))
(inputs
- `(("glew" ,glew)
- ("libxrandr" ,libxrandr)
- ("libxcursor" ,libxcursor)
- ("libxinerama" ,libxinerama)
- ("libxi" ,libxi)
- ("zlib" ,zlib)
- ("glfw" ,glfw)))
+ (list glew
+ libxrandr
+ libxcursor
+ libxinerama
+ libxi
+ zlib
+ glfw))
(home-page "https://graphics.pixar.com/opensubdiv/")
(synopsis "High performance subdivision surface evaluation")
(description "OpenSubdiv is a set of libraries that implement high
@@ -1742,8 +1717,7 @@ and GPU architectures.")
(add-before 'build 'skip-example
(lambda _ (chdir "src") #t)))))
(inputs
- `(("glew" ,glew)
- ("freeglut" ,freeglut)))
+ (list glew freeglut))
(synopsis "Library for rendering Constructive Solid Geometry (CSG)")
(description
"OpenCSG is a library for rendering Constructive Solid Geometry (CSG) using
@@ -1780,12 +1754,9 @@ or by subtracting one shape from the other.")
#t))))
(build-system cmake-build-system)
(native-inputs
- `(("doxygen" ,doxygen)
- ("graphviz" ,graphviz)))
+ (list doxygen graphviz))
(inputs
- `(("boost" ,boost)
- ("freeglut" ,freeglut)
- ("glew" ,glew)))
+ (list boost freeglut glew))
(arguments
`(#:configure-flags
(list
@@ -1833,12 +1804,9 @@ software in the scientific and engineering community.")
#t))))
(build-system cmake-build-system)
(native-inputs
- `(("doxygen" ,doxygen)
- ("graphviz" ,graphviz)))
+ (list doxygen graphviz))
(inputs
- `(("boost" ,boost)
- ("freeglut" ,freeglut)
- ("glew" ,glew)))
+ (list boost freeglut glew))
(arguments
`(#:configure-flags
(list
@@ -1912,22 +1880,21 @@ Automated palette selection is supported.")
'(#:configure-flags
(list "-DTESTS=ON" "-DTOOLS=ON" "-DKIS_TABLET=ON")))
(native-inputs
- `(("extra-cmake-modules" ,extra-cmake-modules)
- ("pkg-config" ,pkg-config)))
+ (list extra-cmake-modules pkg-config))
(inputs
- `(("giflib" ,giflib)
- ("karchive" ,karchive)
- ("kdnssd" ,kdnssd)
- ("libmicrohttpd" ,libmicrohttpd)
- ("libsodium" ,libsodium)
- ("libvpx" ,libvpx)
- ("libxi" ,libxi)
- ;; ("miniupnpc" ,miniupnpc) ;segfaults for some reason
- ("qtbase" ,qtbase-5)
- ("qtkeychain" ,qtkeychain)
- ("qtmultimedia" ,qtmultimedia)
- ("qtsvg" ,qtsvg)
- ("qtx11extras" ,qtx11extras)))
+ (list giflib
+ karchive
+ kdnssd
+ libmicrohttpd
+ libsodium
+ libvpx
+ libxi
+ ;; ("miniupnpc" ,miniupnpc) ;segfaults for some reason
+ qtbase-5
+ qtkeychain
+ qtmultimedia
+ qtsvg
+ qtx11extras))
(home-page "https://drawpile.net")
(synopsis "Collaborative drawing program")
(description "Drawpile is a drawing program that allows share the canvas
@@ -1948,6 +1915,38 @@ Some feature highlights:
@end itemize\n")
(license license:gpl3+))))
+(define-public openxr
+ (package
+ (name "openxr")
+ (version "1.0.20")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/KhronosGroup/OpenXR-SDK")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete bundled jsoncpp.
+ (delete-file-recursively "src/external/jsoncpp")))
+ (sha256
+ (base32 "1jd7jjxlrdi8kjnmn3sad7dgb4h48dbxryfb9snf0kifn47bi20m"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f)) ; there are no tests
+ (native-inputs
+ (list pkg-config python shaderc vulkan-headers))
+ (inputs
+ (list jsoncpp mesa vulkan-loader wayland))
+ (home-page "https://www.khronos.org/openxr/")
+ (synopsis "Generated headers and sources for OpenXR loader")
+ (description "This package contains OpenXR headers, as well as source code
+and build scripts for the OpenXR loader.")
+ ;; Dual licensed. Either license applies.
+ (license (list license:asl2.0 license:expat))))
+
(define-public monado
(package
(name "monado")
@@ -1972,9 +1971,7 @@ Some feature highlights:
("v4l" ,v4l-utils)
("vulkan-loader" ,vulkan-loader)))
(native-inputs
- `(("eigen" ,eigen)
- ("pkg-config" ,pkg-config)
- ("vulkan-headers" ,vulkan-headers)))
+ (list eigen pkg-config vulkan-headers))
(arguments
`(#:configure-flags
(list "-Dinstall-active-runtime=false")))