summaryrefslogtreecommitdiff
path: root/nongnu
diff options
context:
space:
mode:
authorHilton Chain <hako@ultrarare.space>2024-01-29 18:20:43 +0800
committerJohn Kehayias <john.kehayias@protonmail.com>2024-04-24 20:06:28 -0400
commitf6c8eb082ccf3acad7d21b3c036c29497ca7a57f (patch)
tree14dfd77ca56a90393a059eb3f5cd7900b9eb1ead /nongnu
parentd59c557f79321d5372cb24b10dc609b4fdf1f503 (diff)
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 <john.kehayias@protonmail.com>
Diffstat (limited to 'nongnu')
-rw-r--r--nongnu/packages/nvidia.scm24
1 files changed, 24 insertions, 0 deletions
diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm
index 6cd5f00..2d07085 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")