diff options
author | Hilton Chain <hako@ultrarare.space> | 2024-02-01 20:46:05 +0800 |
---|---|---|
committer | John Kehayias <john.kehayias@protonmail.com> | 2024-04-24 20:06:15 -0400 |
commit | 4bc11de5dd5a4885c0368cb556f93bf09822dcaa (patch) | |
tree | 57b2769f108d319f5526eae03d39f843b1b912e4 /nongnu | |
parent | 5f7dabe418c705402db3b70389b2d9fa886e89d2 (diff) |
nongnu: make-nvidia-source: Extend functionality.
* 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 <john.kehayias@protonmail.com>
Diffstat (limited to 'nongnu')
-rw-r--r-- | nongnu/packages/nvidia.scm | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm index 0153e0d..1ab3e27 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 <origin> 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"))) ;;; |