Merge branch 'mesa-updates'
Key updates: cairo 1.16.0 -> 1.18.0 libdrm 2.4.117 -> 2.4.120 mesa 23.3.2 -> 24.0.3 sdl2 2.28.5 -> 2.30.1 vulkan packages 1.3.231.1 -> 1.3.280.0 openexr 3.1.3 -> 3.2.4 Change-Id: Iece081158251d1d5836f6b264ba232dc751c9fe2
This commit is contained in:
commit
2d5736cc3e
15 changed files with 259 additions and 341 deletions
|
|
@ -1012,8 +1012,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/breezy-fix-gio.patch \
|
%D%/packages/patches/breezy-fix-gio.patch \
|
||||||
%D%/packages/patches/byobu-writable-status.patch \
|
%D%/packages/patches/byobu-writable-status.patch \
|
||||||
%D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
|
%D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
|
||||||
%D%/packages/patches/cairo-CVE-2018-19876.patch \
|
|
||||||
%D%/packages/patches/cairo-CVE-2020-35492.patch \
|
|
||||||
%D%/packages/patches/calibre-no-updates-dialog.patch \
|
%D%/packages/patches/calibre-no-updates-dialog.patch \
|
||||||
%D%/packages/patches/calibre-remove-test-sqlite.patch \
|
%D%/packages/patches/calibre-remove-test-sqlite.patch \
|
||||||
%D%/packages/patches/calibre-remove-test-unrar.patch \
|
%D%/packages/patches/calibre-remove-test-unrar.patch \
|
||||||
|
|
@ -1369,7 +1367,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/glibc-2.29-git-updates.patch \
|
%D%/packages/patches/glibc-2.29-git-updates.patch \
|
||||||
%D%/packages/patches/glibc-2.29-supported-locales.patch \
|
%D%/packages/patches/glibc-2.29-supported-locales.patch \
|
||||||
%D%/packages/patches/glibc-supported-locales.patch \
|
%D%/packages/patches/glibc-supported-locales.patch \
|
||||||
%D%/packages/patches/glslang-install-static-libs.patch \
|
|
||||||
%D%/packages/patches/gmobile-make-it-installable.patch \
|
%D%/packages/patches/gmobile-make-it-installable.patch \
|
||||||
%D%/packages/patches/gmp-arm-asm-nothumb.patch \
|
%D%/packages/patches/gmp-arm-asm-nothumb.patch \
|
||||||
%D%/packages/patches/gmp-faulty-test.patch \
|
%D%/packages/patches/gmp-faulty-test.patch \
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@
|
||||||
;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||||
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
|
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
|
||||||
;;; Copyright © 2023 Paul A. Patience <paul@apatience.com>
|
;;; Copyright © 2023 Paul A. Patience <paul@apatience.com>
|
||||||
|
;;; Copyright © 2024 dan <i@dan.games>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
|
@ -1875,7 +1876,7 @@ queues header library based on circular buffer with @code{std::atomic}.")
|
||||||
(define-public magic-enum
|
(define-public magic-enum
|
||||||
(package
|
(package
|
||||||
(name "magic-enum")
|
(name "magic-enum")
|
||||||
(version "0.7.3")
|
(version "0.9.5")
|
||||||
(home-page "https://github.com/Neargye/magic_enum")
|
(home-page "https://github.com/Neargye/magic_enum")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
|
@ -1885,7 +1886,7 @@ queues header library based on circular buffer with @code{std::atomic}.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1x47radgsifgz3vn2561mlvf4cq46ii33cpyqf01znm56iirwq89"))))
|
"14ys5sn2v1mai8bclvi81cp65g6jblqpdsi94639hphca5v8gka3"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(synopsis "C++17 header only library for compile time reflection of enums")
|
(synopsis "C++17 header only library for compile time reflection of enums")
|
||||||
(description "Magic Enum offers static reflection of enums, with
|
(description "Magic Enum offers static reflection of enums, with
|
||||||
|
|
|
||||||
|
|
@ -2095,7 +2095,7 @@ scripted in a Python-like language.")
|
||||||
(define-public godot
|
(define-public godot
|
||||||
(package
|
(package
|
||||||
(name "godot")
|
(name "godot")
|
||||||
(version "4.1.3")
|
(version "4.2.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
|
@ -2104,7 +2104,7 @@ scripted in a Python-like language.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1mwwzf77ixkalciqakn6q42g9sl2570didfll406sfs42wz534ng"))
|
"0d5y678986lx4a4xjkxs5glh2dckp8wwl3r3mw72inq7gvaa18s3"))
|
||||||
(modules '((guix build utils)
|
(modules '((guix build utils)
|
||||||
(ice-9 ftw)
|
(ice-9 ftw)
|
||||||
(srfi srfi-1)))
|
(srfi srfi-1)))
|
||||||
|
|
@ -2117,19 +2117,28 @@ scripted in a Python-like language.")
|
||||||
(let* ((preserved-files
|
(let* ((preserved-files
|
||||||
'("README.md"
|
'("README.md"
|
||||||
"amd-fsr"
|
"amd-fsr"
|
||||||
|
"amd-fsr2"
|
||||||
"assimp"
|
"assimp"
|
||||||
"astcenc"
|
"astcenc"
|
||||||
"basis_universal"
|
"basis_universal"
|
||||||
;; Godot needs ca-certificates.crt, but that is
|
;; Godot needs ca-certificates.crt, but that is
|
||||||
;; not available in build environment
|
;; not available in build environment
|
||||||
"certs"
|
"certs"
|
||||||
|
"clipper2"
|
||||||
"cvtt"
|
"cvtt"
|
||||||
"linuxbsd_headers"
|
"linuxbsd_headers"
|
||||||
"etc2comp"
|
"etc2comp"
|
||||||
"etcpak"
|
"etcpak"
|
||||||
"fonts"
|
"fonts"
|
||||||
"glad"
|
"glad"
|
||||||
|
;; TODO: Remove once Godot once again builds
|
||||||
|
;; with our glslang package, or with a
|
||||||
|
;; workaround. Currently it looks for a Types.h
|
||||||
|
;; which is no longer in the glslang output
|
||||||
|
;; after the most recent update.
|
||||||
|
"glslang"
|
||||||
"jpeg-compressor"
|
"jpeg-compressor"
|
||||||
|
"libktx"
|
||||||
"libsimplewebm"
|
"libsimplewebm"
|
||||||
"meshoptimizer"
|
"meshoptimizer"
|
||||||
"minimp3"
|
"minimp3"
|
||||||
|
|
@ -2170,7 +2179,9 @@ scripted in a Python-like language.")
|
||||||
"builtin_embree=no"
|
"builtin_embree=no"
|
||||||
"builtin_enet=no"
|
"builtin_enet=no"
|
||||||
"builtin_freetype=no"
|
"builtin_freetype=no"
|
||||||
"builtin_glslang=no"
|
;; TODO: Uncomment this option when the todo for
|
||||||
|
;; glslang in the snippet is resolved.
|
||||||
|
;; "builtin_glslang=no"
|
||||||
"builtin_graphite=no"
|
"builtin_graphite=no"
|
||||||
"builtin_harfbuzz=no"
|
"builtin_harfbuzz=no"
|
||||||
"builtin_icu4c=no"
|
"builtin_icu4c=no"
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2016 Nikita <nikita@n0.is>
|
;;; Copyright © 2016 Nikita <nikita@n0.is>
|
||||||
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2017-2019, 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2017-2019, 2021, 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
|
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
|
||||||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
|
|
@ -297,17 +297,17 @@ also known as DXTn or DXTC) for Mesa.")
|
||||||
(define-public mesa
|
(define-public mesa
|
||||||
(package
|
(package
|
||||||
(name "mesa")
|
(name "mesa")
|
||||||
(version "23.3.2")
|
(version "24.0.4")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (list (string-append "https://archive.mesa3d.org/"
|
(uri (list (string-append "https://archive.mesa3d.org/"
|
||||||
"mesa-" version ".tar.xz")
|
"mesa-" version ".tar.xz")
|
||||||
(string-append "ftp://ftp.freedesktop.org/pub/mesa/"
|
(string-append "ftp://ftp.freedesktop.org/pub/mesa/"
|
||||||
"mesa-" version ".tar.xz")))
|
"mesa-" version ".tar.xz")))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1p4swrbmz3kb1805kdj973hf8virgmix4m9qprmcb2bgl4gviz1w"))))
|
"1w25lwdrb0ffrx2fjk9izbvpcgf9ypfc7v32zybwvjwql0qbvzlh"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
;; The following are in the Requires.private field of gl.pc.
|
;; The following are in the Requires.private field of gl.pc.
|
||||||
|
|
@ -327,6 +327,7 @@ also known as DXTn or DXTC) for Mesa.")
|
||||||
libxrandr
|
libxrandr
|
||||||
libxvmc
|
libxvmc
|
||||||
llvm-for-mesa
|
llvm-for-mesa
|
||||||
|
vulkan-loader
|
||||||
wayland
|
wayland
|
||||||
wayland-protocols
|
wayland-protocols
|
||||||
`(,zstd "lib")))
|
`(,zstd "lib")))
|
||||||
|
|
@ -352,16 +353,11 @@ also known as DXTn or DXTC) for Mesa.")
|
||||||
#:configure-flags
|
#:configure-flags
|
||||||
#~(list
|
#~(list
|
||||||
#$@(cond
|
#$@(cond
|
||||||
((target-aarch64?)
|
((or (target-aarch64?) (target-arm32?))
|
||||||
;; TODO: Fix svga driver for non-Intel architectures.
|
|
||||||
'("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\
|
'("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\
|
||||||
panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl,zink"))
|
panfrost,r300,r600,svga,swrast,tegra,v3d,vc4,virgl,zink"))
|
||||||
((target-arm32?)
|
|
||||||
;; Freedreno FTBFS when built on a 64-bit machine.
|
|
||||||
'("-Dgallium-drivers=etnaviv,kmsro,lima,nouveau,panfrost,\
|
|
||||||
r300,r600,swrast,tegra,v3d,vc4,virgl,zink"))
|
|
||||||
((or (target-ppc64le?) (target-ppc32?) (target-riscv64?))
|
((or (target-ppc64le?) (target-ppc32?) (target-riscv64?))
|
||||||
'("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl,zink"))
|
'("-Dgallium-drivers=nouveau,r300,r600,radeonsi,svga,swrast,virgl,zink"))
|
||||||
(else
|
(else
|
||||||
'("-Dgallium-drivers=crocus,iris,nouveau,r300,r600,radeonsi,\
|
'("-Dgallium-drivers=crocus,iris,nouveau,r300,r600,radeonsi,\
|
||||||
svga,swrast,virgl,zink")))
|
svga,swrast,virgl,zink")))
|
||||||
|
|
@ -395,9 +391,9 @@ svga,swrast,virgl,zink")))
|
||||||
;; Enable the Vulkan overlay layer on all architectures.
|
;; Enable the Vulkan overlay layer on all architectures.
|
||||||
"-Dvulkan-layers=device-select,overlay"
|
"-Dvulkan-layers=device-select,overlay"
|
||||||
|
|
||||||
;; Enable the codecs that were built by default as part of the
|
;; Enable all the codecs that were built by default as part of the
|
||||||
;; 21.3.x releases to avoid functionality regressions.
|
;; 21.3.x releases to avoid functionality regressions.
|
||||||
"-Dvideo-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc"
|
"-Dvideo-codecs=all"
|
||||||
|
|
||||||
;; Enable ZSTD compression for shader cache.
|
;; Enable ZSTD compression for shader cache.
|
||||||
"-Dzstd=enabled"
|
"-Dzstd=enabled"
|
||||||
|
|
@ -454,24 +450,17 @@ svga,swrast,virgl,zink")))
|
||||||
;; There are some tests which fail specifically on powerpc.
|
;; There are some tests which fail specifically on powerpc.
|
||||||
`((substitute* '(;; LLVM ERROR: Relocation type not implemented yet!
|
`((substitute* '(;; LLVM ERROR: Relocation type not implemented yet!
|
||||||
"src/gallium/drivers/llvmpipe/meson.build"
|
"src/gallium/drivers/llvmpipe/meson.build"
|
||||||
;; This is probably a big-endian test failure.
|
|
||||||
"src/gallium/targets/osmesa/meson.build")
|
"src/gallium/targets/osmesa/meson.build")
|
||||||
(("if with_tests") "if not with_tests"))
|
(("if with_tests") "if not with_tests"))
|
||||||
;; This test times out and receives SIGTERM.
|
;; This is probably a big-endian test failure.
|
||||||
(substitute* "src/amd/common/meson.build"
|
(substitute* "src/amd/common/meson.build"
|
||||||
(("and not with_platform_windows") "and with_platform_windows"))
|
(("and not with_platform_windows")
|
||||||
(substitute* "src/compiler/nir/meson.build"
|
"and with_platform_windows"))))
|
||||||
((".*loop_unroll_tests.*") ""))))
|
|
||||||
("i686-linux"
|
("i686-linux"
|
||||||
;; This test is known to fail on i686 (see:
|
;; This test is known to fail on i686 (see:
|
||||||
;; https://gitlab.freedesktop.org/mesa/mesa/-/issues/4091).
|
;; https://gitlab.freedesktop.org/mesa/mesa/-/issues/4091).
|
||||||
`((substitute* "src/util/meson.build"
|
`((substitute* "src/util/meson.build"
|
||||||
((".*'tests/u_debug_stack_test.cpp',.*") ""))))
|
((".*'tests/u_debug_stack_test.cpp',.*") ""))))
|
||||||
("aarch64-linux"
|
|
||||||
;; The ir3_disasm test segfaults.
|
|
||||||
;; The simplest way to skip it is to run a different test instead.
|
|
||||||
`((substitute* "src/freedreno/ir3/meson.build"
|
|
||||||
(("disasm\\.c'") "delay.c',\n link_args: ld_args_build_id"))))
|
|
||||||
("armhf-linux"
|
("armhf-linux"
|
||||||
;; Disable some of the llvmpipe tests.
|
;; Disable some of the llvmpipe tests.
|
||||||
`((substitute* "src/gallium/drivers/llvmpipe/meson.build"
|
`((substitute* "src/gallium/drivers/llvmpipe/meson.build"
|
||||||
|
|
@ -479,7 +468,7 @@ svga,swrast,virgl,zink")))
|
||||||
(_
|
(_
|
||||||
'((display "No tests to disable on this architecture.\n"))))))
|
'((display "No tests to disable on this architecture.\n"))))))
|
||||||
(add-before 'configure 'fix-dlopen-libnames
|
(add-before 'configure 'fix-dlopen-libnames
|
||||||
(lambda _
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(let ((out #$output))
|
(let ((out #$output))
|
||||||
;; Remain agnostic to .so.X.Y.Z versions while doing
|
;; Remain agnostic to .so.X.Y.Z versions while doing
|
||||||
;; the substitutions so we're future-safe.
|
;; the substitutions so we're future-safe.
|
||||||
|
|
@ -495,7 +484,12 @@ svga,swrast,virgl,zink")))
|
||||||
;; it's never installed since Mesa removed its
|
;; it's never installed since Mesa removed its
|
||||||
;; egl_gallium support.
|
;; egl_gallium support.
|
||||||
(("\"gbm_dri\\.so")
|
(("\"gbm_dri\\.so")
|
||||||
(string-append "\"" out "/lib/dri/gbm_dri.so"))))))
|
(string-append "\"" out "/lib/dri/gbm_dri.so")))
|
||||||
|
(substitute* "src/gallium/drivers/zink/zink_screen.c"
|
||||||
|
(("util_dl_open\\(VK_LIBNAME\\)")
|
||||||
|
(format #f "util_dl_open(\"~a\")"
|
||||||
|
(search-input-file inputs
|
||||||
|
"lib/libvulkan.so.1")))))))
|
||||||
(add-after 'install 'split-outputs
|
(add-after 'install 'split-outputs
|
||||||
(lambda _
|
(lambda _
|
||||||
(let ((out #$output)
|
(let ((out #$output)
|
||||||
|
|
|
||||||
|
|
@ -3746,12 +3746,15 @@ diagrams.")
|
||||||
"svg1.1/masking-mask-01-b.svg"
|
"svg1.1/masking-mask-01-b.svg"
|
||||||
;; This test fails on aarch64:
|
;; This test fails on aarch64:
|
||||||
"bugs/777834-empty-text-children.svg"
|
"bugs/777834-empty-text-children.svg"
|
||||||
|
|
||||||
;; These two tests fail due to slightly different
|
;; These two tests fail due to slightly different
|
||||||
;; text rendering (different kerning or similar),
|
;; text rendering (different kerning or similar),
|
||||||
;; nothing alarming.
|
;; nothing alarming.
|
||||||
"bugs/340047.svg"
|
"bugs/340047.svg"
|
||||||
"bugs/749415.svg"))))))))
|
"bugs/749415.svg"
|
||||||
|
;; These two tests fail with the update to cairo
|
||||||
|
;; version 1.18.0.
|
||||||
|
"bugs/587721-text-transform.svg"
|
||||||
|
"svg1.1/masking-path-03-b.svg"))))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list pkg-config
|
(list pkg-config
|
||||||
`(,glib "bin") ; glib-mkenums, etc.
|
`(,glib "bin") ; glib-mkenums, etc.
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
|
;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
|
||||||
;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
|
;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
|
||||||
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
|
;;; 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 Zheng Junjie <873216071@qq.com>
|
||||||
;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com>
|
;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com>
|
||||||
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
|
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
|
||||||
|
|
@ -143,7 +143,8 @@
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix deprecation)
|
#:use-module (guix deprecation)
|
||||||
#:use-module (guix utils))
|
#:use-module (guix utils)
|
||||||
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
(define-public mmm
|
(define-public mmm
|
||||||
(package
|
(package
|
||||||
|
|
@ -1192,7 +1193,7 @@ graphics.")
|
||||||
(define-public openexr
|
(define-public openexr
|
||||||
(package
|
(package
|
||||||
(name "openexr")
|
(name "openexr")
|
||||||
(version "3.1.3")
|
(version "3.2.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
|
@ -1202,16 +1203,23 @@ graphics.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0c9vla0kbsbbhkk42jlbf94nzfb1anqh7dy9b0b3nna1qr6v4bh6"))))
|
"00s1a05kggk71vfbnsvykyjc2j7y6yyzgl63sy4yiddshz2k2mcr"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(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
|
#~(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'patch-test-directory
|
(add-after 'unpack 'patch-test-directory
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* (list
|
(substitute* (list
|
||||||
"src/test/OpenEXRUtilTest/tmpDir.h"
|
|
||||||
"src/test/OpenEXRFuzzTest/tmpDir.h"
|
|
||||||
"src/test/OpenEXRTest/tmpDir.h"
|
"src/test/OpenEXRTest/tmpDir.h"
|
||||||
"src/test/OpenEXRCoreTest/main.cpp")
|
"src/test/OpenEXRCoreTest/main.cpp")
|
||||||
(("/var/tmp")
|
(("/var/tmp")
|
||||||
|
|
@ -1239,7 +1247,10 @@ graphics.")
|
||||||
"")
|
"")
|
||||||
(("TEST \\(testOptimizedInterleavePatterns, \"basic\"\\);")
|
(("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/")
|
(home-page "https://www.openexr.com/")
|
||||||
(synopsis "High-dynamic-range file format library")
|
(synopsis "High-dynamic-range file format library")
|
||||||
(description
|
(description
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@
|
||||||
;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
|
;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
|
||||||
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
||||||
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||||
|
;;; Copyright © 2024 John Kehayias <john.kehayias@protonmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
|
@ -121,7 +122,11 @@
|
||||||
#:use-module (gnu packages pulseaudio)
|
#:use-module (gnu packages pulseaudio)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match)
|
||||||
|
;; Export cairo to break a dependency cycle, as gtk-doc is needed to build
|
||||||
|
;; the documentation. Use cairo for other packages and
|
||||||
|
;; cairo-with-documentation as the public package.
|
||||||
|
#:export (cairo))
|
||||||
|
|
||||||
(define-public appmenu-gtk-module
|
(define-public appmenu-gtk-module
|
||||||
(package
|
(package
|
||||||
|
|
@ -160,10 +165,10 @@ such as mate-panel and xfce4-panel.")
|
||||||
(home-page "https://gitlab.com/vala-panel-project/vala-panel-appmenu")
|
(home-page "https://gitlab.com/vala-panel-project/vala-panel-appmenu")
|
||||||
(license (list license:lgpl3))))
|
(license (list license:lgpl3))))
|
||||||
|
|
||||||
(define-public cairo
|
(define cairo
|
||||||
(package
|
(package
|
||||||
(name "cairo")
|
(name "cairo")
|
||||||
(version "1.16.0")
|
(version "1.18.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
|
@ -171,30 +176,13 @@ such as mate-panel and xfce4-panel.")
|
||||||
(string-append "https://cairographics.org/releases/cairo-"
|
(string-append "https://cairographics.org/releases/cairo-"
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy"))
|
(base32 "0r0by563s75xyzz0d0j1nmjqmdrk2x9agk7r57p3v8vqp4v0ffi4"))))
|
||||||
(patches (search-patches
|
(build-system meson-build-system)
|
||||||
"cairo-CVE-2018-19876.patch"
|
|
||||||
"cairo-CVE-2020-35492.patch"))))
|
|
||||||
(build-system glib-or-gtk-build-system)
|
|
||||||
(outputs '("out" "doc"))
|
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
|
`(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
|
||||||
|
#:glib-or-gtk? #t
|
||||||
#:configure-flags
|
#:configure-flags
|
||||||
(list
|
(list "-Dtests=disabled")))
|
||||||
"--disable-static"
|
|
||||||
;; XXX: To be enabled.
|
|
||||||
;; "--enable-gallium=yes"
|
|
||||||
;; "--enable-gl=yes"
|
|
||||||
;; " --enable-glesv2=yes"
|
|
||||||
;; "--enable-glesv3=yes"
|
|
||||||
;; "--enable-cogl=yes"
|
|
||||||
;; "--enable-directfb=yes"
|
|
||||||
;; "--enable-vg=yes"
|
|
||||||
"--enable-tee=yes" ;needed for GNU IceCat
|
|
||||||
"--enable-xml=yes" ;for cairo-xml support
|
|
||||||
(string-append "--with-html-dir="
|
|
||||||
(assoc-ref %outputs "doc")
|
|
||||||
"/share/gtk-doc/html"))))
|
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(,@(if (target-hurd?)
|
`(,@(if (target-hurd?)
|
||||||
'()
|
'()
|
||||||
|
|
@ -212,15 +200,10 @@ such as mate-panel and xfce4-panel.")
|
||||||
'()
|
'()
|
||||||
`(("poppler" ,poppler)))))
|
`(("poppler" ,poppler)))))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`( ;; ("cogl" ,cogl)
|
`(("fontconfig" ,fontconfig)
|
||||||
;; ("directfb" ,directfb)
|
|
||||||
("fontconfig" ,fontconfig)
|
|
||||||
("freetype" ,freetype)
|
("freetype" ,freetype)
|
||||||
("glib" ,glib)
|
("glib" ,glib)
|
||||||
;; ("gtk+" ,gtk+)
|
|
||||||
("libpng" ,libpng)
|
("libpng" ,libpng)
|
||||||
;; ("librsvg" ,librsvg)
|
|
||||||
;; ("opengl" ,mesa)
|
|
||||||
("pixman" ,pixman)
|
("pixman" ,pixman)
|
||||||
("x11" ,libx11)
|
("x11" ,libx11)
|
||||||
("xcb" ,libxcb)
|
("xcb" ,libxcb)
|
||||||
|
|
@ -236,24 +219,50 @@ output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.")
|
||||||
;; This project is dual-licensed.
|
;; This project is dual-licensed.
|
||||||
(list
|
(list
|
||||||
license:lgpl2.1+
|
license:lgpl2.1+
|
||||||
license:mpl1.1))))
|
license:mpl1.1))
|
||||||
|
;; Hide and have cairo-with-documentation public.
|
||||||
|
(properties '((hidden? . #t)))))
|
||||||
|
|
||||||
|
(define-public cairo-with-documentation
|
||||||
|
;; cairo's docs must be built in a separate package since it requires
|
||||||
|
;; gtk-doc, which in turn depends on cairo.
|
||||||
|
(package/inherit cairo
|
||||||
|
(properties (alist-delete 'hidden? (package-properties cairo)))
|
||||||
|
(outputs (cons "doc" (package-outputs cairo)))
|
||||||
|
(native-inputs
|
||||||
|
(modify-inputs (package-native-inputs cairo)
|
||||||
|
(prepend gtk-doc)))
|
||||||
|
(arguments
|
||||||
|
(substitute-keyword-arguments (package-arguments cairo)
|
||||||
|
((#:configure-flags flags ''())
|
||||||
|
#~(cons "-Dgtk_doc=true" #$flags))
|
||||||
|
((#:phases phases '%standard-phases)
|
||||||
|
#~(modify-phases #$phases
|
||||||
|
(add-after 'install 'move-doc
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(mkdir-p (string-append #$output:doc "/share"))
|
||||||
|
(rename-file
|
||||||
|
(string-append #$output "/share/gtk-doc")
|
||||||
|
(string-append #$output:doc "/share/gtk-doc"))
|
||||||
|
;; This directory is now empty so remove it.
|
||||||
|
(rmdir (string-append #$output "/share"))))))))))
|
||||||
|
|
||||||
(define-public cairo-sans-poppler
|
(define-public cairo-sans-poppler
|
||||||
;; Variant used to break the dependency cycle between Poppler and Cairo.
|
;; Variant used to break the dependency cycle between Poppler and Cairo.
|
||||||
(package/inherit cairo
|
(package/inherit cairo
|
||||||
(inputs (alist-delete "poppler" (package-inputs cairo)))
|
(inputs (alist-delete "poppler" (package-inputs cairo)))))
|
||||||
(properties `((hidden? . #t)))))
|
|
||||||
|
|
||||||
(define-public cairo-xcb
|
(define-public cairo-xcb
|
||||||
(package/inherit cairo
|
(package/inherit cairo
|
||||||
|
(properties (alist-delete 'hidden? (package-properties cairo)))
|
||||||
(name "cairo-xcb")
|
(name "cairo-xcb")
|
||||||
(inputs
|
(inputs
|
||||||
`(("mesa" ,mesa)
|
`(("mesa" ,mesa)
|
||||||
,@(package-inputs cairo)))
|
,@(package-inputs cairo)))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f
|
(substitute-keyword-arguments (package-arguments cairo)
|
||||||
#:configure-flags
|
((#:configure-flags flags ''())
|
||||||
'("--enable-xlib-xcb" "--enable-gl" "--enable-egl")))
|
#~(cons "-Dxlib-xcb=enabled" #$flags))))
|
||||||
(synopsis "2D graphics library (with X11 support)")))
|
(synopsis "2D graphics library (with X11 support)")))
|
||||||
|
|
||||||
(define-public harfbuzz
|
(define-public harfbuzz
|
||||||
|
|
@ -1959,7 +1968,7 @@ printing and other features typical of a source code editor.")
|
||||||
(define-public python-pycairo
|
(define-public python-pycairo
|
||||||
(package
|
(package
|
||||||
(name "python-pycairo")
|
(name "python-pycairo")
|
||||||
(version "1.21.0")
|
(version "1.26.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
|
@ -1967,7 +1976,7 @@ printing and other features typical of a source code editor.")
|
||||||
version "/pycairo-" version ".tar.gz"))
|
version "/pycairo-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0jxpyibpjadw8ah1mqbhvryr795myiznb1ikm8wgjbamibqhf695"))))
|
"1sybz43sj4ynjahlkidrcdpdrq8yi1avkndc2hgb5pgvfjld1p9d"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list pkg-config python-pytest))
|
(list pkg-config python-pytest))
|
||||||
|
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
Copied from Debian.
|
|
||||||
|
|
||||||
From: Carlos Garcia Campos <cgarcia@igalia.com>
|
|
||||||
Date: Mon, 19 Nov 2018 12:33:07 +0100
|
|
||||||
Subject: ft: Use FT_Done_MM_Var instead of free when available in
|
|
||||||
cairo_ft_apply_variations
|
|
||||||
|
|
||||||
Fixes a crash when using freetype >= 2.9
|
|
||||||
|
|
||||||
[This is considered to be security-sensitive because WebKitGTK+ sets its
|
|
||||||
own memory allocator, which is not compatible with system free(), making
|
|
||||||
this a remotely triggerable denial of service or memory corruption.]
|
|
||||||
|
|
||||||
Origin: upstream, commit:90e85c2493fdfa3551f202ff10282463f1e36645
|
|
||||||
Bug: https://gitlab.freedesktop.org/cairo/cairo/merge_requests/5
|
|
||||||
Bug-Debian: https://bugs.debian.org/916389
|
|
||||||
Bug-CVE: CVE-2018-19876
|
|
||||||
---
|
|
||||||
src/cairo-ft-font.c | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
|
|
||||||
index 325dd61..981973f 100644
|
|
||||||
--- a/src/cairo-ft-font.c
|
|
||||||
+++ b/src/cairo-ft-font.c
|
|
||||||
@@ -2393,7 +2393,11 @@ skip:
|
|
||||||
done:
|
|
||||||
free (coords);
|
|
||||||
free (current_coords);
|
|
||||||
+#if HAVE_FT_DONE_MM_VAR
|
|
||||||
+ FT_Done_MM_Var (face->glyph->library, ft_mm_var);
|
|
||||||
+#else
|
|
||||||
free (ft_mm_var);
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
Copied from Debian.
|
|
||||||
|
|
||||||
From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001
|
|
||||||
From: Heiko Lewin <heiko.lewin@worldiety.de>
|
|
||||||
Date: Tue, 15 Dec 2020 16:48:19 +0100
|
|
||||||
Subject: [PATCH] Fix mask usage in image-compositor
|
|
||||||
|
|
||||||
[trimmed test case, since not used in Debian build]
|
|
||||||
|
|
||||||
---
|
|
||||||
src/cairo-image-compositor.c | 8 ++--
|
|
||||||
|
|
||||||
--- cairo-1.16.0.orig/src/cairo-image-compositor.c
|
|
||||||
+++ cairo-1.16.0/src/cairo-image-compositor.c
|
|
||||||
@@ -2601,14 +2601,14 @@ _inplace_src_spans (void *abstract_rende
|
|
||||||
unsigned num_spans)
|
|
||||||
{
|
|
||||||
cairo_image_span_renderer_t *r = abstract_renderer;
|
|
||||||
- uint8_t *m;
|
|
||||||
+ uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask);
|
|
||||||
int x0;
|
|
||||||
|
|
||||||
if (num_spans == 0)
|
|
||||||
return CAIRO_STATUS_SUCCESS;
|
|
||||||
|
|
||||||
x0 = spans[0].x;
|
|
||||||
- m = r->_buf;
|
|
||||||
+ m = base;
|
|
||||||
do {
|
|
||||||
int len = spans[1].x - spans[0].x;
|
|
||||||
if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) {
|
|
||||||
@@ -2646,7 +2646,7 @@ _inplace_src_spans (void *abstract_rende
|
|
||||||
spans[0].x, y,
|
|
||||||
spans[1].x - spans[0].x, h);
|
|
||||||
|
|
||||||
- m = r->_buf;
|
|
||||||
+ m = base;
|
|
||||||
x0 = spans[1].x;
|
|
||||||
} else if (spans[0].coverage == 0x0) {
|
|
||||||
if (spans[0].x != x0) {
|
|
||||||
@@ -2675,7 +2675,7 @@ _inplace_src_spans (void *abstract_rende
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
- m = r->_buf;
|
|
||||||
+ m = base;
|
|
||||||
x0 = spans[1].x;
|
|
||||||
} else {
|
|
||||||
*m++ = spans[0].coverage;
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
Install OGLCompiler et.al. even when building shared libraries. Also fix
|
|
||||||
CMake file locations.
|
|
||||||
|
|
||||||
Patch taken from Gentoo:
|
|
||||||
|
|
||||||
https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-util/glslang/files/glslang-1.3.231-Install-static-libs.patch
|
|
||||||
|
|
||||||
diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt
|
|
||||||
--- a/OGLCompilersDLL/CMakeLists.txt
|
|
||||||
+++ b/OGLCompilersDLL/CMakeLists.txt
|
|
||||||
@@ -41,7 +41,7 @@ if(WIN32)
|
|
||||||
source_group("Source" FILES ${SOURCES})
|
|
||||||
endif(WIN32)
|
|
||||||
|
|
||||||
-if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
|
|
||||||
+if(ENABLE_GLSLANG_INSTALL)
|
|
||||||
install(TARGETS OGLCompiler EXPORT glslang-targets)
|
|
||||||
|
|
||||||
# Backward compatibility
|
|
||||||
@@ -49,7 +49,7 @@ if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
|
|
||||||
message(WARNING \"Using `OGLCompilerTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
|
|
||||||
|
|
||||||
if (NOT TARGET glslang::OGLCompiler)
|
|
||||||
- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
|
|
||||||
+ include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_library(OGLCompiler ALIAS glslang::OGLCompiler)
|
|
||||||
diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
|
|
||||||
--- a/glslang/CMakeLists.txt
|
|
||||||
+++ b/glslang/CMakeLists.txt
|
|
||||||
@@ -203,7 +203,7 @@ endif()
|
|
||||||
################################################################################
|
|
||||||
if(ENABLE_GLSLANG_INSTALL)
|
|
||||||
install(TARGETS glslang EXPORT glslang-targets)
|
|
||||||
- if(NOT BUILD_SHARED_LIBS)
|
|
||||||
+ if(BUILD_SHARED_LIBS)
|
|
||||||
install(TARGETS MachineIndependent EXPORT glslang-targets)
|
|
||||||
install(TARGETS GenericCodeGen EXPORT glslang-targets)
|
|
||||||
|
|
||||||
diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt
|
|
||||||
--- a/glslang/OSDependent/Unix/CMakeLists.txt
|
|
||||||
+++ b/glslang/OSDependent/Unix/CMakeLists.txt
|
|
||||||
@@ -52,7 +52,7 @@ else()
|
|
||||||
target_link_libraries(OSDependent Threads::Threads)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
-if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
|
|
||||||
+if(ENABLE_GLSLANG_INSTALL)
|
|
||||||
install(TARGETS OSDependent EXPORT glslang-targets)
|
|
||||||
|
|
||||||
# Backward compatibility
|
|
||||||
@@ -60,7 +60,7 @@ if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
|
|
||||||
message(WARNING \"Using `OSDependentTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
|
|
||||||
|
|
||||||
if (NOT TARGET glslang::OSDependent)
|
|
||||||
- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
|
|
||||||
+ include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_library(OSDependent ALIAS glslang::OSDependent)
|
|
||||||
|
|
@ -10738,7 +10738,7 @@ support for Python 3 and PyPy. It is based on cffi.")
|
||||||
(define-public python-cairocffi
|
(define-public python-cairocffi
|
||||||
(package
|
(package
|
||||||
(name "python-cairocffi")
|
(name "python-cairocffi")
|
||||||
(version "1.3.0")
|
(version "1.6.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
;; The PyPI archive does not include the documentation, so use Git.
|
;; The PyPI archive does not include the documentation, so use Git.
|
||||||
|
|
@ -10749,13 +10749,15 @@ support for Python 3 and PyPy. It is based on cffi.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0lylyxyyd8csjhn5kxwzrcr6ick6pvvm1wclpmb5ni28jznxn7lb"))))
|
"161z2bsp0ai4311mz9n0h6vmz80690jbijxx2gqkknygwm2ynjgd"))))
|
||||||
(build-system python-build-system)
|
(build-system pyproject-build-system)
|
||||||
(outputs '("out" "doc"))
|
(outputs '("out" "doc"))
|
||||||
(inputs
|
(inputs
|
||||||
(list glib gtk+ gdk-pixbuf cairo))
|
(list glib gtk+ gdk-pixbuf cairo))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list python-numpy
|
(list python-flit-core
|
||||||
|
python-numpy
|
||||||
|
python-pikepdf
|
||||||
python-pytest
|
python-pytest
|
||||||
python-pytest-cov
|
python-pytest-cov
|
||||||
python-pytest-runner
|
python-pytest-runner
|
||||||
|
|
@ -10785,15 +10787,6 @@ support for Python 3 and PyPy. It is based on cffi.")
|
||||||
(search-input-file inputs "/lib/libglib-2.0.so.0"))
|
(search-input-file inputs "/lib/libglib-2.0.so.0"))
|
||||||
(("libgdk-3.so.0")
|
(("libgdk-3.so.0")
|
||||||
(search-input-file inputs "/lib/libgdk-3.so.0")))))
|
(search-input-file inputs "/lib/libgdk-3.so.0")))))
|
||||||
(add-after 'unpack 'disable-linters
|
|
||||||
;; Their check fails; none of our business.
|
|
||||||
(lambda _
|
|
||||||
(substitute* "setup.cfg"
|
|
||||||
((".*pytest-flake8.*") "")
|
|
||||||
((".*pytest-isort.*") "")
|
|
||||||
(("--flake8") "")
|
|
||||||
(("--isort") ""))
|
|
||||||
#t))
|
|
||||||
(add-after 'install 'install-doc
|
(add-after 'install 'install-doc
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(let* ((data (string-append (assoc-ref outputs "doc") "/share"))
|
(let* ((data (string-append (assoc-ref outputs "doc") "/share"))
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||||
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;; Copyright © 2023 Evgeny Pisemsky <evgeny@pisemsky.com>
|
;;; Copyright © 2023 Evgeny Pisemsky <evgeny@pisemsky.com>
|
||||||
;;; Copyright © 2023 dan <i@dan.games>
|
;;; Copyright © 2023, 2024 dan <i@dan.games>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
|
@ -118,7 +118,7 @@ joystick, and graphics hardware.")
|
||||||
(package
|
(package
|
||||||
(inherit sdl)
|
(inherit sdl)
|
||||||
(name "sdl2")
|
(name "sdl2")
|
||||||
(version "2.28.5")
|
(version "2.30.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
|
|
@ -126,7 +126,7 @@ joystick, and graphics hardware.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1r36cspzv6h8abiqbbkrgm17g975p9wiziir2xabj3721dyv6b1k"))))
|
"0fj7gxc7rlzzrafnx9nmf7ws3paxy583fmx7bcbavi6gr3xmy881"))))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments sdl)
|
(substitute-keyword-arguments (package-arguments sdl)
|
||||||
((#:configure-flags flags)
|
((#:configure-flags flags)
|
||||||
|
|
|
||||||
|
|
@ -4187,7 +4187,7 @@ Wayland compositors.")
|
||||||
(define-public obs-vkcapture
|
(define-public obs-vkcapture
|
||||||
(package
|
(package
|
||||||
(name "obs-vkcapture")
|
(name "obs-vkcapture")
|
||||||
(version "1.3.0")
|
(version "1.5.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
|
@ -4196,7 +4196,7 @@ Wayland compositors.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"18v15bfzm31qkpwipvbqgzak4z6f2hhq6mnz2bvhwnv57whirln6"))))
|
"00a69rg1inkssccqmwp1j85vrw17j2k6d5pidvzfdq94vvad10w5"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f)) ;no tests
|
'(#:tests? #f)) ;no tests
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
|
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
|
||||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2018, 2023 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2018, 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org>
|
;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org>
|
||||||
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
|
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
|
||||||
;;; Copyright © 2022 Kaelyn Takata <kaelyn.alexi@protonmail.com>
|
;;; Copyright © 2022 Kaelyn Takata <kaelyn.alexi@protonmail.com>
|
||||||
;;; Copyright © 2022 dan <i@dan.games>
|
;;; Copyright © 2022, 2024 dan <i@dan.games>
|
||||||
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
|
@ -37,6 +37,7 @@
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
#:use-module (gnu packages check)
|
#:use-module (gnu packages check)
|
||||||
#:use-module (gnu packages cmake)
|
#:use-module (gnu packages cmake)
|
||||||
|
#:use-module (gnu packages cpp)
|
||||||
#:use-module (gnu packages freedesktop)
|
#:use-module (gnu packages freedesktop)
|
||||||
#:use-module (gnu packages gettext)
|
#:use-module (gnu packages gettext)
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
|
|
@ -46,22 +47,19 @@
|
||||||
#:use-module (gnu packages wine)
|
#:use-module (gnu packages wine)
|
||||||
#:use-module (gnu packages xorg))
|
#:use-module (gnu packages xorg))
|
||||||
|
|
||||||
;; Note: Remember to change vulkan-loader version when bumping this.
|
|
||||||
(define %vulkan-sdk-version "sdk-1.3.231.1")
|
|
||||||
|
|
||||||
(define-public spirv-headers
|
(define-public spirv-headers
|
||||||
(package
|
(package
|
||||||
(name "spirv-headers")
|
(name "spirv-headers")
|
||||||
(version %vulkan-sdk-version)
|
(version "1.3.280.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/KhronosGroup/SPIRV-Headers")
|
(url "https://github.com/KhronosGroup/SPIRV-Headers")
|
||||||
(commit version)))
|
(commit (string-append "vulkan-sdk-" version))))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0z8b485hryya2g0jxv7amwg3fjj7pchbgnsa5ldf5fwgh5js0icm"))
|
"17jw5gwj2vmicyd6522b1zp7x551krfj826j0fg5kl0ixv0q08wk"))
|
||||||
(file-name (git-file-name name version))))
|
(file-name (git-file-name name version))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
|
|
@ -84,15 +82,15 @@ and for the GLSL.std.450 extended instruction set.
|
||||||
(define-public spirv-tools
|
(define-public spirv-tools
|
||||||
(package
|
(package
|
||||||
(name "spirv-tools")
|
(name "spirv-tools")
|
||||||
(version %vulkan-sdk-version)
|
(version "1.3.280.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/KhronosGroup/SPIRV-Tools")
|
(url "https://github.com/KhronosGroup/SPIRV-Tools")
|
||||||
(commit version)))
|
(commit (string-append "vulkan-sdk-" version))))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "03d489ind2az7w7q1slj3mdc04372r3qqbnd7m9akxbg7yix1a5j"))
|
(base32 "1sj84ngwcgmydlj88nx1a9jfmhmxlij7wc92khp8wf1vsfplayas"))
|
||||||
(file-name (git-file-name name version))))
|
(file-name (git-file-name name version))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
|
|
@ -116,15 +114,15 @@ parser,disassembler, validator, and optimizer for SPIR-V.")
|
||||||
(define-public spirv-cross
|
(define-public spirv-cross
|
||||||
(package
|
(package
|
||||||
(name "spirv-cross")
|
(name "spirv-cross")
|
||||||
(version %vulkan-sdk-version)
|
(version "1.3.280.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/KhronosGroup/SPIRV-Cross")
|
(url "https://github.com/KhronosGroup/SPIRV-Cross")
|
||||||
(commit version)))
|
(commit (string-append "vulkan-sdk-" version))))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1ypbc1krkr0yywa1m976g3sjyb80l7hxwrnh6gp70w6va1dlnnn9"))
|
(base32 "1k6fbkradknxis85akzzksz9ipm3v42xvrzaamwj2lrgfm8d6r4d"))
|
||||||
(file-name (git-file-name name version))))
|
(file-name (git-file-name name version))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
|
|
@ -189,22 +187,43 @@ translation between LLVM IR and SPIR-V.")
|
||||||
(define-public glslang
|
(define-public glslang
|
||||||
(package
|
(package
|
||||||
(name "glslang")
|
(name "glslang")
|
||||||
(version %vulkan-sdk-version)
|
(version "1.3.280.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/KhronosGroup/glslang")
|
(url "https://github.com/KhronosGroup/glslang")
|
||||||
(commit version)))
|
(commit (string-append "vulkan-sdk-" version))))
|
||||||
(patches (search-patches "glslang-install-static-libs.patch"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"12a1zl8qxa28nbf6m67260c0lwdw3bqbj0jz1382wgm5px1fpqw6"))
|
"1vvgqvwhsimlz8wkk38b9cvp9abggq840iws8al0znzz3mnvkfdn"))
|
||||||
(file-name (git-file-name name version))))
|
(file-name (git-file-name name version))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f ;FIXME: requires bundled SPIRV-Tools
|
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"
|
||||||
#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
|
"-DALLOW_EXTERNAL_SPIRV_TOOLS=ON"
|
||||||
|
,@(if (target-riscv64?)
|
||||||
|
`("-DCMAKE_EXE_LINKER_FLAGS=-latomic")
|
||||||
|
'()))
|
||||||
|
#:phases (modify-phases %standard-phases
|
||||||
|
,@(if (target-ppc32?)
|
||||||
|
`((add-after 'unpack 'skip-failing-test
|
||||||
|
(lambda _
|
||||||
|
;; TODO: Figure out why this test fails.
|
||||||
|
(substitute* "Test/runtests"
|
||||||
|
((".*remap\\.invalid" all)
|
||||||
|
(string-append "# " all))))))
|
||||||
|
'())
|
||||||
|
(replace 'check
|
||||||
|
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
|
||||||
|
(when tests?
|
||||||
|
(invoke "ctest"
|
||||||
|
"-j" (if parallel-tests?
|
||||||
|
(number->string (parallel-job-count))
|
||||||
|
"1")
|
||||||
|
"--rerun-failed"
|
||||||
|
"--output-on-failure")))))))
|
||||||
|
(inputs (list spirv-tools))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list pkg-config python))
|
(list pkg-config python))
|
||||||
(home-page "https://github.com/KhronosGroup/glslang")
|
(home-page "https://github.com/KhronosGroup/glslang")
|
||||||
|
|
@ -222,17 +241,17 @@ interpretation of the specifications for these languages.")
|
||||||
(define-public vulkan-headers
|
(define-public vulkan-headers
|
||||||
(package
|
(package
|
||||||
(name "vulkan-headers")
|
(name "vulkan-headers")
|
||||||
(version %vulkan-sdk-version)
|
(version "1.3.280.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/KhronosGroup/Vulkan-Headers")
|
(url "https://github.com/KhronosGroup/Vulkan-Headers")
|
||||||
(commit version)))
|
(commit (string-append "vulkan-sdk-" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"167zdank6pn66mzjdwgrdlmhmsy4v2k0nhw0nwg649k863rgi00j"))))
|
"13mmv5621z73hlfnsrccbcb4z0d7kwj92a081701vbpss45a4whj"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f)) ; No tests.
|
`(#:tests? #f)) ; No tests.
|
||||||
|
|
@ -246,19 +265,17 @@ interpretation of the specifications for these languages.")
|
||||||
(define-public vulkan-loader
|
(define-public vulkan-loader
|
||||||
(package
|
(package
|
||||||
(name "vulkan-loader")
|
(name "vulkan-loader")
|
||||||
;; XXX: Take a slightly newer commit to fix a test failure on i686:
|
(version "1.3.280.0")
|
||||||
;; https://github.com/KhronosGroup/Vulkan-Loader/pull/1036
|
|
||||||
(version "sdk-1.3.232")
|
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/KhronosGroup/Vulkan-Loader")
|
(url "https://github.com/KhronosGroup/Vulkan-Loader")
|
||||||
(commit "v1.3.232")))
|
(commit (string-append "vulkan-sdk-" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0w69sh669sx9pwlvv2rv92ds2hm2rbzsa6qqcmd8kcad0qfq7dz2"))))
|
"0glix3clqkdbi9kqcp8abmglqpgjd2r2bjqvi11r8sair0z54hnf"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list
|
(list
|
||||||
|
|
@ -286,11 +303,10 @@ interpretation of the specifications for these languages.")
|
||||||
(string-append "includedir=" vulkan-headers "\n"))))))
|
(string-append "includedir=" vulkan-headers "\n"))))))
|
||||||
(add-after 'unpack 'use-system-googletest
|
(add-after 'unpack 'use-system-googletest
|
||||||
(lambda _
|
(lambda _
|
||||||
;; Inform the build system that googletest is already built.
|
(substitute* "tests/CMakeLists.txt"
|
||||||
(substitute* "CMakeLists.txt"
|
(((string-append "message\\(FATAL_ERROR \"Could not "
|
||||||
((".*if\\(TARGET gtest\\)")
|
"find googletest directory. See BUILD.md\"\\)"))
|
||||||
(string-append " find_package(GTest REQUIRED)\n"
|
"find_package(GTest REQUIRED)"))
|
||||||
" if(true)")))
|
|
||||||
;; Use the namespaced variable.
|
;; Use the namespaced variable.
|
||||||
(substitute* "tests/framework/CMakeLists.txt"
|
(substitute* "tests/framework/CMakeLists.txt"
|
||||||
(("PUBLIC gtest ")
|
(("PUBLIC gtest ")
|
||||||
|
|
@ -303,6 +319,10 @@ interpretation of the specifications for these languages.")
|
||||||
wayland))
|
wayland))
|
||||||
(inputs
|
(inputs
|
||||||
(list vulkan-headers libxrandr))
|
(list vulkan-headers libxrandr))
|
||||||
|
(native-search-paths
|
||||||
|
(list (search-path-specification
|
||||||
|
(variable "XDG_DATA_DIRS")
|
||||||
|
(files '("share")))))
|
||||||
(home-page
|
(home-page
|
||||||
"https://github.com/KhronosGroup/Vulkan-Loader")
|
"https://github.com/KhronosGroup/Vulkan-Loader")
|
||||||
(synopsis "Khronos official ICD loader and validation layers for Vulkan")
|
(synopsis "Khronos official ICD loader and validation layers for Vulkan")
|
||||||
|
|
@ -321,26 +341,34 @@ and the ICD.")
|
||||||
(define-public vulkan-tools
|
(define-public vulkan-tools
|
||||||
(package
|
(package
|
||||||
(name "vulkan-tools")
|
(name "vulkan-tools")
|
||||||
(version %vulkan-sdk-version)
|
(version "1.3.280.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/KhronosGroup/Vulkan-Tools")
|
(url "https://github.com/KhronosGroup/Vulkan-Tools")
|
||||||
(commit version)))
|
(commit (string-append "vulkan-sdk-" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet #~(substitute* "tests/icd/mock_icd_tests.cpp"
|
||||||
|
;; Disable driver info test since it relies on git branch info
|
||||||
|
(("ASSERT_EQ\\(std::string\\(driver_properties\\.driverInfo\\)")
|
||||||
|
"// ASSERT_EQ(std::string(driver_properties.driverInfo)")))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0jzwjfx4c7y15wkwfhhc64rzljpi47bxrm5jw5blfsqjh8zsd27a"))))
|
"0w0m04vscr4a6vr682g3mn7mfni740cmai9ylzlgfdggb77y58xz"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
(list glslang libxrandr vulkan-loader wayland wayland-protocols))
|
(list glslang libxrandr vulkan-loader wayland wayland-protocols))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list pkg-config python vulkan-headers))
|
(list googletest pkg-config python volk vulkan-headers))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ;no tests
|
`(#:configure-flags (list "-DBUILD_TESTS=ON")
|
||||||
#:configure-flags (list (string-append "-DGLSLANG_INSTALL_DIR="
|
#:phases (modify-phases %standard-phases
|
||||||
(assoc-ref %build-inputs "glslang")))))
|
(replace 'check
|
||||||
|
(lambda* (#:key tests? #:allow-other-keys)
|
||||||
|
(when tests?
|
||||||
|
(invoke "./tests/vulkan_tools_tests")))))))
|
||||||
(home-page
|
(home-page
|
||||||
"https://github.com/KhronosGroup/Vulkan-Tools")
|
"https://github.com/KhronosGroup/Vulkan-Tools")
|
||||||
(synopsis "Tools and utilities for Vulkan")
|
(synopsis "Tools and utilities for Vulkan")
|
||||||
|
|
@ -354,7 +382,7 @@ API.")
|
||||||
(package
|
(package
|
||||||
(name "shaderc")
|
(name "shaderc")
|
||||||
;; shaderc doesn't follow the versioning scheme of vulkan sdk
|
;; shaderc doesn't follow the versioning scheme of vulkan sdk
|
||||||
(version "2022.3")
|
(version "2024.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
|
@ -364,13 +392,18 @@ API.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0sdbfi66zmqj0c5q5yv2zvcvry7557yzgxk2mwflyjgqh7kdhb8d"))))
|
"1m5jncn6y8c6g83f8nwh86hz33mvv03x7fyr5zq0ynwanrcpn2hb"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(;; FIXME: Skip most of the tests, because enabling system gtest breaks
|
`(;; FIXME: Skip most of the tests, because enabling system gtest breaks
|
||||||
;; the build: <https://github.com/google/shaderc/issues/470>.
|
;; the build: <https://github.com/google/shaderc/issues/470>.
|
||||||
#:configure-flags
|
#:configure-flags
|
||||||
(list "-DSHADERC_SKIP_TESTS=ON"
|
(list "-DSHADERC_SKIP_TESTS=ON"
|
||||||
|
;; The two flags are copied from:
|
||||||
|
;; https://sdk.lunarg.com/sdk/download/1.3.280.0/linux/config.json
|
||||||
|
"-DSHADERC_ENABLE_SHARED_CRT=ON"
|
||||||
|
"-DSHADERC_SKIP_COPYRIGHT_CHECK=ON"
|
||||||
|
"-DPYTHON_EXECUTABLE=python3"
|
||||||
;; Note: despite the name, this just specifies the headers.
|
;; Note: despite the name, this just specifies the headers.
|
||||||
(string-append "-Dglslang_SOURCE_DIR="
|
(string-append "-Dglslang_SOURCE_DIR="
|
||||||
(assoc-ref %build-inputs "glslang") "/include/glslang"))
|
(assoc-ref %build-inputs "glslang") "/include/glslang"))
|
||||||
|
|
@ -396,20 +429,11 @@ API.")
|
||||||
,version
|
,version
|
||||||
,(package-version spirv-tools)
|
,(package-version spirv-tools)
|
||||||
,(package-version glslang))))
|
,(package-version glslang))))
|
||||||
#t))
|
#t)))))
|
||||||
;; see: https://github.com/google/shaderc/pull/1276
|
|
||||||
(add-after 'do-not-look-for-bundled-sources 'drop-additional-glslang-deps
|
|
||||||
(lambda _
|
|
||||||
(substitute* "glslc/CMakeLists.txt"
|
|
||||||
(("OSDependent OGLCompiler") ""))
|
|
||||||
(substitute* "libshaderc/CMakeLists.txt"
|
|
||||||
(("OSDependent OGLCompiler") ""))
|
|
||||||
(substitute* "libshaderc_util/CMakeLists.txt"
|
|
||||||
(("OSDependent OGLCompiler") "")))))))
|
|
||||||
(inputs
|
(inputs
|
||||||
(list glslang python spirv-headers spirv-tools))
|
(list glslang spirv-headers spirv-tools))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list pkg-config))
|
(list pkg-config python))
|
||||||
(home-page "https://github.com/google/shaderc")
|
(home-page "https://github.com/google/shaderc")
|
||||||
(synopsis "Tools for shader compilation")
|
(synopsis "Tools for shader compilation")
|
||||||
(description "Shaderc is a collection of tools, libraries, and tests for
|
(description "Shaderc is a collection of tools, libraries, and tests for
|
||||||
|
|
@ -468,51 +492,37 @@ shader compilation.")
|
||||||
(define-public vulkan-validationlayers
|
(define-public vulkan-validationlayers
|
||||||
(package
|
(package
|
||||||
(name "vulkan-validationlayers")
|
(name "vulkan-validationlayers")
|
||||||
(version %vulkan-sdk-version)
|
(version "1.3.280.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url
|
(url
|
||||||
"https://github.com/KhronosGroup/Vulkan-ValidationLayers")
|
"https://github.com/KhronosGroup/Vulkan-ValidationLayers")
|
||||||
(commit version)))
|
(commit (string-append "vulkan-sdk-" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
;; We don't build static libraries in SPIRV-Tools.
|
||||||
|
(snippet '(substitute* "tests/CMakeLists.txt"
|
||||||
|
(("-static")
|
||||||
|
"")))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"07djrk6yym4vl2b52wr09r8y649v5lark5hnr5rwvlxwxdmd9g75"))))
|
"1w6fsaicrgnzkj5vz2v86a2gk1n7478q6n66ac2920avnin9a64c"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(inputs (list glslang
|
(inputs (list glslang
|
||||||
libxrandr
|
libxrandr
|
||||||
mesa
|
mesa
|
||||||
|
robin-hood-hashing
|
||||||
shaderc
|
shaderc
|
||||||
spirv-tools
|
spirv-tools
|
||||||
vulkan-loader
|
vulkan-loader
|
||||||
|
vulkan-utility-libraries
|
||||||
wayland))
|
wayland))
|
||||||
(native-inputs (list pkg-config python spirv-headers vulkan-headers))
|
(native-inputs (list googletest pkg-config python spirv-headers vulkan-headers))
|
||||||
(arguments
|
(arguments
|
||||||
(list #:tests? #f ;no tests
|
(list #:tests? #f ; tests crash on some hardware (various upstream issues)
|
||||||
#:configure-flags
|
#:configure-flags
|
||||||
#~(list "-DUSE_ROBIN_HOOD_HASHING=OFF"
|
#~(list "-DBUILD_TESTS=ON")
|
||||||
(string-append "-DGLSLANG_INSTALL_DIR="
|
|
||||||
(dirname (dirname
|
|
||||||
(search-input-directory
|
|
||||||
%build-inputs
|
|
||||||
"include/glslang"))))
|
|
||||||
(string-append "-DSPIRV_HEADERS_INSTALL_DIR="
|
|
||||||
(dirname (dirname
|
|
||||||
(search-input-directory
|
|
||||||
%build-inputs
|
|
||||||
"include/spirv"))))
|
|
||||||
(string-append "-DSPIRV_TOOLS_INSTALL_DIR="
|
|
||||||
(dirname (dirname
|
|
||||||
(search-input-directory
|
|
||||||
%build-inputs
|
|
||||||
"include/spirv-tools"))))
|
|
||||||
(string-append "-DVULKAN_HEADERS_INSTALL_DIR="
|
|
||||||
(dirname (dirname
|
|
||||||
(search-input-directory
|
|
||||||
%build-inputs
|
|
||||||
"include/vulkan"))))
|
|
||||||
"-Wno-dev")
|
|
||||||
#:phases #~(modify-phases %standard-phases
|
#:phases #~(modify-phases %standard-phases
|
||||||
(add-after 'install 'set-layer-path-in-manifest
|
(add-after 'install 'set-layer-path-in-manifest
|
||||||
(lambda _
|
(lambda _
|
||||||
|
|
@ -522,7 +532,19 @@ shader compilation.")
|
||||||
(substitute* manifest
|
(substitute* manifest
|
||||||
(("\"libVkLayer_khronos_validation.so\"")
|
(("\"libVkLayer_khronos_validation.so\"")
|
||||||
(string-append "\"" #$output
|
(string-append "\"" #$output
|
||||||
"/lib/libVkLayer_khronos_validation.so\"")))))))))
|
"/lib/libVkLayer_khronos_validation.so\""))))))
|
||||||
|
(replace 'check
|
||||||
|
(lambda* (#:key tests? #:allow-other-keys)
|
||||||
|
(when tests?
|
||||||
|
(setenv "VK_LAYER_PATH"
|
||||||
|
(string-append (getcwd) "/layers"))
|
||||||
|
(setenv "LD_LIBRARY_PATH"
|
||||||
|
(string-append #$(this-package-input
|
||||||
|
"vulkan-loader") "/lib"))
|
||||||
|
(setenv "MESA_SHADER_CACHE_DIR"
|
||||||
|
(string-append (getcwd) "/shader-cache"))
|
||||||
|
(setenv "XDG_RUNTIME_DIR" (getcwd))
|
||||||
|
(invoke "./tests/vk_layer_validation_tests")))))))
|
||||||
(home-page "https://github.com/KhronosGroup/Vulkan-ValidationLayers")
|
(home-page "https://github.com/KhronosGroup/Vulkan-ValidationLayers")
|
||||||
(synopsis "Khronos official validation layers for Vulkan")
|
(synopsis "Khronos official validation layers for Vulkan")
|
||||||
(description
|
(description
|
||||||
|
|
@ -534,16 +556,16 @@ use the Vulkan API.")
|
||||||
(define-public volk
|
(define-public volk
|
||||||
(package
|
(package
|
||||||
(name "volk")
|
(name "volk")
|
||||||
(version %vulkan-sdk-version)
|
(version "1.3.280.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/zeux/volk")
|
(url "https://github.com/zeux/volk")
|
||||||
(commit version)))
|
(commit (string-append "vulkan-sdk-" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0xaw3kg754mknx8lfj1p74a9npjfvdvlpicvn0hla4495zpc10rq"))))
|
"0x4jhc8n9c4k8svmmcaxxs613xbsav7wam94gacddlm738cwp13v"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f ;no test
|
'(#:tests? #f ;no test
|
||||||
|
|
@ -588,3 +610,27 @@ storage.")
|
||||||
(home-page
|
(home-page
|
||||||
"https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator")
|
"https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public vulkan-utility-libraries
|
||||||
|
(package
|
||||||
|
(name "vulkan-utility-libraries")
|
||||||
|
(version "1.3.280.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/KhronosGroup/Vulkan-Utility-Libraries")
|
||||||
|
(commit (string-append "vulkan-sdk-" version))))
|
||||||
|
(sha256
|
||||||
|
(base32 "17fmalilczs4x435f8kdx8bf0x5mnjhkmcp34xap8lanpbyzs84q"))
|
||||||
|
(file-name (git-file-name name version))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:configure-flags #~(list "-DBUILD_TESTS=ON")))
|
||||||
|
(inputs (list vulkan-headers))
|
||||||
|
(native-inputs (list googletest magic-enum))
|
||||||
|
(home-page "https://github.com/KhronosGroup/Vulkan-Utility-Libraries")
|
||||||
|
(synopsis "Utility libraries for Vulkan developers")
|
||||||
|
(description "Utility libraries for Vulkan developers.")
|
||||||
|
(license license:asl2.0)))
|
||||||
|
|
|
||||||
|
|
@ -735,7 +735,7 @@ rasterisation.")
|
||||||
(define-public libdrm
|
(define-public libdrm
|
||||||
(package
|
(package
|
||||||
(name "libdrm")
|
(name "libdrm")
|
||||||
(version "2.4.117")
|
(version "2.4.120")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
|
@ -743,7 +743,7 @@ rasterisation.")
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0ar4c4ikcbm1s4sg09ld406izq5s1yk7b2n0mmvql77bwdlqv252"))))
|
"0yijzgg6rdsa68bz03sw0lcfa2nclv9m3as1cja50wkcyxim7x9v"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:configure-flags
|
(list #:configure-flags
|
||||||
|
|
|
||||||
Reference in a new issue