diff options
Diffstat (limited to 'gnu/packages/graphics.scm')
-rw-r--r-- | gnu/packages/graphics.scm | 279 |
1 files changed, 152 insertions, 127 deletions
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index a565000180..2a52362775 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -28,7 +28,7 @@ ;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de> -;;; Copyright © 2022, 2023 John Kehayias <john.kehayias@protonmail.com> +;;; Copyright © 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com> ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com> @@ -74,12 +74,14 @@ #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages game-development) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnunet) + #:use-module (gnu packages gnuzilla) #:use-module (gnu packages graphviz) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) @@ -141,7 +143,8 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix deprecation) - #:use-module (guix utils)) + #:use-module (guix utils) + #:use-module (ice-9 match)) (define-public mmm (package @@ -475,7 +478,7 @@ applications.") (define-public openvdb (package (name "openvdb") - (version "8.2.0") + (version "11.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -485,14 +488,14 @@ applications.") (file-name (git-file-name name version)) (sha256 (base32 - "0856697hnwk8xsp29kx8y2p1kliy0bdwfsznxm38v4690vna15rk")))) + "0r6q7bl8513ggrvx3n73j1s3f7n5x1rxy5xi471qyrya95gy6c60")))) (build-system cmake-build-system) (arguments `(#:configure-flags (list (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")))) (inputs - (list boost c-blosc ilmbase tbb zlib)) + (list boost c-blosc jemalloc tbb zlib)) (native-inputs (list pkg-config)) (home-page "https://www.openvdb.org/") @@ -507,14 +510,14 @@ typically encountered in feature film production.") (define-public blender (package (name "blender") - (version "3.3.5") ;3.3.x is the current LTS version + (version "3.6.10") ;3.6.x is the current LTS version (source (origin (method url-fetch) (uri (string-append "https://download.blender.org/source/" "blender-" version ".tar.xz")) (sha256 (base32 - "1pwl4lbc00g0bj97rd8l9fnrv3w1gny9ci6mrma3pp2acgs56502")))) + "1srwr365y40hhpjmfsg52rphdybvin0ay2r23pknm7b9pkpw0wqs")))) (build-system cmake-build-system) (arguments (list @@ -535,6 +538,11 @@ typically encountered in feature film production.") "-DWITH_OPENVDB=ON" "-DWITH_OPENSUBDIV=ON" "-DWITH_PYTHON_INSTALL=OFF" + "-DWITH_SYSTEM_BULLET=ON" + "-DWITH_SYSTEM_EIGEN3=ON" + "-DWITH_SYSTEM_FREETYPE=ON" + "-DWITH_SYSTEM_GLOG=ON" + "-DWITH_SYSTEM_LZO=ON" (string-append "-DPYTHON_LIBRARY=python" #$python-version) (string-append "-DPYTHON_LIBPATH=" (assoc-ref %build-inputs "python") @@ -550,32 +558,22 @@ typically encountered in feature film production.") (string-append "-DPYTHON_NUMPY_PATH=" (assoc-ref %build-inputs "python-numpy") "/lib/python" #$python-version - "/site-packages/") - ;; 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". - (string-append "-DCMAKE_CXX_FLAGS=-I" - (search-input-directory %build-inputs - "include/OpenEXR")))) - #: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"))))))) + "/site-packages/"))))) (inputs (list boost + bullet + eigen embree ffmpeg-5 fftw - freetype + freetype-with-brotli glew + glog gmp ;needed for boolean operations on meshes - ilmbase + imath jack-1 jemalloc + libepoxy libjpeg-turbo libpng libsndfile @@ -583,9 +581,10 @@ typically encountered in feature film production.") libx11 libxi libxrender + lzo openal opencolorio - openexr-2 + openexr openimageio openjpeg opensubdiv @@ -721,7 +720,7 @@ baking tools to produce normal maps.") (define-public openshadinglanguage (package (name "openshadinglanguage") - (version "1.11.16.0") + (version "1.13.8.0") (source (origin (method git-fetch) @@ -730,52 +729,46 @@ baking tools to produce normal maps.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0x0lc163vl2b57l75bf5zxlr6vm2y1f1izlxdnrw3vsapv3r9k9g")))) + (base32 "1ji4bw8z4ylsh0jvir3d40p6xyhr63g588gh3bag7bzsr3flsb02")))) (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 - "|")))))))) + (list #:configure-flags + #~(list "-DUSE_PARTIO=OFF" ; TODO: not packaged + (string-append "-DLLVM_BC_GENERATOR=" + #$(this-package-native-input "clang") + "/bin/clang++")) + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke + "ctest" "--exclude-regex" + (string-join + (list + "osl-imageio" ; file does not exist + "osl-imageio.opt" ; file does not exist + "osl-imageio.opt.rs_bitcode" ; file does not exist + "texture-udim" ; file does not exist + "texture-udim.opt" ; file does not exist + "texture-udim.opt.rs_bitcode" ; file does not exist + "example-deformer" ; could not find OSLConfig + "python-oslquery") ; no module oslquery + "|")))))))) (native-inputs (list bison - clang-9 + clang flex - llvm-9 + llvm pybind11 python-wrapper)) (inputs (list boost imath - openexr-2 + openexr openimageio pugixml - qtbase-5 + qtbase zlib)) (home-page "https://github.com/AcademySoftwareFoundation/OpenShadingLanguage") (synopsis "Shading language for production GI renderers") @@ -899,9 +892,9 @@ exception-handling library.") (source (origin (method git-fetch) (uri (git-reference - (url "https://gitlab.com/inkscape/lib2geom.git") + (url "https://gitlab.com/inkscape/lib2geom") (commit version))) - (file-name (git-file-name name version)) + (file-name (git-file-name "lib2geom" version)) (sha256 (base32 "1ypcn0yxk9ny7qg8s8h3px2wpimhfgkwk7x1548ky12iqmdjjmcn")))) @@ -1220,7 +1213,7 @@ graphics.") (define-public openexr (package (name "openexr") - (version "3.1.3") + (version "3.2.4") (source (origin (method git-fetch) (uri (git-reference @@ -1230,16 +1223,23 @@ graphics.") (file-name (git-file-name name version)) (sha256 (base32 - "0c9vla0kbsbbhkk42jlbf94nzfb1anqh7dy9b0b3nna1qr6v4bh6")))) + "00s1a05kggk71vfbnsvykyjc2j7y6yyzgl63sy4yiddshz2k2mcr")))) (build-system cmake-build-system) (arguments - (list #:phases + (list #:configure-flags + #~(list #$@(match (%current-system) + ;; A test explicitly checks for SSE2 (would fail on + ;; i686-linux), so make sure it is enabled for both C + ;; and CPP. + ((or "x86_64-linux" "i686-linux") + '("-DCMAKE_CXX_FLAGS=-mfpmath=sse -msse2" + "-DCMAKE_C_FLAGS=-mfpmath=sse -msse2")) + (_ '()))) + #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-test-directory (lambda _ (substitute* (list - "src/test/OpenEXRUtilTest/tmpDir.h" - "src/test/OpenEXRFuzzTest/tmpDir.h" "src/test/OpenEXRTest/tmpDir.h" "src/test/OpenEXRCoreTest/main.cpp") (("/var/tmp") @@ -1267,7 +1267,10 @@ graphics.") "") (("TEST \\(testOptimizedInterleavePatterns, \"basic\"\\);") ""))))))))) - (inputs (list imath zlib)) + (inputs (list imath)) + (propagated-inputs + ;; Marked as Requires.private in OpenEXR.pc. + (list libdeflate)) (home-page "https://www.openexr.com/") (synopsis "High-dynamic-range file format library") (description @@ -1333,40 +1336,38 @@ with strong support for multi-part, multi-channel use cases.") (define-public openimageio (package (name "openimageio") - (version "2.2.21.0") + (version "2.5.10.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/OpenImageIO/oiio") - (commit (string-append "Release-" version)))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0aicxbshzv1g9d8d08vsj1a9klaycxaifvvp565qjv70wyma2vkr")))) + "06x3lqj9qjh5m0zbr5g2g9ii6jk340pgzrhr4fb353y1y2pkx5sw")))) (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 - ;; <https://github.com/OpenImageIO/oiio/blob/master/INSTALL.md> (arguments - `(#:tests? #f - #:configure-flags (list "-DUSE_EXTERNAL_PUGIXML=1"))) + (list #:tests? #f ; half the tests require online data or use redirection + #:configure-flags #~(list "-DUSE_EXTERNAL_PUGIXML=1" + "-DOIIO_BUILD_TESTS=false"))) (native-inputs (list pkg-config)) (inputs - `(("boost" ,boost) - ("fmt" ,fmt-8) - ("libheif" ,libheif) - ("libpng" ,libpng) - ("libjpeg" ,libjpeg-turbo) - ("libtiff" ,libtiff) - ("giflib" ,giflib) - ("openexr" ,openexr-2) - ("ilmbase" ,ilmbase) - ("pugixml" ,pugixml) - ("python" ,python-wrapper) - ("pybind11" ,pybind11) - ("robin-map" ,robin-map) - ("zlib" ,zlib))) + (list boost + fmt + giflib + imath + libheif + libjpeg-turbo + libpng + libtiff + openexr + pugixml + pybind11 + python-wrapper + robin-map + zlib)) (synopsis "C++ library for reading and writing images") (description "OpenImageIO is a library for reading and writing images, and a bunch of @@ -1903,7 +1904,7 @@ requirements.") (define-public opensubdiv (package (name "opensubdiv") - (version "3.4.0") + (version "3.6.0") (source (origin (method git-fetch) (uri (git-reference @@ -1913,20 +1914,19 @@ requirements.") (file-name (git-file-name name version)) (sha256 (base32 - "0cippg6aqc5dlya1cmh3908pwssrg52fwgyylnvz5343yrxmgk12")))) + "0h9scxiigijzlpv4r0s0nhxlndhv1cmarb2bqgmlwcln1jjvlb4n")))) (build-system cmake-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (add-before 'configure 'set-glew-location - (lambda* (#:key inputs #:allow-other-keys) - (setenv "GLEW_LOCATION" (assoc-ref inputs "glew")) - #t)) - (add-before 'check 'start-xorg-server - (lambda* (#:key inputs #:allow-other-keys) - ;; The test suite requires a running X server. - (system "Xvfb :1 &") - (setenv "DISPLAY" ":1") - #t))))) + (list #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'set-glew-location + (lambda _ + (setenv "GLEW_LOCATION" #$(this-package-input "glew")))) + (add-before 'check 'start-xorg-server + (lambda* (#:key inputs #:allow-other-keys) + ;; The test suite requires a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1")))))) (native-inputs (list xorg-server-for-tests)) (inputs @@ -1983,44 +1983,66 @@ or by subtracting one shape from the other.") (home-page "https://www.opencsg.org/") (license license:gpl2)))) -(define-public coin3D +(define-public coin3d (package - (name "coin3D") - (version "4.0.0") + (name "coin3d") + (version "4.0.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/coin3d/coin") - (commit (string-append "Coin-" version)) + (commit (string-append "v" version)) (recursive? #t))) (file-name (git-file-name name version)) (sha256 - (base32 "1ayg0hl8wanhadahm5xbghghxw1qjwqbrs3dl3ngnff027hsyf8p")) + (base32 "1p59q67zc45pwicknsccvmby09snhz35725wr3xsh2v6kxza76a4")) (modules '((guix build utils))) (snippet - '(begin - ;; Delete binaries - (for-each delete-file - '("cfg/csubst.exe" - "cfg/wrapmsvc.exe")) - ;; Delete references to packaging tool cpack. Otherwise the build - ;; fails with "add_subdirectory given source "cpack.d" which is not - ;; an existing directory." - (substitute* "CMakeLists.txt" - ((".*cpack.d.*") "")) - #t)))) + #~(begin + ;; Delete binaries + (for-each delete-file + '("cfg/csubst.exe" + "cfg/wrapmsvc.exe")) + ;; Unbundle expat. + (delete-file-recursively "src/xml/expat") + (substitute* "src/xml/document.cpp" + (("expat/expat\\.h") "expat.h")) + ;; Delete references to packaging tool cpack. Otherwise the build + ;; fails with "add_subdirectory given source "cpack.d" which is not + ;; an existing directory." + (substitute* "CMakeLists.txt" + ((".*cpack.d.*") "")))))) (build-system cmake-build-system) + (arguments + (list #:configure-flags + #~(list "-DCOIN_BUILD_DOCUMENTATION_MAN=ON" + "-DUSE_EXTERNAL_EXPAT=ON" + ;; Disable "runtime linking" of libraries, i.e. `dlopen`, + ;; force to use libraries at build time. + "-DFONTCONFIG_RUNTIME_LINKING=OFF" + "-DFREETYPE_RUNTIME_LINKING=OFF" + "-DLIBBZIP2_RUNTIME_LINKING=OFF" + "-DOPENAL_RUNTIME_LINKING=OFF" + ;"-DSIMAGE_RUNTIME_LINKING=OFF" -- Not packaged yet. + "-DZLIB_RUNTIME_LINKING=OFF" + "-DGLU_RUNTIME_LINKING=OFF" + ;"-DSPIDERMONKEY_RUNTIME_LINKING=OFF" -- Can't find mozjs. + (string-append "-DBOOST_ROOT=" + #$(this-package-input "boost"))))) (native-inputs (list doxygen graphviz)) (inputs - (list boost freeglut glew)) - (arguments - `(#:configure-flags - (list - "-DCOIN_BUILD_DOCUMENTATION_MAN=ON" - (string-append "-DBOOST_ROOT=" - (assoc-ref %build-inputs "boost"))))) + (list boost + bzip2 + expat + fontconfig + freeglut + freetype + glew + libx11 + openal + zlib)) (home-page "https://github.com/coin3d/coin") (synopsis "High-level 3D visualization library with Open Inventor 2.1 API") @@ -2033,7 +2055,10 @@ library for 3D visualization and visual simulation software in the scientific and engineering community.") (license license:bsd-3))) -(define-deprecated coin3D-4 coin3D) +(define-deprecated coin3D coin3d) +(export coin3D) + +(define-deprecated coin3D-4 coin3d) (export coin3D-4) (define-public skia |