summaryrefslogtreecommitdiff
path: root/nongnu
diff options
context:
space:
mode:
authorHilton Chain <hako@ultrarare.space>2024-02-01 20:46:05 +0800
committerJohn Kehayias <john.kehayias@protonmail.com>2024-04-24 20:06:15 -0400
commit4bc11de5dd5a4885c0368cb556f93bf09822dcaa (patch)
tree57b2769f108d319f5526eae03d39f843b1b912e4 /nongnu
parent5f7dabe418c705402db3b70389b2d9fa886e89d2 (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.scm32
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")))
;;;