diff options
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/check.scm | 8 | ||||
-rw-r--r-- | gnu/packages/freedesktop.scm | 162 | ||||
-rw-r--r-- | gnu/packages/image.scm | 51 | ||||
-rw-r--r-- | gnu/packages/jami.scm | 5 | ||||
-rw-r--r-- | gnu/packages/lisp.scm | 15 | ||||
-rw-r--r-- | gnu/packages/patches/vlc-dav1d-compat.patch | 70 | ||||
-rw-r--r-- | gnu/packages/video.scm | 57 | ||||
-rw-r--r-- | gnu/packages/vulkan.scm | 113 |
9 files changed, 267 insertions, 215 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 02cd182f06..a630af7a0b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1981,6 +1981,7 @@ dist_patch_DATA = \ %D%/packages/patches/vinagre-newer-rdp-parameters.patch \ %D%/packages/patches/virglrenderer-CVE-2017-6386.patch \ %D%/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch \ + %D%/packages/patches/vlc-dav1d-compat.patch \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index c900a055d5..56a848fd17 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -1400,13 +1400,13 @@ Python's @code{random.seed}.") (define-public python-pytest-mock (package (name "python-pytest-mock") - (version "3.6.1") + (version "3.10.0") (source (origin (method url-fetch) (uri (pypi-uri "pytest-mock" version)) (sha256 - (base32 "0qhfmd05z3g88bnwq6644jl6p5wy01i4yy7h8883z9jjih2pl8a0")) + (base32 "0kzdwwdjw001qzf1n4qzh7c364rvmb0cmkfqdwr2l9bwxy2v1ggv")) (modules '((guix build utils))) (snippet ;; Some tests do a string match on Pytest output, and fails when @@ -1512,14 +1512,14 @@ result back.") (define-public python-pytest-timeout (package (name "python-pytest-timeout") - (version "2.0.2") + (version "2.1.0") (source (origin (method url-fetch) (uri (pypi-uri "pytest-timeout" version)) (sha256 (base32 - "04l1cd2qyp3fbccw95a8nqg682r647v7yil8807dgs7xv9a8pyg6")))) + "1nf339zg6qam3681f72j9c8fbqk8qcilna92psmzh4n60isa0z60")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index d74d6aa935..7d0ba22f75 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -391,112 +391,82 @@ inappropriate content.") (name "xdg-utils") (version "1.1.3") (source - (origin - (method url-fetch) - (uri (string-append - "https://portland.freedesktop.org/download/xdg-utils-" - version ".tar.gz")) - (sha256 - (base32 - "1nai806smz3zcb2l5iny4x7li0fak0rzmjg6vlyhdqm8z25b166p")))) + (origin + (method url-fetch) + (uri (string-append + "https://portland.freedesktop.org/download/xdg-utils-" + version ".tar.gz")) + (sha256 + (base32 + "1nai806smz3zcb2l5iny4x7li0fak0rzmjg6vlyhdqm8z25b166p")))) (build-system gnu-build-system) (native-inputs (list docbook-xsl docbook-xml-4.1.2 libxslt w3m xmlto)) (inputs - `(("awk" ,gawk) - ;; TODO(staging): Make this unconditional, to avoid canonical packages, - ;; see <https://lists.gnu.org/archive/html/guix-devel/2020-02/msg00148.html>. - ,@(if (%current-target-system) - `(("bash-minimal" ,bash-minimal)) ; for 'wrap-program' - '()) - ("coreutils" ,coreutils) - ,@(if (%current-target-system) - `(("file" ,file)) - '()) - ("grep" ,grep) - ("inetutils" ,inetutils) ; xdg-screensaver uses `hostname' - ("perl-file-mimeinfo" ,perl-file-mimeinfo) ; for mimeopen fallback - ("sed" ,sed) - ("xprop" ,xprop) ; for Xfce detecting - ("xset" ,xset))) ; for xdg-screensaver + (list bash-minimal ;for 'wrap-program' + coreutils + file + gawk + grep + inetutils ;xdg-screensaver uses `hostname' + perl-file-mimeinfo ;for mimeopen fallback + sed + xprop ;for Xfce detecting + xset)) ;for xdg-screensaver (arguments - `(#:tests? #f ; no check target - #:modules ((srfi srfi-26) + (list + #:tests? #f ;no check target + #:modules `((srfi srfi-26) ,@%gnu-build-system-modules) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-hardcoded-paths - ;; TODO(staging): make unconditional - (,@(if (%current-target-system) - '(lambda* (#:key inputs #:allow-other-keys)) - '(lambda _)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-hardcoded-paths + (lambda* (#:key inputs #:allow-other-keys) (substitute* "scripts/xdg-mime.in" (("/usr/bin/file") - (,@(if (%current-target-system) - '(search-input-file inputs "bin/file") - '(which "file"))))) + (search-input-file inputs "bin/file"))) (substitute* "scripts/xdg-open.in" (("/usr/bin/printf") - (,@(if (%current-target-system) - '(search-input-file inputs "bin/printf") - '(which "printf"))))) - #t)) - (add-before 'build 'locate-catalog-files - ;; TODO(staging): Make unconditional for simplicity. - (lambda* (#:key inputs ,@(if (%current-target-system) - '(native-inputs) - '()) #:allow-other-keys) - ;; TODO(staging): Make unconditional for simplicity and - ;; to avoid depending on input labels. - (let ,(if (%current-target-system) - `((native-inputs (or native-inputs inputs)) - (xmldoc (search-input-directory native-inputs - "xml/dtd/docbook")) - (xsldoc - (search-input-directory - native-inputs - (string-append "xml/xsl/docbook-xsl-" - ,(package-version docbook-xsl))))) - `((xmldoc - (string-append (assoc-ref inputs "docbook-xml") - "/xml/dtd/docbook")) - (xsldoc - (string-append (assoc-ref inputs "docbook-xsl") - "/xml/xsl/docbook-xsl-" - ,(package-version docbook-xsl))))) - (for-each (lambda (file) - (substitute* file - (("http://.*/docbookx\\.dtd") - (string-append xmldoc "/docbookx.dtd")))) - (find-files "scripts/desc" "\\.xml$")) - (substitute* "scripts/Makefile" - ;; Apparently `xmlto' does not bother to looks up the stylesheets - ;; specified in the XML, unlike the above substitition. Instead it - ;; uses a hard-coded URL. Work around it here, but if this is - ;; common perhaps we should hardcode this path in xmlto itself. - (("\\$\\(XMLTO\\) man") - (string-append "$(XMLTO) -x " xsldoc - "/manpages/docbook.xsl man"))) - (setenv "STYLESHEET" - (string-append xsldoc "/html/docbook.xsl")) - ;; TODO(staging): Might as well remove the #t while we are at - ;; it. - #t))) - (add-after 'install 'wrap-executables - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion (string-append out "/bin") - (let ((path-ext - (map (cute string-append <> "/bin") - (cons out - (map (cute assoc-ref inputs <>) - '("awk" "coreutils" "grep" "inetutils" - "perl-file-mimeinfo" "sed" "xprop" - "xset")))))) - (for-each (cute wrap-program <> - `("PATH" ":" prefix ,path-ext)) - (find-files ".")))) - #t)))))) + (search-input-file inputs "bin/printf"))))) + (add-before 'build 'locate-catalog-files + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (let* ((native (or native-inputs inputs)) + (xmldoc (search-input-directory native + "xml/dtd/docbook")) + (xsldoc (search-input-directory + native + (string-append "xml/xsl/docbook-xsl-" + #$(package-version + (this-package-native-input + "docbook-xsl")))))) + (for-each (lambda (file) + (substitute* file + (("http://.*/docbookx\\.dtd") + (string-append xmldoc "/docbookx.dtd")))) + (find-files "scripts/desc" "\\.xml$")) + (substitute* "scripts/Makefile" + ;; Apparently `xmlto' does not bother to looks up the stylesheets + ;; specified in the XML, unlike the above substitition. Instead it + ;; uses a hard-coded URL. Work around it here, but if this is + ;; common perhaps we should hardcode this path in xmlto itself. + (("\\$\\(XMLTO\\) man") + (string-append "$(XMLTO) -x " xsldoc + "/manpages/docbook.xsl man"))) + (setenv "STYLESHEET" + (string-append xsldoc "/html/docbook.xsl"))))) + (add-after 'install 'wrap-executables + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((dependencies '("awk" "grep" "hostname" "ls" "mimeopen" + "sed" "xprop" "xset")) + (pkgs (map (lambda (cmd) + (search-input-file inputs + (string-append "bin/" cmd))) + dependencies)) + (bindirs (map dirname pkgs))) + (with-directory-excursion (string-append #$output "/bin") + (for-each (cute wrap-program <> + `("PATH" ":" prefix ,bindirs)) + (find-files "."))))))))) (home-page "https://www.freedesktop.org/wiki/Software/xdg-utils/") (synopsis "Freedesktop.org scripts for desktop integration") (description "The xdg-utils package is a set of simple scripts that diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 9e53b7483e..b2d9d12c4d 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -2155,7 +2155,7 @@ This package can be used to create @code{favicon.ico} files for web sites.") (define-public libavif (package (name "libavif") - (version "0.9.2") + (version "0.11.1") (source (origin (method git-fetch) (uri (git-reference @@ -2164,35 +2164,38 @@ This package can be used to create @code{favicon.ico} files for web sites.") (file-name (git-file-name name version)) (sha256 (base32 - "1yxmgjlxm1srm98zyj79bj8r8vmg67daqnq0ggcvxknq54plkznk")))) + "02zmb62g0yx6rfz4w1isyzfrckv5i7dzyz26rp2mspbx9w6v8j4r")))) (build-system cmake-build-system) (arguments - `(#:configure-flags '("-DAVIF_CODEC_AOM=ON" "-DAVIF_CODEC_DAV1D=ON" - ,@(if (string-prefix? "x86_64" - (or (%current-target-system) - (%current-system))) - '("-DAVIF_CODEC_RAV1E=ON") - '()) - "-DAVIF_BUILD_TESTS=ON") + (list #:configure-flags + #~'("-DAVIF_CODEC_AOM=ON" "-DAVIF_CODEC_DAV1D=ON" + #$@(if (string-prefix? "x86_64" + (or (%current-target-system) + (%current-system))) + '("-DAVIF_CODEC_RAV1E=ON") + '()) + "-DAVIF_BUILD_TESTS=ON") #:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "./aviftest" "../source/tests/data"))) - (add-after 'install 'install-readme - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (string-append out "/share/doc/libavif-" ,version))) - (install-file "../source/README.md" doc))))))) + #~(modify-phases %standard-phases + (add-after 'install 'install-readme + (lambda _ + (let ((doc (string-append #$output "/share/doc/libavif-" + #$(package-version this-package)))) + (install-file "../source/README.md" doc))))))) + (native-inputs (list googletest)) (inputs - `(("dav1d" ,dav1d) - ("libaom" ,libaom) + (append + (list dav1d + libaom + libjpeg-turbo + libpng + zlib) ;; XXX: rav1e depends on rust, which currently only works on x86_64. ;; See also the related configure flag when changing this. - ,@(if (string-prefix? "x86_64" (or (%current-target-system) - (%current-system))) - `(("rav1e" ,rav1e)) - '()))) + (if (string-prefix? "x86_64" (or (%current-target-system) + (%current-system))) + (list rav1e) + '()))) (synopsis "Encode and decode AVIF files") (description "Libavif is a C implementation of @acronym{AVIF, the AV1 Image File Format}. It can encode and decode all YUV formats and bit depths supported diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index a9a988ca5a..7e4fb04e0f 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -422,10 +422,7 @@ (substitute* "tests/fate/lavf-container.mak" (("mov mov_rtphint ismv") "mov ismv") - (("fate-lavf-mov_rtphint:.*") "")))))))) - (inputs (modify-inputs (package-inputs ffmpeg-5) - (replace "libvpx" libvpx-next) - (replace "libx264" libx264-next))))) + (("fate-lavf-mov_rtphint:.*") "")))))))))) (define-public libjami (package diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 0749a02cd7..800bba21a0 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -433,7 +433,13 @@ an interpreter, a compiler, a debugger, and much more.") ;; TODO: remove this patch when updating to sbcl > 2.2.10. (search-patches "sbcl-fix-build-on-arm64-with-clisp-as-host.patch")) (sha256 - (base32 "0cq8x4svkawirxq5s5gs4qxkl23m4q5p722a2kpss8qjfslc7hwc")))) + (base32 "0cq8x4svkawirxq5s5gs4qxkl23m4q5p722a2kpss8qjfslc7hwc")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Don't force ARMv5. + (substitute* "src/runtime/Config.arm-linux" + (("-march=armv5") "")))))) (build-system gnu-build-system) (outputs '("out" "doc")) (native-inputs @@ -479,13 +485,6 @@ an interpreter, a compiler, a debugger, and much more.") (srfi srfi-1)) #:phases (modify-phases %standard-phases - ,@(if (target-arm32?) - ;; TODO: Move to snippet in staging. - `((add-after 'unpack 'dont-force-armv5 - (lambda _ - (substitute* "src/runtime/Config.arm-linux" - (("-march=armv5") ""))))) - '()) (delete 'configure) (add-after 'unpack 'fix-build-id ;; One of the build scripts makes a build id using the current date. diff --git a/gnu/packages/patches/vlc-dav1d-compat.patch b/gnu/packages/patches/vlc-dav1d-compat.patch new file mode 100644 index 0000000000..3cb737faba --- /dev/null +++ b/gnu/packages/patches/vlc-dav1d-compat.patch @@ -0,0 +1,70 @@ +Fix build against dav1d 1.0. + + https://code.videolan.org/videolan/vlc/-/merge_requests/1618 + +Patch adjusted for VLC 3.0 taken from Gentoo: + + https://gitweb.gentoo.org/repo/gentoo.git/tree/media-video/vlc/files/vlc-3.0.17.3-dav1d-1.0.0.patch + +--- a/modules/codec/dav1d.c ++++ b/modules/codec/dav1d.c +@@ -63,10 +63,16 @@ vlc_module_begin () + set_category(CAT_INPUT) + set_subcategory(SUBCAT_INPUT_VCODEC) + ++#if DAV1D_API_VERSION_MAJOR >= 6 ++ add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_THREADS, ++ THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false) ++ add_obsolete_string("dav1d-thread-tiles") // unused with dav1d 1.0 ++#else + add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_FRAME_THREADS, + THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false) + add_integer_with_range("dav1d-thread-tiles", 0, 0, DAV1D_MAX_TILE_THREADS, + THREAD_TILES_TEXT, THREAD_TILES_LONGTEXT, false) ++#endif + vlc_module_end () + + /***************************************************************************** +@@ -294,6 +300,11 @@ static int OpenDecoder(vlc_object_t *p_this) + return VLC_ENOMEM; + + dav1d_default_settings(&p_sys->s); ++#if DAV1D_API_VERSION_MAJOR >= 6 ++ p_sys->s.n_threads = var_InheritInteger(p_this, "dav1d-thread-frames"); ++ if (p_sys->s.n_threads == 0) ++ p_sys->s.n_threads = (i_core_count < 16) ? i_core_count : 16; ++#else + p_sys->s.n_tile_threads = var_InheritInteger(p_this, "dav1d-thread-tiles"); + if (p_sys->s.n_tile_threads == 0) + p_sys->s.n_tile_threads = +@@ -303,6 +314,7 @@ static int OpenDecoder(vlc_object_t *p_this) + p_sys->s.n_frame_threads = var_InheritInteger(p_this, "dav1d-thread-frames"); + if (p_sys->s.n_frame_threads == 0) + p_sys->s.n_frame_threads = (i_core_count < 16) ? i_core_count : 16; ++#endif + p_sys->s.allocator.cookie = dec; + p_sys->s.allocator.alloc_picture_callback = NewPicture; + p_sys->s.allocator.release_picture_callback = FreePicture; +@@ -313,12 +325,20 @@ static int OpenDecoder(vlc_object_t *p_this) + return VLC_EGENERIC; + } + ++#if DAV1D_API_VERSION_MAJOR >= 6 ++ msg_Dbg(p_this, "Using dav1d version %s with %d threads", ++ dav1d_version(), p_sys->s.n_threads); ++ ++ dec->i_extra_picture_buffers = (p_sys->s.n_threads - 1); ++#else + msg_Dbg(p_this, "Using dav1d version %s with %d/%d frame/tile threads", + dav1d_version(), p_sys->s.n_frame_threads, p_sys->s.n_tile_threads); + ++ dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1); ++#endif ++ + dec->pf_decode = Decode; + dec->pf_flush = FlushDecoder; +- dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1); + + dec->fmt_out.video.i_width = dec->fmt_in.video.i_width; + dec->fmt_out.video.i_height = dec->fmt_in.video.i_height; +GitLab diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index c394c65442..19ca1d8267 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -846,7 +846,7 @@ television and DVD. It is also known as AC-3.") (define-public libaom (package (name "libaom") - (version "3.3.0") + (version "3.5.0") (source (origin (method git-fetch) (uri (git-reference @@ -855,7 +855,7 @@ television and DVD. It is also known as AC-3.") (file-name (git-file-name name version)) (sha256 (base32 - "024vhsx7bw9kajk65hhh5vmqrja0h33rmlcpngsj3yg4p8l29943")))) + "0arn8a88jz4mj69n8cs4qmrdjwhbvzsqgnx20wr9mq01b06kqich")))) (build-system cmake-build-system) (native-inputs (list perl pkg-config python)) ; to detect the version @@ -863,7 +863,6 @@ television and DVD. It is also known as AC-3.") `(#:tests? #f ; downloads many video clips #:configure-flags (list "-DBUILD_SHARED_LIBS=YES" - "-DENABLE_PIC=TRUE" "-DAOM_TARGET_CPU=generic" (string-append "-DCMAKE_INSTALL_PREFIX=" (assoc-ref %outputs "out"))) @@ -913,8 +912,8 @@ shared library and encoder and decoder command-line executables.") (define-public libx264 ;; There are no tags in the repository, so we take the version number from ;; the X264_BUILD variable defined in x264.h. - (let ((version "161") - (commit "4c2aafd864dd201832ec2be0fef4484925146650") + (let ((version "164") + (commit "b093bbe7d9bc642c8f24067cbdcc73bb43562eab") (revision "0")) (package (name "libx264") @@ -927,7 +926,7 @@ shared library and encoder and decoder command-line executables.") (file-name (git-file-name name version)) (sha256 (base32 - "1i6v9h3xx9pi0zmlj3anwwjxqa63sbhy9crrif8dphipwfn9hyg5")))) + "095pv8y6fqjg8mdvsfk12d0jqgyhip536a6vxhzm7qz8hfp96qhq")))) (build-system gnu-build-system) (native-inputs (list pkg-config nasm)) @@ -977,27 +976,6 @@ H.264 (MPEG-4 AVC) video streams.") "file://extras/cl.h" "See extras/cl.h in the distribution.")))))) -;;; TODO: Merge into libx264 on staging. -(define-public libx264-next - ;; There are no tags in the repository, so we take the version number from - ;; the X264_BUILD variable defined in x264.h. - (let ((version "164") - (commit "b093bbe7d9bc642c8f24067cbdcc73bb43562eab") - (revision "0")) - (package - (inherit libx264) - (name "libx264") - (version (git-version version revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://code.videolan.org/videolan/x264.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "095pv8y6fqjg8mdvsfk12d0jqgyhip536a6vxhzm7qz8hfp96qhq"))))))) - (define-public mkvtoolnix (package (name "mkvtoolnix") @@ -1944,6 +1922,7 @@ videoformats depend on the configuration flags of ffmpeg.") "https://download.videolan.org/pub/videolan/vlc/" (car (string-split version #\-)) "/vlc-" version ".tar.xz")) + (patches (search-patches "vlc-dav1d-compat.patch")) (sha256 (base32 "0cs1vnv91mg7p6253v6wms3zlz91xzphpwaw14dmrd2gibc64nlc")))) @@ -2388,7 +2367,7 @@ To load this plugin, specify the following option when starting mpv: (define-public libvpx (package (name "libvpx") - (version "1.11.0") + (version "1.12.0") (source (origin (method git-fetch) (uri (git-reference @@ -2397,7 +2376,7 @@ To load this plugin, specify the following option when starting mpv: (file-name (git-file-name name version)) (sha256 (base32 - "00f1jrclai2b6ys78dpsg6r1mvcyxlna93vxcz8zjyia24c2pjsb")) + "1x12f2bd4jqd532rnixmwvcx8d29yxiacpcxqqh86qczc49la8gm")) (patches (search-patches "libvpx-CVE-2016-2818.patch")))) (build-system gnu-build-system) (arguments @@ -2427,22 +2406,6 @@ To load this plugin, specify the following option when starting mpv: (license license:bsd-3) (home-page "https://www.webmproject.org/"))) -;;; TODO: Merge into libvpx on staging. -(define-public libvpx-next - (package - (inherit libvpx) - (name "libvpx") - (version "1.12.0") - (source (origin - (inherit (package-source libvpx)) - (uri (git-reference - (url "https://chromium.googlesource.com/webm/libvpx") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1x12f2bd4jqd532rnixmwvcx8d29yxiacpcxqqh86qczc49la8gm")))))) - (define-public youtube-dl (package (name "youtube-dl") @@ -4937,7 +4900,7 @@ and audio capture, network stream playback, and many more.") (define-public dav1d (package (name "dav1d") - (version "0.9.2") + (version "1.0.0") (source (origin (method git-fetch) @@ -4946,7 +4909,7 @@ and audio capture, network stream playback, and many more.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0bkps488h9s15ylvkm4fmfywgrpbw570glawpnv6khpq9n223dzl")))) + (base32 "0jkvb5as7danpalzlwd0w1dc9i2vijvmf39z0j6fwqvialsgnnj5")))) (build-system meson-build-system) (native-inputs (list nasm)) (home-page "https://code.videolan.org/videolan/dav1d") diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index f5c619a2b2..57beee7f5b 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org> +;;; Copyright © 2022 Kaelyn Takata <kaelyn.alexi@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,16 +46,16 @@ (define-public spirv-headers (package (name "spirv-headers") - (version "1.5.3") + (version "1.3.231.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/KhronosGroup/SPIRV-Headers") - (commit version))) + (commit (string-append "sdk-" version)))) (sha256 (base32 - "069sivqajp7z4p44lmrz23lvf237xpkjxd4lzrg27836pwqcz9bj")) + "0z8b485hryya2g0jxv7amwg3fjj7pchbgnsa5ldf5fwgh5js0icm")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -77,7 +78,7 @@ and for the GLSL.std.450 extended instruction set. (define-public spirv-tools (package (name "spirv-tools") - (version "2020.2") + (version "2022.4") (source (origin (method git-fetch) @@ -85,11 +86,14 @@ and for the GLSL.std.450 extended instruction set. (url "https://github.com/KhronosGroup/SPIRV-Tools") (commit (string-append "v" version)))) (sha256 - (base32 "00b7xgyrcb2qq63pp3cnw5q1xqx2d9rfn65lai6n6r89s1vh3vg6")) + (base32 "03d489ind2az7w7q1slj3mdc04372r3qqbnd7m9akxbg7yix1a5j")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON" + ;; Some packages like mpv fail to link + ;; when the static libraries are built. + "-DSPIRV_TOOLS_BUILD_STATIC=OFF" (string-append "-DSPIRV-Headers_SOURCE_DIR=" (assoc-ref %build-inputs "spirv-headers"))))) @@ -149,19 +153,17 @@ SPIR-V, aiming to emit GLSL or MSL that looks like human-written code.") (define-public glslang (package (name "glslang") - (version "10-11.0.0") + (version "11.9.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/KhronosGroup/glslang") - ;; Tag "10-11.0.0" was moved to "11.0.0". - ;; FIXME: Use (commit version) on next update. - (commit "11.0.0"))) + (commit version))) (sha256 (base32 - "14mn2awswl022ls75mfpsnpsl0ai0jgfbqj3sxcsqawyj5f432py")) - (file-name (string-append name "-" version "-checkout")))) + "1q6gjlx2y6g0hfvahnw063anb4yb4ky82hfh3b7nbsm43crzzfb0")) + (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments '(#:tests? #f ;FIXME: requires bundled SPIRV-Tools @@ -183,7 +185,7 @@ interpretation of the specifications for these languages.") (define-public vulkan-headers (package (name "vulkan-headers") - (version "1.2.164") + (version "1.2.202") (source (origin (method git-fetch) @@ -193,7 +195,7 @@ interpretation of the specifications for these languages.") (file-name (git-file-name name version)) (sha256 (base32 - "11wzxvwim4jna1yssbmprl211dhmz8vmrd498zww3bghzlj7bljv")))) + "0lsjpxqb7k2mf0w1qadpki6vnwxr29kjg5y1jafl3pvk0mdy1azj")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; No tests. @@ -207,7 +209,7 @@ interpretation of the specifications for these languages.") (define-public vulkan-loader (package (name "vulkan-loader") - (version "1.2.162") + (version "1.2.202") (source (origin (method git-fetch) @@ -217,32 +219,23 @@ interpretation of the specifications for these languages.") (file-name (git-file-name name version)) (sha256 (base32 - "15gx9ab6w1sjq9hkpbas7z2f8f47j6mlln6p3w26qmydjj8gfjjv")))) + "1vsaa16clncz19lihgj39rdg4dspkxjay1ii6pkf6fpl1vkw1dh2")))) (build-system cmake-build-system) (arguments `(#:configure-flags ,#~(list (string-append "-DVULKAN_HEADERS_INSTALL_DIR=" #$(this-package-input "vulkan-headers")) - (string-append "-DCMAKE_INSTALL_INCLUDEDIR=" - #$(this-package-input "vulkan-headers") - "/include")) + (string-append "-DGOOGLETEST_INSTALL_DIR=" + (getcwd) "/source/external/googletest") + "-DBUILD_TESTS=ON") #:phases (modify-phases %standard-phases (add-after 'unpack 'unpack-googletest (lambda* (#:key inputs #:allow-other-keys) (let ((gtest (assoc-ref inputs "googletest:source"))) (when gtest (copy-recursively gtest "external/googletest")) - #t))) - (add-after 'unpack 'disable-loader-tests - (lambda _ - ;; Many tests require a Vulkan driver. Skip those. - (substitute* "tests/loader_validation_tests.cpp" - ((".*= vkCreateInstance.*" all) - (string-append "GTEST_SKIP();\n" all)) - (("TEST_F.*InstanceExtensionEnumerated.*" all) - (string-append all "\nGTEST_SKIP();\n"))) - #t))))) + #t)))))) (native-inputs `(("googletest:source" ,(package-source googletest)) ("libxrandr" ,libxrandr) @@ -269,7 +262,7 @@ and the ICD.") (define-public vulkan-tools (package (name "vulkan-tools") - (version "1.2.162") + (version "1.2.201") (source (origin (method git-fetch) @@ -279,7 +272,7 @@ and the ICD.") (file-name (git-file-name name version)) (sha256 (base32 - "129wzk7xj3vn3c8b4p7fzkd0npl58118s2i1d88gsfnlix54nagq")))) + "1ik90d7pygaw2pq81brqmcjiczag3biqvgpqp3cpws07glf29lf9")))) (build-system cmake-build-system) (inputs (list glslang libxrandr vulkan-loader wayland)) @@ -301,7 +294,7 @@ API.") (define-public shaderc (package (name "shaderc") - (version "2020.4") + (version "2021.3") (source (origin (method git-fetch) @@ -311,7 +304,7 @@ API.") (file-name (git-file-name name version)) (sha256 (base32 - "07h78nd964h2bdm4drzws8i1gvyal8a3wlhbcm5qxqk6vknv8hrk")))) + "0qjwixcx74dvx68jl51x2mp2q1346hvhwxr8w3wk36nzla62k2s6")))) (build-system cmake-build-system) (arguments `(;; FIXME: Skip most of the tests, because enabling system gtest breaks @@ -402,3 +395,59 @@ shader compilation.") (synopsis "Direct3D 12 to Vulkan translation library") (description "vkd3d is a library for translating Direct3D 12 to Vulkan.") (license license:lgpl2.1)))) + +(define-public vulkan-validationlayers + (package + (name "vulkan-validationlayers") + (version "1.2.201") + (source (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/KhronosGroup/Vulkan-ValidationLayers") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jnz9cmy5d5g6jh9p4wr0qrlqlpfp07b3cizq37i5p1bcabdgmrz")))) + (build-system cmake-build-system) + (inputs (list glslang + libxrandr + mesa + shaderc + spirv-tools + vulkan-loader + wayland)) + (native-inputs (list pkg-config python spirv-headers vulkan-headers)) + (arguments + (list #:tests? #f ;no tests + #: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")))) + "-Wno-dev") + #:phases #~(modify-phases %standard-phases + (add-after 'install 'set-layer-path-in-manifest + (lambda _ + (let ((manifest (string-append #$output + "/share/vulkan/explicit_layer.d" + "/VkLayer_khronos_validation.json"))) + (substitute* manifest + (("\"libVkLayer_khronos_validation.so\"") + (string-append "\"" #$output + "/lib/libVkLayer_khronos_validation.so\""))))))))) + (home-page "https://github.com/KhronosGroup/Vulkan-ValidationLayers") + (synopsis "Khronos official validation layers for Vulkan") + (description + "Vulkan-ValidationLayers provides the Khronos official validation layers that +can assist development by enabling developers to verify their applications correctly +use the Vulkan API.") + (license license:asl2.0))) |