diff options
author | Maxim Cournoyer <[email protected]> | 2022-01-25 22:07:13 -0500 |
---|---|---|
committer | Maxim Cournoyer <[email protected]> | 2022-01-25 22:07:13 -0500 |
commit | 1a5302435ff0d2822b823f5a6fe01faa7a85c629 (patch) | |
tree | ac7810c88b560532f22d2bab2e59609cd7305c21 /gnu/packages/graphics.scm | |
parent | 3ff2ac4980dacf10087e4b42bd9fbc490591900c (diff) | |
parent | 070b8a893febd6e7d8b2b7c8c4dcebacf7845aa9 (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.scm | 701 |
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"))) |