mirror of
https://gitlab.com/nonguix/nonguix.git
synced 2025-02-18 02:23:12 +01:00
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 <john.kehayias@protonmail.com>
This commit is contained in:
parent
8c1a56e16e
commit
fbf5024faf
1 changed files with 45 additions and 15 deletions
|
@ -614,6 +614,46 @@ configuration, creating application profiles, gpu monitoring and more.")
|
||||||
#~(modify-phases #$phases
|
#~(modify-phases #$phases
|
||||||
(delete 'shrink-runpath))))))))
|
(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
|
;; nvda is used as a name because it has the same length as mesa which is
|
||||||
;; required for grafting
|
;; required for grafting
|
||||||
(define-public nvda
|
(define-public nvda
|
||||||
|
@ -622,7 +662,7 @@ configuration, creating application profiles, gpu monitoring and more.")
|
||||||
(name "nvda")
|
(name "nvda")
|
||||||
(version (string-pad-right
|
(version (string-pad-right
|
||||||
(package-version nvidia-driver)
|
(package-version nvidia-driver)
|
||||||
(string-length (package-version mesa))
|
(string-length (package-version mesa-for-nvda))
|
||||||
#\0))
|
#\0))
|
||||||
(source #f)
|
(source #f)
|
||||||
(build-system trivial-build-system)
|
(build-system trivial-build-system)
|
||||||
|
@ -630,21 +670,11 @@ configuration, creating application profiles, gpu monitoring and more.")
|
||||||
(list #:modules '((guix build union))
|
(list #:modules '((guix build union))
|
||||||
#:builder
|
#:builder
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (guix build union)
|
(use-modules (guix build union))
|
||||||
(srfi srfi-1)
|
|
||||||
(ice-9 regex))
|
|
||||||
(union-build
|
(union-build
|
||||||
#$output
|
#$output
|
||||||
'#$(list (this-package-input "mesa")
|
'#$(list (this-package-input "mesa")
|
||||||
(this-package-input "nvidia-driver"))
|
(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
|
(native-search-paths
|
||||||
(list
|
(list
|
||||||
;; https://github.com/NVIDIA/egl-wayland/issues/39
|
;; 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 '())
|
(native-inputs '())
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
(append
|
(append
|
||||||
(package-propagated-inputs mesa)
|
(package-propagated-inputs mesa-for-nvda)
|
||||||
(package-propagated-inputs nvidia-driver)))
|
(package-propagated-inputs nvidia-driver)))
|
||||||
(inputs (list mesa nvidia-driver))
|
(inputs (list mesa-for-nvda nvidia-driver))
|
||||||
(outputs '("out"))))
|
(outputs '("out"))))
|
||||||
|
|
||||||
(define mesa/fake
|
(define mesa/fake
|
||||||
|
|
Loading…
Add table
Reference in a new issue