mirror of
https://gitlab.com/nonguix/nonguix.git
synced 2024-11-25 18:08:09 +01:00
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 <john.kehayias@protonmail.com>
This commit is contained in:
parent
c1c9bb0571
commit
47941b0a84
1 changed files with 280 additions and 248 deletions
|
@ -38,25 +38,16 @@
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages m4)
|
#:use-module (gnu packages m4)
|
||||||
#:use-module (gnu packages lsof)
|
#:use-module (gnu packages lsof)
|
||||||
#:use-module (gnu packages perl)
|
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages python)
|
|
||||||
#:use-module (gnu packages python-xyz)
|
#:use-module (gnu packages python-xyz)
|
||||||
#:use-module (gnu packages python-web)
|
|
||||||
#:use-module (gnu packages qt)
|
#:use-module (gnu packages qt)
|
||||||
#:use-module (gnu packages terminals)
|
|
||||||
#:use-module (gnu packages video)
|
#:use-module (gnu packages video)
|
||||||
#:use-module (gnu packages web)
|
#:use-module (gnu packages web)
|
||||||
#:use-module (gnu packages xdisorg)
|
#:use-module (gnu packages xdisorg)
|
||||||
#:use-module (gnu packages xml)
|
#:use-module (gnu packages xml)
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
#:use-module (nongnu packages linux)
|
#:use-module (nongnu packages linux)
|
||||||
#:use-module (ice-9 match)
|
#: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))
|
|
||||||
|
|
||||||
(define-public %nvidia-environment-variable-regexps
|
(define-public %nvidia-environment-variable-regexps
|
||||||
'("^__GL_" ; NVIDIA OpenGL settings.
|
'("^__GL_" ; NVIDIA OpenGL settings.
|
||||||
|
@ -73,11 +64,17 @@
|
||||||
;; GSYNC control for Vulkan direct-to-display applications.
|
;; GSYNC control for Vulkan direct-to-display applications.
|
||||||
"^VKDirectGSYNC(Compatible)?Allowed$"))
|
"^VKDirectGSYNC(Compatible)?Allowed$"))
|
||||||
|
|
||||||
(define nvidia-version "515.76")
|
(define-public nvidia-version "515.76")
|
||||||
|
|
||||||
(define computed-origin-method
|
(define computed-origin-method
|
||||||
(@@ (guix packages) computed-origin-method))
|
(@@ (guix packages) computed-origin-method))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; NVIDIA driver checkouts
|
||||||
|
;;;
|
||||||
|
|
||||||
|
|
||||||
;; Extract the driver installer and make it a new origin instance for reusing.
|
;; Extract the driver installer and make it a new origin instance for reusing.
|
||||||
(define (make-nvidia-source version installer)
|
(define (make-nvidia-source version installer)
|
||||||
(origin
|
(origin
|
||||||
|
@ -107,7 +104,7 @@
|
||||||
(not (member file '("." ".."))))))
|
(not (member file '("." ".."))))))
|
||||||
#$output)))))))
|
#$output)))))))
|
||||||
|
|
||||||
(define nvidia-source
|
(define-public nvidia-source
|
||||||
(let ((version nvidia-version))
|
(let ((version nvidia-version))
|
||||||
(make-nvidia-source
|
(make-nvidia-source
|
||||||
version
|
version
|
||||||
|
@ -119,110 +116,11 @@
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0i5zyvlsjnfkpfqhw6pklp0ws8nndyiwxrg4pj04jpwnxf6a38n6"))))))
|
(base32 "0i5zyvlsjnfkpfqhw6pklp0ws8nndyiwxrg4pj04jpwnxf6a38n6"))))))
|
||||||
|
|
||||||
(define-public gpustat
|
|
||||||
(package
|
;;;
|
||||||
(name "gpustat")
|
;;; NVIDIA drivers
|
||||||
(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 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
|
(define-public nvidia-driver
|
||||||
(package
|
(package
|
||||||
|
@ -327,7 +225,7 @@ KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $
|
||||||
(add-after 'patch-elf 'create-short-name-symlinks
|
(add-after 'patch-elf 'create-short-name-symlinks
|
||||||
(lambda _
|
(lambda _
|
||||||
(define (get-soname file)
|
(define (get-soname file)
|
||||||
(when elf-file? file
|
(when (elf-file? file)
|
||||||
(let* ((cmd (string-append "patchelf --print-soname " file))
|
(let* ((cmd (string-append "patchelf --print-soname " file))
|
||||||
(port (open-input-pipe cmd))
|
(port (open-input-pipe cmd))
|
||||||
(soname (read-line port)))
|
(soname (read-line port)))
|
||||||
|
@ -392,6 +290,15 @@ configured by adding: @code{(modules (cons* nvidia-driver
|
||||||
(license:nonfree
|
(license:nonfree
|
||||||
(format #f "file:///share/doc/nvidia-driver-~a/LICENSE" version)))))
|
(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
|
(define-public nvidia-firmware
|
||||||
(let ((base nvidia-driver))
|
(let ((base nvidia-driver))
|
||||||
(package
|
(package
|
||||||
|
@ -405,92 +312,13 @@ configured by adding: @code{(modules (cons* nvidia-driver
|
||||||
#~(modify-phases %standard-phases
|
#~(modify-phases %standard-phases
|
||||||
(delete 'strip))))
|
(delete 'strip))))
|
||||||
(inputs '())
|
(inputs '())
|
||||||
(native-inputs '())
|
(native-inputs '()))))
|
||||||
(properties `((hidden? . #t))))))
|
|
||||||
|
|
||||||
(define-public nvidia-exec
|
|
||||||
(package
|
;;;
|
||||||
(name "nvidia-exec")
|
;;; NVIDIA kernel modules
|
||||||
(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-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
|
(define-public nvidia-module
|
||||||
(package
|
(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.")
|
userspace tools from the corresponding driver release.")
|
||||||
(license license-gnu:gpl2))))
|
(license license-gnu:gpl2))))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; ‘nvidia-settings’ packages
|
||||||
|
;;;
|
||||||
|
|
||||||
|
|
||||||
(define-public nvidia-settings
|
(define-public nvidia-settings
|
||||||
(package
|
(package
|
||||||
(name "nvidia-settings")
|
(name "nvidia-settings")
|
||||||
|
@ -600,6 +434,191 @@ configuration, creating application profiles, gpu monitoring and more.")
|
||||||
(home-page "https://github.com/NVIDIA/nvidia-settings")
|
(home-page "https://github.com/NVIDIA/nvidia-settings")
|
||||||
(license license-gnu:gpl2)))
|
(license license-gnu:gpl2)))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; ‘nvda’ packages
|
||||||
|
;;;
|
||||||
|
|
||||||
|
|
||||||
|
;; nvda is used as a name because it has the same length as mesa which is
|
||||||
|
;; required for grafting
|
||||||
|
(define-public nvda
|
||||||
|
(package
|
||||||
|
(inherit nvidia-driver)
|
||||||
|
(name "nvda")
|
||||||
|
(source #f)
|
||||||
|
(build-system trivial-build-system)
|
||||||
|
(arguments
|
||||||
|
(list #:modules '((guix build union))
|
||||||
|
#:builder
|
||||||
|
#~(begin
|
||||||
|
(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))))))
|
||||||
|
(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.")
|
||||||
|
(inputs (list mesa nvidia-driver))
|
||||||
|
(outputs '("out"))))
|
||||||
|
|
||||||
|
(define mesa/fake
|
||||||
|
(package
|
||||||
|
(inherit mesa)
|
||||||
|
(replacement nvda)))
|
||||||
|
|
||||||
|
(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
|
(define-public nvidia-system-monitor
|
||||||
(package
|
(package
|
||||||
(name "nvidia-system-monitor")
|
(name "nvidia-system-monitor")
|
||||||
|
@ -642,43 +661,56 @@ configuration, creating application profiles, gpu monitoring and more.")
|
||||||
"This package provides a task manager for Nvidia graphics cards.")
|
"This package provides a task manager for Nvidia graphics cards.")
|
||||||
(license license-gnu:expat)))
|
(license license-gnu:expat)))
|
||||||
|
|
||||||
;; nvda is used as a name because it has the same length as mesa which is
|
(define-public python-nvidia-ml-py
|
||||||
;; required for grafting
|
|
||||||
(define-public nvda
|
|
||||||
(package
|
(package
|
||||||
(inherit nvidia-driver)
|
(name "python-nvidia-ml-py")
|
||||||
(name "nvda")
|
(version "11.495.46")
|
||||||
(source #f)
|
(source (origin
|
||||||
(build-system trivial-build-system)
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "nvidia-ml-py" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"09cnb7xasd7brby52j70y7fqsfm9n6gvgqf769v0cmj74ypy2s4g"))))
|
||||||
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:modules '((guix build union))
|
(list #:phases #~(modify-phases %standard-phases
|
||||||
#:builder
|
(add-after 'unpack 'fix-libnvidia
|
||||||
#~(begin
|
(lambda _
|
||||||
(use-modules (guix build union)
|
(substitute* "pynvml.py"
|
||||||
(srfi srfi-1)
|
(("libnvidia-ml.so.1")
|
||||||
(ice-9 regex))
|
(string-append #$(this-package-input
|
||||||
(union-build #$output
|
"nvidia-driver")
|
||||||
(list #$(this-package-input "mesa")
|
"/lib/libnvidia-ml.so.1"))))))))
|
||||||
#$(this-package-input "nvidia-driver"))
|
(inputs (list nvidia-driver))
|
||||||
#:resolve-collision
|
(home-page "https://forums.developer.nvidia.com")
|
||||||
(lambda (files)
|
(synopsis "Python Bindings for the NVIDIA Management Library")
|
||||||
(let ((file (if (string-match "nvidia-driver"
|
(description "This package provides official Python Bindings for the NVIDIA
|
||||||
(first files))
|
Management Library")
|
||||||
(first files)
|
(license license-gnu:bsd-3)))
|
||||||
(last files))))
|
|
||||||
(format #t "chosen ~a ~%" file)
|
|
||||||
file))))))
|
|
||||||
(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.")
|
|
||||||
(inputs (list mesa nvidia-driver))
|
|
||||||
(outputs '("out"))))
|
|
||||||
|
|
||||||
(define mesa/fake
|
(define-public python-py3nvml
|
||||||
(package
|
(package
|
||||||
(inherit mesa)
|
(name "python-py3nvml")
|
||||||
(replacement nvda)))
|
(version "0.2.7")
|
||||||
|
(source (origin
|
||||||
(define-public replace-mesa
|
(method url-fetch)
|
||||||
(package-input-rewriting `((,mesa . ,mesa/fake))))
|
(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)))
|
||||||
|
|
Loading…
Reference in a new issue