diff options
author | John Kehayias <john.kehayias@protonmail.com> | 2024-04-16 20:58:06 -0400 |
---|---|---|
committer | John Kehayias <john.kehayias@protonmail.com> | 2024-04-16 20:58:06 -0400 |
commit | 2d5736cc3e869fadd2592cc13a8d332fac63b144 (patch) | |
tree | 3ff2045099afb796eaa294e693ce4708e2021af9 /gnu | |
parent | dbfb691c5b4bc66682657ebf124815f5b93fcdbd (diff) | |
parent | 953253eff32197863d223e5fece42b3c2440df01 (diff) | |
download | guix-2d5736cc3e869fadd2592cc13a8d332fac63b144.tar.gz guix-2d5736cc3e869fadd2592cc13a8d332fac63b144.zip |
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
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/local.mk | 3 | ||||
-rw-r--r-- | gnu/packages/cpp.scm | 5 | ||||
-rw-r--r-- | gnu/packages/game-development.scm | 17 | ||||
-rw-r--r-- | gnu/packages/gl.scm | 60 | ||||
-rw-r--r-- | gnu/packages/gnome.scm | 7 | ||||
-rw-r--r-- | gnu/packages/graphics.scm | 27 | ||||
-rw-r--r-- | gnu/packages/gtk.scm | 85 | ||||
-rw-r--r-- | gnu/packages/patches/cairo-CVE-2018-19876.patch | 37 | ||||
-rw-r--r-- | gnu/packages/patches/cairo-CVE-2020-35492.patch | 49 | ||||
-rw-r--r-- | gnu/packages/patches/glslang-install-static-libs.patch | 61 | ||||
-rw-r--r-- | gnu/packages/python-xyz.scm | 19 | ||||
-rw-r--r-- | gnu/packages/sdl.scm | 6 | ||||
-rw-r--r-- | gnu/packages/video.scm | 4 | ||||
-rw-r--r-- | gnu/packages/vulkan.scm | 216 | ||||
-rw-r--r-- | gnu/packages/xdisorg.scm | 4 |
15 files changed, 259 insertions, 341 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 64efee901f..ccff8648be 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1012,8 +1012,6 @@ dist_patch_DATA = \ %D%/packages/patches/breezy-fix-gio.patch \ %D%/packages/patches/byobu-writable-status.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-remove-test-sqlite.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-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/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index b4a0abb525..a2a3eb226e 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -39,6 +39,7 @@ ;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com> ;;; Copyright © 2023 Paul A. Patience <paul@apatience.com> +;;; Copyright © 2024 dan <i@dan.games> ;;; ;;; 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 (package (name "magic-enum") - (version "0.7.3") + (version "0.9.5") (home-page "https://github.com/Neargye/magic_enum") (source (origin (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)) (sha256 (base32 - "1x47radgsifgz3vn2561mlvf4cq46ii33cpyqf01znm56iirwq89")))) + "14ys5sn2v1mai8bclvi81cp65g6jblqpdsi94639hphca5v8gka3")))) (build-system cmake-build-system) (synopsis "C++17 header only library for compile time reflection of enums") (description "Magic Enum offers static reflection of enums, with diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index bf4adfb46b..8fecd95940 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -2095,7 +2095,7 @@ scripted in a Python-like language.") (define-public godot (package (name "godot") - (version "4.1.3") + (version "4.2.1") (source (origin (method git-fetch) (uri (git-reference @@ -2104,7 +2104,7 @@ scripted in a Python-like language.") (file-name (git-file-name name version)) (sha256 (base32 - "1mwwzf77ixkalciqakn6q42g9sl2570didfll406sfs42wz534ng")) + "0d5y678986lx4a4xjkxs5glh2dckp8wwl3r3mw72inq7gvaa18s3")) (modules '((guix build utils) (ice-9 ftw) (srfi srfi-1))) @@ -2117,19 +2117,28 @@ scripted in a Python-like language.") (let* ((preserved-files '("README.md" "amd-fsr" + "amd-fsr2" "assimp" "astcenc" "basis_universal" ;; Godot needs ca-certificates.crt, but that is ;; not available in build environment "certs" + "clipper2" "cvtt" "linuxbsd_headers" "etc2comp" "etcpak" "fonts" "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" + "libktx" "libsimplewebm" "meshoptimizer" "minimp3" @@ -2170,7 +2179,9 @@ scripted in a Python-like language.") "builtin_embree=no" "builtin_enet=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_harfbuzz=no" "builtin_icu4c=no" diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 2894497022..2100bb4872 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; 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, 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> @@ -297,17 +297,17 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "23.3.2") + (version "24.0.4") (source - (origin - (method url-fetch) - (uri (list (string-append "https://archive.mesa3d.org/" - "mesa-" version ".tar.xz") - (string-append "ftp://ftp.freedesktop.org/pub/mesa/" - "mesa-" version ".tar.xz"))) - (sha256 - (base32 - "1p4swrbmz3kb1805kdj973hf8virgmix4m9qprmcb2bgl4gviz1w")))) + (origin + (method url-fetch) + (uri (list (string-append "https://archive.mesa3d.org/" + "mesa-" version ".tar.xz") + (string-append "ftp://ftp.freedesktop.org/pub/mesa/" + "mesa-" version ".tar.xz"))) + (sha256 + (base32 + "1w25lwdrb0ffrx2fjk9izbvpcgf9ypfc7v32zybwvjwql0qbvzlh")))) (build-system meson-build-system) (propagated-inputs ;; The following are in the Requires.private field of gl.pc. @@ -327,6 +327,7 @@ also known as DXTn or DXTC) for Mesa.") libxrandr libxvmc llvm-for-mesa + vulkan-loader wayland wayland-protocols `(,zstd "lib"))) @@ -352,16 +353,11 @@ also known as DXTn or DXTC) for Mesa.") #:configure-flags #~(list #$@(cond - ((target-aarch64?) - ;; TODO: Fix svga driver for non-Intel architectures. + ((or (target-aarch64?) (target-arm32?)) '("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\ -panfrost,r300,r600,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")) +panfrost,r300,r600,svga,swrast,tegra,v3d,vc4,virgl,zink")) ((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 '("-Dgallium-drivers=crocus,iris,nouveau,r300,r600,radeonsi,\ svga,swrast,virgl,zink"))) @@ -395,9 +391,9 @@ svga,swrast,virgl,zink"))) ;; Enable the Vulkan overlay layer on all architectures. "-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. - "-Dvideo-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc" + "-Dvideo-codecs=all" ;; Enable ZSTD compression for shader cache. "-Dzstd=enabled" @@ -454,24 +450,17 @@ svga,swrast,virgl,zink"))) ;; There are some tests which fail specifically on powerpc. `((substitute* '(;; LLVM ERROR: Relocation type not implemented yet! "src/gallium/drivers/llvmpipe/meson.build" - ;; This is probably a big-endian test failure. "src/gallium/targets/osmesa/meson.build") (("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" - (("and not with_platform_windows") "and with_platform_windows")) - (substitute* "src/compiler/nir/meson.build" - ((".*loop_unroll_tests.*") "")))) + (("and not with_platform_windows") + "and with_platform_windows")))) ("i686-linux" ;; This test is known to fail on i686 (see: ;; https://gitlab.freedesktop.org/mesa/mesa/-/issues/4091). `((substitute* "src/util/meson.build" ((".*'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" ;; Disable some of the llvmpipe tests. `((substitute* "src/gallium/drivers/llvmpipe/meson.build" @@ -479,7 +468,7 @@ svga,swrast,virgl,zink"))) (_ '((display "No tests to disable on this architecture.\n")))))) (add-before 'configure 'fix-dlopen-libnames - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) (let ((out #$output)) ;; Remain agnostic to .so.X.Y.Z versions while doing ;; the substitutions so we're future-safe. @@ -495,7 +484,12 @@ svga,swrast,virgl,zink"))) ;; it's never installed since Mesa removed its ;; egl_gallium support. (("\"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 (lambda _ (let ((out #$output) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4934ade3dd..787cf66f09 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3746,12 +3746,15 @@ diagrams.") "svg1.1/masking-mask-01-b.svg" ;; This test fails on aarch64: "bugs/777834-empty-text-children.svg" - ;; These two tests fail due to slightly different ;; text rendering (different kerning or similar), ;; nothing alarming. "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 (list pkg-config `(,glib "bin") ; glib-mkenums, etc. diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 85e4eed3b1..3571a45b84 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> @@ -143,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 @@ -1192,7 +1193,7 @@ graphics.") (define-public openexr (package (name "openexr") - (version "3.1.3") + (version "3.2.4") (source (origin (method git-fetch) (uri (git-reference @@ -1202,16 +1203,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") @@ -1239,7 +1247,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 diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index da56834df6..b0098e780e 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -36,6 +36,7 @@ ;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr> ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2024 John Kehayias <john.kehayias@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -121,7 +122,11 @@ #:use-module (gnu packages pulseaudio) #:use-module (srfi srfi-1) #: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 (package @@ -160,10 +165,10 @@ such as mate-panel and xfce4-panel.") (home-page "https://gitlab.com/vala-panel-project/vala-panel-appmenu") (license (list license:lgpl3)))) -(define-public cairo +(define cairo (package (name "cairo") - (version "1.16.0") + (version "1.18.0") (source (origin (method url-fetch) @@ -171,30 +176,13 @@ such as mate-panel and xfce4-panel.") (string-append "https://cairographics.org/releases/cairo-" version ".tar.xz")) (sha256 - (base32 "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy")) - (patches (search-patches - "cairo-CVE-2018-19876.patch" - "cairo-CVE-2020-35492.patch")))) - (build-system glib-or-gtk-build-system) - (outputs '("out" "doc")) + (base32 "0r0by563s75xyzz0d0j1nmjqmdrk2x9agk7r57p3v8vqp4v0ffi4")))) + (build-system meson-build-system) (arguments `(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html + #:glib-or-gtk? #t #:configure-flags - (list - "--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")))) + (list "-Dtests=disabled"))) (native-inputs `(,@(if (target-hurd?) '() @@ -212,15 +200,10 @@ such as mate-panel and xfce4-panel.") '() `(("poppler" ,poppler))))) (propagated-inputs - `( ;; ("cogl" ,cogl) - ;; ("directfb" ,directfb) - ("fontconfig" ,fontconfig) + `(("fontconfig" ,fontconfig) ("freetype" ,freetype) ("glib" ,glib) - ;; ("gtk+" ,gtk+) ("libpng" ,libpng) - ;; ("librsvg" ,librsvg) - ;; ("opengl" ,mesa) ("pixman" ,pixman) ("x11" ,libx11) ("xcb" ,libxcb) @@ -236,24 +219,50 @@ output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.") ;; This project is dual-licensed. (list 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 ;; Variant used to break the dependency cycle between Poppler and Cairo. (package/inherit cairo - (inputs (alist-delete "poppler" (package-inputs cairo))) - (properties `((hidden? . #t))))) + (inputs (alist-delete "poppler" (package-inputs cairo))))) (define-public cairo-xcb (package/inherit cairo + (properties (alist-delete 'hidden? (package-properties cairo))) (name "cairo-xcb") (inputs `(("mesa" ,mesa) ,@(package-inputs cairo))) (arguments - `(#:tests? #f - #:configure-flags - '("--enable-xlib-xcb" "--enable-gl" "--enable-egl"))) + (substitute-keyword-arguments (package-arguments cairo) + ((#:configure-flags flags ''()) + #~(cons "-Dxlib-xcb=enabled" #$flags)))) (synopsis "2D graphics library (with X11 support)"))) (define-public harfbuzz @@ -1959,7 +1968,7 @@ printing and other features typical of a source code editor.") (define-public python-pycairo (package (name "python-pycairo") - (version "1.21.0") + (version "1.26.0") (source (origin (method url-fetch) @@ -1967,7 +1976,7 @@ printing and other features typical of a source code editor.") version "/pycairo-" version ".tar.gz")) (sha256 (base32 - "0jxpyibpjadw8ah1mqbhvryr795myiznb1ikm8wgjbamibqhf695")))) + "1sybz43sj4ynjahlkidrcdpdrq8yi1avkndc2hgb5pgvfjld1p9d")))) (build-system python-build-system) (native-inputs (list pkg-config python-pytest)) diff --git a/gnu/packages/patches/cairo-CVE-2018-19876.patch b/gnu/packages/patches/cairo-CVE-2018-19876.patch deleted file mode 100644 index c0fba2ecaa..0000000000 --- a/gnu/packages/patches/cairo-CVE-2018-19876.patch +++ /dev/null @@ -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 - } - } - diff --git a/gnu/packages/patches/cairo-CVE-2020-35492.patch b/gnu/packages/patches/cairo-CVE-2020-35492.patch deleted file mode 100644 index e8b90fa5c5..0000000000 --- a/gnu/packages/patches/cairo-CVE-2020-35492.patch +++ /dev/null @@ -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; diff --git a/gnu/packages/patches/glslang-install-static-libs.patch b/gnu/packages/patches/glslang-install-static-libs.patch deleted file mode 100644 index a155dde30e..0000000000 --- a/gnu/packages/patches/glslang-install-static-libs.patch +++ /dev/null @@ -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) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 44c709a880..bac90b1e07 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -10738,7 +10738,7 @@ support for Python 3 and PyPy. It is based on cffi.") (define-public python-cairocffi (package (name "python-cairocffi") - (version "1.3.0") + (version "1.6.1") (source (origin ;; 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)) (sha256 (base32 - "0lylyxyyd8csjhn5kxwzrcr6ick6pvvm1wclpmb5ni28jznxn7lb")))) - (build-system python-build-system) + "161z2bsp0ai4311mz9n0h6vmz80690jbijxx2gqkknygwm2ynjgd")))) + (build-system pyproject-build-system) (outputs '("out" "doc")) (inputs (list glib gtk+ gdk-pixbuf cairo)) (native-inputs - (list python-numpy + (list python-flit-core + python-numpy + python-pikepdf python-pytest python-pytest-cov 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")) (("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 (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((data (string-append (assoc-ref outputs "doc") "/share")) diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 3a4aafcaa7..d3a0e33b19 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.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. ;;; @@ -118,7 +118,7 @@ joystick, and graphics hardware.") (package (inherit sdl) (name "sdl2") - (version "2.28.5") + (version "2.30.1") (source (origin (method url-fetch) (uri @@ -126,7 +126,7 @@ joystick, and graphics hardware.") version ".tar.gz")) (sha256 (base32 - "1r36cspzv6h8abiqbbkrgm17g975p9wiziir2xabj3721dyv6b1k")))) + "0fj7gxc7rlzzrafnx9nmf7ws3paxy583fmx7bcbavi6gr3xmy881")))) (arguments (substitute-keyword-arguments (package-arguments sdl) ((#:configure-flags flags) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index c59d0256b9..00072055d3 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -4187,7 +4187,7 @@ Wayland compositors.") (define-public obs-vkcapture (package (name "obs-vkcapture") - (version "1.3.0") + (version "1.5.0") (source (origin (method git-fetch) (uri (git-reference @@ -4196,7 +4196,7 @@ Wayland compositors.") (file-name (git-file-name name version)) (sha256 (base32 - "18v15bfzm31qkpwipvbqgzak4z6f2hhq6mnz2bvhwnv57whirln6")))) + "00a69rg1inkssccqmwp1j85vrw17j2k6d5pidvzfdq94vvad10w5")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ;no tests diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index 285d6be7f5..23d0c72ee3 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -1,11 +1,11 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; 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 © 2021 Mathieu Othacehe <othacehe@gnu.org> ;;; 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> ;;; ;;; This file is part of GNU Guix. @@ -37,6 +37,7 @@ #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages cmake) + #:use-module (gnu packages cpp) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) @@ -46,22 +47,19 @@ #:use-module (gnu packages wine) #: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 (package (name "spirv-headers") - (version %vulkan-sdk-version) + (version "1.3.280.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/KhronosGroup/SPIRV-Headers") - (commit version))) + (commit (string-append "vulkan-sdk-" version)))) (sha256 (base32 - "0z8b485hryya2g0jxv7amwg3fjj7pchbgnsa5ldf5fwgh5js0icm")) + "17jw5gwj2vmicyd6522b1zp7x551krfj826j0fg5kl0ixv0q08wk")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -84,15 +82,15 @@ and for the GLSL.std.450 extended instruction set. (define-public spirv-tools (package (name "spirv-tools") - (version %vulkan-sdk-version) + (version "1.3.280.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/KhronosGroup/SPIRV-Tools") - (commit version))) + (commit (string-append "vulkan-sdk-" version)))) (sha256 - (base32 "03d489ind2az7w7q1slj3mdc04372r3qqbnd7m9akxbg7yix1a5j")) + (base32 "1sj84ngwcgmydlj88nx1a9jfmhmxlij7wc92khp8wf1vsfplayas")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -116,15 +114,15 @@ parser,disassembler, validator, and optimizer for SPIR-V.") (define-public spirv-cross (package (name "spirv-cross") - (version %vulkan-sdk-version) + (version "1.3.280.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/KhronosGroup/SPIRV-Cross") - (commit version))) + (commit (string-append "vulkan-sdk-" version)))) (sha256 - (base32 "1ypbc1krkr0yywa1m976g3sjyb80l7hxwrnh6gp70w6va1dlnnn9")) + (base32 "1k6fbkradknxis85akzzksz9ipm3v42xvrzaamwj2lrgfm8d6r4d")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -189,22 +187,43 @@ translation between LLVM IR and SPIR-V.") (define-public glslang (package (name "glslang") - (version %vulkan-sdk-version) + (version "1.3.280.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/KhronosGroup/glslang") - (commit version))) - (patches (search-patches "glslang-install-static-libs.patch")) + (commit (string-append "vulkan-sdk-" version)))) (sha256 (base32 - "12a1zl8qxa28nbf6m67260c0lwdw3bqbj0jz1382wgm5px1fpqw6")) + "1vvgqvwhsimlz8wkk38b9cvp9abggq840iws8al0znzz3mnvkfdn")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (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 (list pkg-config python)) (home-page "https://github.com/KhronosGroup/glslang") @@ -222,17 +241,17 @@ interpretation of the specifications for these languages.") (define-public vulkan-headers (package (name "vulkan-headers") - (version %vulkan-sdk-version) + (version "1.3.280.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/KhronosGroup/Vulkan-Headers") - (commit version))) + (commit (string-append "vulkan-sdk-" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "167zdank6pn66mzjdwgrdlmhmsy4v2k0nhw0nwg649k863rgi00j")))) + "13mmv5621z73hlfnsrccbcb4z0d7kwj92a081701vbpss45a4whj")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; No tests. @@ -246,19 +265,17 @@ interpretation of the specifications for these languages.") (define-public vulkan-loader (package (name "vulkan-loader") - ;; XXX: Take a slightly newer commit to fix a test failure on i686: - ;; https://github.com/KhronosGroup/Vulkan-Loader/pull/1036 - (version "sdk-1.3.232") + (version "1.3.280.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/KhronosGroup/Vulkan-Loader") - (commit "v1.3.232"))) + (commit (string-append "vulkan-sdk-" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0w69sh669sx9pwlvv2rv92ds2hm2rbzsa6qqcmd8kcad0qfq7dz2")))) + "0glix3clqkdbi9kqcp8abmglqpgjd2r2bjqvi11r8sair0z54hnf")))) (build-system cmake-build-system) (arguments (list @@ -286,11 +303,10 @@ interpretation of the specifications for these languages.") (string-append "includedir=" vulkan-headers "\n")))))) (add-after 'unpack 'use-system-googletest (lambda _ - ;; Inform the build system that googletest is already built. - (substitute* "CMakeLists.txt" - ((".*if\\(TARGET gtest\\)") - (string-append " find_package(GTest REQUIRED)\n" - " if(true)"))) + (substitute* "tests/CMakeLists.txt" + (((string-append "message\\(FATAL_ERROR \"Could not " + "find googletest directory. See BUILD.md\"\\)")) + "find_package(GTest REQUIRED)")) ;; Use the namespaced variable. (substitute* "tests/framework/CMakeLists.txt" (("PUBLIC gtest ") @@ -303,6 +319,10 @@ interpretation of the specifications for these languages.") wayland)) (inputs (list vulkan-headers libxrandr)) + (native-search-paths + (list (search-path-specification + (variable "XDG_DATA_DIRS") + (files '("share"))))) (home-page "https://github.com/KhronosGroup/Vulkan-Loader") (synopsis "Khronos official ICD loader and validation layers for Vulkan") @@ -321,26 +341,34 @@ and the ICD.") (define-public vulkan-tools (package (name "vulkan-tools") - (version %vulkan-sdk-version) + (version "1.3.280.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/KhronosGroup/Vulkan-Tools") - (commit version))) + (commit (string-append "vulkan-sdk-" 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 (base32 - "0jzwjfx4c7y15wkwfhhc64rzljpi47bxrm5jw5blfsqjh8zsd27a")))) + "0w0m04vscr4a6vr682g3mn7mfni740cmai9ylzlgfdggb77y58xz")))) (build-system cmake-build-system) (inputs (list glslang libxrandr vulkan-loader wayland wayland-protocols)) (native-inputs - (list pkg-config python vulkan-headers)) + (list googletest pkg-config python volk vulkan-headers)) (arguments - `(#:tests? #f ;no tests - #:configure-flags (list (string-append "-DGLSLANG_INSTALL_DIR=" - (assoc-ref %build-inputs "glslang"))))) + `(#:configure-flags (list "-DBUILD_TESTS=ON") + #:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "./tests/vulkan_tools_tests"))))))) (home-page "https://github.com/KhronosGroup/Vulkan-Tools") (synopsis "Tools and utilities for Vulkan") @@ -354,7 +382,7 @@ API.") (package (name "shaderc") ;; shaderc doesn't follow the versioning scheme of vulkan sdk - (version "2022.3") + (version "2024.0") (source (origin (method git-fetch) @@ -364,13 +392,18 @@ API.") (file-name (git-file-name name version)) (sha256 (base32 - "0sdbfi66zmqj0c5q5yv2zvcvry7557yzgxk2mwflyjgqh7kdhb8d")))) + "1m5jncn6y8c6g83f8nwh86hz33mvv03x7fyr5zq0ynwanrcpn2hb")))) (build-system cmake-build-system) (arguments `(;; FIXME: Skip most of the tests, because enabling system gtest breaks ;; the build: <https://github.com/google/shaderc/issues/470>. #:configure-flags (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. (string-append "-Dglslang_SOURCE_DIR=" (assoc-ref %build-inputs "glslang") "/include/glslang")) @@ -396,20 +429,11 @@ API.") ,version ,(package-version spirv-tools) ,(package-version glslang)))) - #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") ""))))))) + #t))))) (inputs - (list glslang python spirv-headers spirv-tools)) + (list glslang spirv-headers spirv-tools)) (native-inputs - (list pkg-config)) + (list pkg-config python)) (home-page "https://github.com/google/shaderc") (synopsis "Tools for shader compilation") (description "Shaderc is a collection of tools, libraries, and tests for @@ -468,51 +492,37 @@ shader compilation.") (define-public vulkan-validationlayers (package (name "vulkan-validationlayers") - (version %vulkan-sdk-version) + (version "1.3.280.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/KhronosGroup/Vulkan-ValidationLayers") - (commit version))) + (commit (string-append "vulkan-sdk-" 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 (base32 - "07djrk6yym4vl2b52wr09r8y649v5lark5hnr5rwvlxwxdmd9g75")))) + "1w6fsaicrgnzkj5vz2v86a2gk1n7478q6n66ac2920avnin9a64c")))) (build-system cmake-build-system) (inputs (list glslang libxrandr mesa + robin-hood-hashing shaderc spirv-tools vulkan-loader + vulkan-utility-libraries wayland)) - (native-inputs (list pkg-config python spirv-headers vulkan-headers)) + (native-inputs (list googletest pkg-config python spirv-headers vulkan-headers)) (arguments - (list #:tests? #f ;no tests + (list #:tests? #f ; tests crash on some hardware (various upstream issues) #:configure-flags - #~(list "-DUSE_ROBIN_HOOD_HASHING=OFF" - (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") + #~(list "-DBUILD_TESTS=ON") #:phases #~(modify-phases %standard-phases (add-after 'install 'set-layer-path-in-manifest (lambda _ @@ -522,7 +532,19 @@ shader compilation.") (substitute* manifest (("\"libVkLayer_khronos_validation.so\"") (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") (synopsis "Khronos official validation layers for Vulkan") (description @@ -534,16 +556,16 @@ use the Vulkan API.") (define-public volk (package (name "volk") - (version %vulkan-sdk-version) + (version "1.3.280.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/zeux/volk") - (commit version))) + (commit (string-append "vulkan-sdk-" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0xaw3kg754mknx8lfj1p74a9npjfvdvlpicvn0hla4495zpc10rq")))) + "0x4jhc8n9c4k8svmmcaxxs613xbsav7wam94gacddlm738cwp13v")))) (build-system cmake-build-system) (arguments '(#:tests? #f ;no test @@ -588,3 +610,27 @@ storage.") (home-page "https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator") (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))) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 7950de0d9b..30ca9140d0 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -735,7 +735,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.117") + (version "2.4.120") (source (origin (method url-fetch) (uri (string-append @@ -743,7 +743,7 @@ rasterisation.") version ".tar.xz")) (sha256 (base32 - "0ar4c4ikcbm1s4sg09ld406izq5s1yk7b2n0mmvql77bwdlqv252")))) + "0yijzgg6rdsa68bz03sw0lcfa2nclv9m3as1cja50wkcyxim7x9v")))) (build-system meson-build-system) (arguments (list #:configure-flags |