diff options
Diffstat (limited to 'gnu/packages/graphics.scm')
-rw-r--r-- | gnu/packages/graphics.scm | 189 |
1 files changed, 138 insertions, 51 deletions
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 37eb060a8f..d1ada9ec37 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -21,7 +21,7 @@ ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020, 2021, 2025 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> -;;; Copyright © 2020-2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020-2025 Maxim Cournoyer <maxim@guixotic.coop> ;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com> ;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net> ;;; Copyright © 2021 Andy Tai <atai@atai.org> @@ -108,6 +108,7 @@ #:use-module (gnu packages mp3) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ninja) + #:use-module (gnu packages opencl) #:use-module (gnu packages pciutils) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) @@ -142,6 +143,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system meson) #:use-module (guix build-system python) + #:use-module (guix build-system pyproject) #:use-module (guix build-system qt) #:use-module (guix download) #:use-module (guix gexp) @@ -460,7 +462,7 @@ objects!") qt))))))))) (inputs (list expat - ffmpeg-for-friction ;version 4.2 is recommended; does not work with version 7+. + ffmpeg-6 fontconfig freetype gperftools-for-friction @@ -759,37 +761,46 @@ application can be customized via its API for Python scripting.") (license license:gpl2+))) (define-public goxel - (package - (name "goxel") - (version "0.10.8") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/guillaumechereau/goxel") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0qvz566awhp03yp696fn3c80hnky41fpbi4sqg4lx69ibx4zvl9k")))) - (build-system gnu-build-system) - (arguments - '(#:tests? #f - #:phases (modify-phases %standard-phases (delete 'configure)) - #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) - "release"))) - (native-inputs - (list pkg-config)) - (inputs - `(("gtk3" ,gtk+) - ("glfw" ,glfw) - ("scons" ,scons))) - (home-page "https://goxel.xyz/") - (synopsis "Voxel editor") - (description - "Goxel is a voxel editor that features unlimited scene size, unlimited + ;; The latest commit is used as it builds with GCC 14. + (let ((commit "66d36e0c3511479ceaac8cbf9f5c7c3e619b30d3") + (revision "0")) + (package + (name "goxel") + (version (git-version "0.15.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/guillaumechereau/goxel") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "18xbfkn3xh5y88iahrykyqh5nykkx7y468f450l5gdiagwpgz7g2")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f + #:make-flags + #~(list (string-append "PREFIX=" #$output) + "release") + #:phases + #~(modify-phases %standard-phases + ;; No configure provided + (delete 'configure)))) + (native-inputs + (list pkg-config + scons)) + (inputs + (list gtk+ + glfw + libpng)) + (home-page "https://goxel.xyz/") + (synopsis "Voxel editor") + (description + "Goxel is a voxel editor that features unlimited scene size, unlimited history buffer, 24-bit RGB colors, layers, procedural rendering, ray tracing, and export to various formats including the format used by Magicavoxel.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public assimp (package @@ -815,7 +826,20 @@ and export to various formats including the format used by Magicavoxel.") (substitute* "test/CMakeLists.txt" ;; Leave the test binary where ctest will look for it. (("TARGET_USE_COMMON_OUTPUT_DIRECTORY\\(unit\\)") - ""))))))) + "")) + + ;; Some tests fail on aarch64: + ;; <https://github.com/assimp/assimp/issues/6246>. + (when #$(target-aarch64?) + (substitute* "test/unit/AssimpAPITest_aiMatrix3x3.cpp" + (("aiMatrix3FromToTest") + "DISABLED_aiMatrix3FromToTest")) + (substitute* "test/unit/AssimpAPITest_aiMatrix4x4.cpp" + (("aiMatrix4FromToTest") + "DISABLED_aiMatrix4FromToTest")) + (substitute* "test/unit/AssimpAPITest_aiQuaternion.cpp" + (("aiQuaternionFromNormalizedQuaternionTest") + "DISABLED_aiQuaternionFromNormalizedQuaternionTest")))))))) (build-system cmake-build-system) (inputs (list zlib)) @@ -1212,22 +1236,48 @@ basic geometries.") (version "0.9.0") (source (origin - (method url-fetch) - (uri (pypi-uri "booleanOperations" version ".zip")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/typemytype/booleanOperations") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "1f41lb19m8azchl1aqz6j5ycbspb8jsf1cnn42hlydxd68f85ylc")))) - (build-system python-build-system) + (base32 "0ahfgamyq1ndwbr9n8sdx8qhqc2195xnbahylgjpk877hbr2gxav")))) + (build-system pyproject-build-system) + (arguments + (list + ;; There are + #:modules '((guix build pyproject-build-system) + (guix build utils) + (ice-9 format)) + ;; Some tests fail due to small differences in the expected result (see: + ;; <https://github.com/typemytype/booleanOperations/issues/69>). + #:test-flags #~(list "-k" + (format #f "not ~{~a~^ and not ~}" + '("test_QTail_reversed_difference" + "test_QTail_reversed_intersection" + "test_QTail_reversed_union" + "test_QTail_reversed_xor" + "test_Q_difference" + "test_Q_intersection" + "test_Q_union" + "test_Q_xor"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-version + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))))) (propagated-inputs (list python-fonttools-minimal python-pyclipper)) (native-inputs (list python-defcon-bootstrap python-fontpens-bootstrap - python-setuptools-scm python-pytest - python-wheel - unzip)) + python-setuptools + python-setuptools-scm)) (home-page "https://github.com/typemytype/booleanOperations") (synopsis "Boolean operations on paths") - (description "Boolean operations on paths which uses a super fast + (description + "Boolean operations on paths which uses a super fast @url{http://www.angusj.com/delphi/clipper.php, polygon clipper library by Angus Johnson}.") (license license:expat))) @@ -3371,19 +3421,21 @@ options.") (define-public gpaint (package (name "gpaint") - (version "0.3.4") - (source (origin - (method url-fetch) - (uri (string-append "http://alpha.gnu.org/gnu/" - name "/" - name "-2-" version ".tar.gz")) - (sha256 - (base32 - "13jv0zqbnyxjw7fa9x0yl08rrkqq0mdvki0yzbj6vqifvs393v5h")))) + (version "0.3.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/gpaint.git") + (commit (string-append "v" + (string-replace-substring version "." "_"))))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0drsvrihyvkdf5g65w5784ap06d2x9zkas69amp1mb6jmnzp8rir")))) (build-system gnu-build-system) (inputs (list gtk+-2 libglade)) - (native-inputs - (list gettext-minimal `(,glib "bin") pkg-config)) + (native-inputs (list gettext-minimal + `(,glib "bin") pkg-config)) (synopsis "Simple paint program for GNOME") (description "GNU Paint is a simple, easy-to-use paint program for the GNOME @@ -3391,3 +3443,38 @@ environment. It supports drawing freehand as well as basic shapes and text. It features cut-and-paste for irregular regions or polygons.") (home-page "https://www.gnu.org/software/gpaint/") (license license:gpl3+))) + +(define-public basis-universal + (package + (name "basis-universal") + (version "1.60") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BinomialLLC/basis_universal") + (commit (string-append "v" + (string-replace-substring version "." "_"))))) + (file-name (git-file-name name version)) + (patches (search-patches "basis-universal-unbundle-libs.patch")) + (modules '((guix build utils))) + (snippet #~(for-each delete-file-recursively '("OpenCL" "zstd"))) + (sha256 + (base32 + "1s38fp3j9pp0s260s805lw2h4gqbx7d2cd0d96pjp5bfqndmmk8b")))) + (build-system cmake-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (delete 'check) + (add-after 'install 'check + (lambda _ (invoke (string-append #$output "/bin/basisu") + "-test_dir" "../source/test_files" + "-test")))))) + (inputs (list opencl-headers (list zstd "lib"))) + (native-inputs (list pkg-config)) + (home-page "https://github.com/BinomialLLC/basis_universal") + (synopsis "LDR/HDR compressed texture transcoder") + (description "Basis Universal is an LDR/HDR GPU compressed texture +interchange system supporting transcoding to a large number of GPU texture +formats.") + (license (list license:asl2.0 license:bsd-3 license:expat)))) |