From 5baccd1d72594b4c85e958c2f34cac923345acb3 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Sun, 17 Mar 2024 09:05:12 +0100 Subject: [PATCH 01/90] nongnu: intel-microcode: Update to 20240312 [security fixes]. Fixes CVE-2023-43490, CVE-2023-39368, CVE-2023-38575, CVE-2023-28746, CVE-2023-22655. * nongnu/packages/linux.scm (intel-microcode): Update to 20240312. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index 1221b0f3..61e7f0ad 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -1188,7 +1188,7 @@ driver: (define-public intel-microcode (package (name "intel-microcode") - (version "20231114") + (version "20240312") (source (origin (method git-fetch) @@ -1199,7 +1199,7 @@ driver: (commit (string-append "microcode-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "07c7hkwpvb9056s73s55sg04cxr1d9n1sd9r1g7sm3gh70yc17ki")))) + (base32 "1j1krkmp9kxmpq8bbbld8bm3y9rqhmlj5qfm43czikawnpw81571")))) (build-system copy-build-system) (arguments (list #:install-plan From 545a11dee6d522648374a1de144bfb40031c5623 Mon Sep 17 00:00:00 2001 From: Jonathan Brielmaier Date: Thu, 21 Mar 2024 12:27:00 +0100 Subject: [PATCH 02/90] nongnu: signal-desktop: Update to 7.3.0. * nongnu/packages/messaging.scm (signal-desktop): Update to 7.3.0. --- nongnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 74e65ed8..a28985df 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -90,7 +90,7 @@ its core.") (define-public signal-desktop (package (name "signal-desktop") - (version "6.46.0") + (version "7.3.0") (source (origin (method url-fetch) @@ -99,7 +99,7 @@ its core.") "https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version "_amd64.deb")) (sha256 - (base32 "1pjv8v1hhycwbvqvih83axv41jkyksq6d9152fqic9d61lbb1kpa")))) + (base32 "1gkcfh94l5nj8p3jk7g80jqq11fb8igi4wm84g67a9qi8n56wcrc")))) (supported-systems '("x86_64-linux")) (build-system chromium-binary-build-system) (arguments From cd6b8abeb3f99ceb6a671cafbfbdf0d618ec984b Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Tue, 19 Mar 2024 15:52:50 +0100 Subject: [PATCH 03/90] nongnu: firefox-esr: Update to 115.9.0esr [security fixes]. Fixes CVE-2023-5388, CVE-2024-0743, CVE-2024-2605, CVE-2024-2607, CVE-2024-2608, CVE-2024-2610, CVE-2024-2611, CVE-2024-2612, CVE-2024-2614, CVE-2024-2616. * nongnu/packages/mozilla.scm (firefox-esr): Update to 115.9.0esr. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/mozilla.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/mozilla.scm b/nongnu/packages/mozilla.scm index c9a4e6aa..bc2b286c 100644 --- a/nongnu/packages/mozilla.scm +++ b/nongnu/packages/mozilla.scm @@ -97,19 +97,19 @@ ;; Update this id with every firefox update to its release date. ;; It's used for cache validation and therefore can lead to strange bugs. -(define %firefox-esr-build-id "20240219101823") +(define %firefox-esr-build-id "20240318135224") (define-public firefox-esr (package (name "firefox-esr") - (version "115.8.0esr") + (version "115.9.0esr") (source (origin (method url-fetch) (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" version "/source/firefox-" version ".source.tar.xz")) (sha256 - (base32 "1slmp2v1q3my81z8kiym9rpxw5d9n4sn07v7hv99517w7vr8d05g")))) + (base32 "00r847l2j2wk20wf1plbnz2ifyqkvwqmaqwq6zknsqz6qmqk6fyv")))) (build-system gnu-build-system) (arguments (list From 48d59208fcbf06c8b02164bc6e17a4ed14a4f3a5 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Tue, 19 Mar 2024 15:49:03 +0100 Subject: [PATCH 04/90] nongnu: firefox: Update to 124.0 [security fixes]. Fixes CVE-2023-5388, CVE-2024-2605, CVE-2024-2606, CVE-2024-2607, CVE-2024-2608, CVE-2024-2609, CVE-2024-2610, CVE-2024-2611, CVE-2024-2612, CVE-2024-2613, CVE-2024-2614, CVE-2024-2615. * nongnu/packages/mozilla.scm (firefox): Update to 124.0. [arguments]<#:phases>{'remove-cargo-frozen-flag}: New phase. (firefox-wayland): Wrap comment. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/mozilla.scm | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/nongnu/packages/mozilla.scm b/nongnu/packages/mozilla.scm index bc2b286c..8260e3ff 100644 --- a/nongnu/packages/mozilla.scm +++ b/nongnu/packages/mozilla.scm @@ -532,27 +532,34 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n" ;; Update this id with every firefox update to its release date. ;; It's used for cache validation and therefore can lead to strange bugs. -(define %firefox-build-id "20240304165820") +(define %firefox-build-id "20240318140215") (define-public firefox (package (inherit firefox-esr) (name "firefox") - (version "123.0.1") + (version "124.0") (source (origin (method url-fetch) (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" version "/source/firefox-" version ".source.tar.xz")) (sha256 - (base32 "073lbl2gs7c08kr9h6r2jvl3cvj84h3pdh6aj151c3synravkp6m")))) + (base32 "1n692gfy61j4f3y81lyk16nm5gs8x84szadlrp70in1s28si4nil")))) (arguments (substitute-keyword-arguments (package-arguments firefox-esr) ((#:phases phases) #~(modify-phases #$phases (replace 'set-build-id (lambda _ - (setenv "MOZ_BUILD_DATE" #$%firefox-build-id))))))) + (setenv "MOZ_BUILD_DATE" #$%firefox-build-id))) + (replace 'remove-cargo-frozen-flag + (lambda _ + ;; Remove --frozen flag from cargo invokation, otherwise it'll + ;; complain that it's not able to change Cargo.lock. + ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373 + (substitute* "build/RunCbindgen.py" + (("args.append\\(\"--frozen\"\\)") "pass")))))))) (native-inputs (modify-inputs (package-native-inputs firefox-esr) (replace "rust" rust-firefox) @@ -562,7 +569,7 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n" "Full-featured browser client built from Firefox source tree, without the official icon and the name \"firefox\"."))) -;; As of Firefox 121.0, Firefox uses Wayland by default. This means we no longer need a seperate package -;; for Firefox on Wayland. +;; As of Firefox 121.0, Firefox uses Wayland by default. This means we no +;; longer need a seperate package for Firefox on Wayland. (define-public firefox-wayland (deprecated-package "firefox-wayland" firefox)) From 99f32490490b4d31dd4225e6617166708fb3193c Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 24 Feb 2024 22:30:27 +0800 Subject: [PATCH 05/90] nongnu: game-client: Add steam-container-libs variable. * nongnu/packages/game-client.scm (steam-container-libs): New variable. (steam-ld.so.conf,steam-container,heroic-container): Use it. Signed-off-by: John Kehayias --- nongnu/packages/game-client.scm | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/nongnu/packages/game-client.scm b/nongnu/packages/game-client.scm index 03fd21ac..62718952 100644 --- a/nongnu/packages/game-client.scm +++ b/nongnu/packages/game-client.scm @@ -218,6 +218,11 @@ implementation with gogdl and Amazon Games using Nile.") ("python" ,python) ; Required for KillingFloor2 and Wreckfest. ("spdlog" ,spdlog))) ; Required for MangoHud. +(define steam-container-libs + (append steam-client-libs + steam-gameruntime-libs + fhs-min-libs)) + (define heroic-extra-client-libs `(("curl" ,curl) ; Required for Heroic to download e.g. Wine. ("which" ,which) ; Heroic complains about trying to use which (though works). @@ -225,13 +230,9 @@ implementation with gogdl and Amazon Games using Nile.") (define steam-ld.so.conf (packages->ld.so.conf - (list (fhs-union `(,@steam-client-libs - ,@steam-gameruntime-libs - ,@fhs-min-libs) + (list (fhs-union steam-container-libs #:name "fhs-union-64") - (fhs-union `(,@steam-client-libs - ,@steam-gameruntime-libs - ,@fhs-min-libs) + (fhs-union steam-container-libs #:name "fhs-union-32" #:system "i686-linux")))) @@ -246,14 +247,10 @@ implementation with gogdl and Amazon Games using Nile.") (ld.so.conf steam-ld.so.conf) (ld.so.cache steam-ld.so.cache) (union64 - (fhs-union `(,@steam-client-libs - ,@steam-gameruntime-libs - ,@fhs-min-libs) + (fhs-union steam-container-libs #:name "fhs-union-64")) (union32 - (fhs-union `(,@steam-client-libs - ,@steam-gameruntime-libs - ,@fhs-min-libs) + (fhs-union steam-container-libs #:name "fhs-union-32" #:system "i686-linux")) (link-files '("share")) @@ -289,15 +286,11 @@ all games will be installed."))) ;; this is easier and works. (union64 (fhs-union `(,@heroic-extra-client-libs - ,@steam-client-libs - ,@steam-gameruntime-libs - ,@fhs-min-libs) + ,@steam-container-libs) #:name "fhs-union-64")) ;; Don't include heroic-client-libs as they are not needed in 32-bit. (union32 - (fhs-union `(,@steam-client-libs - ,@steam-gameruntime-libs - ,@fhs-min-libs) + (fhs-union steam-container-libs #:name "fhs-union-32" #:system "i686-linux")) (link-files '("share")) From 40809109fcef6bc87bf2952394296e73b70e49c9 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 20:31:34 +0800 Subject: [PATCH 06/90] nongnu: game-client: Replace mesa with nvda in NVIDIA containers. * nongnu/packages/game-client.scm (steam-nvidia-container-libs): New variable. (steam-nvidia-container,heroic-nvidia-container): Use it. Signed-off-by: John Kehayias --- nongnu/packages/game-client.scm | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/nongnu/packages/game-client.scm b/nongnu/packages/game-client.scm index 62718952..b02b1a8d 100644 --- a/nongnu/packages/game-client.scm +++ b/nongnu/packages/game-client.scm @@ -223,6 +223,10 @@ implementation with gogdl and Amazon Games using Nile.") steam-gameruntime-libs fhs-min-libs)) +(define steam-nvidia-container-libs + (modify-inputs steam-container-libs + (replace "mesa" nvda))) + (define heroic-extra-client-libs `(("curl" ,curl) ; Required for Heroic to download e.g. Wine. ("which" ,which) ; Heroic complains about trying to use which (though works). @@ -265,8 +269,13 @@ all games will be installed."))) (name "steam-nvidia") ;; Steam's .desktop files expect a "steam" executable, so provide that. (binary-name "steam") - (union64 (replace-mesa (ngc-union64 steam-container))) - (union32 (replace-mesa (ngc-union32 steam-container))))) + (union64 + (fhs-union steam-nvidia-container-libs + #:name "fhs-union-64")) + (union32 + (fhs-union steam-nvidia-container-libs + #:name "fhs-union-32" + #:system "i686-linux")))) (define-public steam (nonguix-container->package steam-container)) (define-public steam-nvidia (nonguix-container->package steam-nvidia-container)) @@ -305,8 +314,14 @@ installed."))) (nonguix-container (inherit heroic-container) (name "heroic-nvidia") - (union64 (replace-mesa (ngc-union64 heroic-container))) - (union32 (replace-mesa (ngc-union32 heroic-container))))) + (union64 + (fhs-union `(,@heroic-extra-client-libs + ,@steam-nvidia-container-libs) + #:name "fhs-union-64")) + (union32 + (fhs-union steam-nvidia-container-libs + #:name "fhs-union-32" + #:system "i686-linux")))) (define-public heroic (nonguix-container->package heroic-container)) (define-public heroic-nvidia (nonguix-container->package heroic-nvidia-container)) From 812250d5b635d7c9d014ad44d0f63c1d2095570a Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 22:02:14 +0800 Subject: [PATCH 07/90] nongnu: game-client: Build ld.so.cache for NVIDIA containers. * nongnu/packages/game-client.scm (steam-nvidia-ld.so.conf) (steam-nvidia-ld.so.cache): New variables. (steam-nvidia-container,heroic-nvidia-container): Use them. Signed-off-by: John Kehayias --- nongnu/packages/game-client.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/nongnu/packages/game-client.scm b/nongnu/packages/game-client.scm index b02b1a8d..0cafb13e 100644 --- a/nongnu/packages/game-client.scm +++ b/nongnu/packages/game-client.scm @@ -243,6 +243,17 @@ implementation with gogdl and Amazon Games using Nile.") (define steam-ld.so.cache (ld.so.conf->ld.so.cache steam-ld.so.conf)) +(define steam-nvidia-ld.so.conf + (packages->ld.so.conf + (list (fhs-union steam-nvidia-container-libs + #:name "fhs-union-64") + (fhs-union steam-nvidia-container-libs + #:name "fhs-union-32" + #:system "i686-linux")))) + +(define steam-nvidia-ld.so.cache + (ld.so.conf->ld.so.cache steam-nvidia-ld.so.conf)) + (define-public steam-container (nonguix-container (name "steam") @@ -269,6 +280,8 @@ all games will be installed."))) (name "steam-nvidia") ;; Steam's .desktop files expect a "steam" executable, so provide that. (binary-name "steam") + (ld.so.conf steam-nvidia-ld.so.conf) + (ld.so.cache steam-nvidia-ld.so.cache) (union64 (fhs-union steam-nvidia-container-libs #:name "fhs-union-64")) @@ -314,6 +327,8 @@ installed."))) (nonguix-container (inherit heroic-container) (name "heroic-nvidia") + (ld.so.conf steam-nvidia-ld.so.conf) + (ld.so.cache steam-nvidia-ld.so.cache) (union64 (fhs-union `(,@heroic-extra-client-libs ,@steam-nvidia-container-libs) From 825f6ee783ff423c7f967b690d3ac2ed8aea1a1d Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 20:24:33 +0800 Subject: [PATCH 08/90] nongnu: game-client: Preserve environment variables for NVIDIA driver. * nongnu/packages/nvidia.scm (%nvidia-environment-variable-regexps): New variable. * nongnu/packages/game-client.scm (steam-nvidia-container) (heroic-nvidia-container): Use it. Signed-off-by: John Kehayias --- nongnu/packages/game-client.scm | 6 ++++-- nongnu/packages/nvidia.scm | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/game-client.scm b/nongnu/packages/game-client.scm index 0cafb13e..d9843ee5 100644 --- a/nongnu/packages/game-client.scm +++ b/nongnu/packages/game-client.scm @@ -288,7 +288,8 @@ all games will be installed."))) (union32 (fhs-union steam-nvidia-container-libs #:name "fhs-union-32" - #:system "i686-linux")))) + #:system "i686-linux")) + (preserved-env %nvidia-environment-variable-regexps))) (define-public steam (nonguix-container->package steam-container)) (define-public steam-nvidia (nonguix-container->package steam-nvidia-container)) @@ -336,7 +337,8 @@ installed."))) (union32 (fhs-union steam-nvidia-container-libs #:name "fhs-union-32" - #:system "i686-linux")))) + #:system "i686-linux")) + (preserved-env %nvidia-environment-variable-regexps))) (define-public heroic (nonguix-container->package heroic-container)) (define-public heroic-nvidia (nonguix-container->package heroic-nvidia-container)) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 97039d91..f75d0d42 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -58,6 +58,21 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public %nvidia-environment-variable-regexps + '("^__GL_" ; NVIDIA OpenGL settings. + "^__GLX_VENDOR_LIBRARY_NAME$" ; For GLVND. + ;; NVIDIA PRIME Render Offload. + "^__NV_PRIME_RENDER_OFFLOAD(_PROVIDER)?$" + "^__VK_LAYER_NV_optimus$" + ;; NVIDIA NGX. + "^__NGX_CONF_FILE$" + "^__NV_SIGNED_LOAD_CHECK$" + "^PROTON_ENABLE_NGX_UPDATER$" + ;; NVIDIA VDPAU settings. + "^VDPAU_NVIDIA_" + ;; GSYNC control for Vulkan direct-to-display applications. + "^VKDirectGSYNC(Compatible)?Allowed$")) + (define nvidia-version "515.76") (define computed-origin-method From 3cebd9c77bb90e1a114a9caf4b10eea70dc2ce7f Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 20:50:03 +0800 Subject: [PATCH 09/90] multiarch-container: make-internal-script: Improve icd-symlink. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * nonguix/multiarch-container.scm (make-internal-script)[icd-symlink]: Allow custom directory. Rename to… [file-symlink]: …this. [get-files]: New procedure to simplify find-files use. Signed-off-by: John Kehayias --- nonguix/multiarch-container.scm | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm index 3d040c28..7fda9293 100644 --- a/nonguix/multiarch-container.scm +++ b/nonguix/multiarch-container.scm @@ -455,7 +455,9 @@ application." `((guix build utils)) #~(begin (use-modules (guix build utils) - (ice-9 getopt-long)) + (ice-9 getopt-long) + (srfi srfi-1) + (srfi srfi-26)) (define (path->str path) (if (list? path) (string-join path "/") @@ -465,9 +467,13 @@ application." (dest (path->str (cdr pair)))) (unless (file-exists? dest) (symlink target dest)))) - (define (icd-symlink file) + (define (file-symlink file dir) + (mkdir-p dir) (new-symlink - `(,file . ("/usr/share/vulkan/icd.d" ,(basename file))))) + `(,file . (,dir ,(basename file))))) + ;; Use stat to follow links from packages like MangoHud. + (define (get-files dir) + (find-files (path->str dir) #:stat stat)) (define fhs-option-spec '((asound32 (value #f)))) (let* ((guix-env (getenv "GUIX_ENVIRONMENT")) @@ -517,12 +523,11 @@ application." ((,union64 "share/vulkan/explicit_layer.d") . "/usr/share/vulkan/explicit_layer.d"))) (for-each - icd-symlink - ;; Use stat to follow links from packages like MangoHud. - `(,@(find-files (string-append union32 "/share/vulkan/icd.d") - #:directories? #t #:stat stat) - ,@(find-files (string-append union64 "/share/vulkan/icd.d") - #:directories? #t #:stat stat))) + (cut file-symlink <> "/usr/share/vulkan/icd.d") + (append-map + get-files + `((,union32 "share/vulkan/icd.d") + (,union64 "share/vulkan/icd.d")))) ;; TODO: This is not the right place for this. ;; Newer versions of Steam won't startup if they can't copy to here ;; (previous would output this error but continue). From 1c419ee1a8c6b566cb65115ab3e5f42e6b4d7279 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 21:10:19 +0800 Subject: [PATCH 10/90] nonguix: multiarch-container: Symlink all available Vulkan layers. * nonguix/multiarch-container.scm (make-internal-script): Symlink all available Vulkan layers. Signed-off-by: John Kehayias --- nonguix/multiarch-container.scm | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm index 7fda9293..31ac9438 100644 --- a/nonguix/multiarch-container.scm +++ b/nonguix/multiarch-container.scm @@ -494,14 +494,11 @@ application." "/run/current-system/profile/share" "/sbin" "/usr/lib" - "/usr/share/vulkan/icd.d")) + "/usr/share")) (for-each new-symlink `((,ld.so.cache . "/etc/ld.so.cache") (,ld.so.conf . "/etc/ld.so.conf") ;; needed? - ;; For MangoHud implicit layers. - ((,guix-env "share/vulkan/implicit_layer.d") . - "/usr/share/vulkan/implicit_layer.d") ((,guix-env "etc/ssl") . "/etc/ssl") ((,guix-env "etc/ssl") . "/run/current-system/profile/etc/ssl") ((,union32 "lib") . "/lib") @@ -519,15 +516,27 @@ application." ((,union64 "share/glib-2.0") . "/usr/share/glib-2.0") ; Heroic interface. ((,union64 "share/drirc.d") . "/usr/share/drirc.d") ((,union64 "share/fonts") . "/run/current-system/profile/share/fonts") - ((,union64 "etc/fonts") . "/etc/fonts") - ((,union64 "share/vulkan/explicit_layer.d") . - "/usr/share/vulkan/explicit_layer.d"))) + ((,union64 "etc/fonts") . "/etc/fonts"))) (for-each (cut file-symlink <> "/usr/share/vulkan/icd.d") (append-map get-files `((,union32 "share/vulkan/icd.d") (,union64 "share/vulkan/icd.d")))) + (for-each + (cut file-symlink <> "/usr/share/vulkan/explicit_layer.d") + (append-map + get-files + `((,union64 "share/vulkan/explicit_layer.d") + (,union32 "share/vulkan/explicit_layer.d")))) + (for-each + (cut file-symlink <> "/usr/share/vulkan/implicit_layer.d") + (append-map + get-files + `((,union32 "share/vulkan/implicit_layer.d") + (,union64 "share/vulkan/implicit_layer.d") + ;; For MangoHud implicit layers. + (,guix-env "share/vulkan/implicit_layer.d")))) ;; TODO: This is not the right place for this. ;; Newer versions of Steam won't startup if they can't copy to here ;; (previous would output this error but continue). From 8c08d0bbe5f353dc1c78e398500cb49d96ea1828 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 21:22:05 +0800 Subject: [PATCH 11/90] nonguix: multiarch-container: Symlink EGL configurations. * nonguix/multiarch-container.scm (make-internal-script): Symlink EGL configurations. Signed-off-by: John Kehayias --- nonguix/multiarch-container.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm index 31ac9438..7b68ceb0 100644 --- a/nonguix/multiarch-container.scm +++ b/nonguix/multiarch-container.scm @@ -517,6 +517,18 @@ application." ((,union64 "share/drirc.d") . "/usr/share/drirc.d") ((,union64 "share/fonts") . "/run/current-system/profile/share/fonts") ((,union64 "etc/fonts") . "/etc/fonts"))) + (for-each + (cut file-symlink <> "/usr/share/egl/egl_external_platform.d") + (append-map + get-files + `((,union32 "share/egl/egl_external_platform.d") + (,union64 "share/egl/egl_external_platform.d")))) + (for-each + (cut file-symlink <> "/usr/share/glvnd/egl_vendor.d") + (append-map + get-files + `((,union32 "share/glvnd/egl_vendor.d") + (,union64 "share/glvnd/egl_vendor.d")))) (for-each (cut file-symlink <> "/usr/share/vulkan/icd.d") (append-map From 09151acd73b955bc30ec67771b812a0102258adc Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 21:40:23 +0800 Subject: [PATCH 12/90] nonguix: multiarch-container: Share Wayland environment. * nonguix/multiarch-container.scm (make-container-wrapper): Preserve environment variables and share socket for Wayland. Signed-off-by: John Kehayias --- nonguix/multiarch-container.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm index 7b68ceb0..a9f15591 100644 --- a/nonguix/multiarch-container.scm +++ b/nonguix/multiarch-container.scm @@ -260,8 +260,9 @@ in a sandboxed FHS environment." (home (getenv "HOME")) (sandbox-home (or (getenv "GUIX_SANDBOX_HOME") (string-append home "/" #$(ngc-sandbox-home container)))) + (wayland-display (or (getenv "WAYLAND_DISPLAY") + "wayland-0")) (preserved-env '("^DBUS_" - "^DISPLAY$" "^DRI_PRIME$" "^GDK_SCALE$" ; For UI scaling. "^GUIX_LOCPATH$" ; For pressure-vessel locales. @@ -293,8 +294,11 @@ in a sandboxed FHS environment." "^XAUTHORITY$" ;; Matching all ^XDG_ vars causes issues ;; discussed in 80decf05. + "^XDG_CURRENT_DESKTOP$" "^XDG_DATA_HOME$" "^XDG_RUNTIME_DIR$" + "^XDG_SESSION_(CLASS|TYPE)$" + "^(WAYLAND_)?DISPLAY$" #$@(ngc-preserved-env container) ; Environment from container. ;; The following are useful for debugging. "^CAPSULE_DEBUG$" @@ -333,6 +337,7 @@ in a sandboxed FHS environment." ,@(exists-> (string-append home "/.config/pulse")) ,@(exists-> (string-append xdg-runtime "/pulse")) ,@(exists-> (string-append xdg-runtime "/bus")) + ,@(exists-> (string-append xdg-runtime "/" wayland-display)) ,@(exists-> (getenv "XAUTHORITY")) #$@(ngc-shared container))) (DEBUG (equal? (getenv "DEBUG") "1")) From 2d8de496b1209accd52c4d869e2ffda1769dfe99 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 22:07:06 +0800 Subject: [PATCH 13/90] multiarch-container: make-container-wrapper: Set LIBVA_DRIVERS_PATH. * nonguix/multiarch-container.scm (make-container-wrapper): Set LIBVA_DRIVERS_PATH and preserve it. Signed-off-by: John Kehayias --- nonguix/multiarch-container.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm index a9f15591..a9228776 100644 --- a/nonguix/multiarch-container.scm +++ b/nonguix/multiarch-container.scm @@ -277,6 +277,7 @@ in a sandboxed FHS environment." ;; need to be shared with the container as ;; well; this is not needed currently. "^LD_LIBRARY_PATH$" + "^LIBVA_DRIVERS_PATH$" ; For VA-API drivers. "^MANGOHUD" ; For MangoHud configuration. "^PRESSURE_VESSEL_" ; For pressure vessel options. "_PROXY$" @@ -356,6 +357,8 @@ in a sandboxed FHS environment." ;; path, so set this path to where the drivers will actually be ;; located in the container. (setenv "VDPAU_DRIVER_PATH" "/lib64/vdpau") + ;; Likewise, for VA-API drivers. + (setenv "LIBVA_DRIVERS_PATH" "/lib64/dri:/lib/dri") (format #t "\n* Launching ~a in sandbox: ~a.\n\n" #$(package-name (ngc-wrap-package container)) sandbox-home) (when DEBUG From e54439a3020f3c49c289d6e47ab72b346bc7ef30 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 22:28:11 +0800 Subject: [PATCH 14/90] multiarch-container: make-internal-script: Add VDPAU paths to LD_LIBRARY_PATH. * nonguix/multiarch-container.scm (make-container-wrapper): Don't set VDPAU_DRIVER_PATH. (make-internal-script): Add VDPAU paths to LD_LIBRARY_PATH. Signed-off-by: John Kehayias --- nonguix/multiarch-container.scm | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm index a9228776..1cbf405f 100644 --- a/nonguix/multiarch-container.scm +++ b/nonguix/multiarch-container.scm @@ -291,7 +291,6 @@ in a sandboxed FHS environment." "^SDL_" "^STEAM_" "^SSL_" ; SSL certificate environment, needed by curl for Heroic. - "^VDPAU_DRIVER_PATH$" ; For VDPAU drivers. "^XAUTHORITY$" ;; Matching all ^XDG_ vars causes issues ;; discussed in 80decf05. @@ -353,11 +352,9 @@ in a sandboxed FHS environment." ;; the "usual" path, probably so they are included in the ;; pressure-vessel container. (setenv "GUIX_LOCPATH" "/usr/lib/locale") - ;; By default VDPAU drivers are searched for in libvdpau's store - ;; path, so set this path to where the drivers will actually be - ;; located in the container. - (setenv "VDPAU_DRIVER_PATH" "/lib64/vdpau") - ;; Likewise, for VA-API drivers. + ;; By default VA-API drivers are searched for in mesa's store path, + ;; so set this path to where the drivers will actually be located in + ;; the container. (setenv "LIBVA_DRIVERS_PATH" "/lib64/dri:/lib/dri") (format #t "\n* Launching ~a in sandbox: ~a.\n\n" #$(package-name (ngc-wrap-package container)) sandbox-home) @@ -571,7 +568,7 @@ application." ;; games). Wait to set this inside the container to not cause ;; issues on foreign distros, see ;; - (setenv "LD_LIBRARY_PATH" "/lib64:/lib") + (setenv "LD_LIBRARY_PATH" "/lib64:/lib:/lib64/vdpau:/lib/vdpau") ;; Process FHS-specific command line options. (let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec)) From 556057f3330ef8323dded228f433d1baf8c2b461 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 22:39:31 +0800 Subject: [PATCH 15/90] nonguix: multiarch-container: Preserve TZ and TZDIR. * nonguix/multiarch-container.scm (make-container-wrapper): Preserve TZ and TZDIR. Signed-off-by: John Kehayias Co-authored-by: John Kehayias --- nonguix/multiarch-container.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm index 1cbf405f..32bf5d32 100644 --- a/nonguix/multiarch-container.scm +++ b/nonguix/multiarch-container.scm @@ -291,6 +291,7 @@ in a sandboxed FHS environment." "^SDL_" "^STEAM_" "^SSL_" ; SSL certificate environment, needed by curl for Heroic. + "^TZ" ; For setting time zone. "^XAUTHORITY$" ;; Matching all ^XDG_ vars causes issues ;; discussed in 80decf05. From cd07617047ccd92c3fe3bafb9fcbeebf6eaa5804 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 22:39:40 +0800 Subject: [PATCH 16/90] nonguix: multiarch-container: Expose /etc/os-release. * nonguix/multiarch-container.scm (make-container-wrapper): Expose /etc/os-release. Signed-off-by: John Kehayias --- nonguix/multiarch-container.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm index 32bf5d32..e2b1c2b8 100644 --- a/nonguix/multiarch-container.scm +++ b/nonguix/multiarch-container.scm @@ -315,6 +315,7 @@ in a sandboxed FHS environment." ,@(exists-> "/dev/nvidia-modeset") ,@(exists-> "/etc/machine-id") "/etc/localtime" ; Needed for correct time zone. + "/etc/os-release" ; Needed for distro info. "/sys/class/drm" ; Needed for hw monitoring like MangoHud. "/sys/class/hwmon" ; Needed for hw monitoring like MangoHud. "/sys/class/hidraw" ; Needed for devices like the Valve Index. From 5c33acaaa5808fb72e0b6eb8f5b852c2cf990969 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 28 Feb 2024 14:24:07 +0800 Subject: [PATCH 17/90] nonguix: multiarch-container: Link fonts to /usr/share/fonts. * nonguix/multiarch-container.scm (make-internal-script): Link fonts to /usr/share/fonts. Signed-off-by: John Kehayias --- nonguix/multiarch-container.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm index e2b1c2b8..a6f62fc1 100644 --- a/nonguix/multiarch-container.scm +++ b/nonguix/multiarch-container.scm @@ -522,6 +522,7 @@ application." ((,union64 "share/mime") . "/usr/share/mime") ; Steam tray icon. ((,union64 "share/glib-2.0") . "/usr/share/glib-2.0") ; Heroic interface. ((,union64 "share/drirc.d") . "/usr/share/drirc.d") + ((,union64 "share/fonts") . "/usr/share/fonts") ((,union64 "share/fonts") . "/run/current-system/profile/share/fonts") ((,union64 "etc/fonts") . "/etc/fonts"))) (for-each From 5bfbb978e9e18182adf4c7a7c009268f5c043611 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Fri, 22 Mar 2024 16:54:27 +0100 Subject: [PATCH 18/90] nongnu: firefox-esr: Update to 115.9.1esr [security fixes]. Fixes CVE-2024-29944. * nongnu/packages/mozilla.scm (firefox-esr): Update to 115.9.1esr. Signed-off-by: John Kehayias --- nongnu/packages/mozilla.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/mozilla.scm b/nongnu/packages/mozilla.scm index 8260e3ff..adc0205f 100644 --- a/nongnu/packages/mozilla.scm +++ b/nongnu/packages/mozilla.scm @@ -97,19 +97,19 @@ ;; Update this id with every firefox update to its release date. ;; It's used for cache validation and therefore can lead to strange bugs. -(define %firefox-esr-build-id "20240318135224") +(define %firefox-esr-build-id "20240322120907") (define-public firefox-esr (package (name "firefox-esr") - (version "115.9.0esr") + (version "115.9.1esr") (source (origin (method url-fetch) (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" version "/source/firefox-" version ".source.tar.xz")) (sha256 - (base32 "00r847l2j2wk20wf1plbnz2ifyqkvwqmaqwq6zknsqz6qmqk6fyv")))) + (base32 "0agr8s42lpbq5gixsgj5kpcvimbnyx6msr4il4rvmf7gpw47hr93")))) (build-system gnu-build-system) (arguments (list From 9bfb057c3ba39c2ffa9800d249ed3ba671fb2681 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Fri, 22 Mar 2024 16:55:29 +0100 Subject: [PATCH 19/90] nongnu: firefox: Update to 124.0.1 [security fixes]. Fixes CVE-2024-29943, CVE-2024-29944. * nongnu/packages/mozilla.scm (firefox): Update to 124.0.1. Signed-off-by: John Kehayias --- nongnu/packages/mozilla.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/mozilla.scm b/nongnu/packages/mozilla.scm index adc0205f..8a8ce01c 100644 --- a/nongnu/packages/mozilla.scm +++ b/nongnu/packages/mozilla.scm @@ -532,20 +532,20 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n" ;; Update this id with every firefox update to its release date. ;; It's used for cache validation and therefore can lead to strange bugs. -(define %firefox-build-id "20240318140215") +(define %firefox-build-id "20240322073900") (define-public firefox (package (inherit firefox-esr) (name "firefox") - (version "124.0") + (version "124.0.1") (source (origin (method url-fetch) (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" version "/source/firefox-" version ".source.tar.xz")) (sha256 - (base32 "1n692gfy61j4f3y81lyk16nm5gs8x84szadlrp70in1s28si4nil")))) + (base32 "0hxqd8sfj9zzi1ifni8z5r2hzhjw2pvl7hg3dgzmgq2mm2p1db6x")))) (arguments (substitute-keyword-arguments (package-arguments firefox-esr) ((#:phases phases) From 53d1cb350d471a41e3169e224f84753147b472ce Mon Sep 17 00:00:00 2001 From: Daniel Ziltener Date: Fri, 22 Mar 2024 21:25:15 -0400 Subject: [PATCH 20/90] nongnu: clj-kondo: Update to 2024.03.13. * nongnu/packages/clojure.scm (clj-kondo): Update to 2024.03.13. [arguments]: Update install-plan path. Signed-off-by: John Kehayias --- nongnu/packages/clojure.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/clojure.scm b/nongnu/packages/clojure.scm index 234fafde..a068a606 100644 --- a/nongnu/packages/clojure.scm +++ b/nongnu/packages/clojure.scm @@ -87,7 +87,7 @@ lets you focus on your code.") (define-public clj-kondo (package (name "clj-kondo") - (version "2023.10.20") + (version "2024.03.13") (source (origin (method url-fetch/zipbomb) (uri (string-append @@ -95,11 +95,11 @@ lets you focus on your code.") version "/clj-kondo-" version "-linux-amd64.zip")) (sha256 (base32 - "1zb4bkmhv5mh18z8h82qa1a0m95pd5dwdxg31pqgs6lnlca3vsph")))) + "0qdimdf854wsy19i39j18f01b3dhj4zccslymbkn8j9rm90k91m3")))) (build-system binary-build-system) (arguments (list #:patchelf-plan `'(("clj-kondo" ("gcc" "zlib"))) - #:install-plan `'(("clj-kondo" "/bin/")) + #:install-plan `'(("./clj-kondo" "/bin/")) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chmod (lambda _ From c245d8f80b4cd2b33e88c6b4b5d983f99689f4c3 Mon Sep 17 00:00:00 2001 From: Daniel Ziltener Date: Fri, 22 Mar 2024 21:28:48 -0400 Subject: [PATCH 21/90] nongnu: Add clojure-lsp. * nongnu/packages/clojure.scm (clojure-lsp): New variable. Signed-off-by: John Kehayias Co-authored-by: John Kehayias --- nongnu/packages/clojure.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/nongnu/packages/clojure.scm b/nongnu/packages/clojure.scm index a068a606..a124767b 100644 --- a/nongnu/packages/clojure.scm +++ b/nongnu/packages/clojure.scm @@ -115,3 +115,35 @@ lets you focus on your code.") (description "Clj-kondo performs static analysis on Clojure, ClojureScript and EDN, without the need of a running REPL.") (license license:epl1.0))) + +(define-public clojure-lsp + (package + (name "clojure-lsp") + (version "2024.03.13-13.11.00") + (source (origin + (method url-fetch/zipbomb) + (uri (string-append "https://github.com/clojure-lsp/clojure-lsp" + "/releases/download/" version + "/clojure-lsp-native-static-linux-amd64.zip")) + (sha256 + (base32 + "1l6w55aragyf8rzy087iqw97xnpih5syjwhf0jwbgrqps2k44ms5")))) + (build-system binary-build-system) + (arguments + `(#:install-plan + '(("./clojure-lsp" "/bin/")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chmod + (lambda _ + (chmod "./clojure-lsp" #o755)))))) + (inputs (list `(,gcc "lib") zlib)) + (supported-systems '("x86_64-linux")) + (home-page "https://github.com/clojure-lsp/clojure-lsp") + (synopsis "Clojure & ClojureScript Language Server (LSP) implementation") + (description "This package provides a Language Server for Clojure and ClojureScript +languages. The goal of this project is to bring great editing tools for +Clojure/Clojurescript to all editors and programatically via its CLI and API. +It aims to work alongside you to help you navigate, identify and fix errors, +perform refactors and more.") + (license license:expat))) From 79939d562b33fe8ca8c7cee563cfed69a98656c0 Mon Sep 17 00:00:00 2001 From: Daniel Ziltener Date: Fri, 22 Mar 2024 21:29:48 -0400 Subject: [PATCH 22/90] nongnu: Add babashka. * nongnu/packages/clojure.scm (babashka): New variable. Signed-off-by: John Kehayias Co-authored-by: John Kehayias --- nongnu/packages/clojure.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/nongnu/packages/clojure.scm b/nongnu/packages/clojure.scm index a124767b..1e9df62d 100644 --- a/nongnu/packages/clojure.scm +++ b/nongnu/packages/clojure.scm @@ -147,3 +147,35 @@ Clojure/Clojurescript to all editors and programatically via its CLI and API. It aims to work alongside you to help you navigate, identify and fix errors, perform refactors and more.") (license license:expat))) + +(define-public babashka + (package + (name "babashka") + (version "1.3.189") + (source (origin + (method url-fetch/tarbomb) + (uri (string-append "https://github.com/babashka/babashka" + "/releases/download/v" version "/babashka-" + version "-linux-amd64.tar.gz")) + (sha256 + (base32 + "1gzra3y5iljjqi4rj1qxr3yniqla3qnhv881gkzrp788fwsvlmwv")))) + (build-system binary-build-system) + (arguments + `(#:patchelf-plan + '(("bb" ("gcc" "zlib"))) + #:install-plan + '(("./bb" "/bin/")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chmod + (lambda _ + (chmod "bb" #o755)))))) + (inputs (list `(,gcc "lib") zlib)) + (supported-systems '("x86_64-linux")) + (home-page "https://github.com/babashka/babashka") + (synopsis "Native, fast starting Clojure interpreter for scripting") + (description "Babashka is a native Clojure interpreter for scripting with +fast startup. Its main goal is to leverage Clojure in places where you would +be using bash otherwise.") + (license license:epl1.0))) From a4356defe7d4ee9b0ac6789d67f94d00714a9409 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Sat, 23 Mar 2024 15:36:57 -0400 Subject: [PATCH 23/90] nongnu: Add linux@6.8. Guix added linux-libre@6.8 in f6f4c71df5558b168fe7a313522af7ea5fe2d0dc but it is not set as the default yet. * nongnu/packages/linux.scm (linux-6.8): New variable. --- nongnu/packages/linux.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index 61e7f0ad..13779451 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -132,6 +132,9 @@ some freedo package or an output of package-version procedure." "The unmodified Linux kernel, including nonfree blobs, for running Guix System on hardware which requires nonfree software to function.")))) +(define-public linux-6.8 + (corrupt-linux linux-libre-6.8)) + (define-public linux-6.7 (corrupt-linux linux-libre-6.7)) From 5bb3df8b354596b0f68bc928618d9f3f22a6b23a Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Wed, 27 Mar 2024 18:44:18 +0100 Subject: [PATCH 24/90] nongnu: google-chrome-stable: Update to 123.0.6312.86. This update includes 7 security fixes. Fixes CVE-2024-2883, CVE-2024-2885, CVE-2024-2886, CVE-2024-2887. * nongnu/packages/chrome.scm (google-chrome-stable): Update to 123.0.6312.86. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/chrome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nongnu/packages/chrome.scm b/nongnu/packages/chrome.scm index 67a061b4..f0eeae88 100644 --- a/nongnu/packages/chrome.scm +++ b/nongnu/packages/chrome.scm @@ -143,7 +143,7 @@ (license (nonfree "https://www.google.com/intl/en/chrome/terms/"))))) (define-public google-chrome-stable - (make-google-chrome "stable" "121.0.6167.139" "1b08wqflp1j5yqpw2g9z2s239gs8bzqbxigcxk93aqwf5c21ijkh")) + (make-google-chrome "stable" "123.0.6312.86" "1fjpwz5pdzjak7932kxvmp3ba2s5qyvj5b908sndg9l4qv1hkh96")) (define-public google-chrome-beta (make-google-chrome "beta" "122.0.6261.6" "1b12bjcg99f6bjfhm311hdx9s1a4i13mcgxbvf1gpzq8989c1g96")) From 756f4d2ad9ae34dcac2d85d31668b8f734713ec5 Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Wed, 27 Mar 2024 18:45:11 +0100 Subject: [PATCH 25/90] nongnu: google-chrome-beta: Update to 124.0.6367.18. * nongnu/packages/chrome.scm (google-chrome-beta): Update to 124.0.6367.18. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/chrome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nongnu/packages/chrome.scm b/nongnu/packages/chrome.scm index f0eeae88..d4ff414e 100644 --- a/nongnu/packages/chrome.scm +++ b/nongnu/packages/chrome.scm @@ -146,7 +146,7 @@ (make-google-chrome "stable" "123.0.6312.86" "1fjpwz5pdzjak7932kxvmp3ba2s5qyvj5b908sndg9l4qv1hkh96")) (define-public google-chrome-beta - (make-google-chrome "beta" "122.0.6261.6" "1b12bjcg99f6bjfhm311hdx9s1a4i13mcgxbvf1gpzq8989c1g96")) + (make-google-chrome "beta" "124.0.6367.18" "18gv6s4v6g8nw80rfiamz0xx6bwzn567xvmmn95xx70lhcvz9s34")) (define-public google-chrome-unstable (make-google-chrome "unstable" "123.0.6262.5" "04mf9nysdn77371fxa3z0wbvy2k09vw49s3lrcynlwgiwrz89a3m")) From 63fed4f383ac5ed07727f60e89a747e6ee251fc9 Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Wed, 27 Mar 2024 18:50:33 +0100 Subject: [PATCH 26/90] nongnu: google-chrome-unstable: Update to 125.0.6368.2. * nongnu/packages/chrome.scm (google-chrome-unstable): Update to 125.0.6368.2. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/chrome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nongnu/packages/chrome.scm b/nongnu/packages/chrome.scm index d4ff414e..d3bc5093 100644 --- a/nongnu/packages/chrome.scm +++ b/nongnu/packages/chrome.scm @@ -149,4 +149,4 @@ (make-google-chrome "beta" "124.0.6367.18" "18gv6s4v6g8nw80rfiamz0xx6bwzn567xvmmn95xx70lhcvz9s34")) (define-public google-chrome-unstable - (make-google-chrome "unstable" "123.0.6262.5" "04mf9nysdn77371fxa3z0wbvy2k09vw49s3lrcynlwgiwrz89a3m")) + (make-google-chrome "unstable" "125.0.6368.2" "0cfsq2qh9apbafapxqdz8sb65mm6yqxpcl7kwx9g9yi0sngqcxsz")) From 185176c8faf88aeee5684b33e248567b8d814493 Mon Sep 17 00:00:00 2001 From: Alexey Abramov Date: Fri, 29 Mar 2024 15:12:38 +0100 Subject: [PATCH 27/90] nongnu: zerotier: Update to 1.12.2. * nongnu/packages/vpn.scm (zerotier): Update to 1.12.2. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/vpn.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/nongnu/packages/vpn.scm b/nongnu/packages/vpn.scm index c7be7e41..ad3bb8af 100644 --- a/nongnu/packages/vpn.scm +++ b/nongnu/packages/vpn.scm @@ -12,7 +12,7 @@ (define-public zerotier (package (name "zerotier") - (version "1.8.4") + (version "1.12.2") (source (origin (method git-fetch) (uri (git-reference @@ -21,16 +21,17 @@ (file-name (git-file-name name version)) (sha256 (base32 - "101b1k9f3cpbgj0l87ya1cbqs9dv0qiayjap4m29fxyjra8hbkb8")))) + "0p5rpvh137gf5y9ylip7kxfl4argv34sr4wiiygvfk670rifnk57")))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:make-flags (list "ZT_SSO_SUPPORTED=0") ; We don't need SSO/OIDC + #:phases (modify-phases %standard-phases ;; There is no ./configure (delete 'configure) (replace 'check - (lambda _ - (invoke "make" "selftest") + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "selftest" make-flags) (invoke "./zerotier-selftest"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) From 62daa38457a3c0ad4c02662a916122af5bc7e01a Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Sun, 31 Dec 2023 22:45:49 +0100 Subject: [PATCH 28/90] nonguix: chromium-binary: Use search-path-as-list from (guix build utils). We rely on the upstream implementation to avoid duplicating effort. * nonguix/build/chromium-binary-build-system (install-wrapper): Use search-path-as-list; * nonguix/build/utils.scm (build-paths-for-input): remove variable; (build-paths-from-inputs): remove variable. Signed-off-by: Jonathan Brielmaier --- .../build/chromium-binary-build-system.scm | 5 ++--- nonguix/build/utils.scm | 20 ------------------- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/nonguix/build/chromium-binary-build-system.scm b/nonguix/build/chromium-binary-build-system.scm index 0fed9bf5..84297427 100644 --- a/nonguix/build/chromium-binary-build-system.scm +++ b/nonguix/build/chromium-binary-build-system.scm @@ -4,7 +4,6 @@ (define-module (nonguix build chromium-binary-build-system) #:use-module ((guix build gnu-build-system) #:prefix gnu:) #:use-module ((nonguix build binary-build-system) #:prefix binary:) - #:use-module (nonguix build utils) #:use-module (guix build utils) #:use-module (ice-9 ftw) #:use-module (ice-9 match) @@ -24,9 +23,9 @@ (nss (assoc-ref inputs "nss")) (wrap-inputs (map cdr inputs)) (lib-directories - (build-paths-from-inputs '("lib") wrap-inputs)) + (search-path-as-list '("lib") wrap-inputs)) (bin-directories - (build-paths-from-inputs + (search-path-as-list '("bin" "sbin" "libexec") wrap-inputs))) (for-each diff --git a/nonguix/build/utils.scm b/nonguix/build/utils.scm index e7d6966f..4de2ac28 100644 --- a/nonguix/build/utils.scm +++ b/nonguix/build/utils.scm @@ -97,23 +97,3 @@ contents: (call-with-output-file result (lambda (port) (for-each (cut dump <> port) files)))) - -(define build-paths-for-input - (lambda (dirs input) - (filter-map - (lambda (sub-directory) - (let ((directory - (string-append - input "/" sub-directory))) - (and - (directory-exists? directory) - directory))) - dirs))) - -(define build-paths-from-inputs - (lambda (dirs inputs) - (reduce append '() - (map - (lambda (input) - (build-paths-for-input dirs input)) - inputs)))) From 34dec82fa91daed9c4d6869717c0ce5bb589393e Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Fri, 29 Mar 2024 22:03:26 +0100 Subject: [PATCH 29/90] nongnu: linux-firmware: Update to 20240312. * nongnu/packages/linux.scm (linux-firmware): Update to 20240312. [arguments]: Disable strip-binaries? and validate-runpath? flags but keep the corresponding build phases. (select-firmware): Handle the new RawFile keyword. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/linux.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index 13779451..314d4db6 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -319,24 +319,25 @@ stable, responsive and smooth desktop experience."))) (define-public linux-firmware (package (name "linux-firmware") - (version "20240115") + (version "20240312") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/firmware/" "linux-firmware-" version ".tar.xz")) (sha256 (base32 - "13b75kd075famc58pvx4r9268pxn69nyihx7p3i6i7mvkgqayz5b")))) + "152bpl3lzd7jb2z1cl1sfax6jm71bspn7bwc00lci5qqmma7lcmj")))) (build-system gnu-build-system) (arguments `(#:tests? #f + #:strip-binaries? #f + #:validate-runpath? #f #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases (replace 'install (lambda* (#:key (make-flags '()) #:allow-other-keys) - (apply invoke "make" "install-nodedup" make-flags))) - (delete 'validate-runpath)))) + (apply invoke "make" "install-nodedup" make-flags)))))) (home-page "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git") (synopsis "Nonfree firmware blobs for Linux") @@ -353,7 +354,7 @@ if your hardware is supported by one of the smaller firmware packages.") `(lambda _ (use-modules (ice-9 regex)) (substitute* "WHENCE" - (("^(File|Link): *([^ ]*)(.*)" _ type file rest) + (("^(File|RawFile|Link): *([^ ]*)(.*)" _ type file rest) (string-append (if (string-match ,keep file) type "Skip") ": " file rest))))) (define-public amdgpu-firmware From d6dbbc3a554ee903feee56d9ba72a25efa1ff73b Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Fri, 29 Mar 2024 22:58:21 +0100 Subject: [PATCH 30/90] nongnu: linux-firmware: Switch to gexps. * nongnu/packages/linux.scm (linux-firmware, amd-microcode, amdgpu-firmware, atheros-firmware, i915-firmware, ibt-hw-firmware, iwlwifi-firmware, radeon-firmware, realtek-firmware): Switch to gexps. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/linux.scm | 125 +++++++++++++++++++------------------- 1 file changed, 62 insertions(+), 63 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index 314d4db6..afd74e42 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -329,15 +329,15 @@ stable, responsive and smooth desktop experience."))) "152bpl3lzd7jb2z1cl1sfax6jm71bspn7bwc00lci5qqmma7lcmj")))) (build-system gnu-build-system) (arguments - `(#:tests? #f - #:strip-binaries? #f - #:validate-runpath? #f - #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (replace 'install - (lambda* (#:key (make-flags '()) #:allow-other-keys) - (apply invoke "make" "install-nodedup" make-flags)))))) + (list #:tests? #f + #:strip-binaries? #f + #:validate-runpath? #f + #:make-flags #~(list (string-append "DESTDIR=" #$output)) + #:phases + #~(modify-phases %standard-phases + (replace 'install + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "install-nodedup" make-flags)))))) (home-page "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git") (synopsis "Nonfree firmware blobs for Linux") @@ -351,23 +351,23 @@ if your hardware is supported by one of the smaller firmware packages.") (define (select-firmware keep) "Modify linux-firmware copy list to retain only files matching KEEP regex." - `(lambda _ - (use-modules (ice-9 regex)) - (substitute* "WHENCE" - (("^(File|RawFile|Link): *([^ ]*)(.*)" _ type file rest) - (string-append (if (string-match ,keep file) type "Skip") ": " file rest))))) + #~(lambda _ + (use-modules (ice-9 regex)) + (substitute* "WHENCE" + (("^(File|RawFile|Link): *([^ ]*)(.*)" _ type file rest) + (string-append (if (string-match #$keep file) type "Skip") ": " file rest))))) (define-public amdgpu-firmware (package (inherit linux-firmware) (name "amdgpu-firmware") (arguments - `(#:license-file-regexp "LICENSE.amdgpu" - ,@(substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'select-firmware - ,(select-firmware "^amdgpu/"))))))) + (cons* #:license-file-regexp "LICENSE.amdgpu" + (substitute-keyword-arguments (package-arguments linux-firmware) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'select-firmware + #$(select-firmware "^amdgpu/"))))))) (home-page "http://support.amd.com/en-us/download/linux") (synopsis "Nonfree firmware for AMD graphics chips") (description "Nonfree firmware for AMD graphics chips. While most AMD @@ -385,12 +385,12 @@ advanced 3D.") (inherit amdgpu-firmware) (name "radeon-firmware") (arguments - `(#:license-file-regexp "LICENSE.radeon" - ,@(substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'select-firmware - ,(select-firmware "^radeon/"))))))) + (cons* #:license-file-regexp "LICENSE.radeon" + (substitute-keyword-arguments (package-arguments linux-firmware) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'select-firmware + #$(select-firmware "^radeon/"))))))) (synopsis "Nonfree firmware for older AMD graphics chips") (description "Nonfree firmware for AMD graphics chips. While most AMD graphics cards can be run with the free Mesa, some cards require a nonfree @@ -442,12 +442,12 @@ and modules, userspace libraries, and bootloader/GPU firmware.") (inherit linux-firmware) (name "atheros-firmware") (arguments - `(#:license-file-regexp "LICEN[CS]E.*[Aa]th" - ,@(substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'select-firmware - ,(select-firmware "^(ar[3579]|ath[1369]|htc_[79]|qca/|wil6)"))))))) + (cons* #:license-file-regexp "LICEN[CS]E.*[Aa]th" + (substitute-keyword-arguments (package-arguments linux-firmware) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'select-firmware + #$(select-firmware "^(ar[3579]|ath[1369]|htc_[79]|qca/|wil6)"))))))) (synopsis "Nonfree firmware blobs for Atheros wireless cards") (description "Nonfree firmware blobs for Atheros wireless cards. This package contains nonfree firmware for the following chips: @@ -618,12 +618,12 @@ WLAN.TF.2.1-00021-QCARMSWP-1 (ath10k/QCA9377/hw1.0/firmware-6.bin) (inherit linux-firmware) (name "ibt-hw-firmware") (arguments - `(#:license-file-regexp "LICENCE.ibt_firmware" - ,@(substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'select-firmware - ,(select-firmware "^intel/ibt-"))))))) + (cons* #:license-file-regexp "LICENCE.ibt_firmware" + (substitute-keyword-arguments (package-arguments linux-firmware) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'select-firmware + #$(select-firmware "^intel/ibt-"))))))) (home-page "http://www.intel.com/support/wireless/wlan/sb/CS-016675.htm") (synopsis "Non-free firmware for Intel bluetooth chips") (description "This firmware is required by the btintel kernel module to @@ -639,12 +639,12 @@ laptops).") (inherit linux-firmware) (name "iwlwifi-firmware") (arguments - `(#:license-file-regexp "LICENCE.iwlwifi_firmware" - ,@(substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'select-firmware - ,(select-firmware "^iwlwifi-"))))))) + (cons* #:license-file-regexp "LICENCE.iwlwifi_firmware" + (substitute-keyword-arguments (package-arguments linux-firmware) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'select-firmware + #$(select-firmware "^iwlwifi-"))))))) (home-page "https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi") (synopsis "Nonfree firmware for Intel wifi chips") (description "The proprietary iwlwifi kernel module is required by many @@ -660,12 +660,12 @@ support for 5GHz and 802.11ac, among others.") (inherit linux-firmware) (name "i915-firmware") (arguments - `(#:license-file-regexp "LICENCE.i915" - ,@(substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'select-firmware - ,(select-firmware "^i915/"))))))) + (cons* #:license-file-regexp "LICENCE.i915" + (substitute-keyword-arguments (package-arguments linux-firmware) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'select-firmware + #$(select-firmware "^i915/"))))))) (home-page "https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.html") (synopsis "Nonfree firmware for Intel integrated graphics") (description "This package contains the various firmware for Intel @@ -680,13 +680,12 @@ integrated graphics chipsets, including GuC, HuC and DMC.") (inherit linux-firmware) (name "realtek-firmware") (arguments - `(#:license-file-regexp "LICENCE.rtlwifi_firmware.txt" - ,@(substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'select-firmware - ,(select-firmware - "^(rtlwifi|rtl_nic|rtl_bt|rtw88|rtw89)/"))))))) + (cons* #:license-file-regexp "LICENCE.rtlwifi_firmware.txt" + (substitute-keyword-arguments (package-arguments linux-firmware) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'select-firmware + #$(select-firmware "^(rtlwifi|rtl_nic|rtl_bt|rtw88|rtw89)/"))))))) (home-page "https://wireless.wiki.kernel.org/en/users/drivers/rtl819x") (synopsis "Nonfree firmware for Realtek ethernet, wifi, and bluetooth chips") (description @@ -1227,12 +1226,12 @@ your CPU.") (inherit linux-firmware) (name "amd-microcode") (arguments - `(#:license-file-regexp "LICENSE.amd-ucode" - ,@(substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'select-firmware - ,(select-firmware "^amd-ucode/"))))))) + (cons* #:license-file-regexp "LICENSE.amd-ucode" + (substitute-keyword-arguments (package-arguments linux-firmware) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'select-firmware + #$(select-firmware "^amd-ucode/"))))))) (synopsis "Processor microcode firmware for AMD CPUs") (description "Updated system processor microcode for AMD x86-64 processors. AMD releases microcode updates to correct processor behavior as From b04018d38a91ed647ac87eb681388c955d9e3bd4 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Fri, 29 Mar 2024 23:16:43 +0100 Subject: [PATCH 31/90] =?UTF-8?q?gnu:=20linux-firmware:=20Don=E2=80=99t=20?= =?UTF-8?q?skip=20deduplication.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * nongnu/packages/linux.scm (linux-firmware)[arguments]: Don’t skip file deduplication. [native-inputs]: Add rdfind. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/linux.scm | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index afd74e42..23b95726 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -29,6 +29,7 @@ (define-module (nongnu packages linux) #:use-module (gnu packages) + #:use-module (gnu packages admin) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages cpio) @@ -332,12 +333,9 @@ stable, responsive and smooth desktop experience."))) (list #:tests? #f #:strip-binaries? #f #:validate-runpath? #f - #:make-flags #~(list (string-append "DESTDIR=" #$output)) - #:phases - #~(modify-phases %standard-phases - (replace 'install - (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "install-nodedup" make-flags)))))) + #:make-flags #~(list (string-append "DESTDIR=" #$output)))) + (native-inputs + (list rdfind)) (home-page "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git") (synopsis "Nonfree firmware blobs for Linux") @@ -364,7 +362,7 @@ if your hardware is supported by one of the smaller firmware packages.") (arguments (cons* #:license-file-regexp "LICENSE.amdgpu" (substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) + ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (add-after 'unpack 'select-firmware #$(select-firmware "^amdgpu/"))))))) @@ -387,7 +385,7 @@ advanced 3D.") (arguments (cons* #:license-file-regexp "LICENSE.radeon" (substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) + ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (add-after 'unpack 'select-firmware #$(select-firmware "^radeon/"))))))) @@ -444,7 +442,7 @@ and modules, userspace libraries, and bootloader/GPU firmware.") (arguments (cons* #:license-file-regexp "LICEN[CS]E.*[Aa]th" (substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) + ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (add-after 'unpack 'select-firmware #$(select-firmware "^(ar[3579]|ath[1369]|htc_[79]|qca/|wil6)"))))))) @@ -620,7 +618,7 @@ WLAN.TF.2.1-00021-QCARMSWP-1 (ath10k/QCA9377/hw1.0/firmware-6.bin) (arguments (cons* #:license-file-regexp "LICENCE.ibt_firmware" (substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) + ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (add-after 'unpack 'select-firmware #$(select-firmware "^intel/ibt-"))))))) @@ -641,7 +639,7 @@ laptops).") (arguments (cons* #:license-file-regexp "LICENCE.iwlwifi_firmware" (substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) + ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (add-after 'unpack 'select-firmware #$(select-firmware "^iwlwifi-"))))))) @@ -662,7 +660,7 @@ support for 5GHz and 802.11ac, among others.") (arguments (cons* #:license-file-regexp "LICENCE.i915" (substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) + ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (add-after 'unpack 'select-firmware #$(select-firmware "^i915/"))))))) @@ -682,7 +680,7 @@ integrated graphics chipsets, including GuC, HuC and DMC.") (arguments (cons* #:license-file-regexp "LICENCE.rtlwifi_firmware.txt" (substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) + ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (add-after 'unpack 'select-firmware #$(select-firmware "^(rtlwifi|rtl_nic|rtl_bt|rtw88|rtw89)/"))))))) @@ -1228,7 +1226,7 @@ your CPU.") (arguments (cons* #:license-file-regexp "LICENSE.amd-ucode" (substitute-keyword-arguments (package-arguments linux-firmware) - ((#:phases phases) + ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (add-after 'unpack 'select-firmware #$(select-firmware "^amd-ucode/"))))))) From 8d047fc9a197222acb69a7392b46747e06ac89ed Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Mon, 1 Apr 2024 12:13:57 +0200 Subject: [PATCH 32/90] gnu: eduke32, fury: Update to 20240316-10564-0bc78c53d. * nongnu/packages/game-development.scm (eduke32, fury): Update to 20240316-10564-0bc78c53d. Rewrite to use gexps. [arguments]: Drop unnecessary make-flags. Drop wrapper script as upstream now handles configuration directories. [native-inputs]: Add gdk-pixbuf to fix compilation. [license]: Add gpl2. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/game-development.scm | 197 ++++++++++++--------------- 1 file changed, 84 insertions(+), 113 deletions(-) diff --git a/nongnu/packages/game-development.scm b/nongnu/packages/game-development.scm index 566cea2b..e23c4cab 100644 --- a/nongnu/packages/game-development.scm +++ b/nongnu/packages/game-development.scm @@ -1,16 +1,20 @@ ;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; Copyright © 2019, 2020 Pierre Neidhardt ;;; Copyright © 2022 Attila Lendvai +;;; Copyright © 2024 Timotej Lazar (define-module (nongnu packages game-development) #:use-module (ice-9 match) + #:use-module (srfi srfi-1) #:use-module ((nonguix licenses) :prefix license:) #:use-module (guix packages) #:use-module (nonguix build-system binary) #:use-module (guix build-system gnu) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix utils) + #:use-module ((guix licenses) :prefix license:) #:use-module (gnu packages audio) #:use-module (gnu packages base) #:use-module (gnu packages gcc) @@ -159,128 +163,95 @@ development should opt for GLSL rather than Cg.") "https://raw.githubusercontent.com/ValveSoftware/source-sdk-2013/master/LICENSE")))) (define-public eduke32 - ;; There are no official releases. - (let ((commit "188e14622cfe5c6f63b04b989b350bf2a29a893c") - (revision "1") - (duke-nukem-3d-directory "share/dukenukem3d")) - (package - (name "eduke32") - (version (git-version "0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://voidpoint.io/terminx/eduke32.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0wy4bppiw4q2hn0v38msrjyvj2hzfvigakc23c2wqfnbl7rm0hrz")) - ;; Unbundle libxmp. - (modules '((guix build utils))) - (snippet - '(begin (delete-file-recursively "source/libxmp-lite") #t)))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f - ;; Add glu to rpath so that SDL can dlopen it. - #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" - (assoc-ref %build-inputs "glu") "/lib")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'unbundle-libxmp - (lambda _ - (substitute* "GNUmakefile" - (("-I\\$\\(libxmplite_inc\\)") - (string-append "-I" (assoc-ref %build-inputs "libxmp") "/include")) - (("^ *audiolib_deps \\+= libxmplite.*$") "") - (("-logg") "-logg -lxmp")) - (with-directory-excursion "source/audiolib/src" - (for-each (lambda (file) (substitute* file (("libxmp-lite/") ""))) - '("multivoc.cpp" "xmp.cpp"))) - #t)) - (delete 'configure) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (glu (assoc-ref inputs "glu")) - (eduke (string-append out "/bin/eduke32")) - (eduke-real (string-append out "/bin/.eduke32-real"))) - ;; TODO: Install custom .desktop file? Need icon. - ;; See https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=eduke32. - (install-file "eduke32" (string-append out "/bin")) - (install-file "mapster32" (string-append out "/bin")) - (install-file "package/common/buildlic.txt" - (string-append out "/share/licenses")) - ;; Wrap program: - ;; - Make sure current directory is writable, else eduke32 will segfault. - ;; - Add ../share/dukenukem3d to the dir search list. - ;; TODO: Skip store duke3d.grp When ~/.config/eduke32/duke3d.grp is found. - (rename-file eduke eduke-real) - (call-with-output-file eduke - (lambda (p) - (format p "\ -#!~a -mkdir -p ~~/.config/eduke32 -cd ~~/.config/eduke32 -exec -a \"$0\" ~a\ - -g \"${0%/*}\"/../~a/*.grp\ - -g \"${0%/*}\"/../~a/*.zip\ - -g \"${0%/*}\"/../~a/*.map\ - -g \"${0%/*}\"/../~a/*.con\ - -g \"${0%/*}\"/../~a/*.def\ - \"$@\"~%" - (which "bash") eduke-real - ,duke-nukem-3d-directory - ,duke-nukem-3d-directory - ,duke-nukem-3d-directory - ,duke-nukem-3d-directory - ,duke-nukem-3d-directory))) - (chmod eduke #o755))))))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("sdl-union" ,(sdl-union (list sdl2 sdl2-mixer))) - ("alsa-lib" ,alsa-lib) - ("glu" ,glu) - ("libvorbis" ,libvorbis) - ("libvpx" ,libvpx) - ("libxmp" ,libxmp) - ("flac" ,flac) - ("gtk+" ,gtk+-2))) - (synopsis "Engine of the classic PC first person shooter Duke Nukem 3D") - (description "EDuke32 is a free homebrew game engine and source port of the -classic PC first person shooter Duke Nukem 3D—Duke3D for short. A thousands -of features and upgrades were added for regular players and additional editing -capabilities and scripting extensions for homebrew developers and mod -creators. EDuke32 is open source but non-free software. + (package + (name "eduke32") + (version "20240316-10564-0bc78c53d") + (source + (origin + (method url-fetch) + (uri (string-append "https://dukeworld.com/eduke32/synthesis/" + version "/eduke32_src_" version ".tar.xz")) + (sha256 + (base32 "1a9fw1kfriyrybjxl72b2434w3yiz2nxg6541lnyhzbdka2cp2lf")) + (modules '((guix build utils))) + (snippet + ;; Remove bundled libxmp and platform-specific stuff. + #~(for-each delete-file-recursively '("platform" "source/libxmp-lite"))))) + (build-system gnu-build-system) + (arguments + (list #:license-file-regexp "buildlic.txt" + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'link-license + (lambda _ + ;; Ensure the install-license-files phase can find it. + (link "package/common/buildlic.txt" "buildlic.txt"))) + (add-after 'unpack 'unbundle-libxmp + (lambda _ + (substitute* "Common.mak" + (("^LIBS :=" match) (string-append match " -lxmp"))) + (with-directory-excursion "source/audiolib/src" + (for-each (lambda (file) (substitute* file (("libxmp-lite/") ""))) + '("multivoc.cpp" "xmp.cpp"))))) + (add-after 'unpack 'fix-share-path + (lambda _ + (substitute* "source/duke3d/src/common.cpp" + (("/usr/local/share/games") (string-append #$output "/share"))))) + (delete 'configure) + (replace 'install + (lambda _ + (let ((bin (string-append #$output "/bin"))) + (install-file "eduke32" bin) + (install-file "mapster32" bin) + (install-file "package/sdk/m32help.hlp" + (string-append #$output "/share/eduke32")))))))) + (inputs (list alsa-lib + flac + glu + gtk+-2 + libvorbis + libvpx + libxmp + sdl2 + sdl2-mixer)) + (native-inputs + (list gdk-pixbuf pkg-config)) + (synopsis "Engine of the classic PC first person shooter Duke Nukem 3D") + (description "EDuke32 is a free homebrew game engine and source port of +the classic PC first person shooter Duke Nukem 3D—Duke3D for short. A +thousands of features and upgrades were added for regular players and +additional editing capabilities and scripting extensions for homebrew +developers and mod creators. EDuke32 is open source but non-free software. This package does not contain any game file. You can either install packages with game files or or put @file{.grp} game files manually in @file{~/.config/eduke32/}.") - (home-page "https://eduke32.com/") - (license (license:nonfree - "https://eduke32.com/buildlic.txt"))))) + (home-page "https://eduke32.com") + (license + (list license:gpl2 + (license:nonfree "file://package/common/buildlic.txt"))))) (define-public fury - (package - (inherit eduke32) + (package/inherit eduke32 (name "fury") (arguments (substitute-keyword-arguments (package-arguments eduke32) - ((#:make-flags flags ''()) `(cons* "FURY=1" ,flags)) - ((#:phases phases '%standard-phases) - `(modify-phases ,phases - (replace 'install - (lambda _ - (let* ((out (assoc-ref %outputs "out"))) - (install-file "fury" (string-append out "/bin")) - (install-file "mapster32" (string-append out "/bin")) - (install-file "package/common/buildlic.txt" - (string-append out "/share/licenses"))) - #t)))))) + ((#:make-flags flags #~'()) + #~(cons* "FURY=1" #$flags)) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-after 'unpack 'disable-sdl-static + (lambda _ + (substitute* "GNUmakefile" + (("SDL_STATIC := 1") "")))) + (replace 'install + (lambda _ + (install-file "fury" (string-append #$output "/bin")))))))) + (inputs + (alist-delete "libvpx" (package-inputs eduke32))) (synopsis "Game engine for the first-person shooter Ion Fury") (description - (string-append - "This is the @code{eduke32} engine built with support for the Ion Fury + "This is the @code{eduke32} engine built with support for the Ion Fury game. Game data is not provided. Run @command{fury} with the option -@option{-j} to specify the directory containing @file{fury.grp}.")))) +@option{-j} to specify the directory containing @file{fury.grp}."))) From a79f2b58e24c4c54389329cf3b313f40846a201e Mon Sep 17 00:00:00 2001 From: Jonathan Brielmaier Date: Mon, 1 Apr 2024 15:46:19 +0200 Subject: [PATCH 33/90] nongnu: compcert: Update to 3.13.1. * nongnu/packages/coq.scm (compcert): Update to 3.13.1. [arguments]: Allow newer coq version. --- nongnu/packages/coq.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/coq.scm b/nongnu/packages/coq.scm index e8c9137d..6fcf7a70 100644 --- a/nongnu/packages/coq.scm +++ b/nongnu/packages/coq.scm @@ -15,7 +15,7 @@ (define-public compcert (package (name "compcert") - (version "3.12") + (version "3.13.1") (source (origin (method git-fetch) (uri (git-reference @@ -24,7 +24,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0pcrkz1as37iz2wcp8j226fjn672lrj0cip2s0wpkiy097qi0yc5")))) + "0yvj9g144p26k7674vcai12sh3jahs64ny9pana9zla16nxxpmcm")))) (build-system gnu-build-system) (arguments `(#:phases @@ -32,7 +32,7 @@ (add-before 'configure 'allow-newer-coq-version (lambda _ (substitute* "configure" - (("8.15.2") "8.16.1")))) + (("8.15.2") "8.17.1")))) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((system ,(match (or (%current-target-system) (%current-system)) From ec1daa71c7f03e7401d05136c290630f03f9a560 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Tue, 2 Apr 2024 21:13:09 +0200 Subject: [PATCH 34/90] nongnu: firefox: Update to 124.0.2. * nongnu/packages/mozilla.scm (firefox): Update to 124.0.2. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/mozilla.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/mozilla.scm b/nongnu/packages/mozilla.scm index 8a8ce01c..2b2a2399 100644 --- a/nongnu/packages/mozilla.scm +++ b/nongnu/packages/mozilla.scm @@ -532,20 +532,20 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n" ;; Update this id with every firefox update to its release date. ;; It's used for cache validation and therefore can lead to strange bugs. -(define %firefox-build-id "20240322073900") +(define %firefox-build-id "20240401222156") (define-public firefox (package (inherit firefox-esr) (name "firefox") - (version "124.0.1") + (version "124.0.2") (source (origin (method url-fetch) (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" version "/source/firefox-" version ".source.tar.xz")) (sha256 - (base32 "0hxqd8sfj9zzi1ifni8z5r2hzhjw2pvl7hg3dgzmgq2mm2p1db6x")))) + (base32 "076rnbj1813b46slqp1pim3qkh9n0i4y8r3krdsqi77180snslm6")))) (arguments (substitute-keyword-arguments (package-arguments firefox-esr) ((#:phases phases) From 7651e8be04db84d85a21741326937fdb8a74ea84 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Sun, 7 Apr 2024 17:56:21 +0200 Subject: [PATCH 35/90] nongnu: gmmlib: Update to 22.3.15. * nongnu/packages/video.scm (gmmlib): Update to 22.3.15. --- nongnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/video.scm b/nongnu/packages/video.scm index b2cec1b4..4e9ebfd4 100644 --- a/nongnu/packages/video.scm +++ b/nongnu/packages/video.scm @@ -15,7 +15,7 @@ (define-public gmmlib (package (name "gmmlib") - (version "22.3.9") + (version "22.3.15") (source (origin (method git-fetch) (uri (git-reference @@ -24,7 +24,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0m88lxlqqs5wdk4icf2ahbigr0q87j1c0damq7q0r55h72pf6zyv")))) + "0qmdprqarqdz8z6s1av2vmd7ma5yaswxkxzdjci57fgyylqkjlri")))) (build-system cmake-build-system) (arguments ;; Tests are run as part of the normal build step From e7d3824c8796ba6d3a0bb55dfc10dfebe64af470 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Sun, 7 Apr 2024 17:56:38 +0200 Subject: [PATCH 36/90] nongnu: intel-media-driver: Update to 23.4.3. * nongnu/packages/video.scm (intel-media-driver): Update to 23.4.3. --- nongnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/video.scm b/nongnu/packages/video.scm index 4e9ebfd4..4c6a4b03 100644 --- a/nongnu/packages/video.scm +++ b/nongnu/packages/video.scm @@ -40,7 +40,7 @@ for VAAPI.") (define-public intel-media-driver (package (name "intel-media-driver") - (version "23.3.0") + (version "23.4.3") (source (origin (method git-fetch) (uri (git-reference @@ -49,7 +49,7 @@ for VAAPI.") (file-name (git-file-name name version)) (sha256 (base32 - "1zh6zgfyp14zlnd6jvhqz9q5rlyk7cb3nam791slh0h7r5f0iimm")))) + "0rgjakygfzy6d3jz38nnjvcvqyjnwz2b4vfh1ifqfcm3bw56fmr9")))) (build-system cmake-build-system) (inputs (list libva gmmlib)) (native-inputs (list pkg-config)) From ec3565d2846870834c2edf7bdbc4d434925d927b Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Mon, 8 Apr 2024 22:01:54 -0400 Subject: [PATCH 37/90] nongnu: linux: Update the default linux package to the 6.8 series. Upstream Guix defaulted to linux-libre-6.8 in commit 40e44bdea6f4c3dc3563427fdf096a60812534a7. Do likewise here. * nongnu/packages/linux.scm (linux): Use linux-6.8. --- nongnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index 23b95726..47d737c8 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -157,7 +157,7 @@ on hardware which requires nonfree software to function.")))) (define-public linux-4.19 (corrupt-linux linux-libre-4.19)) -(define-public linux linux-6.7) +(define-public linux linux-6.8) ;; linux-lts points to the *newest* released long-term support version. (define-public linux-lts linux-6.1) From 2978ae66b90d1dfdfb97e34e45c97e0d7a392fdb Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Mon, 8 Apr 2024 22:04:35 -0400 Subject: [PATCH 38/90] nongnu: Remove linux-6.7. Guix will remove linux-libre-6.7 soon (end of life), so remove linux-6.7 before it leads to an error in 'guix pull' when it is removed upstream. * nongnu/packages/linux.scm (linux-6.7): Remove variable. --- nongnu/packages/linux.scm | 3 --- 1 file changed, 3 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index 47d737c8..8767ea28 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -136,9 +136,6 @@ on hardware which requires nonfree software to function.")))) (define-public linux-6.8 (corrupt-linux linux-libre-6.8)) -(define-public linux-6.7 - (corrupt-linux linux-libre-6.7)) - (define-public linux-6.6 (corrupt-linux linux-libre-6.6)) From 54fb2194a1d0a5be28bd21fd870d3b2a8180c69b Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Mon, 8 Apr 2024 22:07:31 -0400 Subject: [PATCH 39/90] nongnu: linux-lts: Update to 6.6 series. Upstream Guix defaulted linux-libre-lts to 6.6 in commit b4aed68e960116b2b60f68ea1468d7a526149823. Do likewise here. * nongnu/packages/linux.scm (linux-lts): Use linux-6.6. --- nongnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index 8767ea28..9ae113dc 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -156,7 +156,7 @@ on hardware which requires nonfree software to function.")))) (define-public linux linux-6.8) ;; linux-lts points to the *newest* released long-term support version. -(define-public linux-lts linux-6.1) +(define-public linux-lts linux-6.6) (define-public linux-arm64-generic-5.10 (corrupt-linux linux-libre-arm64-generic-5.10 #:name "linux-arm64-generic")) From 80b273e86a19ceaee6d9b6650ed56e853409a799 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 24 Feb 2024 20:41:46 +0800 Subject: [PATCH 40/90] nongnu: installation-os-nonfree: Set default channels. * nongnu/system/install.scm (%signing-key,%channels): New variables. (installation-os-nonfree)[services]: Configure them. Authorise Nonguix substitute server. Tested-by: Jonathan Brielmaier Signed-off-by: Jonathan Brielmaier --- nongnu/system/install.scm | 43 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/nongnu/system/install.scm b/nongnu/system/install.scm index 100e278b..508621ef 100644 --- a/nongnu/system/install.scm +++ b/nongnu/system/install.scm @@ -2,20 +2,46 @@ ;;; Copyright © 2019 Alex Griffin ;;; Copyright © 2019 Pierre Neidhardt ;;; Copyright © 2022 Jonathan Brielmaier +;;; Copyright © 2024 Hilton Chain ;; Generate a bootable image (e.g. for USB sticks, etc.) with: -;; $ guix system disk-image nongnu/system/install.scm +;; $ guix system image --image-type=iso9660 nongnu/system/install.scm (define-module (nongnu system install) + #:use-module (guix channels) + #:use-module (guix gexp) #:use-module (gnu packages curl) + #:use-module (gnu packages package-management) #:use-module (gnu packages version-control) #:use-module (gnu packages vim) #:use-module (gnu packages zile) + #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu system) #:use-module (gnu system install) #:use-module (nongnu packages linux) #:export (installation-os-nonfree)) +;; https://substitutes.nonguix.org/signing-key.pub +(define %signing-key + (plain-file "nonguix.pub" "\ +(public-key + (ecc + (curve Ed25519) + (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))")) + +(define %channels + (cons* (channel + (name 'nonguix) + (url "https://gitlab.com/nonguix/nonguix") + ;; Enable signature verification: + (introduction + (make-channel-introduction + "897c1a470da759236cc11798f4e0a5f7d4d59fbc" + (openpgp-fingerprint + "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) + %default-channels)) + (define installation-os-nonfree (operating-system (inherit installation-os) @@ -27,6 +53,19 @@ git neovim zile) - (operating-system-packages installation-os))))) + (operating-system-packages installation-os))) + (services + (modify-services (operating-system-user-services installation-os) + (guix-service-type + config => (guix-configuration + (inherit config) + (guix (guix-for-channels %channels)) + (authorized-keys + (cons* %signing-key + %default-authorized-guix-keys)) + (substitute-urls + `(,@%default-substitute-urls + "https://substitutes.nonguix.org")) + (channels %channels))))))) installation-os-nonfree From 393abd05a295401303defa6c368766d99d0946d8 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Sun, 14 Apr 2024 15:27:17 -0400 Subject: [PATCH 41/90] nongnu: element-desktop: Update to 1.11.64. * nongnu/packages/messaging.scm (element-desktop): Update to 1.11.64. --- nongnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index a28985df..aeb8f3ee 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -36,7 +36,7 @@ (define-public element-desktop (package (name "element-desktop") - (version "1.11.57") + (version "1.11.64") (source (origin (method url-fetch) @@ -45,7 +45,7 @@ "https://packages.riot.im/debian/pool/main/e/" name "/" name "_" version "_amd64.deb")) (sha256 - (base32 "05318i6z5kkzi01ygr77g5ij0hs4xmy0j23hznkqc4zia02q1vgx")))) + (base32 "043017i51kdpb6aqz7542dyrdw8d6jhqd9zw6v1c63phh1633y56")))) (supported-systems '("x86_64-linux")) (build-system chromium-binary-build-system) (arguments From 9c70cf49c8734b3807cc92b2e5a123b3800efd7f Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 16 Mar 2024 07:32:38 +0800 Subject: [PATCH 42/90] nongnu: make-linux-xanmod: Remove unnecessary option overrides. Guix can identify builtin modules when building the initrd now. * nongnu/packages/linux.scm (make-linux-xanmod)[arguments]<#:phases>: Don't override CONFIG_CRYPTO_XTS and CONFIG_VIRTIO_CONSOLE in 'add-xanmod-defconfig. Signed-off-by: John Kehayias --- nongnu/packages/linux.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index 9ae113dc..d0b9edc0 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -255,9 +255,7 @@ on hardware which requires nonfree software to function.")))) (append %default-extra-linux-options ;; NOTE: These are configs expected by Guix ;; but missing from XanMod defconfig. - '(("CONFIG_BLK_DEV_NVME" . #t) - ("CONFIG_CRYPTO_XTS" . m) - ("CONFIG_VIRTIO_CONSOLE" . m)))))) + '(("CONFIG_BLK_DEV_NVME" . #t)))))) (display extra-configuration port) (close-port port)) (invoke "make" "oldconfig") From 60c4ea0dd00e6825e3cab535900d1acf577302f1 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sun, 14 Apr 2024 06:48:00 +0800 Subject: [PATCH 43/90] nongnu: linux-xanmod-lts: Update to 6.6.27. * nongnu/packages/linux.scm (linux-xanmod-lts-version): Update to 6.6.27. (linux-xanmod-lts-source): Update hash. Signed-off-by: John Kehayias --- nongnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index d0b9edc0..7c4425df 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -286,7 +286,7 @@ stable, responsive and smooth desktop experience."))) #:kernel-hash (base32 "0s8hbcsg7fdvspqam8kzcxygjsznr4zfi60nqgc81l3n4m518cgg") #:xanmod-hash (base32 "0hv76dj9z17w6zcy25v1ndlmdw593wlbmnw5x903vidb3c6a1dfi"))) -(define-public linux-xanmod-lts-version "6.6.18") +(define-public linux-xanmod-lts-version "6.6.27") (define-public linux-xanmod-lts-revision "xanmod1") (define-public linux-xanmod-lts-source (make-linux-xanmod-source @@ -294,7 +294,7 @@ stable, responsive and smooth desktop experience."))) linux-xanmod-lts-revision #:xanmod-branch "lts" #:kernel-hash (base32 "1l2nisx9lf2vdgkq910n5ldbi8z25ky1zvl67zgwg2nxcdna09nr") - #:xanmod-hash (base32 "1q33bd4a65l46333l2m7vjn46b0xhdbz508bq7q0bphbmy0bf35m"))) + #:xanmod-hash (base32 "0inlpdscdpqahwlsf8kc2zjp2p83yr2cfqyaxld6m4bjkbg23lvz"))) ;; Linux-XanMod packages (define-public linux-xanmod From f9a27a679bd02fcebae69833b14ef54dff82ccf1 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sun, 14 Apr 2024 06:48:16 +0800 Subject: [PATCH 44/90] nongnu: linux-xanmod: Update to 6.8.6. * nongnu/packages/linux.scm (linux-xanmod-version): Update to 6.8.6. (linux-xanmod-source): Update hash. Signed-off-by: John Kehayias --- nongnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index 7c4425df..fc7faf41 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -276,15 +276,15 @@ distribution with custom settings and new features. It's built to provide a stable, responsive and smooth desktop experience."))) ;; Linux-XanMod sources -(define-public linux-xanmod-version "6.7.6") +(define-public linux-xanmod-version "6.8.6") (define-public linux-xanmod-revision "xanmod1") (define-public linux-xanmod-source (make-linux-xanmod-source linux-xanmod-version linux-xanmod-revision #:xanmod-branch "main" - #:kernel-hash (base32 "0s8hbcsg7fdvspqam8kzcxygjsznr4zfi60nqgc81l3n4m518cgg") - #:xanmod-hash (base32 "0hv76dj9z17w6zcy25v1ndlmdw593wlbmnw5x903vidb3c6a1dfi"))) + #:kernel-hash (base32 "1wv5x7qhcd05m8m0myyqm2il6mha1sx11h7ppf8yjsxvx2jdwsf9") + #:xanmod-hash (base32 "1ry4qmsis7s2bb6hpkvq30ffgvhzj1w33js67ybnvagzda5vbmci"))) (define-public linux-xanmod-lts-version "6.6.27") (define-public linux-xanmod-lts-revision "xanmod1") From 22ceef25015d0ebeb23f9dfe6305b4e542fc6225 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Tue, 16 Apr 2024 20:59:00 +0200 Subject: [PATCH 45/90] nongnu: firefox-esr: Update to 115.10.0esr [security fixes]. Fixes CVE-2024-2609, CVE-2024-3302, CVE-2024-3852, CVE-2024-3854, CVE-2024-3857, CVE-2024-3859, CVE-2024-3861, CVE-2024-3863, CVE-2024-3864. * nongnu/packages/mozilla.scm (firefox-esr): Update to 115.10.0esr. Signed-off-by: John Kehayias --- nongnu/packages/mozilla.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/mozilla.scm b/nongnu/packages/mozilla.scm index 2b2a2399..adf20d1c 100644 --- a/nongnu/packages/mozilla.scm +++ b/nongnu/packages/mozilla.scm @@ -97,19 +97,19 @@ ;; Update this id with every firefox update to its release date. ;; It's used for cache validation and therefore can lead to strange bugs. -(define %firefox-esr-build-id "20240322120907") +(define %firefox-esr-build-id "20240415130026") (define-public firefox-esr (package (name "firefox-esr") - (version "115.9.1esr") + (version "115.10.0esr") (source (origin (method url-fetch) (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" version "/source/firefox-" version ".source.tar.xz")) (sha256 - (base32 "0agr8s42lpbq5gixsgj5kpcvimbnyx6msr4il4rvmf7gpw47hr93")))) + (base32 "1wpf4vcrvnvhnfzqavbkzqbn51bds1l9f6ld4mzh9xwm7mrkrz8a")))) (build-system gnu-build-system) (arguments (list From 1ee5d0cc09155e81ce0255b81a212922dad10a17 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Tue, 16 Apr 2024 20:58:54 +0200 Subject: [PATCH 46/90] nongnu: firefox: Update to 125.0.1 [security fixes]. Fixes CVE-2024-3302, CVE-2024-3852, CVE-2024-3853, CVE-2024-3854, CVE-2024-3855, CVE-2024-3856, CVE-2024-3857, CVE-2024-3858, CVE-2024-3859, CVE-2024-3860, CVE-2024-3861, CVE-2024-3862, CVE-2024-3863, CVE-2024-3864, CVE-2024-3865. * nongnu/packages/mozilla.scm (firefox): Update to 125.0.1. Signed-off-by: John Kehayias --- nongnu/packages/mozilla.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/mozilla.scm b/nongnu/packages/mozilla.scm index adf20d1c..37a129f5 100644 --- a/nongnu/packages/mozilla.scm +++ b/nongnu/packages/mozilla.scm @@ -532,20 +532,20 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n" ;; Update this id with every firefox update to its release date. ;; It's used for cache validation and therefore can lead to strange bugs. -(define %firefox-build-id "20240401222156") +(define %firefox-build-id "20240416141733") (define-public firefox (package (inherit firefox-esr) (name "firefox") - (version "124.0.2") + (version "125.0.1") (source (origin (method url-fetch) (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" version "/source/firefox-" version ".source.tar.xz")) (sha256 - (base32 "076rnbj1813b46slqp1pim3qkh9n0i4y8r3krdsqi77180snslm6")))) + (base32 "046d84j46qi51i1nc1ysmjma0br1sd5smhsnv3y066w1c3ng4kr7")))) (arguments (substitute-keyword-arguments (package-arguments firefox-esr) ((#:phases phases) From bb6fcec6e95af636e21e2da14f8917d692d066c5 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Mon, 22 Apr 2024 18:11:53 +0200 Subject: [PATCH 47/90] nongnu: firefox: Update to 125.0.2. * nongnu/packages/mozilla.scm (firefox): Update to 125.0.2. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/mozilla.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/mozilla.scm b/nongnu/packages/mozilla.scm index 37a129f5..7a51866d 100644 --- a/nongnu/packages/mozilla.scm +++ b/nongnu/packages/mozilla.scm @@ -532,20 +532,20 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n" ;; Update this id with every firefox update to its release date. ;; It's used for cache validation and therefore can lead to strange bugs. -(define %firefox-build-id "20240416141733") +(define %firefox-build-id "20240422125740") (define-public firefox (package (inherit firefox-esr) (name "firefox") - (version "125.0.1") + (version "125.0.2") (source (origin (method url-fetch) (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" version "/source/firefox-" version ".source.tar.xz")) (sha256 - (base32 "046d84j46qi51i1nc1ysmjma0br1sd5smhsnv3y066w1c3ng4kr7")))) + (base32 "16gpd6n52lshvkkha41z7xicggj64dw0qhr5gd07bcxsc4rmdl39")))) (arguments (substitute-keyword-arguments (package-arguments firefox-esr) ((#:phases phases) From a276531874fe7e6676adb2f73aa63a5fa3477800 Mon Sep 17 00:00:00 2001 From: Jonathan Brielmaier Date: Wed, 24 Apr 2024 22:47:14 +0200 Subject: [PATCH 48/90] nongnu: rtl8192eu-linux-module: Update to 0.0.0-7.3af9a86. Fixes building with newer kernels. * nongnu/packages/linux.scm (rtl8192eu-linux-module): Update to 0.0.0-7.3af9a86. --- nongnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index fc7faf41..ab03d4e0 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -768,8 +768,8 @@ package contains nonfree firmware for the following chips: (deprecated-package "rtl-bt-firmware" realtek-firmware)) (define-public rtl8192eu-linux-module - (let ((commit "a928f08c1dd4f9a1e84d85811a543e974551bc4f") - (revision "6")) + (let ((commit "3af9a868a0ca622d830966ac83aea2bf17cd0d65") + (revision "7")) (package (name "rtl8192eu-linux-module") (version (git-version "0.0.0" revision commit)) @@ -782,7 +782,7 @@ package contains nonfree firmware for the following chips: (file-name (git-file-name name version)) (sha256 (base32 - "1q26kyic4glmgy0hbaq46r067m6cqf7d41chgivyxn8y32rf1fgc")))) + "0d2qzf7xbipjdp1zm2ffqhnda8wasqriqnv6dkl0mhqn2f8za3i8")))) (build-system linux-module-build-system) (arguments `(#:make-flags From dd080d7a9169b3931f159969060fa1abc97b8089 Mon Sep 17 00:00:00 2001 From: Jonathan Brielmaier Date: Wed, 24 Apr 2024 22:50:41 +0200 Subject: [PATCH 49/90] nongnu: rtl8812au-aircrack-ng-linux-module: Update to 5.6.4.2-13.63cf0b4. Fixes building with newer kernel versions. * nongnu/packages/linux.scm (rtl8812au-aircrack-ng-linux-module): Update to 5.6.4.2-13.63cf0b4. --- nongnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index ab03d4e0..b6d4dfae 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -902,8 +902,8 @@ to disable the conflicting rtw88 driver: "https://github.com/morrownr/8821cu-20210916/blob/main/LICENSE"))))) (define-public rtl8812au-aircrack-ng-linux-module - (let ((commit "a3e0c0b6d54546418f046db0dbf1d20e454c9ec2") - (revision "12")) + (let ((commit "63cf0b4584aa8878b0fe8ab38017f31c319bde3d") + (revision "13")) (package (inherit rtl8821ce-linux-module) (name "rtl8812au-aircrack-ng-linux-module") @@ -916,7 +916,7 @@ to disable the conflicting rtw88 driver: (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1hwzsy62h7ik5s54paikcj5ips7mrnfacprciiq412mz5ag28cdn")) + (base32 "103pn6qlj116dm244ygf1wic9dq2qn80lafiyxynyhpckkyhhfxl")) (modules '((guix build utils))) (snippet #~(begin From d358152cc8e1c57155b76cc2f40baf86e1af8846 Mon Sep 17 00:00:00 2001 From: Jonathan Brielmaier Date: Wed, 24 Apr 2024 22:53:35 +0200 Subject: [PATCH 50/90] nongnu: rtl8821cu-linux-module: Update to 0.0.0-2.4f6004a. Fixes building with newer kernel versions. * nongnu/packages/linux.scm (rtl8821cu-linux-module): Update to 0.0.0-2.4f6004a. --- nongnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index b6d4dfae..df3648c9 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -848,8 +848,8 @@ network adapters.") (license gpl2)))) (define-public rtl8821cu-linux-module - (let ((commit "a41ef7cabd1aa36fa2b4eb63a71cf719bff11b72") - (revision "1")) + (let ((commit "4f6004af4c4171882f37e2e5d8fb3609fe260617") + (revision "2")) (package (name "rtl8821cu-linux-module") (version (git-version "0.0.0" revision commit)) @@ -861,7 +861,7 @@ network adapters.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0fnv4gm4adnf8gbjzc2lljh2a3i111159qira3w0qm1zhyqadaq0")))) + (base32 "09ig0rrkkn00i3d1n6p62n1610kcjgb2h9kbcqdsrmpnlnw5kfl2")))) (build-system linux-module-build-system) (arguments (list From fc49e4d6dba06f48550e02cdb0357a863695d950 Mon Sep 17 00:00:00 2001 From: Jonathan Brielmaier Date: Wed, 24 Apr 2024 22:56:32 +0200 Subject: [PATCH 51/90] nongnu: facetimehd: Update to 0.6.8.1. * nongnu/packages/linux.scm (facetimehd): Update to 0.6.8.1. --- nongnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/linux.scm b/nongnu/packages/linux.scm index df3648c9..a18ed7ef 100644 --- a/nongnu/packages/linux.scm +++ b/nongnu/packages/linux.scm @@ -1150,7 +1150,7 @@ chipsets from Broadcom: (define-public facetimehd (package (name "facetimehd") - (version "0.6.8") + (version "0.6.8.1") (source (origin (method git-fetch) @@ -1160,7 +1160,7 @@ chipsets from Broadcom: (file-name (git-file-name "facetimehd" version)) (sha256 (base32 - "1g0ky9w5klkjndf30mjymq78r6yls9gri9x702nn8qkmgkjbqdsg")))) + "18x12g55bw99ap9cw54v50s5m39dli4nx41jfhb35551mn0jp4c7")))) (build-system linux-module-build-system) (arguments '(#:tests? #f)) From c1c9bb05717c57c101bf01f4f7a2db01ef9993bd Mon Sep 17 00:00:00 2001 From: Jonathan Brielmaier Date: Wed, 24 Apr 2024 22:58:48 +0200 Subject: [PATCH 52/90] nongnu: lightburn: Use qtserialport-5. Upstream Guix upgraded qtserialport to QT@6, which seems to be incompatible: 50a72a08af37557575199b56bbee9f334d58575a * nongnu/packages/cad.scm (lightburn)[inputs]: Replace `qtserialport` with `qtserialport-5`. --- nongnu/packages/cad.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nongnu/packages/cad.scm b/nongnu/packages/cad.scm index c17bb35c..a66bef39 100644 --- a/nongnu/packages/cad.scm +++ b/nongnu/packages/cad.scm @@ -146,7 +146,7 @@ openlibm pulseaudio qtbase-5 - qtserialport + qtserialport-5 qtmultimedia-5 zlib)) (synopsis "Layout, editing, and control software for your laser cutter") From 47941b0a84e4148bc778e4854fd6bfb38fa9928c Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Thu, 1 Feb 2024 18:39:27 +0800 Subject: [PATCH 53/90] nongnu: nvidia: Re-order variables. * nongnu/packages/nvidia.scm: Remove unused modules. Add comments to group NVIDIA driver packages. Sort other packages alphabetically. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 528 ++++++++++++++++++++----------------- 1 file changed, 280 insertions(+), 248 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index f75d0d42..d1aaffd0 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -38,25 +38,16 @@ #:use-module (gnu packages linux) #:use-module (gnu packages m4) #:use-module (gnu packages lsof) - #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) - #:use-module (gnu packages python-web) #:use-module (gnu packages qt) - #:use-module (gnu packages terminals) #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (nongnu packages linux) - #:use-module (ice-9 match) - #:use-module (ice-9 regex) - #:use-module (ice-9 format) - #:use-module (ice-9 textual-ports) - #:use-module (ice-9 match) - #:use-module (srfi srfi-1)) + #:use-module (ice-9 match)) (define-public %nvidia-environment-variable-regexps '("^__GL_" ; NVIDIA OpenGL settings. @@ -73,11 +64,17 @@ ;; GSYNC control for Vulkan direct-to-display applications. "^VKDirectGSYNC(Compatible)?Allowed$")) -(define nvidia-version "515.76") +(define-public nvidia-version "515.76") (define computed-origin-method (@@ (guix packages) computed-origin-method)) + +;;; +;;; NVIDIA driver checkouts +;;; + + ;; Extract the driver installer and make it a new origin instance for reusing. (define (make-nvidia-source version installer) (origin @@ -107,7 +104,7 @@ (not (member file '("." "..")))))) #$output))))))) -(define nvidia-source +(define-public nvidia-source (let ((version nvidia-version)) (make-nvidia-source version @@ -119,110 +116,11 @@ (sha256 (base32 "0i5zyvlsjnfkpfqhw6pklp0ws8nndyiwxrg4pj04jpwnxf6a38n6")))))) -(define-public gpustat - (package - (name "gpustat") - (version "1.0.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "gpustat" version)) - (sha256 - (base32 - "1wg3yikkqdrcxp5xscyb9rxifgfwv7qh73xv4airab63b3w8y7jq")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) - (propagated-inputs (list python-blessed python-nvidia-ml-py python-psutil - python-six)) - (native-inputs (list python-mock python-pytest python-pytest-runner)) - (home-page "https://github.com/wookayin/gpustat") - (synopsis "Utility to monitor NVIDIA GPU status and usage") - (description - "This package provides an utility to monitor NVIDIA GPU status -and usage.") - (license license-gnu:expat))) + +;;; +;;; NVIDIA drivers +;;; -(define-public python-nvidia-ml-py - (package - (name "python-nvidia-ml-py") - (version "11.495.46") - (source (origin - (method url-fetch) - (uri (pypi-uri "nvidia-ml-py" version)) - (sha256 - (base32 - "09cnb7xasd7brby52j70y7fqsfm9n6gvgqf769v0cmj74ypy2s4g")))) - (build-system python-build-system) - (arguments - (list #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'fix-libnvidia - (lambda _ - (substitute* "pynvml.py" - (("libnvidia-ml.so.1") - (string-append #$(this-package-input - "nvidia-driver") - "/lib/libnvidia-ml.so.1")))))))) - (inputs (list nvidia-driver)) - (home-page "https://forums.developer.nvidia.com") - (synopsis "Python Bindings for the NVIDIA Management Library") - (description "This package provides official Python Bindings for the NVIDIA -Management Library") - (license license-gnu:bsd-3))) - -(define-public nvidia-htop - (package - (name "nvidia-htop") - (version "1.0.5") - (source (origin - (method url-fetch) - (uri (pypi-uri "nvidia-htop" version)) - (sha256 - (base32 - "0lv9cpccpkbg0d577irm1lp9rx6pacyk2pk9v41k9s9hyl4b7hvx")))) - (build-system python-build-system) - (arguments - (list #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'fix-libnvidia - (lambda _ - (substitute* "nvidia-htop.py" - (("nvidia-smi") - (string-append #$(this-package-input - "nvidia-driver") - "/bin/nvidia-smi")))))))) - (inputs (list nvidia-driver)) - (propagated-inputs (list python-termcolor)) - (home-page "https://github.com/peci1/nvidia-htop") - (synopsis "Tool to enrich the output of nvidia-smi") - (description "This package provides tool for enriching the output of -nvidia-smi.") - (license license-gnu:bsd-3))) - -(define-public python-py3nvml - (package - (name "python-py3nvml") - (version "0.2.7") - (source (origin - (method url-fetch) - (uri (pypi-uri "py3nvml" version)) - (sha256 - (base32 - "0wxxky9amy38q7qjsdmmznk1kqdzwd680ps64i76cvlab421vvh9")))) - (build-system python-build-system) - (arguments - (list #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'fix-libnvidia - (lambda _ - (substitute* "py3nvml/py3nvml.py" - (("libnvidia-ml.so.1") - (string-append #$(this-package-input - "nvidia-driver") - "/lib/libnvidia-ml.so.1")))))))) - (propagated-inputs (list nvidia-driver python-xmltodict)) - (home-page "https://github.com/fbcotter/py3nvml") - (synopsis "Unoffcial Python 3 Bindings for the NVIDIA Management Library") - (description "This package provides unofficial Python 3 Bindings for the -NVIDIA Management Library") - (license license-gnu:bsd-3))) (define-public nvidia-driver (package @@ -327,12 +225,12 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ (add-after 'patch-elf 'create-short-name-symlinks (lambda _ (define (get-soname file) - (when elf-file? file - (let* ((cmd (string-append "patchelf --print-soname " file)) - (port (open-input-pipe cmd)) - (soname (read-line port))) - (close-pipe port) - soname))) + (when (elf-file? file) + (let* ((cmd (string-append "patchelf --print-soname " file)) + (port (open-input-pipe cmd)) + (soname (read-line port))) + (close-pipe port) + soname))) (for-each (lambda (lib) @@ -392,6 +290,15 @@ configured by adding: @code{(modules (cons* nvidia-driver (license:nonfree (format #f "file:///share/doc/nvidia-driver-~a/LICENSE" version))))) +(define-public nvidia-libs + (deprecated-package "nvidia-libs" nvidia-driver)) + + +;;; +;;; NVIDIA frimwares +;;; + + (define-public nvidia-firmware (let ((base nvidia-driver)) (package @@ -405,92 +312,13 @@ configured by adding: @code{(modules (cons* nvidia-driver #~(modify-phases %standard-phases (delete 'strip)))) (inputs '()) - (native-inputs '()) - (properties `((hidden? . #t)))))) + (native-inputs '())))) -(define-public nvidia-exec - (package - (name "nvidia-exec") - (version "0.1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pedro00dk/nvidia-exec") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "079alqgz3drv5mvx059fzhj3f20rnljl7r4yihfd5qq7djgmvv0v")))) - (build-system copy-build-system) - (arguments - (list #:install-plan #~`(("nvx" "bin/")) - #:modules #~((guix build copy-build-system) - (guix build utils) - (srfi srfi-1)) - #:phases #~(modify-phases %standard-phases - (add-after 'install 'wrap-nvx - (lambda* (#:key inputs outputs #:allow-other-keys) - (wrap-program (string-append #$output "/bin/nvx") - `("PATH" ":" prefix - ,(fold (lambda (input paths) - (let* ((in (assoc-ref - inputs input)) - (bin (string-append - in "/bin"))) - (append (filter - file-exists? - (list bin)) - paths))) - '() - '("jq" "lshw" "lsof"))))))))) - (inputs (list bash-minimal jq lshw lsof)) - (home-page "https://github.com/pedro00dk/nvidia-exec") - (synopsis "GPU switching without login out for Nvidia Optimus laptops") - (description - "This package provides GPU switching without login out for Nvidia Optimus -laptops.") - (license license-gnu:gpl3+))) + +;;; +;;; NVIDIA kernel modules +;;; -(define-public nvidia-nvml - (package - (name "nvidia-nvml") - (version "352.79") - (source - (origin - (method url-fetch) - (uri (string-append "https://developer.download.nvidia.com/compute/cuda/7.5/Prod/gdk/" - (format #f "gdk_linux_amd64_~a_release.run" - (string-replace-substring version "." "_")))) - (sha256 - (base32 - "1r2cwm0j9svaasky3qw46cpg2q6rrazwzrc880nxh6bismyd3a9z")) - (file-name (string-append "nvidia-nvml-" version "-checkout")))) - (build-system copy-build-system) - (arguments - (list #:phases - #~(modify-phases %standard-phases - (replace 'unpack - (lambda _ - (invoke "sh" #$source "--tar" "xvf")))) - #:install-plan - ''(("payload/nvml/lib" "lib") - ("payload/nvml/include" "include/nvidia/gdk") - ("payload/nvml/example" "src/gdk/nvml/examples") - ("payload/nvml/doc/man" "share/man") - ("payload/nvml/README.txt" "README.txt") - ("payload/nvml/COPYRIGHT.txt" "COPYRIGHT.txt")))) - (home-page "https://www.nvidia.com") - (synopsis "The NVIDIA Management Library (NVML)") - (description "C-based programmatic interface for monitoring and managing various -states within NVIDIA Tesla GPUs. It is intended to be a platform for -building 3rd party applications, and is also the underlying library for the -NVIDIA-supported nvidia-smi tool. NVML is thread-safe so it is safe to make -simultaneous NVML calls from multiple threads.") - ;; Doesn't have any specific LICENSE file, but see COPYRIGHT.txt for details. - (license (license:nonfree "file://COPYRIGHT.txt")))) - -(define-public nvidia-libs - (deprecated-package "nvidia-libs" nvidia-driver)) (define-public nvidia-module (package @@ -552,6 +380,12 @@ require firmware file @code{gsp.bin} to be loaded as well as closed source userspace tools from the corresponding driver release.") (license license-gnu:gpl2)))) + +;;; +;;; ‘nvidia-settings’ packages +;;; + + (define-public nvidia-settings (package (name "nvidia-settings") @@ -578,8 +412,8 @@ userspace tools from the corresponding driver release.") (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (wrap-program (string-append out "/bin/nvidia-settings") - `("LD_LIBRARY_PATH" ":" prefix - (,(string-append out "/lib/")))))))))) + `("LD_LIBRARY_PATH" ":" prefix + (,(string-append out "/lib/")))))))))) (native-inputs (list m4 pkg-config)) (inputs (list bash-minimal @@ -600,47 +434,11 @@ configuration, creating application profiles, gpu monitoring and more.") (home-page "https://github.com/NVIDIA/nvidia-settings") (license license-gnu:gpl2))) -(define-public nvidia-system-monitor - (package - (name "nvidia-system-monitor") - (version "1.5") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/congard/nvidia-system-monitor-qt") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0aghdqljvjmc02g9jpc7sb3yhha738ywny51riska56hkxd3jg2l")))) - (build-system cmake-build-system) - (arguments - (list #:tests? #f - #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'fix-nvidia-smi - (lambda _ - (let ((nvidia-smi (string-append #$(this-package-input - "nvidia-driver") - "/bin/nvidia-smi"))) - (substitute* "src/core/InfoProvider.cpp" - (("nvidia-smi") - nvidia-smi)) - (substitute* "src/main.cpp" - (("which nvidia-smi") - (string-append "which " nvidia-smi)) - (("exec..nvidia-smi") - (string-append "exec(\"" nvidia-smi)))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append #$output "/bin"))) - (mkdir-p bin) - (install-file "qnvsm" bin))))))) - (inputs (list qtbase-5 qtdeclarative-5 nvidia-driver)) - (home-page "https://github.com/congard/nvidia-system-monitor-qt") - (synopsis "Task manager for Nvidia graphics cards") - (description - "This package provides a task manager for Nvidia graphics cards.") - (license license-gnu:expat))) + +;;; +;;; ‘nvda’ packages +;;; + ;; nvda is used as a name because it has the same length as mesa which is ;; required for grafting @@ -682,3 +480,237 @@ to use the NVIDIA driver with a package that requires mesa.") (define-public replace-mesa (package-input-rewriting `((,mesa . ,mesa/fake)))) + + +;;; +;;; Other packages +;;; + + +(define-public gpustat + (package + (name "gpustat") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "gpustat" version)) + (sha256 + (base32 + "1wg3yikkqdrcxp5xscyb9rxifgfwv7qh73xv4airab63b3w8y7jq")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) + (propagated-inputs (list python-blessed python-nvidia-ml-py python-psutil + python-six)) + (native-inputs (list python-mock python-pytest python-pytest-runner)) + (home-page "https://github.com/wookayin/gpustat") + (synopsis "Utility to monitor NVIDIA GPU status and usage") + (description + "This package provides an utility to monitor NVIDIA GPU status +and usage.") + (license license-gnu:expat))) + +(define-public nvidia-exec + (package + (name "nvidia-exec") + (version "0.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pedro00dk/nvidia-exec") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "079alqgz3drv5mvx059fzhj3f20rnljl7r4yihfd5qq7djgmvv0v")))) + (build-system copy-build-system) + (arguments + (list #:install-plan #~`(("nvx" "bin/")) + #:modules #~((guix build copy-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases #~(modify-phases %standard-phases + (add-after 'install 'wrap-nvx + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program (string-append #$output "/bin/nvx") + `("PATH" ":" prefix + ,(fold (lambda (input paths) + (let* ((in (assoc-ref + inputs input)) + (bin (string-append + in "/bin"))) + (append (filter + file-exists? + (list bin)) + paths))) + '() + '("jq" "lshw" "lsof"))))))))) + (inputs (list bash-minimal jq lshw lsof)) + (home-page "https://github.com/pedro00dk/nvidia-exec") + (synopsis "GPU switching without login out for Nvidia Optimus laptops") + (description + "This package provides GPU switching without login out for Nvidia Optimus +laptops.") + (license license-gnu:gpl3+))) + +(define-public nvidia-htop + (package + (name "nvidia-htop") + (version "1.0.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "nvidia-htop" version)) + (sha256 + (base32 + "0lv9cpccpkbg0d577irm1lp9rx6pacyk2pk9v41k9s9hyl4b7hvx")))) + (build-system python-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-libnvidia + (lambda _ + (substitute* "nvidia-htop.py" + (("nvidia-smi") + (string-append #$(this-package-input + "nvidia-driver") + "/bin/nvidia-smi")))))))) + (inputs (list nvidia-driver)) + (propagated-inputs (list python-termcolor)) + (home-page "https://github.com/peci1/nvidia-htop") + (synopsis "Tool to enrich the output of nvidia-smi") + (description "This package provides tool for enriching the output of +nvidia-smi.") + (license license-gnu:bsd-3))) + +(define-public nvidia-nvml + (package + (name "nvidia-nvml") + (version "352.79") + (source + (origin + (method url-fetch) + (uri (string-append "https://developer.download.nvidia.com/compute/cuda/7.5/Prod/gdk/" + (format #f "gdk_linux_amd64_~a_release.run" + (string-replace-substring version "." "_")))) + (sha256 + (base32 + "1r2cwm0j9svaasky3qw46cpg2q6rrazwzrc880nxh6bismyd3a9z")) + (file-name (string-append "nvidia-nvml-" version "-checkout")))) + (build-system copy-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (replace 'unpack + (lambda _ + (invoke "sh" #$source "--tar" "xvf")))) + #:install-plan + ''(("payload/nvml/lib" "lib") + ("payload/nvml/include" "include/nvidia/gdk") + ("payload/nvml/example" "src/gdk/nvml/examples") + ("payload/nvml/doc/man" "share/man") + ("payload/nvml/README.txt" "README.txt") + ("payload/nvml/COPYRIGHT.txt" "COPYRIGHT.txt")))) + (home-page "https://www.nvidia.com") + (synopsis "The NVIDIA Management Library (NVML)") + (description "C-based programmatic interface for monitoring and managing various +states within NVIDIA Tesla GPUs. It is intended to be a platform for +building 3rd party applications, and is also the underlying library for the +NVIDIA-supported nvidia-smi tool. NVML is thread-safe so it is safe to make +simultaneous NVML calls from multiple threads.") + ;; Doesn't have any specific LICENSE file, but see COPYRIGHT.txt for details. + (license (license:nonfree "file://COPYRIGHT.txt")))) + +(define-public nvidia-system-monitor + (package + (name "nvidia-system-monitor") + (version "1.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/congard/nvidia-system-monitor-qt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0aghdqljvjmc02g9jpc7sb3yhha738ywny51riska56hkxd3jg2l")))) + (build-system cmake-build-system) + (arguments + (list #:tests? #f + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-nvidia-smi + (lambda _ + (let ((nvidia-smi (string-append #$(this-package-input + "nvidia-driver") + "/bin/nvidia-smi"))) + (substitute* "src/core/InfoProvider.cpp" + (("nvidia-smi") + nvidia-smi)) + (substitute* "src/main.cpp" + (("which nvidia-smi") + (string-append "which " nvidia-smi)) + (("exec..nvidia-smi") + (string-append "exec(\"" nvidia-smi)))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append #$output "/bin"))) + (mkdir-p bin) + (install-file "qnvsm" bin))))))) + (inputs (list qtbase-5 qtdeclarative-5 nvidia-driver)) + (home-page "https://github.com/congard/nvidia-system-monitor-qt") + (synopsis "Task manager for Nvidia graphics cards") + (description + "This package provides a task manager for Nvidia graphics cards.") + (license license-gnu:expat))) + +(define-public python-nvidia-ml-py + (package + (name "python-nvidia-ml-py") + (version "11.495.46") + (source (origin + (method url-fetch) + (uri (pypi-uri "nvidia-ml-py" version)) + (sha256 + (base32 + "09cnb7xasd7brby52j70y7fqsfm9n6gvgqf769v0cmj74ypy2s4g")))) + (build-system python-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-libnvidia + (lambda _ + (substitute* "pynvml.py" + (("libnvidia-ml.so.1") + (string-append #$(this-package-input + "nvidia-driver") + "/lib/libnvidia-ml.so.1")))))))) + (inputs (list nvidia-driver)) + (home-page "https://forums.developer.nvidia.com") + (synopsis "Python Bindings for the NVIDIA Management Library") + (description "This package provides official Python Bindings for the NVIDIA +Management Library") + (license license-gnu:bsd-3))) + +(define-public python-py3nvml + (package + (name "python-py3nvml") + (version "0.2.7") + (source (origin + (method url-fetch) + (uri (pypi-uri "py3nvml" version)) + (sha256 + (base32 + "0wxxky9amy38q7qjsdmmznk1kqdzwd680ps64i76cvlab421vvh9")))) + (build-system python-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-libnvidia + (lambda _ + (substitute* "py3nvml/py3nvml.py" + (("libnvidia-ml.so.1") + (string-append #$(this-package-input + "nvidia-driver") + "/lib/libnvidia-ml.so.1")))))))) + (propagated-inputs (list nvidia-driver python-xmltodict)) + (home-page "https://github.com/fbcotter/py3nvml") + (synopsis "Unoffcial Python 3 Bindings for the NVIDIA Management Library") + (description "This package provides unofficial Python 3 Bindings for the +NVIDIA Management Library") + (license license-gnu:bsd-3))) From 5f7dabe418c705402db3b70389b2d9fa886e89d2 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 15 Dec 2023 22:26:50 +0800 Subject: [PATCH 54/90] nongnu: make-nvidia-source: Adjust style. * nongnu/packages/nvidia.scm (computed-origin-method): Delete from top-level. (make-nvidia-source): Use ungexp-native only once. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index d1aaffd0..0153e0d0 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -66,9 +66,6 @@ (define-public nvidia-version "515.76") -(define computed-origin-method - (@@ (guix packages) computed-origin-method)) - ;;; ;;; NVIDIA driver checkouts @@ -78,7 +75,7 @@ ;; Extract the driver installer and make it a new origin instance for reusing. (define (make-nvidia-source version installer) (origin - (method computed-origin-method) + (method (@@ (guix packages) computed-origin-method)) (file-name (string-append "nvidia-driver-" version "-checkout")) (sha256 #f) (uri @@ -89,13 +86,13 @@ (ice-9 ftw)) (set-path-environment-variable "PATH" '("bin") - (list (canonicalize-path #+bash-minimal) - (canonicalize-path #+coreutils) - (canonicalize-path #+gawk) - (canonicalize-path #+grep) - (canonicalize-path #+tar) - (canonicalize-path #+which) - (canonicalize-path #+xz))) + '#+(list bash-minimal + coreutils + gawk + grep + tar + which + xz)) (setenv "XZ_OPT" (string-join (%xz-parallel-args))) (invoke "sh" #$installer "-x") (copy-recursively From 4bc11de5dd5a4885c0368cb556f93bf09822dcaa Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Thu, 1 Feb 2024 20:46:05 +0800 Subject: [PATCH 55/90] nongnu: make-nvidia-source: Extend functionality. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * nongnu/packages/nvidia.scm (nvidia-source-unbundle-libraries): New procedure. (make-nvidia-source): Create installer origin internally. Accept a ‘get-cleanup-snippet’ procedure. (nvidia-source): Adjust accordingly. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 0153e0d0..1ab3e270 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -72,12 +72,27 @@ ;;; -;; Extract the driver installer and make it a new origin instance for reusing. -(define (make-nvidia-source version installer) +(define (nvidia-source-unbundle-libraries version) + #t) + +(define* (make-nvidia-source + version hash + #:optional (get-cleanup-snippet nvidia-source-unbundle-libraries)) + "Given VERSION and HASH of an NVIDIA driver installer, return an for +its unpacked checkout. GET-CLEANUP-SNIPPET is a procedure that accepts the +VERSION as argument and returns a G-expression." + (define installer + (origin + (method url-fetch) + (uri (string-append + "https://us.download.nvidia.com/XFree86/Linux-x86_64/" + version "/NVIDIA-Linux-x86_64-" version ".run")) + (sha256 hash))) (origin (method (@@ (guix packages) computed-origin-method)) (file-name (string-append "nvidia-driver-" version "-checkout")) (sha256 #f) + (snippet (get-cleanup-snippet version)) (uri (delay (with-imported-modules '((guix build utils)) @@ -102,16 +117,9 @@ #$output))))))) (define-public nvidia-source - (let ((version nvidia-version)) - (make-nvidia-source - version - (origin - (method url-fetch) - (uri (string-append - "https://us.download.nvidia.com/XFree86/Linux-x86_64/" - version "/NVIDIA-Linux-x86_64-" version ".run")) - (sha256 - (base32 "0i5zyvlsjnfkpfqhw6pklp0ws8nndyiwxrg4pj04jpwnxf6a38n6")))))) + (make-nvidia-source + nvidia-version + (base32 "0i5zyvlsjnfkpfqhw6pklp0ws8nndyiwxrg4pj04jpwnxf6a38n6"))) ;;; From 99e12e9cbe37ad44dbaaae21d434a09e692ee3c0 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 15 Dec 2023 20:59:52 +0800 Subject: [PATCH 56/90] nongnu: nvidia-driver: Remove libraries provided by nvidia-settings. * nongnu/packages/nvidia.scm (nvidia-source-unbundle-libraries): Remove libraries provided by nvidia-settings. (nvidia-driver)[arguments]<#:phases>: Remove their dependencies from RUNPATH. [inputs]: Remove atk, cairo, gdk-pixbuf, glib, gtk+, gtk+-2, pango. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 1ab3e270..28cea8e6 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -73,7 +73,13 @@ (define (nvidia-source-unbundle-libraries version) - #t) + #~(begin + (use-modules (guix build utils)) + (for-each delete-file + (find-files "." (string-join + '(;; nvidia-settings + "libnvidia-gtk[23]\\.so\\.") + "|"))))) (define* (make-nvidia-source version hash @@ -197,18 +203,11 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ (list "$ORIGIN" (string-append #$output "/lib") (string-append #$gcc:lib "/lib") - (string-append #$gtk+-2 "/lib") - (string-append #$(this-package-input "atk") "/lib") - (string-append #$(this-package-input "cairo") "/lib") - (string-append #$(this-package-input "gdk-pixbuf") "/lib") - (string-append #$(this-package-input "glib") "/lib") (string-append #$(this-package-input "glibc") "/lib") - (string-append #$(this-package-input "gtk+") "/lib") (string-append #$(this-package-input "libdrm") "/lib") (string-append #$(this-package-input "libx11") "/lib") (string-append #$(this-package-input "libxext") "/lib") (string-append #$(this-package-input "mesa") "/lib") - (string-append #$(this-package-input "pango") "/lib") (string-append #$(this-package-input "wayland") "/lib")) ":"))) (define (patch-elf file) @@ -265,23 +264,16 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ (native-inputs (list patchelf)) (inputs (list `(,gcc "lib") - atk bash-minimal - cairo coreutils - gdk-pixbuf - glib glibc grep - gtk+ - gtk+-2 kmod libdrm libx11 libxext linux-lts mesa - pango wayland)) (home-page "https://www.nvidia.com") (synopsis "Proprietary NVIDIA driver") From 7006d54c47c64865d74195f473c4625a80b4d791 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Mon, 29 Jan 2024 16:59:07 +0800 Subject: [PATCH 57/90] nongnu: nvidia-driver: Remove library provided by opencl-icd-loader. * nongnu/packages/nvidia.scm (nvidia-source-unbundle-libraries): Remove library provided by opencl-icd-loader. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 28cea8e6..9cc88263 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -78,7 +78,9 @@ (for-each delete-file (find-files "." (string-join '(;; nvidia-settings - "libnvidia-gtk[23]\\.so\\.") + "libnvidia-gtk[23]\\.so\\." + ;; opencl-icd-loader + "libOpenCL\\.so\\.") "|"))))) (define* (make-nvidia-source From 2b4dfe83e9ba6dd2352cdca36c98931810e72186 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 15 Dec 2023 21:05:14 +0800 Subject: [PATCH 58/90] nongnu: nvidia-driver: Remove kernel module dependencies. * nongnu/packages/nvidia.scm (nvidia-driver)[inputs]: Remove kmod, linux-lts. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 2 -- 1 file changed, 2 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 9cc88263..67d31cf3 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -270,11 +270,9 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ coreutils glibc grep - kmod libdrm libx11 libxext - linux-lts mesa wayland)) (home-page "https://www.nvidia.com") From 5b0465cf31bdca91d28383495489d59e919c8b80 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 27 Jan 2024 18:59:55 +0800 Subject: [PATCH 59/90] nongnu: nvidia-driver: Adjust package style. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * nongnu/packages/nvidia.scm (nvidia-driver)[arguments]<#:phases>: Remove $ORIGIN from RUNPATH. Ungexp properly. Rewrite configuration substitution. Rename phase ‘install-nvidia-smi’ to ‘install-commands’. Relocate libraries in a separate phase. Remove extra spaces. <#:install-plan>: Adjust accordingly. [description]: Remove final newline. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 102 +++++++++++++++++++++++-------------- 1 file changed, 63 insertions(+), 39 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 67d31cf3..4f0e7056 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -144,44 +144,46 @@ VERSION as argument and returns a G-expression." (arguments (list #:modules '((guix build copy-build-system) (guix build utils) - (ice-9 ftw) (ice-9 popen) (ice-9 rdelim) (ice-9 regex) - (ice-9 textual-ports)) + (ice-9 textual-ports) + (srfi srfi-26)) #:install-plan - #~`((,#$(match (or (%current-target-system) (%current-system)) - ("i686-linux" "32") - ("x86_64-linux" ".") - (_ ".")) - "lib/" #:include-regexp ("^./[^/]+\\.so") #:exclude-regexp ("nvidia_drv\\.so" "libglxserver_nvidia\\.so\\..*")) - ("." "share/nvidia/" #:include-regexp ("nvidia-application-profiles.*")) - ("." "share/egl/egl_external_platform.d/" #:include-regexp (".*_nvidia_.*\\.json")) + #~`((#$(match (or (%current-target-system) (%current-system)) + ("i686-linux" "32") + ("x86_64-linux" ".") + (_ ".")) + "lib/" #:include-regexp ("^./[^/]+\\.so")) + ("." "share/nvidia/" #:include-regexp ("nvidia-application-profiles")) + ("." "share/egl/egl_external_platform.d/" #:include-regexp ("(gbm|wayland)\\.json")) ("90-nvidia.rules" "lib/udev/rules.d/") - ("nvidia-drm-outputclass.conf" "share/x11/xorg.conf.d/") + ("nvidia-drm-outputclass.conf" "share/X11/xorg.conf.d/") ("nvidia-dbus.conf" "share/dbus-1/system.d/") - ("nvidia-smi.1.gz" "share/man/man1/") ("nvidia.icd" "etc/OpenCL/vendors/") - ("nvidia_drv.so" "lib/xorg/modules/drivers/") ("nvidia_icd.json" "share/vulkan/icd.d/") - ("nvidia_layers.json" "share/vulkan/implicit_layer.d/") - (,(string-append "libglxserver_nvidia.so." #$version) "lib/xorg/modules/extensions/")) + ("nvidia_layers.json" "share/vulkan/implicit_layer.d/")) #:phases #~(modify-phases %standard-phases (delete 'strip) (add-after 'unpack 'create-misc-files (lambda* (#:key inputs #:allow-other-keys) - ;; Vulkan layer configuration - (for-each (lambda (file) - (substitute* file - (("lib(GLX|nvidia).*\\.so\\..*" all) - (string-append #$output "/lib/" all)))) - (scandir "." (lambda (name) - (string-contains name ".json")))) + ;; EGL external platform configuraiton + (substitute* '("10_nvidia_wayland.json" + "15_nvidia_gbm.json") + (("libnvidia-egl-(wayland|gbm)\\.so\\.." all) + (string-append #$output "/lib/" all))) ;; OpenCL vendor ICD configuration (substitute* "nvidia.icd" - ((".*" all) (string-append #$output "/lib/" all))) + (("libnvidia-opencl\\.so\\.." all) + (string-append #$output "/lib/" all))) + + ;; Vulkan ICD & layer configuraiton + (substitute* '("nvidia_icd.json" + "nvidia_layers.json") + (("libGLX_nvidia\\.so\\.." all) + (string-append #$output "/lib/" all))) ;; Add udev rules for nvidia (let ((rules "90-nvidia.rules")) @@ -202,9 +204,8 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ (let* ((ld.so (string-append #$(this-package-input "glibc") #$(glibc-dynamic-linker))) (rpath (string-join - (list "$ORIGIN" - (string-append #$output "/lib") - (string-append #$gcc:lib "/lib") + (list (string-append #$output "/lib") + (string-append (ungexp (this-package-input "gcc") "lib") "/lib") (string-append #$(this-package-input "glibc") "/lib") (string-append #$(this-package-input "libdrm") "/lib") (string-append #$(this-package-input "libx11") "/lib") @@ -218,16 +219,45 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ (invoke "patchelf" "--set-interpreter" ld.so file)) (invoke "patchelf" "--set-rpath" rpath file) (display " done\n")) + (for-each (lambda (file) (when (elf-file? file) (patch-elf file))) - (append (find-files #$output ".*\\.so") - (find-files (string-append #$output "/bin"))))))) - (add-before 'patch-elf 'install-nvidia-smi + (find-files #$output))))) + (add-before 'patch-elf 'install-commands (lambda _ - (if (string-match "x86_64-linux" - (or #$(%current-target-system) #$(%current-system))) - (install-file "nvidia-smi" (string-append #$output "/bin"))))) + (when (string-match + "x86_64-linux" + (or #$(%current-target-system) #$(%current-system))) + (for-each + (lambda (binary) + (let ((bindir (string-append #$output "/bin")) + (manual (string-append binary ".1.gz")) + (mandir (string-append #$output "/share/man/man1"))) + (install-file binary bindir) + (when (file-exists? manual) + (install-file manual mandir)))) + '("nvidia-smi"))))) + (add-before 'patch-elf 'relocate-libraries + (lambda _ + (let* ((libdir (string-append #$output "/lib")) + (xorgmoddir (string-append libdir "/xorg/modules")) + (xorgdrvdir (string-append xorgmoddir "/drivers")) + (xorgextdir (string-append xorgmoddir "/extensions")) + (move-to-dir (lambda (file dir) + (install-file file dir) + (delete-file file)))) + (for-each + (cut move-to-dir <> xorgdrvdir) + (find-files libdir "nvidia_drv\\.so$")) + + (for-each + (lambda (file) + (move-to-dir file xorgextdir) + (with-directory-excursion xorgextdir + (symlink (basename file) + "libglxserver_nvidia.so"))) + (find-files libdir "libglxserver_nvidia\\.so\\."))))) (add-after 'patch-elf 'create-short-name-symlinks (lambda _ (define (get-soname file) @@ -237,7 +267,6 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ (soname (read-line port))) (close-pipe port) soname))) - (for-each (lambda (lib) (let ((lib-soname (get-soname lib))) @@ -257,11 +286,7 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ (symlink source target) (display " done\n"))) (list soname base)))))) - (find-files #$output "\\.so")) - (symlink (string-append "libglxserver_nvidia.so." #$version) - (string-append #$output "/lib/xorg/modules/extensions/" "libglxserver_nvidia.so")) - (symlink (string-append "libnvidia-allocator.so." #$version) - (string-append #$output "/lib/nvidia-drm_gbm.so" ))))))) + (find-files #$output "\\.so\\."))))))) (supported-systems '("i686-linux" "x86_64-linux")) (native-inputs (list patchelf)) (inputs @@ -281,8 +306,7 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ "This is the evil NVIDIA driver. Don't forget to add @code{service nvidia-service-type} to your @file{config.scm}. Further xorg should be configured by adding: @code{(modules (cons* nvidia-driver -%default-xorg-modules)) (drivers '(\"nvidia\"))} to @code{xorg-configuration}. -") +%default-xorg-modules)) (drivers '(\"nvidia\"))} to @code{xorg-configuration}.") (license (license:nonfree (format #f "file:///share/doc/nvidia-driver-~a/LICENSE" version))))) From c05b4995abc13695d33cc19f028bd28e8c7263fe Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Mon, 29 Jan 2024 17:12:53 +0800 Subject: [PATCH 60/90] nongnu: nvidia-driver: Unbundle EGL external platform libraries. * nongnu/packages/nvidia.scm (nvidia-source-unbundle-libraries): Remove egl-gbm and egl-wayland libraries. (nvidia-driver)[inputs]: Add egl-gbm, egl-wayland. Remove mesa. [arguments]<#:phases>: Use them for configuration. Adjust RUNPATH accordingly. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 4f0e7056..d57549ed 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -77,7 +77,11 @@ (use-modules (guix build utils)) (for-each delete-file (find-files "." (string-join - '(;; nvidia-settings + '(;; egl-gbm + "libnvidia-egl-gbm\\.so\\." + ;; egl-wayland + "libnvidia-egl-wayland\\.so\\." + ;; nvidia-settings "libnvidia-gtk[23]\\.so\\." ;; opencl-icd-loader "libOpenCL\\.so\\.") @@ -172,7 +176,7 @@ VERSION as argument and returns a G-expression." (substitute* '("10_nvidia_wayland.json" "15_nvidia_gbm.json") (("libnvidia-egl-(wayland|gbm)\\.so\\.." all) - (string-append #$output "/lib/" all))) + (search-input-file inputs (string-append "lib/" all)))) ;; OpenCL vendor ICD configuration (substitute* "nvidia.icd" @@ -205,12 +209,12 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ #$(glibc-dynamic-linker))) (rpath (string-join (list (string-append #$output "/lib") + (string-append #$(this-package-input "egl-wayland") "/lib") (string-append (ungexp (this-package-input "gcc") "lib") "/lib") (string-append #$(this-package-input "glibc") "/lib") (string-append #$(this-package-input "libdrm") "/lib") (string-append #$(this-package-input "libx11") "/lib") (string-append #$(this-package-input "libxext") "/lib") - (string-append #$(this-package-input "mesa") "/lib") (string-append #$(this-package-input "wayland") "/lib")) ":"))) (define (patch-elf file) @@ -290,7 +294,9 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ (supported-systems '("i686-linux" "x86_64-linux")) (native-inputs (list patchelf)) (inputs - (list `(,gcc "lib") + (list egl-gbm + egl-wayland + `(,gcc "lib") bash-minimal coreutils glibc @@ -298,7 +304,6 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ libdrm libx11 libxext - mesa wayland)) (home-page "https://www.nvidia.com") (synopsis "Proprietary NVIDIA driver") From 732cce2c90013467125c9544d497064481f79c74 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sun, 7 Jan 2024 17:10:42 +0800 Subject: [PATCH 61/90] nongnu: nvidia-driver: Update udev rules. * nongnu/packages/nvidia.scm (%nvidia-script-create-device-nodes) (%nvidia-udev-rules): New variables. (nvidia-driver)[arguments]<#:modules,#:phases>: Adjust accordingly. [inputs]: Remove bash-minimal, coreutils, grep. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 109 +++++++++++++++++++++++++++++++------ 1 file changed, 91 insertions(+), 18 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index d57549ed..8ca79cc9 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -139,6 +139,95 @@ VERSION as argument and returns a G-expression." ;;; +(define %nvidia-script-create-device-nodes + (program-file + "create-device-nodes.scm" + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (ice-9 regex) + (rnrs io ports) + (srfi srfi-1) + (guix build utils)) + + (define %nvidia-character-devices + (call-with-input-file "/proc/devices" + (lambda (port) + (filter-map + (lambda (line) + (if (string-contains line "nvidia") + (apply cons (reverse (string-tokenize line))) + #f)) + (string-split (get-string-all port) #\newline))))) + + (define %nvidia-driver-device-minors + (let ((device-minor-regexp (make-regexp "^Device Minor: \t (.*)"))) + (append-map + (lambda (file) + (call-with-input-file file + (lambda (port) + (filter-map + (lambda (line) + (let ((matched (regexp-exec device-minor-regexp line))) + (if matched + (match:substring matched 1) + #f))) + (string-split (get-string-all port) #\newline))))) + (find-files "/proc/driver/nvidia/gpus/" "information$")))) + + (define (create-device-node path name minor) + (let ((major + (or (assoc-ref %nvidia-character-devices name) + (assoc-ref %nvidia-character-devices "nvidia-frontend"))) + (mknod #$(file-append coreutils "/bin/mknod"))) + (system* mknod "-Zm0666" path "c" major minor))) + + (define (main args) + (case (string->symbol (first args)) + ((nvidia_modeset) + (create-device-node "/dev/nvidia-modeset" "nvidia-modeset" "254")) + ((nvidia_uvm) + (begin + (create-device-node "/dev/nvidia-uvm" "nvidia-uvm" "0") + (create-device-node "/dev/nvidia-uvm-tools" "nvidia-uvm" "1"))) + ((nvidia) + (begin + (create-device-node "/dev/nvidiactl" "nvidiactl" "255") + (for-each + (lambda (minor) + (create-device-node + (string-append "/dev/nvidia" minor) "nvidia" minor)) + %nvidia-driver-device-minors))))) + + (main (cdr (command-line))))))) + +;; Adapted from +(define %nvidia-udev-rules + (mixed-text-file + "90-nvidia.rules" "\ +# Make sure device nodes are present even when the DDX is not started for the Wayland/EGLStream case +KERNEL==\"nvidia\", RUN+=\"" %nvidia-script-create-device-nodes " nvidia\" +KERNEL==\"nvidia_modeset\", RUN+=\"" %nvidia-script-create-device-nodes " nvidia_modeset\" +KERNEL==\"nvidia_uvm\", RUN+=\"" %nvidia-script-create-device-nodes " nvidia_uvm\" + +# Enable runtime PM for NVIDIA VGA/3D controller devices +ACTION==\"bind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\"0x03[0-9]*\", TEST==\"power/control\", ATTR{power/control}=\"auto\" +# Enable runtime PM for NVIDIA Audio devices +ACTION==\"bind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\"0x040300\", TEST==\"power/control\", ATTR{power/control}=\"auto\" +# Enable runtime PM for NVIDIA USB xHCI Host Controller devices +ACTION==\"bind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\"0x0c0330\", TEST==\"power/control\", ATTR{power/control}=\"auto\" +# Enable runtime PM for NVIDIA USB Type-C UCSI devices +ACTION==\"bind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\"0x0c8000\", TEST==\"power/control\", ATTR{power/control}=\"auto\" + +# Disable runtime PM for NVIDIA VGA/3D controller devices +ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\"0x03[0-9]*\", TEST==\"power/control\", ATTR{power/control}=\"on\" +# Disable runtime PM for NVIDIA Audio devices +ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\"0x040300\", TEST==\"power/control\", ATTR{power/control}=\"on\" +# Disable runtime PM for NVIDIA USB xHCI Host Controller devices +ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\"0x0c0330\", TEST==\"power/control\", ATTR{power/control}=\"on\" +# Disable runtime PM for NVIDIA USB Type-C UCSI devices +ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\"0x0c8000\", TEST==\"power/control\", ATTR{power/control}=\"on\" +")) + (define-public nvidia-driver (package (name "nvidia-driver") @@ -151,7 +240,6 @@ VERSION as argument and returns a G-expression." (ice-9 popen) (ice-9 rdelim) (ice-9 regex) - (ice-9 textual-ports) (srfi srfi-26)) #:install-plan #~`((#$(match (or (%current-target-system) (%current-system)) @@ -189,20 +277,8 @@ VERSION as argument and returns a G-expression." (("libGLX_nvidia\\.so\\.." all) (string-append #$output "/lib/" all))) - ;; Add udev rules for nvidia - (let ((rules "90-nvidia.rules")) - (call-with-output-file rules - (lambda (port) - (put-string port (format #f "~ -KERNEL==\"nvidia\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidiactl c $$(@grep@ nvidia-frontend /proc/devices | @cut@ -d \\ -f 1) 255'\" -KERNEL==\"nvidia_modeset\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-modeset c $$(@grep@ nvidia-frontend /proc/devices | @cut@ -d \\ -f 1) 254'\" -KERNEL==\"card*\", SUBSYSTEM==\"drm\", DRIVERS==\"nvidia\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia0 c $$(@grep@ nvidia-frontend /proc/devices | @cut@ -d \\ -f 1) 0'\" -KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm c $$(@grep@ nvidia-uvm /proc/devices | @cut@ -d \\ -f 1) 0'\" -KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $$(@grep@ nvidia-uvm /proc/devices | @cut@ -d \\ -f 1) 0'\" -")))) - (substitute* rules - (("@\\<(sh|grep|mknod|cut)\\>@" all cmd) - (search-input-file inputs (string-append "/bin/" cmd))))))) + ;; Add udev rules + (symlink #$%nvidia-udev-rules "90-nvidia.rules"))) (add-after 'install 'patch-elf (lambda _ (let* ((ld.so (string-append #$(this-package-input "glibc") @@ -297,10 +373,7 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $ (list egl-gbm egl-wayland `(,gcc "lib") - bash-minimal - coreutils glibc - grep libdrm libx11 libxext From 0ae85eb25e82ef3c9748b8ad3100e90b8f77a004 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 24 Jan 2024 22:41:57 +0800 Subject: [PATCH 62/90] nongnu: nvidia-driver: Install GBM and VDPAU library to correct path. * nongnu/packages/nvidia.scm (nvidia-driver)[arguments]<#:phases>: Install GBM and VDPAU library to correct path. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 8ca79cc9..0aeada5e 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -320,13 +320,27 @@ ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\ '("nvidia-smi"))))) (add-before 'patch-elf 'relocate-libraries (lambda _ - (let* ((libdir (string-append #$output "/lib")) + (let* ((version #$(package-version this-package)) + (libdir (string-append #$output "/lib")) + (gbmdir (string-append libdir "/gbm")) + (vdpaudir (string-append libdir "/vdpau")) (xorgmoddir (string-append libdir "/xorg/modules")) (xorgdrvdir (string-append xorgmoddir "/drivers")) (xorgextdir (string-append xorgmoddir "/extensions")) (move-to-dir (lambda (file dir) (install-file file dir) (delete-file file)))) + (for-each + (lambda (file) + (mkdir-p gbmdir) + (with-directory-excursion gbmdir + (symlink file "nvidia-drm_gbm.so"))) + (find-files libdir "libnvidia-allocator\\.so\\.")) + + (for-each + (cut move-to-dir <> vdpaudir) + (find-files libdir "libvdpau_nvidia\\.so\\.")) + (for-each (cut move-to-dir <> xorgdrvdir) (find-files libdir "nvidia_drv\\.so$")) From d59c557f79321d5372cb24b10dc609b4fdf1f503 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 24 Jan 2024 22:45:56 +0800 Subject: [PATCH 63/90] nongnu: nvidia-driver: Install EGL vendor ICD configuration. * nongnu/packages/nvidia.scm (nvidia-driver)[arguments]<#:install-plan>: Install EGL vendor ICD configuration. <#:phases>: Modify its library path. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 0aeada5e..6cd5f008 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -249,6 +249,7 @@ ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\ "lib/" #:include-regexp ("^./[^/]+\\.so")) ("." "share/nvidia/" #:include-regexp ("nvidia-application-profiles")) ("." "share/egl/egl_external_platform.d/" #:include-regexp ("(gbm|wayland)\\.json")) + ("10_nvidia.json" "share/glvnd/egl_vendor.d/") ("90-nvidia.rules" "lib/udev/rules.d/") ("nvidia-drm-outputclass.conf" "share/X11/xorg.conf.d/") ("nvidia-dbus.conf" "share/dbus-1/system.d/") @@ -266,6 +267,11 @@ ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\ (("libnvidia-egl-(wayland|gbm)\\.so\\.." all) (search-input-file inputs (string-append "lib/" all)))) + ;; EGL vendor ICD configuration + (substitute* "10_nvidia.json" + (("libEGL_nvidia\\.so\\.." all) + (string-append #$output "/lib/" all))) + ;; OpenCL vendor ICD configuration (substitute* "nvidia.icd" (("libnvidia-opencl\\.so\\.." all) From f6c8eb082ccf3acad7d21b3c036c29497ca7a57f Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Mon, 29 Jan 2024 18:20:43 +0800 Subject: [PATCH 64/90] nongnu: nvidia-driver: Add architecture to configuration filenames. * nongnu/packages/nvidia.scm (nvidia-driver)[arguments]<#:phases>: Add architecture to configuration filenames. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 6cd5f008..2d070855 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -285,6 +285,30 @@ ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\ ;; Add udev rules (symlink #$%nvidia-udev-rules "90-nvidia.rules"))) + (add-after 'install 'add-architecture-to-filename + (lambda _ + (for-each + (lambda (path) + (let* ((out #$output) + (system #$(or (%current-target-system) + (%current-system))) + (dash (string-index system #\-)) + (arch (string-take system dash)) + + (dot (string-index-right path #\.)) + (base (string-take path dot)) + (ext (string-drop path (+ 1 dot)))) + ;; <...>/nvidia.icd -> <...>/nvidia.x86_64.icd + ;; <...>/nvidia_icd.json -> <...>/nvidia_icd.x86_64.json + (rename-file + (string-append out path) + (string-append out base "." arch "." ext)))) + '("/etc/OpenCL/vendors/nvidia.icd" + "/share/egl/egl_external_platform.d/10_nvidia_wayland.json" + "/share/egl/egl_external_platform.d/15_nvidia_gbm.json" + "/share/glvnd/egl_vendor.d/10_nvidia.json" + "/share/vulkan/icd.d/nvidia_icd.json" + "/share/vulkan/implicit_layer.d/nvidia_layers.json")))) (add-after 'install 'patch-elf (lambda _ (let* ((ld.so (string-append #$(this-package-input "glibc") From 54d01560e9cfd1c8a5da053df929eaadf6858170 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 15 Dec 2023 22:01:57 +0800 Subject: [PATCH 65/90] nongnu: nvidia-settings: Unbundle jansson. * nongnu/packages/nvidia.scm (nvidia-settings) [inputs]: Add jansson. [source]: Delete bundled jansson. [arguments]<#:make-flags>: Don't use bundled jansson. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 2d070855..fccacef5 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -539,6 +539,8 @@ userspace tools from the corresponding driver release.") (url "https://github.com/NVIDIA/nvidia-settings") (commit version))) (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet '(delete-file-recursively "src/jansson")) (sha256 (base32 "1hplc42115c06cc555cjmw3c9371qn7ibwjpqjybcf6ixfd6lryq")))) @@ -546,7 +548,8 @@ userspace tools from the corresponding driver release.") (arguments (list #:tests? #f ;no test suite #:make-flags - #~(list (string-append "PREFIX=" #$output) + #~(list "NV_USE_BUNDLED_LIBJANSSON=0" + (string-append "PREFIX=" #$output) (string-append "CC=" #$(cc-for-target))) #:phases #~(modify-phases %standard-phases @@ -564,6 +567,7 @@ userspace tools from the corresponding driver release.") glu gtk+ gtk+-2 + jansson libvdpau libx11 libxext From 5fab8f4967cfade44a6c7b1fb86e42494f899f94 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 15 Dec 2023 22:06:49 +0800 Subject: [PATCH 66/90] nongnu: nvidia-settings: Fix application profile path. * nongnu/packages/nvidia.scm (nvidia-settings)[arguments]<#:phases>: Add 'fix-application-profile-path. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index fccacef5..2c96f3a5 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -554,6 +554,10 @@ userspace tools from the corresponding driver release.") #:phases #~(modify-phases %standard-phases (delete 'configure) + (add-after 'unpack 'fix-application-profile-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/gtk+-2.x/ctkappprofile.c" + (("/usr") "/run/booted-system/profile")))) (add-after 'install 'wrap-program (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) From 2ae8a04b5769648f38748f9c49de2d31786b7b13 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 15 Dec 2023 22:09:22 +0800 Subject: [PATCH 67/90] nongnu: nvidia-settings: Install desktop file. * nongnu/packages/nvidia.scm (nvidia-settings)[arguments]<#:phases>: Add 'install-desktop-file. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 2c96f3a5..713cc57a 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -558,6 +558,17 @@ userspace tools from the corresponding driver release.") (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/gtk+-2.x/ctkappprofile.c" (("/usr") "/run/booted-system/profile")))) + (add-after 'install 'install-desktop-file + (lambda _ + (substitute* "doc/nvidia-settings.desktop" + (("^Exec=.*") "Exec=nvidia-settings\n") + (("__NVIDIA_SETTINGS_DESKTOP_CATEGORIES__") "Settings")) + (install-file "doc/nvidia-settings.desktop" + (string-append + #$output "/share/applications")) + (install-file "doc/nvidia-settings.png" + (string-append + #$output "/share/icons/hicolor/128x128/apps")))) (add-after 'install 'wrap-program (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) From b0ebc7cb24331790e64fd31c85157408eba5f936 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Mon, 8 Jan 2024 10:39:40 +0800 Subject: [PATCH 68/90] nongnu: nvda: Pad version to the length of mesa version. * nongnu/packages/nvidia.scm (nvda)[version]: Pad to the length of mesa version. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 713cc57a..b812a94e 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -608,6 +608,10 @@ configuration, creating application profiles, gpu monitoring and more.") (package (inherit nvidia-driver) (name "nvda") + (version (string-pad-right + (package-version nvidia-driver) + (string-length (package-version mesa)) + #\0)) (source #f) (build-system trivial-build-system) (arguments From 57c915ac9e5c1acc9855edcdd391a6f19630b2da Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 26 Jan 2024 17:01:43 +0800 Subject: [PATCH 69/90] nongnu: nvda: Add native-search-paths. * nongnu/packages/nvidia.scm (nvda): Add native-search-paths. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index b812a94e..da4dec62 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -632,6 +632,28 @@ configuration, creating application profiles, gpu monitoring and more.") (last files)))) (format #t "chosen ~a ~%" file) file)))))) + (native-search-paths + (list + ;; https://github.com/NVIDIA/egl-wayland/issues/39 + (search-path-specification + (variable "__EGL_EXTERNAL_PLATFORM_CONFIG_DIRS") + (files '("share/egl/egl_external_platform.d"))) + ;; https://gitlab.freedesktop.org/glvnd/libglvnd/-/blob/master/src/EGL/icd_enumeration.md + (search-path-specification + (variable "__EGL_VENDOR_LIBRARY_DIRS") + (files '("share/glvnd/egl_vendor.d"))) + ;; See also: ‘src/gbm/main/backend.c’ in mesa source. + (search-path-specification + (variable "GBM_BACKENDS_PATH") + (files '("lib/gbm"))) + (search-path-specification + (variable "VDPAU_DRIVER_PATH") + (files '("lib/vdpau")) + (separator #f)) + ;; https://github.com/KhronosGroup/Vulkan-Loader/blob/main/docs/LoaderLayerInterface.md + (search-path-specification + (variable "XDG_DATA_DIRS") + (files '("share"))))) (description "These are the libraries of the evil NVIDIA driver, packaged in such a way that you can use the transformation option @code{--with-graft=mesa=nvda} From 74fa6e191615c0c983e9da06f0499cd1cfada076 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 19:11:45 +0800 Subject: [PATCH 70/90] nongnu: nvda: Adjust inputs. * nongnu/packages/nvidia.scm (nvda)[native-inputs]: Set to '(). [propagated-inputs]: Propagate mesa and nvidia-drivers's propagated-inputs. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index da4dec62..cc57cf85 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -658,6 +658,11 @@ configuration, creating application profiles, gpu monitoring and more.") "These are the libraries of the evil NVIDIA driver, packaged in such a way that you can use the transformation option @code{--with-graft=mesa=nvda} to use the NVIDIA driver with a package that requires mesa.") + (native-inputs '()) + (propagated-inputs + (append + (package-propagated-inputs mesa) + (package-propagated-inputs nvidia-driver))) (inputs (list mesa nvidia-driver)) (outputs '("out")))) From 357888aa25309648996adb733680c1591e0c292f Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 19:15:18 +0800 Subject: [PATCH 71/90] nongnu: nvda: Adjust package style. * nongnu/packages/nvidia.scm (nvda)[arguments]<#:builder>: Adjust style. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index cc57cf85..6b2b20e2 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -621,17 +621,18 @@ configuration, creating application profiles, gpu monitoring and more.") (use-modules (guix build union) (srfi srfi-1) (ice-9 regex)) - (union-build #$output - (list #$(this-package-input "mesa") - #$(this-package-input "nvidia-driver")) - #:resolve-collision - (lambda (files) - (let ((file (if (string-match "nvidia-driver" - (first files)) - (first files) - (last files)))) - (format #t "chosen ~a ~%" file) - file)))))) + (union-build + #$output + '#$(list (this-package-input "mesa") + (this-package-input "nvidia-driver")) + #:resolve-collision + (lambda (files) + (let ((file (if (string-match "nvidia-driver" + (first files)) + (first files) + (last files)))) + (format #t "chosen ~a ~%" file) + file)))))) (native-search-paths (list ;; https://github.com/NVIDIA/egl-wayland/issues/39 From 8c1a56e16ea4d728aed3c4399102ae0aa14e5032 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 18:57:42 +0800 Subject: [PATCH 72/90] nongnu: Add libglvnd-for-nvda. * nongnu/packages/nvidia.scm (libglvnd-for-nvda): New variable. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 6b2b20e2..beb91584 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -602,6 +602,18 @@ configuration, creating application profiles, gpu monitoring and more.") ;;; +(define-public libglvnd-for-nvda + (hidden-package + (package + (inherit libglvnd) + (arguments + (substitute-keyword-arguments (package-arguments libglvnd) + ((#:configure-flags flags #~'()) + #~(cons* "-Dc_link_args=-Wl,-rpath=$ORIGIN" #$flags)) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (delete 'shrink-runpath)))))))) + ;; nvda is used as a name because it has the same length as mesa which is ;; required for grafting (define-public nvda From fbf5024faf4158bdcb8af2159ed6f150063aa862 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 18:58:57 +0800 Subject: [PATCH 73/90] nongnu: Add mesa-for-nvda. * nongnu/packages/nvidia.scm (mesa-for-nvda): New variable. (nvda)[version,inputs]: Replace mesa with it. [arguments]<#:builder>: Remove resolve-collision procedure. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 60 ++++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 15 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index beb91584..e286c7d4 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -614,6 +614,46 @@ configuration, creating application profiles, gpu monitoring and more.") #~(modify-phases #$phases (delete 'shrink-runpath)))))))) +(define-public mesa-for-nvda + (hidden-package + (package + (inherit mesa) + (propagated-inputs + (modify-inputs (package-propagated-inputs mesa) + (prepend libglvnd-for-nvda))) + (arguments + (substitute-keyword-arguments (package-arguments mesa) + ((#:configure-flags flags #~'()) + #~(cons* "-Dglvnd=true" #$flags)) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-after 'install 'fix-egl-vendor-icd + (lambda _ + (substitute* (string-append + #$output "/share/glvnd/egl_vendor.d/50_mesa.json") + (("libEGL_mesa\\.so\\.." all) + (string-append #$output "/lib/" all))))) + (add-after 'set-layer-path-in-manifests 'add-architecture-to-filename + (lambda _ + (for-each + (lambda (path) + (let* ((out #$output) + (system #$(or (%current-target-system) + (%current-system))) + (dash (string-index system #\-)) + (arch (string-take system dash)) + + (dot (string-index-right path #\.)) + (base (string-take path dot)) + (ext (string-drop path (+ 1 dot)))) + ;; <...>/50_mesa.json -> <...>/50_mesa.x86_64.json + (rename-file + (string-append out path) + (string-append out base "." arch "." ext)))) + '("/share/glvnd/egl_vendor.d/50_mesa.json" + "/share/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json" + "/share/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json"))))))))))) + ;; nvda is used as a name because it has the same length as mesa which is ;; required for grafting (define-public nvda @@ -622,7 +662,7 @@ configuration, creating application profiles, gpu monitoring and more.") (name "nvda") (version (string-pad-right (package-version nvidia-driver) - (string-length (package-version mesa)) + (string-length (package-version mesa-for-nvda)) #\0)) (source #f) (build-system trivial-build-system) @@ -630,21 +670,11 @@ configuration, creating application profiles, gpu monitoring and more.") (list #:modules '((guix build union)) #:builder #~(begin - (use-modules (guix build union) - (srfi srfi-1) - (ice-9 regex)) + (use-modules (guix build union)) (union-build #$output '#$(list (this-package-input "mesa") - (this-package-input "nvidia-driver")) - #:resolve-collision - (lambda (files) - (let ((file (if (string-match "nvidia-driver" - (first files)) - (first files) - (last files)))) - (format #t "chosen ~a ~%" file) - file)))))) + (this-package-input "nvidia-driver")))))) (native-search-paths (list ;; https://github.com/NVIDIA/egl-wayland/issues/39 @@ -674,9 +704,9 @@ to use the NVIDIA driver with a package that requires mesa.") (native-inputs '()) (propagated-inputs (append - (package-propagated-inputs mesa) + (package-propagated-inputs mesa-for-nvda) (package-propagated-inputs nvidia-driver))) - (inputs (list mesa nvidia-driver)) + (inputs (list mesa-for-nvda nvidia-driver)) (outputs '("out")))) (define mesa/fake From deab71dbe691e29b64d9464515488a2dd57468ac Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 31 Jan 2024 19:21:03 +0800 Subject: [PATCH 74/90] nongnu: nvidia-driver: Remove libraries provided by libglvnd. * nongnu/packages/nvidia.scm (nvidia-source-unbundle-libraries): Remove libraries provided by libglvnd. (nvidia-driver)[inputs]: Add libglvnd-for-nvda. [arguments]<#:phases>: Add it to RUNPATH. (nvda)[arguments]<#:builder>: Add "libglvnd" from inputs to union build. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index e286c7d4..2c6020e6 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -81,6 +81,14 @@ "libnvidia-egl-gbm\\.so\\." ;; egl-wayland "libnvidia-egl-wayland\\.so\\." + ;; libglvnd + "libEGL\\.so\\." + "libGL\\.so\\." + "libGLESv1_CM\\.so\\." + "libGLESv2\\.so\\." + "libGLX\\.so\\." + "libGLdispatch\\.so\\." + "libOpenGL\\.so\\." ;; nvidia-settings "libnvidia-gtk[23]\\.so\\." ;; opencl-icd-loader @@ -319,6 +327,7 @@ ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\ (string-append (ungexp (this-package-input "gcc") "lib") "/lib") (string-append #$(this-package-input "glibc") "/lib") (string-append #$(this-package-input "libdrm") "/lib") + (string-append #$(this-package-input "libglvnd") "/lib") (string-append #$(this-package-input "libx11") "/lib") (string-append #$(this-package-input "libxext") "/lib") (string-append #$(this-package-input "wayland") "/lib")) @@ -419,6 +428,7 @@ ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\ `(,gcc "lib") glibc libdrm + libglvnd-for-nvda libx11 libxext wayland)) @@ -673,7 +683,8 @@ configuration, creating application profiles, gpu monitoring and more.") (use-modules (guix build union)) (union-build #$output - '#$(list (this-package-input "mesa") + '#$(list (this-package-input "libglvnd") + (this-package-input "mesa") (this-package-input "nvidia-driver")))))) (native-search-paths (list From e3896f51d2d39d61fdb26585a6d992216a5d0cd5 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sun, 7 Jan 2024 21:13:00 +0800 Subject: [PATCH 75/90] services: nvidia: Adjust configuration options. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * nongnu/services/nvidia.scm (nvidia-configuration): [nvidia-driver]: Rename to ‘driver’. Default to nvda. Accept a file-like object. [nvidia-firmware]: Rename to ‘firmware’. Accept a file-like object. [nvidia-module]: Rename to ‘module’. Accept a file-like object. [modules]: Remove option. (nvidia-shepherd-service): Correct kernel module name. [stop]: Don't return #f. (nvidia-service-type): Extend profile-service-type with ‘driver’. Adjust accordingly. Signed-off-by: John Kehayias --- nongnu/services/nvidia.scm | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/nongnu/services/nvidia.scm b/nongnu/services/nvidia.scm index 985e12bc..4a604cb9 100644 --- a/nongnu/services/nvidia.scm +++ b/nongnu/services/nvidia.scm @@ -2,14 +2,14 @@ ;;; Copyright © 2022 Hilton Chain (define-module (nongnu services nvidia) + #:use-module (guix gexp) + #:use-module (guix records) #:use-module (gnu packages) #:use-module (gnu packages linux) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu services linux) #:use-module (gnu services shepherd) - #:use-module (guix gexp) - #:use-module (guix records) #:use-module (nongnu packages nvidia) #:export (nvidia-configuration nvidia-configuration? @@ -19,24 +19,22 @@ (define-record-type* nvidia-configuration make-nvidia-configuration nvidia-configuration? - (nvidia-driver nvidia-configuration-nvidia-driver - (default (list nvidia-driver))) ; list of file-like - (nvidia-firmware nvidia-configuration-nvidia-firmware - (default (list nvidia-firmware))) ; list of file-like - (nvidia-module nvidia-configuration-nvidia-module - (default (list nvidia-module))) ; list of file-like - (modules nvidia-configuration-modules - (default (list "nvidia-uvm")))) ; list of string + (driver nvidia-configuration-driver + (default nvda)) ; file-like + (firmware nvidia-configuration-firmware + (default nvidia-firmware)) ; file-like + (module nvidia-configuration-module + (default nvidia-module))) ; file-like (define (nvidia-shepherd-service config) (list (shepherd-service - (documentation "Unload nvidia-uvm module on powering off.") + (documentation "Prepare system environment for NVIDIA driver.") (provision '(nvidia)) (requirement '(user-processes)) (start #~(const #t)) (stop #~(lambda _ (let ((rmmod #$(file-append kmod "/bin/rmmod"))) - (zero? (system* rmmod "nvidia-uvm")))))))) + (system* rmmod "nvidia_uvm"))))))) (define nvidia-service-type (service-type @@ -44,13 +42,15 @@ (extensions (list (service-extension shepherd-root-service-type nvidia-shepherd-service) + (service-extension profile-service-type + (compose list nvidia-configuration-driver)) (service-extension udev-service-type - nvidia-configuration-nvidia-driver) + (compose list nvidia-configuration-driver)) (service-extension firmware-service-type - nvidia-configuration-nvidia-firmware) + (compose list nvidia-configuration-firmware)) (service-extension linux-loadable-module-service-type - nvidia-configuration-nvidia-module) + (compose list nvidia-configuration-module)) (service-extension kernel-module-loader-service-type - nvidia-configuration-modules))) + (const '("nvidia_uvm"))))) (default-value (nvidia-configuration)) - (description "Load NVIDIA modules."))) + (description "Prepare system environment for NVIDIA driver."))) From e4e34b7da49b278444360a603772c56485767900 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sun, 7 Jan 2024 21:24:14 +0800 Subject: [PATCH 76/90] services: nvidia: Create extra device nodes on boot. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * nongnu/services/nvidia.scm (nvidia-shepherd-service) [requirement]: Add udev. [start]: Create extra device nodes via ‘nvidia-smi’. Signed-off-by: John Kehayias --- nongnu/services/nvidia.scm | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/nongnu/services/nvidia.scm b/nongnu/services/nvidia.scm index 4a604cb9..e69c4202 100644 --- a/nongnu/services/nvidia.scm +++ b/nongnu/services/nvidia.scm @@ -1,5 +1,5 @@ ;;; SPDX-License-Identifier: GPL-3.0-or-later -;;; Copyright © 2022 Hilton Chain +;;; Copyright © 2022, 2024 Hilton Chain (define-module (nongnu services nvidia) #:use-module (guix gexp) @@ -27,14 +27,20 @@ (default nvidia-module))) ; file-like (define (nvidia-shepherd-service config) - (list (shepherd-service - (documentation "Prepare system environment for NVIDIA driver.") - (provision '(nvidia)) - (requirement '(user-processes)) - (start #~(const #t)) - (stop #~(lambda _ - (let ((rmmod #$(file-append kmod "/bin/rmmod"))) - (system* rmmod "nvidia_uvm"))))))) + (let ((nvidia-driver (nvidia-configuration-driver config)) + (nvidia-smi (file-append nvidia-driver "/bin/nvidia-smi")) + (rmmod (file-append kmod "/bin/rmmod"))) + (list (shepherd-service + (documentation "Prepare system environment for NVIDIA driver.") + (provision '(nvidia)) + (requirement '(udev user-processes)) + (start + #~(lambda _ + (when (file-exists? #$nvidia-smi) + (system* #$nvidia-smi)))) + (stop + #~(lambda _ + (system* #$rmmod "nvidia_uvm"))))))) (define nvidia-service-type (service-type From 97925d20910cda0e7e39d00b73fc16144b0ef2f0 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sun, 25 Feb 2024 14:19:54 +0800 Subject: [PATCH 77/90] =?UTF-8?q?services:=20nvidia:=20No=20longer=20unloa?= =?UTF-8?q?d=20=E2=80=98nvidia=5Fuvm=E2=80=99=20module=20on=20powering=20o?= =?UTF-8?q?ff.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Shepherd now handles kernel processes properly, no longer need to unload the module here. * nongnu/services/nvidia.scm (nvidia-shepherd-service)[requirement]: Remove 'user-processes. [one-shot?]: Set to #t. [stop]: Remove field. Signed-off-by: John Kehayias --- nongnu/services/nvidia.scm | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/nongnu/services/nvidia.scm b/nongnu/services/nvidia.scm index e69c4202..13fa8b1c 100644 --- a/nongnu/services/nvidia.scm +++ b/nongnu/services/nvidia.scm @@ -28,19 +28,16 @@ (define (nvidia-shepherd-service config) (let ((nvidia-driver (nvidia-configuration-driver config)) - (nvidia-smi (file-append nvidia-driver "/bin/nvidia-smi")) - (rmmod (file-append kmod "/bin/rmmod"))) + (nvidia-smi (file-append nvidia-driver "/bin/nvidia-smi"))) (list (shepherd-service (documentation "Prepare system environment for NVIDIA driver.") (provision '(nvidia)) - (requirement '(udev user-processes)) + (requirement '(udev)) + (one-shot? #t) (start #~(lambda _ (when (file-exists? #$nvidia-smi) - (system* #$nvidia-smi)))) - (stop - #~(lambda _ - (system* #$rmmod "nvidia_uvm"))))))) + (system* #$nvidia-smi)))))))) (define nvidia-service-type (service-type From 8a56ebb666179ad9595e947e470aeaf2900e1278 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sun, 4 Feb 2024 15:08:37 +0800 Subject: [PATCH 78/90] services: nvidia: Only invoke commands when NVIDIA driver is in use. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * nongnu/services/nvidia.scm (nvidia-service-type): Don't extend kernel-module-loader-service-type, move this part to… (nvidia-shepherd-service)[start]: …here. Check driver and command availablity. [stop]: Likewise. [modules]: Add (guix build utils) for ‘invoke/quiet’. Add (rnrs io ports) for ‘get-line’. Signed-off-by: John Kehayias --- nongnu/services/nvidia.scm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/nongnu/services/nvidia.scm b/nongnu/services/nvidia.scm index 13fa8b1c..81a5d5f1 100644 --- a/nongnu/services/nvidia.scm +++ b/nongnu/services/nvidia.scm @@ -34,10 +34,17 @@ (provision '(nvidia)) (requirement '(udev)) (one-shot? #t) + (modules '(((guix build utils) #:select (invoke/quiet)) + ((rnrs io ports) #:select (get-line)))) (start #~(lambda _ - (when (file-exists? #$nvidia-smi) - (system* #$nvidia-smi)))))))) + (when (file-exists? "/proc/driver/nvidia") + (let ((modprobe (call-with-input-file + "/proc/sys/kernel/modprobe" get-line))) + (false-if-exception + (begin + (invoke/quiet modprobe "--" "nvidia_uvm") + (invoke/quiet #$nvidia-smi))))))))))) (define nvidia-service-type (service-type @@ -52,8 +59,6 @@ (service-extension firmware-service-type (compose list nvidia-configuration-firmware)) (service-extension linux-loadable-module-service-type - (compose list nvidia-configuration-module)) - (service-extension kernel-module-loader-service-type - (const '("nvidia_uvm"))))) + (compose list nvidia-configuration-module)))) (default-value (nvidia-configuration)) (description "Prepare system environment for NVIDIA driver."))) From d35912bd9e69b706fd8ca19a2e536d1851ae0e65 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 28 Feb 2024 14:29:54 +0800 Subject: [PATCH 79/90] nongnu: nvidia: Group source hashes. * nongnu/packages/nvidia.scm (nvidia-source-hash): New procedure. (nvidia-source): Use it. (nvidia-settings)[source]: Likewise. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 2c6020e6..37dacaf1 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -72,6 +72,16 @@ ;;; +(define* (nvidia-source-hash version #:optional (package "nvidia-driver")) + (define %nvidia-source-hashes + '(("515.76" . + (("nvidia-driver" . + "0i5zyvlsjnfkpfqhw6pklp0ws8nndyiwxrg4pj04jpwnxf6a38n6") + ("nvidia-settings" . + "1hplc42115c06cc555cjmw3c9371qn7ibwjpqjybcf6ixfd6lryq"))))) + (let ((hashes (assoc-ref %nvidia-source-hashes version))) + (assoc-ref hashes package))) + (define (nvidia-source-unbundle-libraries version) #~(begin (use-modules (guix build utils)) @@ -139,7 +149,7 @@ VERSION as argument and returns a G-expression." (define-public nvidia-source (make-nvidia-source nvidia-version - (base32 "0i5zyvlsjnfkpfqhw6pklp0ws8nndyiwxrg4pj04jpwnxf6a38n6"))) + (base32 (nvidia-source-hash nvidia-version)))) ;;; @@ -551,9 +561,7 @@ userspace tools from the corresponding driver release.") (file-name (git-file-name name version)) (modules '((guix build utils))) (snippet '(delete-file-recursively "src/jansson")) - (sha256 - (base32 - "1hplc42115c06cc555cjmw3c9371qn7ibwjpqjybcf6ixfd6lryq")))) + (sha256 (base32 (nvidia-source-hash version name))))) (build-system gnu-build-system) (arguments (list #:tests? #f ;no test suite From b08562d4c91385c2709a892f02def8e562f35e06 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 9 Mar 2024 20:37:53 +0800 Subject: [PATCH 80/90] nongnu: nvidia-driver: Update synopsis and description. * nongnu/packages/nvidia.scm (nvidia-driver)[synopsis,description]: Update. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 37dacaf1..4a58d338 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -443,12 +443,11 @@ ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\ libxext wayland)) (home-page "https://www.nvidia.com") - (synopsis "Proprietary NVIDIA driver") + (synopsis "Proprietary NVIDIA driver (libraries)") (description - "This is the evil NVIDIA driver. Don't forget to add @code{service -nvidia-service-type} to your @file{config.scm}. Further xorg should be -configured by adding: @code{(modules (cons* nvidia-driver -%default-xorg-modules)) (drivers '(\"nvidia\"))} to @code{xorg-configuration}.") + "This package provides libraries of the proprietary NVIDIA driver. It's +mainly used as a dependency of other packages. For user-facing purpose, use +@code{nvda} instead.") (license (license:nonfree (format #f "file:///share/doc/nvidia-driver-~a/LICENSE" version))))) From ffe4fe4e6cbc938effbdfd932b00b708cd9d0f3c Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 9 Mar 2024 20:38:35 +0800 Subject: [PATCH 81/90] nongnu: nvidia-firmware: Update synopsis and description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * nongnu/packages/nvidia.scm (nvidia-firmware)[synopsis,description]: Update. [arguments]<#:install-plan>: Use version of ‘this-package’. [propagated-inputs]: Set to '(). Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 4a58d338..3c79d5f3 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -468,13 +468,23 @@ mainly used as a dependency of other packages. For user-facing purpose, use (name "nvidia-firmware") (arguments (list #:install-plan - #~'(("firmware" #$(string-append - "lib/firmware/nvidia/" (package-version base)))) + #~'(("firmware" #$(string-append "lib/firmware/nvidia/" + (package-version this-package)))) #:phases #~(modify-phases %standard-phases (delete 'strip)))) + (propagated-inputs '()) (inputs '()) - (native-inputs '())))) + (native-inputs '()) + (synopsis "Proprietary NVIDIA driver (GSP firmwares)") + (description + "This package provides firmwares for NVIDIA's GPU System Processor. +Firmware installation can be done with @code{nvidia-service-type}, however +whether GSP mode is enabled by default or not depends on the specific GPU +product. + +To enable GSP mode manually, add @code{\"NVreg_EnableGpuFirmware=1\"} to +@code{kernel-arguments} field of the @code{operating-system} configuration.")))) ;;; From 3e6050eb842206d42122ea9f28c4c229b136167c Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 9 Mar 2024 20:39:47 +0800 Subject: [PATCH 82/90] nongnu: nvidia-module: Update synopsis and description. * nongnu/packages/nvidia.scm (nvidia-module)[synopsis,description]: Update. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 3c79d5f3..46a136a0 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -525,9 +525,15 @@ To enable GSP mode manually, add @code{\"NVreg_EnableGpuFirmware=1\"} to '()) ,@make-flags))))))) (home-page "https://www.nvidia.com") - (synopsis "Proprietary NVIDIA kernel modules") + (synopsis "Proprietary NVIDIA driver (kernel modules)") (description - "This package provides the evil NVIDIA proprietary kernel modules.") + "This package provides kernel modules of the proprietary NVIDIA driver. +Module setup can be done with @code{nvidia-service-type}, to actually use these +modules, also add @code{modprobe.blacklist=nouveau} to @code{kernel-arguments} +field of the @code{operating-system} configuration. + +If the NVIDIA card is not used for displaying, or on a Wayland environment, +add @code{nvidia_drm.modeset=1} to @code{kernel-arguments} as well.") (license (license:nonfree (format #f "file:///share/doc/nvidia-driver-~a/LICENSE" version))))) From 260855dc5e36a418193a286392655f50a4be1ad5 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 9 Mar 2024 20:40:07 +0800 Subject: [PATCH 83/90] nongnu: nvidia-module-open: Update synopsis and description. * nongnu/packages/nvidia.scm (nvidia-module-open): Don't use package/inherit. [synopsis,description]: Update. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 46a136a0..54ce3302 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -540,7 +540,8 @@ add @code{nvidia_drm.modeset=1} to @code{kernel-arguments} as well.") (define-public nvidia-module-open (let ((base nvidia-module)) - (package/inherit base + (package + (inherit base) (name "nvidia-module-open") (arguments (substitute-keyword-arguments (package-arguments base) @@ -550,12 +551,20 @@ add @code{nvidia_drm.modeset=1} to @code{kernel-arguments} as well.") ;; ((#:source-directory _) "kernel-open"))) (home-page "https://github.com/NVIDIA/open-gpu-kernel-modules") - (synopsis "NVIDIA kernel module") + (synopsis "Open source NVIDIA kernel modules") (description - "This package provides NVIDIA open-gpu-kernel-modules. However, they -are only for the latest GPU architectures Turing and Ampere. Also they still -require firmware file @code{gsp.bin} to be loaded as well as closed source -userspace tools from the corresponding driver release.") + "This package provides open source NVIDIA kernel modules, however +proprietary firmware and libraries are still necessary, and these modules +require GPU System Processor to be present (Turing or later architectures) and +enabled (see also the description of @code{nvidia-firmware} package). + +Module setup can be done with @code{nvidia-service-type} (with @code{module} +field of @code{nvidia-configuration} set to @code{nvidia-module-open}), to +actually use these modules, also add @code{modprobe.blacklist=nouveau} to +@code{kernel-arguments} field of the @code{operating-system} configuration. + +If the NVIDIA card is not used for displaying, or on a Wayland environment, +add @code{nvidia_drm.modeset=1} to @code{kernel-arguments} as well.") (license license-gnu:gpl2)))) From 39e64b2b7706885b8261bfbefa8dd0521072d8c7 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 9 Mar 2024 20:40:44 +0800 Subject: [PATCH 84/90] nongnu: nvda: Update synopsis and description. * nongnu/packages/nvidia.scm (nvda)[synopsis,description]: Update. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 54ce3302..29d03212 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -740,10 +740,19 @@ configuration, creating application profiles, gpu monitoring and more.") (search-path-specification (variable "XDG_DATA_DIRS") (files '("share"))))) + (synopsis "Nonguix's user-facing NVIDIA driver package") (description - "These are the libraries of the evil NVIDIA driver, packaged in such a -way that you can use the transformation option @code{--with-graft=mesa=nvda} -to use the NVIDIA driver with a package that requires mesa.") + "This package provides a drop-in replacement for @code{mesa} and is +intended to be installed by @code{nvidia-service-type}. + +To actually use the NVIDIA card, replacement must be applied for individual +packages, this can be done either by rewriting inputs with +@code{--with-input=mesa=nvda} or grafting with @code{--with-graft=mesa=nvda}. +For a programmatical way, the procedure @code{replace-mesa} can be used. + +Additionally, if the NVIDIA card is not used for displaying, environment +variables @code{__GLX_VENDOR_LIBRARY_NAME=nvidia} and +@code{__NV_PRIME_RENDER_OFFLOAD=1} may be set.") (native-inputs '()) (propagated-inputs (append From be61a1829a19724299e46d6e3c1038229039c3ee Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 9 Mar 2024 21:39:18 +0800 Subject: [PATCH 85/90] README.org: Document setup for NVIDIA graphics card. * README.org (NVIDIA graphics card): New section. Signed-off-by: John Kehayias --- README.org | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/README.org b/README.org index 2f5e0a87..10549040 100644 --- a/README.org +++ b/README.org @@ -220,6 +220,75 @@ firmware, and blacklisting of conflicting modules: ...)) ...) #+END_SRC + +** NVIDIA graphics card + +NVIDIA graphics card support in Nonguix consists of a system service =nvidia-service-type= and a package =nvda= for application setup. + +The following code serves as an example for system setup: + +#+BEGIN_SRC scheme + (use-modules (gnu services gnome) + (gnu services xorg) + (nongnu packages nvidia) + (nongnu services nvidia)) + + (operating-system + (kernel-arguments '("modprobe.blacklist=nouveau" + ;; Set this if the card is not used for displaying or + ;; you're using Wayland: + "nvidia_drm.modeset=1")) + (services + (cons* (service nvidia-service-type) + ;; Configure desktop environment, GNOME for example. + (service gnome-desktop-service-type + ;; Enable NVIDIA support, only do this when the card is + ;; used for displaying. + (gnome-desktop-configuration + (gnome (replace-mesa gnome)))) + ;; Configure Xorg server, only do this when the card is used for + ;; displaying. + (set-xorg-configuration + (xorg-configuration + (modules (cons nvda %default-xorg-modules)) + (drivers '("nvidia")))) + ...)) + ...) +#+END_SRC + +For application setup, =mesa= has to be replaced with =nvda= for every individual package that requires the NVIDIA driver, this can be done with grafting (which doesn't rebuild packages) or rewriting inputs (which rebuilds packages) (see [[https://guix.gnu.org/manual/devel/en/guix.html#Package-Transformation-Options][Package Transformation Options]] in GNU Guix Reference Manual). For example: + +#+BEGIN_SRC shell + guix build mesa-utils --with-graft=mesa=nvda + guix build mesa-utils --with-input=mesa=nvda +#+END_SRC + +The above transformation can be used within an one-off software environment spawned by =guix shell= as well, for correct environment variables, the =nvda= package may be added into the environment: + +#+BEGIN_SRC shell + guix shell mesa-utils nvda --with-graft=mesa=nvda \ + -- glxinfo +#+END_SRC + +To graft mesa with nvda programmatically, use =replace-mesa= defined in =(nongnu packages nvidia)=: + +#+BEGIN_SRC scheme + (use-modules (nongnu packages nvidia)) + + ;; Replace mesa with nvda for a single package. + (replace-mesa ) + + ;; Replace mesa with nvda for a package list. + (map replace-mesa (list ...)) + + ;; A package with mesa replaced is still a package, it can be part of a + ;; package list. + (list (replace-mesa ) + ...) +#+END_SRC + +When the card is not used for displaying, environment variables =__GLX_VENDOR_LIBRARY_NAME=nvidia= and =__NV_PRIME_RENDER_OFFLOAD=1= may be set. + ** Substitutes for nonguix A Nonguix substitute server is available at [[https://substitutes.nonguix.org]]. From 3dca585034b032931d2c3cc91d8dc3af4a08cbd5 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 15 Dec 2023 23:16:03 +0800 Subject: [PATCH 86/90] nongnu: nvidia-driver: Update to 550.67. * nongnu/packages/nvidia.scm (nvidia-version): Update to 550.67. (nvidia-source-hash)[%nvidia-source-hashes]: Update hashes. (make-nvidia-source): Add zstd to PATH. (nvidia-source,nvidia-settings): Update hash. (nvidia-driver)[inputs]: Add openssl, openssl-1.1 [arguments]<#:phases>: Add them to RUNPATH. Install nvidia-cuda-mps-control and nvidia-cuda-mps-server. Signed-off-by: John Kehayias --- nongnu/packages/nvidia.scm | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 29d03212..2c6495ee 100644 --- a/nongnu/packages/nvidia.scm +++ b/nongnu/packages/nvidia.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2021 Pierre Langlois ;;; Copyright © 2022, 2023 Petr Hodina ;;; Copyright © 2022 Alexey Abramov -;;; Copyright © 2022 Hilton Chain +;;; Copyright © 2022, 2023, 2024 Hilton Chain (define-module (nongnu packages nvidia) #:use-module (guix packages) @@ -41,6 +41,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) + #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) @@ -64,7 +65,7 @@ ;; GSYNC control for Vulkan direct-to-display applications. "^VKDirectGSYNC(Compatible)?Allowed$")) -(define-public nvidia-version "515.76") +(define-public nvidia-version "550.67") ;;; @@ -74,11 +75,11 @@ (define* (nvidia-source-hash version #:optional (package "nvidia-driver")) (define %nvidia-source-hashes - '(("515.76" . + '(("550.67" . (("nvidia-driver" . - "0i5zyvlsjnfkpfqhw6pklp0ws8nndyiwxrg4pj04jpwnxf6a38n6") + "1qnsyzplkxfcc2sj6fcw3ylfp0njvb5z1c0y4v80zzqwqw4il84r") ("nvidia-settings" . - "1hplc42115c06cc555cjmw3c9371qn7ibwjpqjybcf6ixfd6lryq"))))) + "18sij736liyhqysvsnqwb6r58pf0zbggxyvyc11psc4ljxg30h8m"))))) (let ((hashes (assoc-ref %nvidia-source-hashes version))) (assoc-ref hashes package))) @@ -137,7 +138,8 @@ VERSION as argument and returns a G-expression." grep tar which - xz)) + xz + zstd)) (setenv "XZ_OPT" (string-join (%xz-parallel-args))) (invoke "sh" #$installer "-x") (copy-recursively @@ -333,6 +335,7 @@ ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\ #$(glibc-dynamic-linker))) (rpath (string-join (list (string-append #$output "/lib") + (string-append #$openssl-1.1 "/lib") (string-append #$(this-package-input "egl-wayland") "/lib") (string-append (ungexp (this-package-input "gcc") "lib") "/lib") (string-append #$(this-package-input "glibc") "/lib") @@ -340,6 +343,7 @@ ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\ (string-append #$(this-package-input "libglvnd") "/lib") (string-append #$(this-package-input "libx11") "/lib") (string-append #$(this-package-input "libxext") "/lib") + (string-append #$(this-package-input "openssl") "/lib") (string-append #$(this-package-input "wayland") "/lib")) ":"))) (define (patch-elf file) @@ -366,7 +370,9 @@ ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\ (install-file binary bindir) (when (file-exists? manual) (install-file manual mandir)))) - '("nvidia-smi"))))) + '("nvidia-cuda-mps-control" + "nvidia-cuda-mps-server" + "nvidia-smi"))))) (add-before 'patch-elf 'relocate-libraries (lambda _ (let* ((version #$(package-version this-package)) @@ -441,6 +447,8 @@ ACTION==\"unbind\", SUBSYSTEM==\"pci\", ATTR{vendor}==\"0x10de\", ATTR{class}==\ libglvnd-for-nvda libx11 libxext + openssl + openssl-1.1 wayland)) (home-page "https://www.nvidia.com") (synopsis "Proprietary NVIDIA driver (libraries)") From cd565db6d76ed72eb34fdf0ac05804adde29d982 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Wed, 24 Apr 2024 23:51:02 -0400 Subject: [PATCH 87/90] news: Add entry for update/changes to nvidia driver. * news.txt: Add entry. --- news.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/news.txt b/news.txt index d2948610..4ce13a5f 100644 --- a/news.txt +++ b/news.txt @@ -9,6 +9,16 @@ (channel-news (version 0) + (entry (commit "be61a1829a19724299e46d6e3c1038229039c3ee") + (title + (en "Nvidia driver package/service updates and changes")) + (body + (en "In addition to the Nvidia driver package being updated to 550.67, +the service, procedures, and configuration has changed. Please see the new +directions in the Nonguix README.org for how to use the Nvidia driver in your +system configuration, and of course report any issues with these changes or +improvements for the documentation."))) + (entry (commit "8078757b887a7691644b119913c3f7b41661775d") (title (en "New @code{GUIX_SANDBOX_EXTRA_SHARES} variable for nonguix containers (Steam)")) From 0018464a1f55586654d5a51b6ceb7a6e3c4fe2f3 Mon Sep 17 00:00:00 2001 From: Felix Dumbeck Date: Fri, 26 Apr 2024 01:25:15 +0200 Subject: [PATCH 88/90] nongnu: signal-desktop: Update to 7.4.0. * nongnu/packages/messaging.scm (signal-desktop): Update to 7.4.0. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index aeb8f3ee..e300915d 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -90,7 +90,7 @@ its core.") (define-public signal-desktop (package (name "signal-desktop") - (version "7.3.0") + (version "7.4.0") (source (origin (method url-fetch) @@ -99,7 +99,7 @@ its core.") "https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version "_amd64.deb")) (sha256 - (base32 "1gkcfh94l5nj8p3jk7g80jqq11fb8igi4wm84g67a9qi8n56wcrc")))) + (base32 "069k7kcg8h16q0mm1bqdf7x66qji653apgwhnb52kdqsfzr1ibzm")))) (supported-systems '("x86_64-linux")) (build-system chromium-binary-build-system) (arguments From fd939d13fa88c1d11bfa6ac4b4a97d38359eac3d Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Sat, 27 Apr 2024 14:34:17 +0200 Subject: [PATCH 89/90] nongnu: anytype: Update to 0.40.0. * nongnu/packages/productivity.scm (anytype): Update to 0.40.0; [arguments]: adjust to match new binaries. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/productivity.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nongnu/packages/productivity.scm b/nongnu/packages/productivity.scm index 10653997..e6158f94 100644 --- a/nongnu/packages/productivity.scm +++ b/nongnu/packages/productivity.scm @@ -24,7 +24,7 @@ (define-public anytype (package (name "anytype") - (version "0.39.0") + (version "0.40.0") (source (origin (method url-fetch) @@ -34,7 +34,7 @@ (file-name (string-append "anytype-" version ".deb")) (sha256 (base32 - "10y037qwm6k28min2sgpshrlpirc1p0zn3b4syxrrz494x5g2ivi")))) + "01q6dzks8hjb2whdkj7c816fji7rn5dpx00ss7rxgvxb5rdz19gr")))) (build-system chromium-binary-build-system) (arguments (list @@ -52,8 +52,8 @@ "libGLESv2.so" "libvk_swiftshader.so" "libvulkan.so.1" - "resources/app.asar.unpacked/dist/nativeMessagingHost" - "resources/app.asar.unpacked/node_modules/keytar/build/Release/keytar.node")) + "resources/app.asar.unpacked/node_modules/keytar/build/Release/keytar.node" + "resources/app.asar.unpacked/node_modules/keytar/build/Release/obj.target/keytar.node")) #:install-plan #~'(("opt/" "/share") ("usr/share/" "/share")) From 76251fb77136c678e51b56d5ae35a13550d7ef3b Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Mon, 29 Apr 2024 22:30:44 +0200 Subject: [PATCH 90/90] nongnu: firefox: Update to 125.0.3. * nongnu/packages/mozilla.scm (firefox): Update to 125.0.3. Signed-off-by: Jonathan Brielmaier --- nongnu/packages/mozilla.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nongnu/packages/mozilla.scm b/nongnu/packages/mozilla.scm index 7a51866d..0588ad6c 100644 --- a/nongnu/packages/mozilla.scm +++ b/nongnu/packages/mozilla.scm @@ -532,20 +532,20 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n" ;; Update this id with every firefox update to its release date. ;; It's used for cache validation and therefore can lead to strange bugs. -(define %firefox-build-id "20240422125740") +(define %firefox-build-id "20240429124342") (define-public firefox (package (inherit firefox-esr) (name "firefox") - (version "125.0.2") + (version "125.0.3") (source (origin (method url-fetch) (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" version "/source/firefox-" version ".source.tar.xz")) (sha256 - (base32 "16gpd6n52lshvkkha41z7xicggj64dw0qhr5gd07bcxsc4rmdl39")))) + (base32 "05jnpnc0qym08f7rlapjm36g729445k3nba2rvf4a0sabsw6c726")))) (arguments (substitute-keyword-arguments (package-arguments firefox-esr) ((#:phases phases)