summaryrefslogtreecommitdiff
path: root/gnu/packages/graphics.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/graphics.scm')
-rw-r--r--gnu/packages/graphics.scm189
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))))