Merge remote-tracking branch 'upstream/master' into tarsnap
This commit is contained in:
commit
f6605f0784
69
README.org
69
README.org
|
@ -220,6 +220,75 @@ firmware, and blacklisting of conflicting modules:
|
||||||
...))
|
...))
|
||||||
...)
|
...)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
** NVIDIA graphics card
|
||||||
|
|
||||||
|
NVIDIA graphics card support in Nonguix consists of a system service =nvidia-service-type= and a package =nvda= for application setup.
|
||||||
|
|
||||||
|
The following code serves as an example for system setup:
|
||||||
|
|
||||||
|
#+BEGIN_SRC scheme
|
||||||
|
(use-modules (gnu services gnome)
|
||||||
|
(gnu services xorg)
|
||||||
|
(nongnu packages nvidia)
|
||||||
|
(nongnu services nvidia))
|
||||||
|
|
||||||
|
(operating-system
|
||||||
|
(kernel-arguments '("modprobe.blacklist=nouveau"
|
||||||
|
;; Set this if the card is not used for displaying or
|
||||||
|
;; you're using Wayland:
|
||||||
|
"nvidia_drm.modeset=1"))
|
||||||
|
(services
|
||||||
|
(cons* (service nvidia-service-type)
|
||||||
|
;; Configure desktop environment, GNOME for example.
|
||||||
|
(service gnome-desktop-service-type
|
||||||
|
;; Enable NVIDIA support, only do this when the card is
|
||||||
|
;; used for displaying.
|
||||||
|
(gnome-desktop-configuration
|
||||||
|
(gnome (replace-mesa gnome))))
|
||||||
|
;; Configure Xorg server, only do this when the card is used for
|
||||||
|
;; displaying.
|
||||||
|
(set-xorg-configuration
|
||||||
|
(xorg-configuration
|
||||||
|
(modules (cons nvda %default-xorg-modules))
|
||||||
|
(drivers '("nvidia"))))
|
||||||
|
...))
|
||||||
|
...)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
For application setup, =mesa= has to be replaced with =nvda= for every individual package that requires the NVIDIA driver, this can be done with grafting (which doesn't rebuild packages) or rewriting inputs (which rebuilds packages) (see [[https://guix.gnu.org/manual/devel/en/guix.html#Package-Transformation-Options][Package Transformation Options]] in GNU Guix Reference Manual). For example:
|
||||||
|
|
||||||
|
#+BEGIN_SRC shell
|
||||||
|
guix build mesa-utils --with-graft=mesa=nvda
|
||||||
|
guix build mesa-utils --with-input=mesa=nvda
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
The above transformation can be used within an one-off software environment spawned by =guix shell= as well, for correct environment variables, the =nvda= package may be added into the environment:
|
||||||
|
|
||||||
|
#+BEGIN_SRC shell
|
||||||
|
guix shell mesa-utils nvda --with-graft=mesa=nvda \
|
||||||
|
-- glxinfo
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
To graft mesa with nvda programmatically, use =replace-mesa= defined in =(nongnu packages nvidia)=:
|
||||||
|
|
||||||
|
#+BEGIN_SRC scheme
|
||||||
|
(use-modules (nongnu packages nvidia))
|
||||||
|
|
||||||
|
;; Replace mesa with nvda for a single package.
|
||||||
|
(replace-mesa <some-package>)
|
||||||
|
|
||||||
|
;; Replace mesa with nvda for a package list.
|
||||||
|
(map replace-mesa (list <some-package> ...))
|
||||||
|
|
||||||
|
;; A package with mesa replaced is still a package, it can be part of a
|
||||||
|
;; package list.
|
||||||
|
(list (replace-mesa <some-package>)
|
||||||
|
...)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
When the card is not used for displaying, environment variables =__GLX_VENDOR_LIBRARY_NAME=nvidia= and =__NV_PRIME_RENDER_OFFLOAD=1= may be set.
|
||||||
|
|
||||||
** Substitutes for nonguix
|
** Substitutes for nonguix
|
||||||
|
|
||||||
A Nonguix substitute server is available at [[https://substitutes.nonguix.org]].
|
A Nonguix substitute server is available at [[https://substitutes.nonguix.org]].
|
||||||
|
|
10
news.txt
10
news.txt
|
@ -9,6 +9,16 @@
|
||||||
(channel-news
|
(channel-news
|
||||||
(version 0)
|
(version 0)
|
||||||
|
|
||||||
|
(entry (commit "be61a1829a19724299e46d6e3c1038229039c3ee")
|
||||||
|
(title
|
||||||
|
(en "Nvidia driver package/service updates and changes"))
|
||||||
|
(body
|
||||||
|
(en "In addition to the Nvidia driver package being updated to 550.67,
|
||||||
|
the service, procedures, and configuration has changed. Please see the new
|
||||||
|
directions in the Nonguix README.org for how to use the Nvidia driver in your
|
||||||
|
system configuration, and of course report any issues with these changes or
|
||||||
|
improvements for the documentation.")))
|
||||||
|
|
||||||
(entry (commit "8078757b887a7691644b119913c3f7b41661775d")
|
(entry (commit "8078757b887a7691644b119913c3f7b41661775d")
|
||||||
(title
|
(title
|
||||||
(en "New @code{GUIX_SANDBOX_EXTRA_SHARES} variable for nonguix containers (Steam)"))
|
(en "New @code{GUIX_SANDBOX_EXTRA_SHARES} variable for nonguix containers (Steam)"))
|
||||||
|
|
|
@ -146,7 +146,7 @@
|
||||||
openlibm
|
openlibm
|
||||||
pulseaudio
|
pulseaudio
|
||||||
qtbase-5
|
qtbase-5
|
||||||
qtserialport
|
qtserialport-5
|
||||||
qtmultimedia-5
|
qtmultimedia-5
|
||||||
zlib))
|
zlib))
|
||||||
(synopsis "Layout, editing, and control software for your laser cutter")
|
(synopsis "Layout, editing, and control software for your laser cutter")
|
||||||
|
|
|
@ -143,10 +143,10 @@
|
||||||
(license (nonfree "https://www.google.com/intl/en/chrome/terms/")))))
|
(license (nonfree "https://www.google.com/intl/en/chrome/terms/")))))
|
||||||
|
|
||||||
(define-public google-chrome-stable
|
(define-public google-chrome-stable
|
||||||
(make-google-chrome "stable" "121.0.6167.139" "1b08wqflp1j5yqpw2g9z2s239gs8bzqbxigcxk93aqwf5c21ijkh"))
|
(make-google-chrome "stable" "123.0.6312.86" "1fjpwz5pdzjak7932kxvmp3ba2s5qyvj5b908sndg9l4qv1hkh96"))
|
||||||
|
|
||||||
(define-public google-chrome-beta
|
(define-public google-chrome-beta
|
||||||
(make-google-chrome "beta" "122.0.6261.6" "1b12bjcg99f6bjfhm311hdx9s1a4i13mcgxbvf1gpzq8989c1g96"))
|
(make-google-chrome "beta" "124.0.6367.18" "18gv6s4v6g8nw80rfiamz0xx6bwzn567xvmmn95xx70lhcvz9s34"))
|
||||||
|
|
||||||
(define-public google-chrome-unstable
|
(define-public google-chrome-unstable
|
||||||
(make-google-chrome "unstable" "123.0.6262.5" "04mf9nysdn77371fxa3z0wbvy2k09vw49s3lrcynlwgiwrz89a3m"))
|
(make-google-chrome "unstable" "125.0.6368.2" "0cfsq2qh9apbafapxqdz8sb65mm6yqxpcl7kwx9g9yi0sngqcxsz"))
|
||||||
|
|
|
@ -87,7 +87,7 @@ lets you focus on your code.")
|
||||||
(define-public clj-kondo
|
(define-public clj-kondo
|
||||||
(package
|
(package
|
||||||
(name "clj-kondo")
|
(name "clj-kondo")
|
||||||
(version "2023.10.20")
|
(version "2024.03.13")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch/zipbomb)
|
(method url-fetch/zipbomb)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -95,11 +95,11 @@ lets you focus on your code.")
|
||||||
version "/clj-kondo-" version "-linux-amd64.zip"))
|
version "/clj-kondo-" version "-linux-amd64.zip"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1zb4bkmhv5mh18z8h82qa1a0m95pd5dwdxg31pqgs6lnlca3vsph"))))
|
"0qdimdf854wsy19i39j18f01b3dhj4zccslymbkn8j9rm90k91m3"))))
|
||||||
(build-system binary-build-system)
|
(build-system binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:patchelf-plan `'(("clj-kondo" ("gcc" "zlib")))
|
(list #:patchelf-plan `'(("clj-kondo" ("gcc" "zlib")))
|
||||||
#:install-plan `'(("clj-kondo" "/bin/"))
|
#:install-plan `'(("./clj-kondo" "/bin/"))
|
||||||
#:phases #~(modify-phases %standard-phases
|
#:phases #~(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'chmod
|
(add-after 'unpack 'chmod
|
||||||
(lambda _
|
(lambda _
|
||||||
|
@ -115,3 +115,67 @@ lets you focus on your code.")
|
||||||
(description "Clj-kondo performs static analysis on Clojure, ClojureScript
|
(description "Clj-kondo performs static analysis on Clojure, ClojureScript
|
||||||
and EDN, without the need of a running REPL.")
|
and EDN, without the need of a running REPL.")
|
||||||
(license license:epl1.0)))
|
(license license:epl1.0)))
|
||||||
|
|
||||||
|
(define-public clojure-lsp
|
||||||
|
(package
|
||||||
|
(name "clojure-lsp")
|
||||||
|
(version "2024.03.13-13.11.00")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch/zipbomb)
|
||||||
|
(uri (string-append "https://github.com/clojure-lsp/clojure-lsp"
|
||||||
|
"/releases/download/" version
|
||||||
|
"/clojure-lsp-native-static-linux-amd64.zip"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1l6w55aragyf8rzy087iqw97xnpih5syjwhf0jwbgrqps2k44ms5"))))
|
||||||
|
(build-system binary-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:install-plan
|
||||||
|
'(("./clojure-lsp" "/bin/"))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'chmod
|
||||||
|
(lambda _
|
||||||
|
(chmod "./clojure-lsp" #o755))))))
|
||||||
|
(inputs (list `(,gcc "lib") zlib))
|
||||||
|
(supported-systems '("x86_64-linux"))
|
||||||
|
(home-page "https://github.com/clojure-lsp/clojure-lsp")
|
||||||
|
(synopsis "Clojure & ClojureScript Language Server (LSP) implementation")
|
||||||
|
(description "This package provides a Language Server for Clojure and ClojureScript
|
||||||
|
languages. The goal of this project is to bring great editing tools for
|
||||||
|
Clojure/Clojurescript to all editors and programatically via its CLI and API.
|
||||||
|
It aims to work alongside you to help you navigate, identify and fix errors,
|
||||||
|
perform refactors and more.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public babashka
|
||||||
|
(package
|
||||||
|
(name "babashka")
|
||||||
|
(version "1.3.189")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch/tarbomb)
|
||||||
|
(uri (string-append "https://github.com/babashka/babashka"
|
||||||
|
"/releases/download/v" version "/babashka-"
|
||||||
|
version "-linux-amd64.tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1gzra3y5iljjqi4rj1qxr3yniqla3qnhv881gkzrp788fwsvlmwv"))))
|
||||||
|
(build-system binary-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:patchelf-plan
|
||||||
|
'(("bb" ("gcc" "zlib")))
|
||||||
|
#:install-plan
|
||||||
|
'(("./bb" "/bin/"))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'chmod
|
||||||
|
(lambda _
|
||||||
|
(chmod "bb" #o755))))))
|
||||||
|
(inputs (list `(,gcc "lib") zlib))
|
||||||
|
(supported-systems '("x86_64-linux"))
|
||||||
|
(home-page "https://github.com/babashka/babashka")
|
||||||
|
(synopsis "Native, fast starting Clojure interpreter for scripting")
|
||||||
|
(description "Babashka is a native Clojure interpreter for scripting with
|
||||||
|
fast startup. Its main goal is to leverage Clojure in places where you would
|
||||||
|
be using bash otherwise.")
|
||||||
|
(license license:epl1.0)))
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
(define-public compcert
|
(define-public compcert
|
||||||
(package
|
(package
|
||||||
(name "compcert")
|
(name "compcert")
|
||||||
(version "3.12")
|
(version "3.13.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0pcrkz1as37iz2wcp8j226fjn672lrj0cip2s0wpkiy097qi0yc5"))))
|
"0yvj9g144p26k7674vcai12sh3jahs64ny9pana9zla16nxxpmcm"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
(add-before 'configure 'allow-newer-coq-version
|
(add-before 'configure 'allow-newer-coq-version
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* "configure"
|
(substitute* "configure"
|
||||||
(("8.15.2") "8.16.1"))))
|
(("8.15.2") "8.17.1"))))
|
||||||
(replace 'configure
|
(replace 'configure
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(let ((system ,(match (or (%current-target-system) (%current-system))
|
(let ((system ,(match (or (%current-target-system) (%current-system))
|
||||||
|
|
|
@ -218,6 +218,15 @@ implementation with gogdl and Amazon Games using Nile.")
|
||||||
("python" ,python) ; Required for KillingFloor2 and Wreckfest.
|
("python" ,python) ; Required for KillingFloor2 and Wreckfest.
|
||||||
("spdlog" ,spdlog))) ; Required for MangoHud.
|
("spdlog" ,spdlog))) ; Required for MangoHud.
|
||||||
|
|
||||||
|
(define steam-container-libs
|
||||||
|
(append steam-client-libs
|
||||||
|
steam-gameruntime-libs
|
||||||
|
fhs-min-libs))
|
||||||
|
|
||||||
|
(define steam-nvidia-container-libs
|
||||||
|
(modify-inputs steam-container-libs
|
||||||
|
(replace "mesa" nvda)))
|
||||||
|
|
||||||
(define heroic-extra-client-libs
|
(define heroic-extra-client-libs
|
||||||
`(("curl" ,curl) ; Required for Heroic to download e.g. Wine.
|
`(("curl" ,curl) ; Required for Heroic to download e.g. Wine.
|
||||||
("which" ,which) ; Heroic complains about trying to use which (though works).
|
("which" ,which) ; Heroic complains about trying to use which (though works).
|
||||||
|
@ -225,19 +234,26 @@ implementation with gogdl and Amazon Games using Nile.")
|
||||||
|
|
||||||
(define steam-ld.so.conf
|
(define steam-ld.so.conf
|
||||||
(packages->ld.so.conf
|
(packages->ld.so.conf
|
||||||
(list (fhs-union `(,@steam-client-libs
|
(list (fhs-union steam-container-libs
|
||||||
,@steam-gameruntime-libs
|
|
||||||
,@fhs-min-libs)
|
|
||||||
#:name "fhs-union-64")
|
#:name "fhs-union-64")
|
||||||
(fhs-union `(,@steam-client-libs
|
(fhs-union steam-container-libs
|
||||||
,@steam-gameruntime-libs
|
|
||||||
,@fhs-min-libs)
|
|
||||||
#:name "fhs-union-32"
|
#:name "fhs-union-32"
|
||||||
#:system "i686-linux"))))
|
#:system "i686-linux"))))
|
||||||
|
|
||||||
(define steam-ld.so.cache
|
(define steam-ld.so.cache
|
||||||
(ld.so.conf->ld.so.cache steam-ld.so.conf))
|
(ld.so.conf->ld.so.cache steam-ld.so.conf))
|
||||||
|
|
||||||
|
(define steam-nvidia-ld.so.conf
|
||||||
|
(packages->ld.so.conf
|
||||||
|
(list (fhs-union steam-nvidia-container-libs
|
||||||
|
#:name "fhs-union-64")
|
||||||
|
(fhs-union steam-nvidia-container-libs
|
||||||
|
#:name "fhs-union-32"
|
||||||
|
#:system "i686-linux"))))
|
||||||
|
|
||||||
|
(define steam-nvidia-ld.so.cache
|
||||||
|
(ld.so.conf->ld.so.cache steam-nvidia-ld.so.conf))
|
||||||
|
|
||||||
(define-public steam-container
|
(define-public steam-container
|
||||||
(nonguix-container
|
(nonguix-container
|
||||||
(name "steam")
|
(name "steam")
|
||||||
|
@ -246,14 +262,10 @@ implementation with gogdl and Amazon Games using Nile.")
|
||||||
(ld.so.conf steam-ld.so.conf)
|
(ld.so.conf steam-ld.so.conf)
|
||||||
(ld.so.cache steam-ld.so.cache)
|
(ld.so.cache steam-ld.so.cache)
|
||||||
(union64
|
(union64
|
||||||
(fhs-union `(,@steam-client-libs
|
(fhs-union steam-container-libs
|
||||||
,@steam-gameruntime-libs
|
|
||||||
,@fhs-min-libs)
|
|
||||||
#:name "fhs-union-64"))
|
#:name "fhs-union-64"))
|
||||||
(union32
|
(union32
|
||||||
(fhs-union `(,@steam-client-libs
|
(fhs-union steam-container-libs
|
||||||
,@steam-gameruntime-libs
|
|
||||||
,@fhs-min-libs)
|
|
||||||
#:name "fhs-union-32"
|
#:name "fhs-union-32"
|
||||||
#:system "i686-linux"))
|
#:system "i686-linux"))
|
||||||
(link-files '("share"))
|
(link-files '("share"))
|
||||||
|
@ -268,8 +280,16 @@ all games will be installed.")))
|
||||||
(name "steam-nvidia")
|
(name "steam-nvidia")
|
||||||
;; Steam's .desktop files expect a "steam" executable, so provide that.
|
;; Steam's .desktop files expect a "steam" executable, so provide that.
|
||||||
(binary-name "steam")
|
(binary-name "steam")
|
||||||
(union64 (replace-mesa (ngc-union64 steam-container)))
|
(ld.so.conf steam-nvidia-ld.so.conf)
|
||||||
(union32 (replace-mesa (ngc-union32 steam-container)))))
|
(ld.so.cache steam-nvidia-ld.so.cache)
|
||||||
|
(union64
|
||||||
|
(fhs-union steam-nvidia-container-libs
|
||||||
|
#:name "fhs-union-64"))
|
||||||
|
(union32
|
||||||
|
(fhs-union steam-nvidia-container-libs
|
||||||
|
#:name "fhs-union-32"
|
||||||
|
#:system "i686-linux"))
|
||||||
|
(preserved-env %nvidia-environment-variable-regexps)))
|
||||||
|
|
||||||
(define-public steam (nonguix-container->package steam-container))
|
(define-public steam (nonguix-container->package steam-container))
|
||||||
(define-public steam-nvidia (nonguix-container->package steam-nvidia-container))
|
(define-public steam-nvidia (nonguix-container->package steam-nvidia-container))
|
||||||
|
@ -289,15 +309,11 @@ all games will be installed.")))
|
||||||
;; this is easier and works.
|
;; this is easier and works.
|
||||||
(union64
|
(union64
|
||||||
(fhs-union `(,@heroic-extra-client-libs
|
(fhs-union `(,@heroic-extra-client-libs
|
||||||
,@steam-client-libs
|
,@steam-container-libs)
|
||||||
,@steam-gameruntime-libs
|
|
||||||
,@fhs-min-libs)
|
|
||||||
#:name "fhs-union-64"))
|
#:name "fhs-union-64"))
|
||||||
;; Don't include heroic-client-libs as they are not needed in 32-bit.
|
;; Don't include heroic-client-libs as they are not needed in 32-bit.
|
||||||
(union32
|
(union32
|
||||||
(fhs-union `(,@steam-client-libs
|
(fhs-union steam-container-libs
|
||||||
,@steam-gameruntime-libs
|
|
||||||
,@fhs-min-libs)
|
|
||||||
#:name "fhs-union-32"
|
#:name "fhs-union-32"
|
||||||
#:system "i686-linux"))
|
#:system "i686-linux"))
|
||||||
(link-files '("share"))
|
(link-files '("share"))
|
||||||
|
@ -312,8 +328,17 @@ installed.")))
|
||||||
(nonguix-container
|
(nonguix-container
|
||||||
(inherit heroic-container)
|
(inherit heroic-container)
|
||||||
(name "heroic-nvidia")
|
(name "heroic-nvidia")
|
||||||
(union64 (replace-mesa (ngc-union64 heroic-container)))
|
(ld.so.conf steam-nvidia-ld.so.conf)
|
||||||
(union32 (replace-mesa (ngc-union32 heroic-container)))))
|
(ld.so.cache steam-nvidia-ld.so.cache)
|
||||||
|
(union64
|
||||||
|
(fhs-union `(,@heroic-extra-client-libs
|
||||||
|
,@steam-nvidia-container-libs)
|
||||||
|
#:name "fhs-union-64"))
|
||||||
|
(union32
|
||||||
|
(fhs-union steam-nvidia-container-libs
|
||||||
|
#:name "fhs-union-32"
|
||||||
|
#:system "i686-linux"))
|
||||||
|
(preserved-env %nvidia-environment-variable-regexps)))
|
||||||
|
|
||||||
(define-public heroic (nonguix-container->package heroic-container))
|
(define-public heroic (nonguix-container->package heroic-container))
|
||||||
(define-public heroic-nvidia (nonguix-container->package heroic-nvidia-container))
|
(define-public heroic-nvidia (nonguix-container->package heroic-nvidia-container))
|
||||||
|
|
|
@ -1,16 +1,20 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
|
;;; Copyright © 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||||
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
|
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
|
||||||
|
;;; Copyright © 2024 Timotej Lazar <timotej.lazar@araneo.si>
|
||||||
|
|
||||||
(define-module (nongnu packages game-development)
|
(define-module (nongnu packages game-development)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module ((nonguix licenses) :prefix license:)
|
#:use-module ((nonguix licenses) :prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (nonguix build-system binary)
|
#:use-module (nonguix build-system binary)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
|
#:use-module ((guix licenses) :prefix license:)
|
||||||
#:use-module (gnu packages audio)
|
#:use-module (gnu packages audio)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages gcc)
|
#:use-module (gnu packages gcc)
|
||||||
|
@ -159,128 +163,95 @@ development should opt for GLSL rather than Cg.")
|
||||||
"https://raw.githubusercontent.com/ValveSoftware/source-sdk-2013/master/LICENSE"))))
|
"https://raw.githubusercontent.com/ValveSoftware/source-sdk-2013/master/LICENSE"))))
|
||||||
|
|
||||||
(define-public eduke32
|
(define-public eduke32
|
||||||
;; There are no official releases.
|
|
||||||
(let ((commit "188e14622cfe5c6f63b04b989b350bf2a29a893c")
|
|
||||||
(revision "1")
|
|
||||||
(duke-nukem-3d-directory "share/dukenukem3d"))
|
|
||||||
(package
|
(package
|
||||||
(name "eduke32")
|
(name "eduke32")
|
||||||
(version (git-version "0" revision commit))
|
(version "20240316-10564-0bc78c53d")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method url-fetch)
|
||||||
(uri (git-reference
|
(uri (string-append "https://dukeworld.com/eduke32/synthesis/"
|
||||||
(url "https://voidpoint.io/terminx/eduke32.git")
|
version "/eduke32_src_" version ".tar.xz"))
|
||||||
(commit commit)))
|
|
||||||
(file-name (git-file-name name version))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0wy4bppiw4q2hn0v38msrjyvj2hzfvigakc23c2wqfnbl7rm0hrz"))
|
(base32 "1a9fw1kfriyrybjxl72b2434w3yiz2nxg6541lnyhzbdka2cp2lf"))
|
||||||
;; Unbundle libxmp.
|
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin (delete-file-recursively "source/libxmp-lite") #t))))
|
;; Remove bundled libxmp and platform-specific stuff.
|
||||||
|
#~(for-each delete-file-recursively '("platform" "source/libxmp-lite")))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f
|
(list #:license-file-regexp "buildlic.txt"
|
||||||
;; Add glu to rpath so that SDL can dlopen it.
|
#:tests? #f
|
||||||
#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
|
|
||||||
(assoc-ref %build-inputs "glu") "/lib"))
|
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'link-license
|
||||||
|
(lambda _
|
||||||
|
;; Ensure the install-license-files phase can find it.
|
||||||
|
(link "package/common/buildlic.txt" "buildlic.txt")))
|
||||||
(add-after 'unpack 'unbundle-libxmp
|
(add-after 'unpack 'unbundle-libxmp
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* "GNUmakefile"
|
(substitute* "Common.mak"
|
||||||
(("-I\\$\\(libxmplite_inc\\)")
|
(("^LIBS :=" match) (string-append match " -lxmp")))
|
||||||
(string-append "-I" (assoc-ref %build-inputs "libxmp") "/include"))
|
|
||||||
(("^ *audiolib_deps \\+= libxmplite.*$") "")
|
|
||||||
(("-logg") "-logg -lxmp"))
|
|
||||||
(with-directory-excursion "source/audiolib/src"
|
(with-directory-excursion "source/audiolib/src"
|
||||||
(for-each (lambda (file) (substitute* file (("libxmp-lite/") "")))
|
(for-each (lambda (file) (substitute* file (("libxmp-lite/") "")))
|
||||||
'("multivoc.cpp" "xmp.cpp")))
|
'("multivoc.cpp" "xmp.cpp")))))
|
||||||
#t))
|
(add-after 'unpack 'fix-share-path
|
||||||
|
(lambda _
|
||||||
|
(substitute* "source/duke3d/src/common.cpp"
|
||||||
|
(("/usr/local/share/games") (string-append #$output "/share")))))
|
||||||
(delete 'configure)
|
(delete 'configure)
|
||||||
(replace 'install
|
(replace 'install
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda _
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let ((bin (string-append #$output "/bin")))
|
||||||
(glu (assoc-ref inputs "glu"))
|
(install-file "eduke32" bin)
|
||||||
(eduke (string-append out "/bin/eduke32"))
|
(install-file "mapster32" bin)
|
||||||
(eduke-real (string-append out "/bin/.eduke32-real")))
|
(install-file "package/sdk/m32help.hlp"
|
||||||
;; TODO: Install custom .desktop file? Need icon.
|
(string-append #$output "/share/eduke32"))))))))
|
||||||
;; See https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=eduke32.
|
(inputs (list alsa-lib
|
||||||
(install-file "eduke32" (string-append out "/bin"))
|
flac
|
||||||
(install-file "mapster32" (string-append out "/bin"))
|
glu
|
||||||
(install-file "package/common/buildlic.txt"
|
gtk+-2
|
||||||
(string-append out "/share/licenses"))
|
libvorbis
|
||||||
;; Wrap program:
|
libvpx
|
||||||
;; - Make sure current directory is writable, else eduke32 will segfault.
|
libxmp
|
||||||
;; - Add ../share/dukenukem3d to the dir search list.
|
sdl2
|
||||||
;; TODO: Skip store duke3d.grp When ~/.config/eduke32/duke3d.grp is found.
|
sdl2-mixer))
|
||||||
(rename-file eduke eduke-real)
|
|
||||||
(call-with-output-file eduke
|
|
||||||
(lambda (p)
|
|
||||||
(format p "\
|
|
||||||
#!~a
|
|
||||||
mkdir -p ~~/.config/eduke32
|
|
||||||
cd ~~/.config/eduke32
|
|
||||||
exec -a \"$0\" ~a\
|
|
||||||
-g \"${0%/*}\"/../~a/*.grp\
|
|
||||||
-g \"${0%/*}\"/../~a/*.zip\
|
|
||||||
-g \"${0%/*}\"/../~a/*.map\
|
|
||||||
-g \"${0%/*}\"/../~a/*.con\
|
|
||||||
-g \"${0%/*}\"/../~a/*.def\
|
|
||||||
\"$@\"~%"
|
|
||||||
(which "bash") eduke-real
|
|
||||||
,duke-nukem-3d-directory
|
|
||||||
,duke-nukem-3d-directory
|
|
||||||
,duke-nukem-3d-directory
|
|
||||||
,duke-nukem-3d-directory
|
|
||||||
,duke-nukem-3d-directory)))
|
|
||||||
(chmod eduke #o755)))))))
|
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
(list gdk-pixbuf pkg-config))
|
||||||
(inputs
|
|
||||||
`(("sdl-union" ,(sdl-union (list sdl2 sdl2-mixer)))
|
|
||||||
("alsa-lib" ,alsa-lib)
|
|
||||||
("glu" ,glu)
|
|
||||||
("libvorbis" ,libvorbis)
|
|
||||||
("libvpx" ,libvpx)
|
|
||||||
("libxmp" ,libxmp)
|
|
||||||
("flac" ,flac)
|
|
||||||
("gtk+" ,gtk+-2)))
|
|
||||||
(synopsis "Engine of the classic PC first person shooter Duke Nukem 3D")
|
(synopsis "Engine of the classic PC first person shooter Duke Nukem 3D")
|
||||||
(description "EDuke32 is a free homebrew game engine and source port of the
|
(description "EDuke32 is a free homebrew game engine and source port of
|
||||||
classic PC first person shooter Duke Nukem 3D—Duke3D for short. A thousands
|
the classic PC first person shooter Duke Nukem 3D—Duke3D for short. A
|
||||||
of features and upgrades were added for regular players and additional editing
|
thousands of features and upgrades were added for regular players and
|
||||||
capabilities and scripting extensions for homebrew developers and mod
|
additional editing capabilities and scripting extensions for homebrew
|
||||||
creators. EDuke32 is open source but non-free software.
|
developers and mod creators. EDuke32 is open source but non-free software.
|
||||||
|
|
||||||
This package does not contain any game file. You can either install packages
|
This package does not contain any game file. You can either install packages
|
||||||
with game files or or put @file{.grp} game files manually in
|
with game files or or put @file{.grp} game files manually in
|
||||||
@file{~/.config/eduke32/}.")
|
@file{~/.config/eduke32/}.")
|
||||||
(home-page "https://eduke32.com/")
|
(home-page "https://eduke32.com")
|
||||||
(license (license:nonfree
|
(license
|
||||||
"https://eduke32.com/buildlic.txt")))))
|
(list license:gpl2
|
||||||
|
(license:nonfree "file://package/common/buildlic.txt")))))
|
||||||
|
|
||||||
(define-public fury
|
(define-public fury
|
||||||
(package
|
(package/inherit eduke32
|
||||||
(inherit eduke32)
|
|
||||||
(name "fury")
|
(name "fury")
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments eduke32)
|
(substitute-keyword-arguments (package-arguments eduke32)
|
||||||
((#:make-flags flags ''()) `(cons* "FURY=1" ,flags))
|
((#:make-flags flags #~'())
|
||||||
((#:phases phases '%standard-phases)
|
#~(cons* "FURY=1" #$flags))
|
||||||
`(modify-phases ,phases
|
((#:phases phases #~%standard-phases)
|
||||||
|
#~(modify-phases #$phases
|
||||||
|
(add-after 'unpack 'disable-sdl-static
|
||||||
|
(lambda _
|
||||||
|
(substitute* "GNUmakefile"
|
||||||
|
(("SDL_STATIC := 1") ""))))
|
||||||
(replace 'install
|
(replace 'install
|
||||||
(lambda _
|
(lambda _
|
||||||
(let* ((out (assoc-ref %outputs "out")))
|
(install-file "fury" (string-append #$output "/bin"))))))))
|
||||||
(install-file "fury" (string-append out "/bin"))
|
(inputs
|
||||||
(install-file "mapster32" (string-append out "/bin"))
|
(alist-delete "libvpx" (package-inputs eduke32)))
|
||||||
(install-file "package/common/buildlic.txt"
|
|
||||||
(string-append out "/share/licenses")))
|
|
||||||
#t))))))
|
|
||||||
(synopsis "Game engine for the first-person shooter Ion Fury")
|
(synopsis "Game engine for the first-person shooter Ion Fury")
|
||||||
(description
|
(description
|
||||||
(string-append
|
|
||||||
"This is the @code{eduke32} engine built with support for the Ion Fury
|
"This is the @code{eduke32} engine built with support for the Ion Fury
|
||||||
game. Game data is not provided. Run @command{fury} with the option
|
game. Game data is not provided. Run @command{fury} with the option
|
||||||
@option{-j} to specify the directory containing @file{fury.grp}."))))
|
@option{-j} to specify the directory containing @file{fury.grp}.")))
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
|
|
||||||
(define-module (nongnu packages linux)
|
(define-module (nongnu packages linux)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (gnu packages admin)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages cpio)
|
#:use-module (gnu packages cpio)
|
||||||
|
@ -132,8 +133,8 @@ some freedo package or an output of package-version procedure."
|
||||||
"The unmodified Linux kernel, including nonfree blobs, for running Guix System
|
"The unmodified Linux kernel, including nonfree blobs, for running Guix System
|
||||||
on hardware which requires nonfree software to function."))))
|
on hardware which requires nonfree software to function."))))
|
||||||
|
|
||||||
(define-public linux-6.7
|
(define-public linux-6.8
|
||||||
(corrupt-linux linux-libre-6.7))
|
(corrupt-linux linux-libre-6.8))
|
||||||
|
|
||||||
(define-public linux-6.6
|
(define-public linux-6.6
|
||||||
(corrupt-linux linux-libre-6.6))
|
(corrupt-linux linux-libre-6.6))
|
||||||
|
@ -153,9 +154,9 @@ on hardware which requires nonfree software to function."))))
|
||||||
(define-public linux-4.19
|
(define-public linux-4.19
|
||||||
(corrupt-linux linux-libre-4.19))
|
(corrupt-linux linux-libre-4.19))
|
||||||
|
|
||||||
(define-public linux linux-6.7)
|
(define-public linux linux-6.8)
|
||||||
;; linux-lts points to the *newest* released long-term support version.
|
;; linux-lts points to the *newest* released long-term support version.
|
||||||
(define-public linux-lts linux-6.1)
|
(define-public linux-lts linux-6.6)
|
||||||
|
|
||||||
(define-public linux-arm64-generic-5.10
|
(define-public linux-arm64-generic-5.10
|
||||||
(corrupt-linux linux-libre-arm64-generic-5.10 #:name "linux-arm64-generic"))
|
(corrupt-linux linux-libre-arm64-generic-5.10 #:name "linux-arm64-generic"))
|
||||||
|
@ -254,9 +255,7 @@ on hardware which requires nonfree software to function."))))
|
||||||
(append %default-extra-linux-options
|
(append %default-extra-linux-options
|
||||||
;; NOTE: These are configs expected by Guix
|
;; NOTE: These are configs expected by Guix
|
||||||
;; but missing from XanMod defconfig.
|
;; but missing from XanMod defconfig.
|
||||||
'(("CONFIG_BLK_DEV_NVME" . #t)
|
'(("CONFIG_BLK_DEV_NVME" . #t))))))
|
||||||
("CONFIG_CRYPTO_XTS" . m)
|
|
||||||
("CONFIG_VIRTIO_CONSOLE" . m))))))
|
|
||||||
(display extra-configuration port)
|
(display extra-configuration port)
|
||||||
(close-port port))
|
(close-port port))
|
||||||
(invoke "make" "oldconfig")
|
(invoke "make" "oldconfig")
|
||||||
|
@ -277,17 +276,17 @@ distribution with custom settings and new features. It's built to provide a
|
||||||
stable, responsive and smooth desktop experience.")))
|
stable, responsive and smooth desktop experience.")))
|
||||||
|
|
||||||
;; Linux-XanMod sources
|
;; Linux-XanMod sources
|
||||||
(define-public linux-xanmod-version "6.7.6")
|
(define-public linux-xanmod-version "6.8.6")
|
||||||
(define-public linux-xanmod-revision "xanmod1")
|
(define-public linux-xanmod-revision "xanmod1")
|
||||||
(define-public linux-xanmod-source
|
(define-public linux-xanmod-source
|
||||||
(make-linux-xanmod-source
|
(make-linux-xanmod-source
|
||||||
linux-xanmod-version
|
linux-xanmod-version
|
||||||
linux-xanmod-revision
|
linux-xanmod-revision
|
||||||
#:xanmod-branch "main"
|
#:xanmod-branch "main"
|
||||||
#:kernel-hash (base32 "0s8hbcsg7fdvspqam8kzcxygjsznr4zfi60nqgc81l3n4m518cgg")
|
#:kernel-hash (base32 "1wv5x7qhcd05m8m0myyqm2il6mha1sx11h7ppf8yjsxvx2jdwsf9")
|
||||||
#:xanmod-hash (base32 "0hv76dj9z17w6zcy25v1ndlmdw593wlbmnw5x903vidb3c6a1dfi")))
|
#:xanmod-hash (base32 "1ry4qmsis7s2bb6hpkvq30ffgvhzj1w33js67ybnvagzda5vbmci")))
|
||||||
|
|
||||||
(define-public linux-xanmod-lts-version "6.6.18")
|
(define-public linux-xanmod-lts-version "6.6.27")
|
||||||
(define-public linux-xanmod-lts-revision "xanmod1")
|
(define-public linux-xanmod-lts-revision "xanmod1")
|
||||||
(define-public linux-xanmod-lts-source
|
(define-public linux-xanmod-lts-source
|
||||||
(make-linux-xanmod-source
|
(make-linux-xanmod-source
|
||||||
|
@ -295,7 +294,7 @@ stable, responsive and smooth desktop experience.")))
|
||||||
linux-xanmod-lts-revision
|
linux-xanmod-lts-revision
|
||||||
#:xanmod-branch "lts"
|
#:xanmod-branch "lts"
|
||||||
#:kernel-hash (base32 "1l2nisx9lf2vdgkq910n5ldbi8z25ky1zvl67zgwg2nxcdna09nr")
|
#:kernel-hash (base32 "1l2nisx9lf2vdgkq910n5ldbi8z25ky1zvl67zgwg2nxcdna09nr")
|
||||||
#:xanmod-hash (base32 "1q33bd4a65l46333l2m7vjn46b0xhdbz508bq7q0bphbmy0bf35m")))
|
#:xanmod-hash (base32 "0inlpdscdpqahwlsf8kc2zjp2p83yr2cfqyaxld6m4bjkbg23lvz")))
|
||||||
|
|
||||||
;; Linux-XanMod packages
|
;; Linux-XanMod packages
|
||||||
(define-public linux-xanmod
|
(define-public linux-xanmod
|
||||||
|
@ -316,24 +315,22 @@ stable, responsive and smooth desktop experience.")))
|
||||||
(define-public linux-firmware
|
(define-public linux-firmware
|
||||||
(package
|
(package
|
||||||
(name "linux-firmware")
|
(name "linux-firmware")
|
||||||
(version "20240115")
|
(version "20240312")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://kernel.org/linux/kernel/firmware/"
|
(uri (string-append "mirror://kernel.org/linux/kernel/firmware/"
|
||||||
"linux-firmware-" version ".tar.xz"))
|
"linux-firmware-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"13b75kd075famc58pvx4r9268pxn69nyihx7p3i6i7mvkgqayz5b"))))
|
"152bpl3lzd7jb2z1cl1sfax6jm71bspn7bwc00lci5qqmma7lcmj"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f
|
(list #:tests? #f
|
||||||
#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
|
#:strip-binaries? #f
|
||||||
#:phases
|
#:validate-runpath? #f
|
||||||
(modify-phases %standard-phases
|
#:make-flags #~(list (string-append "DESTDIR=" #$output))))
|
||||||
(replace 'install
|
(native-inputs
|
||||||
(lambda* (#:key (make-flags '()) #:allow-other-keys)
|
(list rdfind))
|
||||||
(apply invoke "make" "install-nodedup" make-flags)))
|
|
||||||
(delete 'validate-runpath))))
|
|
||||||
(home-page
|
(home-page
|
||||||
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git")
|
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git")
|
||||||
(synopsis "Nonfree firmware blobs for Linux")
|
(synopsis "Nonfree firmware blobs for Linux")
|
||||||
|
@ -347,23 +344,23 @@ if your hardware is supported by one of the smaller firmware packages.")
|
||||||
|
|
||||||
(define (select-firmware keep)
|
(define (select-firmware keep)
|
||||||
"Modify linux-firmware copy list to retain only files matching KEEP regex."
|
"Modify linux-firmware copy list to retain only files matching KEEP regex."
|
||||||
`(lambda _
|
#~(lambda _
|
||||||
(use-modules (ice-9 regex))
|
(use-modules (ice-9 regex))
|
||||||
(substitute* "WHENCE"
|
(substitute* "WHENCE"
|
||||||
(("^(File|Link): *([^ ]*)(.*)" _ type file rest)
|
(("^(File|RawFile|Link): *([^ ]*)(.*)" _ type file rest)
|
||||||
(string-append (if (string-match ,keep file) type "Skip") ": " file rest)))))
|
(string-append (if (string-match #$keep file) type "Skip") ": " file rest)))))
|
||||||
|
|
||||||
(define-public amdgpu-firmware
|
(define-public amdgpu-firmware
|
||||||
(package
|
(package
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "amdgpu-firmware")
|
(name "amdgpu-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
`(#:license-file-regexp "LICENSE.amdgpu"
|
(cons* #:license-file-regexp "LICENSE.amdgpu"
|
||||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases)
|
((#:phases phases #~%standard-phases)
|
||||||
`(modify-phases ,phases
|
#~(modify-phases #$phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
,(select-firmware "^amdgpu/")))))))
|
#$(select-firmware "^amdgpu/")))))))
|
||||||
(home-page "http://support.amd.com/en-us/download/linux")
|
(home-page "http://support.amd.com/en-us/download/linux")
|
||||||
(synopsis "Nonfree firmware for AMD graphics chips")
|
(synopsis "Nonfree firmware for AMD graphics chips")
|
||||||
(description "Nonfree firmware for AMD graphics chips. While most AMD
|
(description "Nonfree firmware for AMD graphics chips. While most AMD
|
||||||
|
@ -381,12 +378,12 @@ advanced 3D.")
|
||||||
(inherit amdgpu-firmware)
|
(inherit amdgpu-firmware)
|
||||||
(name "radeon-firmware")
|
(name "radeon-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
`(#:license-file-regexp "LICENSE.radeon"
|
(cons* #:license-file-regexp "LICENSE.radeon"
|
||||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases)
|
((#:phases phases #~%standard-phases)
|
||||||
`(modify-phases ,phases
|
#~(modify-phases #$phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
,(select-firmware "^radeon/")))))))
|
#$(select-firmware "^radeon/")))))))
|
||||||
(synopsis "Nonfree firmware for older AMD graphics chips")
|
(synopsis "Nonfree firmware for older AMD graphics chips")
|
||||||
(description "Nonfree firmware for AMD graphics chips. While most AMD
|
(description "Nonfree firmware for AMD graphics chips. While most AMD
|
||||||
graphics cards can be run with the free Mesa, some cards require a nonfree
|
graphics cards can be run with the free Mesa, some cards require a nonfree
|
||||||
|
@ -438,12 +435,12 @@ and modules, userspace libraries, and bootloader/GPU firmware.")
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "atheros-firmware")
|
(name "atheros-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
`(#:license-file-regexp "LICEN[CS]E.*[Aa]th"
|
(cons* #:license-file-regexp "LICEN[CS]E.*[Aa]th"
|
||||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases)
|
((#:phases phases #~%standard-phases)
|
||||||
`(modify-phases ,phases
|
#~(modify-phases #$phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
,(select-firmware "^(ar[3579]|ath[1369]|htc_[79]|qca/|wil6)")))))))
|
#$(select-firmware "^(ar[3579]|ath[1369]|htc_[79]|qca/|wil6)")))))))
|
||||||
(synopsis "Nonfree firmware blobs for Atheros wireless cards")
|
(synopsis "Nonfree firmware blobs for Atheros wireless cards")
|
||||||
(description "Nonfree firmware blobs for Atheros wireless cards. This
|
(description "Nonfree firmware blobs for Atheros wireless cards. This
|
||||||
package contains nonfree firmware for the following chips:
|
package contains nonfree firmware for the following chips:
|
||||||
|
@ -614,12 +611,12 @@ WLAN.TF.2.1-00021-QCARMSWP-1 (ath10k/QCA9377/hw1.0/firmware-6.bin)
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "ibt-hw-firmware")
|
(name "ibt-hw-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
`(#:license-file-regexp "LICENCE.ibt_firmware"
|
(cons* #:license-file-regexp "LICENCE.ibt_firmware"
|
||||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases)
|
((#:phases phases #~%standard-phases)
|
||||||
`(modify-phases ,phases
|
#~(modify-phases #$phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
,(select-firmware "^intel/ibt-")))))))
|
#$(select-firmware "^intel/ibt-")))))))
|
||||||
(home-page "http://www.intel.com/support/wireless/wlan/sb/CS-016675.htm")
|
(home-page "http://www.intel.com/support/wireless/wlan/sb/CS-016675.htm")
|
||||||
(synopsis "Non-free firmware for Intel bluetooth chips")
|
(synopsis "Non-free firmware for Intel bluetooth chips")
|
||||||
(description "This firmware is required by the btintel kernel module to
|
(description "This firmware is required by the btintel kernel module to
|
||||||
|
@ -635,12 +632,12 @@ laptops).")
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "iwlwifi-firmware")
|
(name "iwlwifi-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
`(#:license-file-regexp "LICENCE.iwlwifi_firmware"
|
(cons* #:license-file-regexp "LICENCE.iwlwifi_firmware"
|
||||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases)
|
((#:phases phases #~%standard-phases)
|
||||||
`(modify-phases ,phases
|
#~(modify-phases #$phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
,(select-firmware "^iwlwifi-")))))))
|
#$(select-firmware "^iwlwifi-")))))))
|
||||||
(home-page "https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi")
|
(home-page "https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi")
|
||||||
(synopsis "Nonfree firmware for Intel wifi chips")
|
(synopsis "Nonfree firmware for Intel wifi chips")
|
||||||
(description "The proprietary iwlwifi kernel module is required by many
|
(description "The proprietary iwlwifi kernel module is required by many
|
||||||
|
@ -656,12 +653,12 @@ support for 5GHz and 802.11ac, among others.")
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "i915-firmware")
|
(name "i915-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
`(#:license-file-regexp "LICENCE.i915"
|
(cons* #:license-file-regexp "LICENCE.i915"
|
||||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases)
|
((#:phases phases #~%standard-phases)
|
||||||
`(modify-phases ,phases
|
#~(modify-phases #$phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
,(select-firmware "^i915/")))))))
|
#$(select-firmware "^i915/")))))))
|
||||||
(home-page "https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.html")
|
(home-page "https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.html")
|
||||||
(synopsis "Nonfree firmware for Intel integrated graphics")
|
(synopsis "Nonfree firmware for Intel integrated graphics")
|
||||||
(description "This package contains the various firmware for Intel
|
(description "This package contains the various firmware for Intel
|
||||||
|
@ -676,13 +673,12 @@ integrated graphics chipsets, including GuC, HuC and DMC.")
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "realtek-firmware")
|
(name "realtek-firmware")
|
||||||
(arguments
|
(arguments
|
||||||
`(#:license-file-regexp "LICENCE.rtlwifi_firmware.txt"
|
(cons* #:license-file-regexp "LICENCE.rtlwifi_firmware.txt"
|
||||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases)
|
((#:phases phases #~%standard-phases)
|
||||||
`(modify-phases ,phases
|
#~(modify-phases #$phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
,(select-firmware
|
#$(select-firmware "^(rtlwifi|rtl_nic|rtl_bt|rtw88|rtw89)/")))))))
|
||||||
"^(rtlwifi|rtl_nic|rtl_bt|rtw88|rtw89)/")))))))
|
|
||||||
(home-page "https://wireless.wiki.kernel.org/en/users/drivers/rtl819x")
|
(home-page "https://wireless.wiki.kernel.org/en/users/drivers/rtl819x")
|
||||||
(synopsis "Nonfree firmware for Realtek ethernet, wifi, and bluetooth chips")
|
(synopsis "Nonfree firmware for Realtek ethernet, wifi, and bluetooth chips")
|
||||||
(description
|
(description
|
||||||
|
@ -772,8 +768,8 @@ package contains nonfree firmware for the following chips:
|
||||||
(deprecated-package "rtl-bt-firmware" realtek-firmware))
|
(deprecated-package "rtl-bt-firmware" realtek-firmware))
|
||||||
|
|
||||||
(define-public rtl8192eu-linux-module
|
(define-public rtl8192eu-linux-module
|
||||||
(let ((commit "a928f08c1dd4f9a1e84d85811a543e974551bc4f")
|
(let ((commit "3af9a868a0ca622d830966ac83aea2bf17cd0d65")
|
||||||
(revision "6"))
|
(revision "7"))
|
||||||
(package
|
(package
|
||||||
(name "rtl8192eu-linux-module")
|
(name "rtl8192eu-linux-module")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -786,7 +782,7 @@ package contains nonfree firmware for the following chips:
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1q26kyic4glmgy0hbaq46r067m6cqf7d41chgivyxn8y32rf1fgc"))))
|
"0d2qzf7xbipjdp1zm2ffqhnda8wasqriqnv6dkl0mhqn2f8za3i8"))))
|
||||||
(build-system linux-module-build-system)
|
(build-system linux-module-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:make-flags
|
`(#:make-flags
|
||||||
|
@ -852,8 +848,8 @@ network adapters.")
|
||||||
(license gpl2))))
|
(license gpl2))))
|
||||||
|
|
||||||
(define-public rtl8821cu-linux-module
|
(define-public rtl8821cu-linux-module
|
||||||
(let ((commit "a41ef7cabd1aa36fa2b4eb63a71cf719bff11b72")
|
(let ((commit "4f6004af4c4171882f37e2e5d8fb3609fe260617")
|
||||||
(revision "1"))
|
(revision "2"))
|
||||||
(package
|
(package
|
||||||
(name "rtl8821cu-linux-module")
|
(name "rtl8821cu-linux-module")
|
||||||
(version (git-version "0.0.0" revision commit))
|
(version (git-version "0.0.0" revision commit))
|
||||||
|
@ -865,7 +861,7 @@ network adapters.")
|
||||||
(commit commit)))
|
(commit commit)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0fnv4gm4adnf8gbjzc2lljh2a3i111159qira3w0qm1zhyqadaq0"))))
|
(base32 "09ig0rrkkn00i3d1n6p62n1610kcjgb2h9kbcqdsrmpnlnw5kfl2"))))
|
||||||
(build-system linux-module-build-system)
|
(build-system linux-module-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list
|
(list
|
||||||
|
@ -906,8 +902,8 @@ to disable the conflicting rtw88 driver:
|
||||||
"https://github.com/morrownr/8821cu-20210916/blob/main/LICENSE")))))
|
"https://github.com/morrownr/8821cu-20210916/blob/main/LICENSE")))))
|
||||||
|
|
||||||
(define-public rtl8812au-aircrack-ng-linux-module
|
(define-public rtl8812au-aircrack-ng-linux-module
|
||||||
(let ((commit "a3e0c0b6d54546418f046db0dbf1d20e454c9ec2")
|
(let ((commit "63cf0b4584aa8878b0fe8ab38017f31c319bde3d")
|
||||||
(revision "12"))
|
(revision "13"))
|
||||||
(package
|
(package
|
||||||
(inherit rtl8821ce-linux-module)
|
(inherit rtl8821ce-linux-module)
|
||||||
(name "rtl8812au-aircrack-ng-linux-module")
|
(name "rtl8812au-aircrack-ng-linux-module")
|
||||||
|
@ -920,7 +916,7 @@ to disable the conflicting rtw88 driver:
|
||||||
(commit commit)))
|
(commit commit)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1hwzsy62h7ik5s54paikcj5ips7mrnfacprciiq412mz5ag28cdn"))
|
(base32 "103pn6qlj116dm244ygf1wic9dq2qn80lafiyxynyhpckkyhhfxl"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
#~(begin
|
#~(begin
|
||||||
|
@ -1154,7 +1150,7 @@ chipsets from Broadcom:
|
||||||
(define-public facetimehd
|
(define-public facetimehd
|
||||||
(package
|
(package
|
||||||
(name "facetimehd")
|
(name "facetimehd")
|
||||||
(version "0.6.8")
|
(version "0.6.8.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -1164,7 +1160,7 @@ chipsets from Broadcom:
|
||||||
(file-name (git-file-name "facetimehd" version))
|
(file-name (git-file-name "facetimehd" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1g0ky9w5klkjndf30mjymq78r6yls9gri9x702nn8qkmgkjbqdsg"))))
|
"18x12g55bw99ap9cw54v50s5m39dli4nx41jfhb35551mn0jp4c7"))))
|
||||||
(build-system linux-module-build-system)
|
(build-system linux-module-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f))
|
'(#:tests? #f))
|
||||||
|
@ -1188,7 +1184,7 @@ driver:
|
||||||
(define-public intel-microcode
|
(define-public intel-microcode
|
||||||
(package
|
(package
|
||||||
(name "intel-microcode")
|
(name "intel-microcode")
|
||||||
(version "20231114")
|
(version "20240312")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -1199,7 +1195,7 @@ driver:
|
||||||
(commit (string-append "microcode-" version))))
|
(commit (string-append "microcode-" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "07c7hkwpvb9056s73s55sg04cxr1d9n1sd9r1g7sm3gh70yc17ki"))))
|
(base32 "1j1krkmp9kxmpq8bbbld8bm3y9rqhmlj5qfm43czikawnpw81571"))))
|
||||||
(build-system copy-build-system)
|
(build-system copy-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list #:install-plan
|
(list #:install-plan
|
||||||
|
@ -1223,12 +1219,12 @@ your CPU.")
|
||||||
(inherit linux-firmware)
|
(inherit linux-firmware)
|
||||||
(name "amd-microcode")
|
(name "amd-microcode")
|
||||||
(arguments
|
(arguments
|
||||||
`(#:license-file-regexp "LICENSE.amd-ucode"
|
(cons* #:license-file-regexp "LICENSE.amd-ucode"
|
||||||
,@(substitute-keyword-arguments (package-arguments linux-firmware)
|
(substitute-keyword-arguments (package-arguments linux-firmware)
|
||||||
((#:phases phases)
|
((#:phases phases #~%standard-phases)
|
||||||
`(modify-phases ,phases
|
#~(modify-phases #$phases
|
||||||
(add-after 'unpack 'select-firmware
|
(add-after 'unpack 'select-firmware
|
||||||
,(select-firmware "^amd-ucode/")))))))
|
#$(select-firmware "^amd-ucode/")))))))
|
||||||
(synopsis "Processor microcode firmware for AMD CPUs")
|
(synopsis "Processor microcode firmware for AMD CPUs")
|
||||||
(description "Updated system processor microcode for AMD x86-64
|
(description "Updated system processor microcode for AMD x86-64
|
||||||
processors. AMD releases microcode updates to correct processor behavior as
|
processors. AMD releases microcode updates to correct processor behavior as
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
(define-public element-desktop
|
(define-public element-desktop
|
||||||
(package
|
(package
|
||||||
(name "element-desktop")
|
(name "element-desktop")
|
||||||
(version "1.11.57")
|
(version "1.11.64")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
"https://packages.riot.im/debian/pool/main/e/" name "/" name "_" version
|
"https://packages.riot.im/debian/pool/main/e/" name "/" name "_" version
|
||||||
"_amd64.deb"))
|
"_amd64.deb"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "05318i6z5kkzi01ygr77g5ij0hs4xmy0j23hznkqc4zia02q1vgx"))))
|
(base32 "043017i51kdpb6aqz7542dyrdw8d6jhqd9zw6v1c63phh1633y56"))))
|
||||||
(supported-systems '("x86_64-linux"))
|
(supported-systems '("x86_64-linux"))
|
||||||
(build-system chromium-binary-build-system)
|
(build-system chromium-binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
|
@ -90,7 +90,7 @@ its core.")
|
||||||
(define-public signal-desktop
|
(define-public signal-desktop
|
||||||
(package
|
(package
|
||||||
(name "signal-desktop")
|
(name "signal-desktop")
|
||||||
(version "6.46.0")
|
(version "7.4.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -99,7 +99,7 @@ its core.")
|
||||||
"https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version
|
"https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version
|
||||||
"_amd64.deb"))
|
"_amd64.deb"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1pjv8v1hhycwbvqvih83axv41jkyksq6d9152fqic9d61lbb1kpa"))))
|
(base32 "069k7kcg8h16q0mm1bqdf7x66qji653apgwhnb52kdqsfzr1ibzm"))))
|
||||||
(supported-systems '("x86_64-linux"))
|
(supported-systems '("x86_64-linux"))
|
||||||
(build-system chromium-binary-build-system)
|
(build-system chromium-binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
|
|
|
@ -97,19 +97,19 @@
|
||||||
|
|
||||||
;; Update this id with every firefox update to its release date.
|
;; Update this id with every firefox update to its release date.
|
||||||
;; It's used for cache validation and therefore can lead to strange bugs.
|
;; It's used for cache validation and therefore can lead to strange bugs.
|
||||||
(define %firefox-esr-build-id "20240219101823")
|
(define %firefox-esr-build-id "20240415130026")
|
||||||
|
|
||||||
(define-public firefox-esr
|
(define-public firefox-esr
|
||||||
(package
|
(package
|
||||||
(name "firefox-esr")
|
(name "firefox-esr")
|
||||||
(version "115.8.0esr")
|
(version "115.10.0esr")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
|
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
|
||||||
version "/source/firefox-" version ".source.tar.xz"))
|
version "/source/firefox-" version ".source.tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1slmp2v1q3my81z8kiym9rpxw5d9n4sn07v7hv99517w7vr8d05g"))))
|
(base32 "1wpf4vcrvnvhnfzqavbkzqbn51bds1l9f6ld4mzh9xwm7mrkrz8a"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list
|
(list
|
||||||
|
@ -532,27 +532,34 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n"
|
||||||
|
|
||||||
;; Update this id with every firefox update to its release date.
|
;; Update this id with every firefox update to its release date.
|
||||||
;; It's used for cache validation and therefore can lead to strange bugs.
|
;; It's used for cache validation and therefore can lead to strange bugs.
|
||||||
(define %firefox-build-id "20240304165820")
|
(define %firefox-build-id "20240429124342")
|
||||||
|
|
||||||
(define-public firefox
|
(define-public firefox
|
||||||
(package
|
(package
|
||||||
(inherit firefox-esr)
|
(inherit firefox-esr)
|
||||||
(name "firefox")
|
(name "firefox")
|
||||||
(version "123.0.1")
|
(version "125.0.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
|
(uri (string-append "https://archive.mozilla.org/pub/firefox/releases/"
|
||||||
version "/source/firefox-" version ".source.tar.xz"))
|
version "/source/firefox-" version ".source.tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "073lbl2gs7c08kr9h6r2jvl3cvj84h3pdh6aj151c3synravkp6m"))))
|
(base32 "05jnpnc0qym08f7rlapjm36g729445k3nba2rvf4a0sabsw6c726"))))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments firefox-esr)
|
(substitute-keyword-arguments (package-arguments firefox-esr)
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
#~(modify-phases #$phases
|
#~(modify-phases #$phases
|
||||||
(replace 'set-build-id
|
(replace 'set-build-id
|
||||||
(lambda _
|
(lambda _
|
||||||
(setenv "MOZ_BUILD_DATE" #$%firefox-build-id)))))))
|
(setenv "MOZ_BUILD_DATE" #$%firefox-build-id)))
|
||||||
|
(replace 'remove-cargo-frozen-flag
|
||||||
|
(lambda _
|
||||||
|
;; Remove --frozen flag from cargo invokation, otherwise it'll
|
||||||
|
;; complain that it's not able to change Cargo.lock.
|
||||||
|
;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373
|
||||||
|
(substitute* "build/RunCbindgen.py"
|
||||||
|
(("args.append\\(\"--frozen\"\\)") "pass"))))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(modify-inputs (package-native-inputs firefox-esr)
|
(modify-inputs (package-native-inputs firefox-esr)
|
||||||
(replace "rust" rust-firefox)
|
(replace "rust" rust-firefox)
|
||||||
|
@ -562,7 +569,7 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n"
|
||||||
"Full-featured browser client built from Firefox source tree, without
|
"Full-featured browser client built from Firefox source tree, without
|
||||||
the official icon and the name \"firefox\".")))
|
the official icon and the name \"firefox\".")))
|
||||||
|
|
||||||
;; As of Firefox 121.0, Firefox uses Wayland by default. This means we no longer need a seperate package
|
;; As of Firefox 121.0, Firefox uses Wayland by default. This means we no
|
||||||
;; for Firefox on Wayland.
|
;; longer need a seperate package for Firefox on Wayland.
|
||||||
(define-public firefox-wayland
|
(define-public firefox-wayland
|
||||||
(deprecated-package "firefox-wayland" firefox))
|
(deprecated-package "firefox-wayland" firefox))
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -24,7 +24,7 @@
|
||||||
(define-public anytype
|
(define-public anytype
|
||||||
(package
|
(package
|
||||||
(name "anytype")
|
(name "anytype")
|
||||||
(version "0.39.0")
|
(version "0.40.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
(file-name (string-append "anytype-" version ".deb"))
|
(file-name (string-append "anytype-" version ".deb"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"10y037qwm6k28min2sgpshrlpirc1p0zn3b4syxrrz494x5g2ivi"))))
|
"01q6dzks8hjb2whdkj7c816fji7rn5dpx00ss7rxgvxb5rdz19gr"))))
|
||||||
(build-system chromium-binary-build-system)
|
(build-system chromium-binary-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list
|
(list
|
||||||
|
@ -52,8 +52,8 @@
|
||||||
"libGLESv2.so"
|
"libGLESv2.so"
|
||||||
"libvk_swiftshader.so"
|
"libvk_swiftshader.so"
|
||||||
"libvulkan.so.1"
|
"libvulkan.so.1"
|
||||||
"resources/app.asar.unpacked/dist/nativeMessagingHost"
|
"resources/app.asar.unpacked/node_modules/keytar/build/Release/keytar.node"
|
||||||
"resources/app.asar.unpacked/node_modules/keytar/build/Release/keytar.node"))
|
"resources/app.asar.unpacked/node_modules/keytar/build/Release/obj.target/keytar.node"))
|
||||||
#:install-plan
|
#:install-plan
|
||||||
#~'(("opt/" "/share")
|
#~'(("opt/" "/share")
|
||||||
("usr/share/" "/share"))
|
("usr/share/" "/share"))
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
(define-public gmmlib
|
(define-public gmmlib
|
||||||
(package
|
(package
|
||||||
(name "gmmlib")
|
(name "gmmlib")
|
||||||
(version "22.3.9")
|
(version "22.3.15")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0m88lxlqqs5wdk4icf2ahbigr0q87j1c0damq7q0r55h72pf6zyv"))))
|
"0qmdprqarqdz8z6s1av2vmd7ma5yaswxkxzdjci57fgyylqkjlri"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
;; Tests are run as part of the normal build step
|
;; Tests are run as part of the normal build step
|
||||||
|
@ -40,7 +40,7 @@ for VAAPI.")
|
||||||
(define-public intel-media-driver
|
(define-public intel-media-driver
|
||||||
(package
|
(package
|
||||||
(name "intel-media-driver")
|
(name "intel-media-driver")
|
||||||
(version "23.3.0")
|
(version "23.4.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -49,7 +49,7 @@ for VAAPI.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1zh6zgfyp14zlnd6jvhqz9q5rlyk7cb3nam791slh0h7r5f0iimm"))))
|
"0rgjakygfzy6d3jz38nnjvcvqyjnwz2b4vfh1ifqfcm3bw56fmr9"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(inputs (list libva gmmlib))
|
(inputs (list libva gmmlib))
|
||||||
(native-inputs (list pkg-config))
|
(native-inputs (list pkg-config))
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
(define-public zerotier
|
(define-public zerotier
|
||||||
(package
|
(package
|
||||||
(name "zerotier")
|
(name "zerotier")
|
||||||
(version "1.8.4")
|
(version "1.12.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -21,16 +21,17 @@
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"101b1k9f3cpbgj0l87ya1cbqs9dv0qiayjap4m29fxyjra8hbkb8"))))
|
"0p5rpvh137gf5y9ylip7kxfl4argv34sr4wiiygvfk670rifnk57"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:make-flags (list "ZT_SSO_SUPPORTED=0") ; We don't need SSO/OIDC
|
||||||
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
;; There is no ./configure
|
;; There is no ./configure
|
||||||
(delete 'configure)
|
(delete 'configure)
|
||||||
(replace 'check
|
(replace 'check
|
||||||
(lambda _
|
(lambda* (#:key make-flags #:allow-other-keys)
|
||||||
(invoke "make" "selftest")
|
(apply invoke "make" "selftest" make-flags)
|
||||||
(invoke "./zerotier-selftest")))
|
(invoke "./zerotier-selftest")))
|
||||||
(replace 'install
|
(replace 'install
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
|
;;; Copyright © 2022, 2024 Hilton Chain <hako@ultrarare.space>
|
||||||
|
|
||||||
(define-module (nongnu services nvidia)
|
(define-module (nongnu services nvidia)
|
||||||
|
#:use-module (guix gexp)
|
||||||
|
#:use-module (guix records)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu services)
|
#:use-module (gnu services)
|
||||||
#:use-module (gnu services base)
|
#:use-module (gnu services base)
|
||||||
#:use-module (gnu services linux)
|
#:use-module (gnu services linux)
|
||||||
#:use-module (gnu services shepherd)
|
#:use-module (gnu services shepherd)
|
||||||
#:use-module (guix gexp)
|
|
||||||
#:use-module (guix records)
|
|
||||||
#:use-module (nongnu packages nvidia)
|
#:use-module (nongnu packages nvidia)
|
||||||
#:export (nvidia-configuration
|
#:export (nvidia-configuration
|
||||||
nvidia-configuration?
|
nvidia-configuration?
|
||||||
|
@ -19,24 +19,32 @@
|
||||||
(define-record-type* <nvidia-configuration>
|
(define-record-type* <nvidia-configuration>
|
||||||
nvidia-configuration make-nvidia-configuration
|
nvidia-configuration make-nvidia-configuration
|
||||||
nvidia-configuration?
|
nvidia-configuration?
|
||||||
(nvidia-driver nvidia-configuration-nvidia-driver
|
(driver nvidia-configuration-driver
|
||||||
(default (list nvidia-driver))) ; list of file-like
|
(default nvda)) ; file-like
|
||||||
(nvidia-firmware nvidia-configuration-nvidia-firmware
|
(firmware nvidia-configuration-firmware
|
||||||
(default (list nvidia-firmware))) ; list of file-like
|
(default nvidia-firmware)) ; file-like
|
||||||
(nvidia-module nvidia-configuration-nvidia-module
|
(module nvidia-configuration-module
|
||||||
(default (list nvidia-module))) ; list of file-like
|
(default nvidia-module))) ; file-like
|
||||||
(modules nvidia-configuration-modules
|
|
||||||
(default (list "nvidia-uvm")))) ; list of string
|
|
||||||
|
|
||||||
(define (nvidia-shepherd-service config)
|
(define (nvidia-shepherd-service config)
|
||||||
|
(let ((nvidia-driver (nvidia-configuration-driver config))
|
||||||
|
(nvidia-smi (file-append nvidia-driver "/bin/nvidia-smi")))
|
||||||
(list (shepherd-service
|
(list (shepherd-service
|
||||||
(documentation "Unload nvidia-uvm module on powering off.")
|
(documentation "Prepare system environment for NVIDIA driver.")
|
||||||
(provision '(nvidia))
|
(provision '(nvidia))
|
||||||
(requirement '(user-processes))
|
(requirement '(udev))
|
||||||
(start #~(const #t))
|
(one-shot? #t)
|
||||||
(stop #~(lambda _
|
(modules '(((guix build utils) #:select (invoke/quiet))
|
||||||
(let ((rmmod #$(file-append kmod "/bin/rmmod")))
|
((rnrs io ports) #:select (get-line))))
|
||||||
(zero? (system* rmmod "nvidia-uvm"))))))))
|
(start
|
||||||
|
#~(lambda _
|
||||||
|
(when (file-exists? "/proc/driver/nvidia")
|
||||||
|
(let ((modprobe (call-with-input-file
|
||||||
|
"/proc/sys/kernel/modprobe" get-line)))
|
||||||
|
(false-if-exception
|
||||||
|
(begin
|
||||||
|
(invoke/quiet modprobe "--" "nvidia_uvm")
|
||||||
|
(invoke/quiet #$nvidia-smi)))))))))))
|
||||||
|
|
||||||
(define nvidia-service-type
|
(define nvidia-service-type
|
||||||
(service-type
|
(service-type
|
||||||
|
@ -44,13 +52,13 @@
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension shepherd-root-service-type
|
(list (service-extension shepherd-root-service-type
|
||||||
nvidia-shepherd-service)
|
nvidia-shepherd-service)
|
||||||
|
(service-extension profile-service-type
|
||||||
|
(compose list nvidia-configuration-driver))
|
||||||
(service-extension udev-service-type
|
(service-extension udev-service-type
|
||||||
nvidia-configuration-nvidia-driver)
|
(compose list nvidia-configuration-driver))
|
||||||
(service-extension firmware-service-type
|
(service-extension firmware-service-type
|
||||||
nvidia-configuration-nvidia-firmware)
|
(compose list nvidia-configuration-firmware))
|
||||||
(service-extension linux-loadable-module-service-type
|
(service-extension linux-loadable-module-service-type
|
||||||
nvidia-configuration-nvidia-module)
|
(compose list nvidia-configuration-module))))
|
||||||
(service-extension kernel-module-loader-service-type
|
|
||||||
nvidia-configuration-modules)))
|
|
||||||
(default-value (nvidia-configuration))
|
(default-value (nvidia-configuration))
|
||||||
(description "Load NVIDIA modules.")))
|
(description "Prepare system environment for NVIDIA driver.")))
|
||||||
|
|
|
@ -2,20 +2,46 @@
|
||||||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
||||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||||
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2022 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
|
;;; Copyright © 2024 Hilton Chain <hako@ultrarare.space>
|
||||||
|
|
||||||
;; Generate a bootable image (e.g. for USB sticks, etc.) with:
|
;; Generate a bootable image (e.g. for USB sticks, etc.) with:
|
||||||
;; $ guix system disk-image nongnu/system/install.scm
|
;; $ guix system image --image-type=iso9660 nongnu/system/install.scm
|
||||||
|
|
||||||
(define-module (nongnu system install)
|
(define-module (nongnu system install)
|
||||||
|
#:use-module (guix channels)
|
||||||
|
#:use-module (guix gexp)
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
|
#:use-module (gnu packages package-management)
|
||||||
#:use-module (gnu packages version-control)
|
#:use-module (gnu packages version-control)
|
||||||
#:use-module (gnu packages vim)
|
#:use-module (gnu packages vim)
|
||||||
#:use-module (gnu packages zile)
|
#:use-module (gnu packages zile)
|
||||||
|
#:use-module (gnu services)
|
||||||
|
#:use-module (gnu services base)
|
||||||
#:use-module (gnu system)
|
#:use-module (gnu system)
|
||||||
#:use-module (gnu system install)
|
#:use-module (gnu system install)
|
||||||
#:use-module (nongnu packages linux)
|
#:use-module (nongnu packages linux)
|
||||||
#:export (installation-os-nonfree))
|
#:export (installation-os-nonfree))
|
||||||
|
|
||||||
|
;; https://substitutes.nonguix.org/signing-key.pub
|
||||||
|
(define %signing-key
|
||||||
|
(plain-file "nonguix.pub" "\
|
||||||
|
(public-key
|
||||||
|
(ecc
|
||||||
|
(curve Ed25519)
|
||||||
|
(q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))"))
|
||||||
|
|
||||||
|
(define %channels
|
||||||
|
(cons* (channel
|
||||||
|
(name 'nonguix)
|
||||||
|
(url "https://gitlab.com/nonguix/nonguix")
|
||||||
|
;; Enable signature verification:
|
||||||
|
(introduction
|
||||||
|
(make-channel-introduction
|
||||||
|
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
|
||||||
|
(openpgp-fingerprint
|
||||||
|
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
|
||||||
|
%default-channels))
|
||||||
|
|
||||||
(define installation-os-nonfree
|
(define installation-os-nonfree
|
||||||
(operating-system
|
(operating-system
|
||||||
(inherit installation-os)
|
(inherit installation-os)
|
||||||
|
@ -27,6 +53,19 @@
|
||||||
git
|
git
|
||||||
neovim
|
neovim
|
||||||
zile)
|
zile)
|
||||||
(operating-system-packages installation-os)))))
|
(operating-system-packages installation-os)))
|
||||||
|
(services
|
||||||
|
(modify-services (operating-system-user-services installation-os)
|
||||||
|
(guix-service-type
|
||||||
|
config => (guix-configuration
|
||||||
|
(inherit config)
|
||||||
|
(guix (guix-for-channels %channels))
|
||||||
|
(authorized-keys
|
||||||
|
(cons* %signing-key
|
||||||
|
%default-authorized-guix-keys))
|
||||||
|
(substitute-urls
|
||||||
|
`(,@%default-substitute-urls
|
||||||
|
"https://substitutes.nonguix.org"))
|
||||||
|
(channels %channels)))))))
|
||||||
|
|
||||||
installation-os-nonfree
|
installation-os-nonfree
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
(define-module (nonguix build chromium-binary-build-system)
|
(define-module (nonguix build chromium-binary-build-system)
|
||||||
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
||||||
#:use-module ((nonguix build binary-build-system) #:prefix binary:)
|
#:use-module ((nonguix build binary-build-system) #:prefix binary:)
|
||||||
#:use-module (nonguix build utils)
|
|
||||||
#:use-module (guix build utils)
|
#:use-module (guix build utils)
|
||||||
#:use-module (ice-9 ftw)
|
#:use-module (ice-9 ftw)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
@ -24,9 +23,9 @@
|
||||||
(nss (assoc-ref inputs "nss"))
|
(nss (assoc-ref inputs "nss"))
|
||||||
(wrap-inputs (map cdr inputs))
|
(wrap-inputs (map cdr inputs))
|
||||||
(lib-directories
|
(lib-directories
|
||||||
(build-paths-from-inputs '("lib") wrap-inputs))
|
(search-path-as-list '("lib") wrap-inputs))
|
||||||
(bin-directories
|
(bin-directories
|
||||||
(build-paths-from-inputs
|
(search-path-as-list
|
||||||
'("bin" "sbin" "libexec")
|
'("bin" "sbin" "libexec")
|
||||||
wrap-inputs)))
|
wrap-inputs)))
|
||||||
(for-each
|
(for-each
|
||||||
|
|
|
@ -97,23 +97,3 @@ contents:
|
||||||
(call-with-output-file result
|
(call-with-output-file result
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
(for-each (cut dump <> port) files))))
|
(for-each (cut dump <> port) files))))
|
||||||
|
|
||||||
(define build-paths-for-input
|
|
||||||
(lambda (dirs input)
|
|
||||||
(filter-map
|
|
||||||
(lambda (sub-directory)
|
|
||||||
(let ((directory
|
|
||||||
(string-append
|
|
||||||
input "/" sub-directory)))
|
|
||||||
(and
|
|
||||||
(directory-exists? directory)
|
|
||||||
directory)))
|
|
||||||
dirs)))
|
|
||||||
|
|
||||||
(define build-paths-from-inputs
|
|
||||||
(lambda (dirs inputs)
|
|
||||||
(reduce append '()
|
|
||||||
(map
|
|
||||||
(lambda (input)
|
|
||||||
(build-paths-for-input dirs input))
|
|
||||||
inputs))))
|
|
||||||
|
|
|
@ -260,8 +260,9 @@ in a sandboxed FHS environment."
|
||||||
(home (getenv "HOME"))
|
(home (getenv "HOME"))
|
||||||
(sandbox-home (or (getenv "GUIX_SANDBOX_HOME")
|
(sandbox-home (or (getenv "GUIX_SANDBOX_HOME")
|
||||||
(string-append home "/" #$(ngc-sandbox-home container))))
|
(string-append home "/" #$(ngc-sandbox-home container))))
|
||||||
|
(wayland-display (or (getenv "WAYLAND_DISPLAY")
|
||||||
|
"wayland-0"))
|
||||||
(preserved-env '("^DBUS_"
|
(preserved-env '("^DBUS_"
|
||||||
"^DISPLAY$"
|
|
||||||
"^DRI_PRIME$"
|
"^DRI_PRIME$"
|
||||||
"^GDK_SCALE$" ; For UI scaling.
|
"^GDK_SCALE$" ; For UI scaling.
|
||||||
"^GUIX_LOCPATH$" ; For pressure-vessel locales.
|
"^GUIX_LOCPATH$" ; For pressure-vessel locales.
|
||||||
|
@ -276,6 +277,7 @@ in a sandboxed FHS environment."
|
||||||
;; need to be shared with the container as
|
;; need to be shared with the container as
|
||||||
;; well; this is not needed currently.
|
;; well; this is not needed currently.
|
||||||
"^LD_LIBRARY_PATH$"
|
"^LD_LIBRARY_PATH$"
|
||||||
|
"^LIBVA_DRIVERS_PATH$" ; For VA-API drivers.
|
||||||
"^MANGOHUD" ; For MangoHud configuration.
|
"^MANGOHUD" ; For MangoHud configuration.
|
||||||
"^PRESSURE_VESSEL_" ; For pressure vessel options.
|
"^PRESSURE_VESSEL_" ; For pressure vessel options.
|
||||||
"_PROXY$"
|
"_PROXY$"
|
||||||
|
@ -289,12 +291,15 @@ in a sandboxed FHS environment."
|
||||||
"^SDL_"
|
"^SDL_"
|
||||||
"^STEAM_"
|
"^STEAM_"
|
||||||
"^SSL_" ; SSL certificate environment, needed by curl for Heroic.
|
"^SSL_" ; SSL certificate environment, needed by curl for Heroic.
|
||||||
"^VDPAU_DRIVER_PATH$" ; For VDPAU drivers.
|
"^TZ" ; For setting time zone.
|
||||||
"^XAUTHORITY$"
|
"^XAUTHORITY$"
|
||||||
;; Matching all ^XDG_ vars causes issues
|
;; Matching all ^XDG_ vars causes issues
|
||||||
;; discussed in 80decf05.
|
;; discussed in 80decf05.
|
||||||
|
"^XDG_CURRENT_DESKTOP$"
|
||||||
"^XDG_DATA_HOME$"
|
"^XDG_DATA_HOME$"
|
||||||
"^XDG_RUNTIME_DIR$"
|
"^XDG_RUNTIME_DIR$"
|
||||||
|
"^XDG_SESSION_(CLASS|TYPE)$"
|
||||||
|
"^(WAYLAND_)?DISPLAY$"
|
||||||
#$@(ngc-preserved-env container) ; Environment from container.
|
#$@(ngc-preserved-env container) ; Environment from container.
|
||||||
;; The following are useful for debugging.
|
;; The following are useful for debugging.
|
||||||
"^CAPSULE_DEBUG$"
|
"^CAPSULE_DEBUG$"
|
||||||
|
@ -310,6 +315,7 @@ in a sandboxed FHS environment."
|
||||||
,@(exists-> "/dev/nvidia-modeset")
|
,@(exists-> "/dev/nvidia-modeset")
|
||||||
,@(exists-> "/etc/machine-id")
|
,@(exists-> "/etc/machine-id")
|
||||||
"/etc/localtime" ; Needed for correct time zone.
|
"/etc/localtime" ; Needed for correct time zone.
|
||||||
|
"/etc/os-release" ; Needed for distro info.
|
||||||
"/sys/class/drm" ; Needed for hw monitoring like MangoHud.
|
"/sys/class/drm" ; Needed for hw monitoring like MangoHud.
|
||||||
"/sys/class/hwmon" ; Needed for hw monitoring like MangoHud.
|
"/sys/class/hwmon" ; Needed for hw monitoring like MangoHud.
|
||||||
"/sys/class/hidraw" ; Needed for devices like the Valve Index.
|
"/sys/class/hidraw" ; Needed for devices like the Valve Index.
|
||||||
|
@ -333,6 +339,7 @@ in a sandboxed FHS environment."
|
||||||
,@(exists-> (string-append home "/.config/pulse"))
|
,@(exists-> (string-append home "/.config/pulse"))
|
||||||
,@(exists-> (string-append xdg-runtime "/pulse"))
|
,@(exists-> (string-append xdg-runtime "/pulse"))
|
||||||
,@(exists-> (string-append xdg-runtime "/bus"))
|
,@(exists-> (string-append xdg-runtime "/bus"))
|
||||||
|
,@(exists-> (string-append xdg-runtime "/" wayland-display))
|
||||||
,@(exists-> (getenv "XAUTHORITY"))
|
,@(exists-> (getenv "XAUTHORITY"))
|
||||||
#$@(ngc-shared container)))
|
#$@(ngc-shared container)))
|
||||||
(DEBUG (equal? (getenv "DEBUG") "1"))
|
(DEBUG (equal? (getenv "DEBUG") "1"))
|
||||||
|
@ -347,10 +354,10 @@ in a sandboxed FHS environment."
|
||||||
;; the "usual" path, probably so they are included in the
|
;; the "usual" path, probably so they are included in the
|
||||||
;; pressure-vessel container.
|
;; pressure-vessel container.
|
||||||
(setenv "GUIX_LOCPATH" "/usr/lib/locale")
|
(setenv "GUIX_LOCPATH" "/usr/lib/locale")
|
||||||
;; By default VDPAU drivers are searched for in libvdpau's store
|
;; By default VA-API drivers are searched for in mesa's store path,
|
||||||
;; path, so set this path to where the drivers will actually be
|
;; so set this path to where the drivers will actually be located in
|
||||||
;; located in the container.
|
;; the container.
|
||||||
(setenv "VDPAU_DRIVER_PATH" "/lib64/vdpau")
|
(setenv "LIBVA_DRIVERS_PATH" "/lib64/dri:/lib/dri")
|
||||||
(format #t "\n* Launching ~a in sandbox: ~a.\n\n"
|
(format #t "\n* Launching ~a in sandbox: ~a.\n\n"
|
||||||
#$(package-name (ngc-wrap-package container)) sandbox-home)
|
#$(package-name (ngc-wrap-package container)) sandbox-home)
|
||||||
(when DEBUG
|
(when DEBUG
|
||||||
|
@ -455,7 +462,9 @@ application."
|
||||||
`((guix build utils))
|
`((guix build utils))
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (guix build utils)
|
(use-modules (guix build utils)
|
||||||
(ice-9 getopt-long))
|
(ice-9 getopt-long)
|
||||||
|
(srfi srfi-1)
|
||||||
|
(srfi srfi-26))
|
||||||
(define (path->str path)
|
(define (path->str path)
|
||||||
(if (list? path)
|
(if (list? path)
|
||||||
(string-join path "/")
|
(string-join path "/")
|
||||||
|
@ -465,9 +474,13 @@ application."
|
||||||
(dest (path->str (cdr pair))))
|
(dest (path->str (cdr pair))))
|
||||||
(unless (file-exists? dest)
|
(unless (file-exists? dest)
|
||||||
(symlink target dest))))
|
(symlink target dest))))
|
||||||
(define (icd-symlink file)
|
(define (file-symlink file dir)
|
||||||
|
(mkdir-p dir)
|
||||||
(new-symlink
|
(new-symlink
|
||||||
`(,file . ("/usr/share/vulkan/icd.d" ,(basename file)))))
|
`(,file . (,dir ,(basename file)))))
|
||||||
|
;; Use stat to follow links from packages like MangoHud.
|
||||||
|
(define (get-files dir)
|
||||||
|
(find-files (path->str dir) #:stat stat))
|
||||||
(define fhs-option-spec
|
(define fhs-option-spec
|
||||||
'((asound32 (value #f))))
|
'((asound32 (value #f))))
|
||||||
(let* ((guix-env (getenv "GUIX_ENVIRONMENT"))
|
(let* ((guix-env (getenv "GUIX_ENVIRONMENT"))
|
||||||
|
@ -488,14 +501,11 @@ application."
|
||||||
"/run/current-system/profile/share"
|
"/run/current-system/profile/share"
|
||||||
"/sbin"
|
"/sbin"
|
||||||
"/usr/lib"
|
"/usr/lib"
|
||||||
"/usr/share/vulkan/icd.d"))
|
"/usr/share"))
|
||||||
(for-each
|
(for-each
|
||||||
new-symlink
|
new-symlink
|
||||||
`((,ld.so.cache . "/etc/ld.so.cache")
|
`((,ld.so.cache . "/etc/ld.so.cache")
|
||||||
(,ld.so.conf . "/etc/ld.so.conf") ;; needed?
|
(,ld.so.conf . "/etc/ld.so.conf") ;; needed?
|
||||||
;; For MangoHud implicit layers.
|
|
||||||
((,guix-env "share/vulkan/implicit_layer.d") .
|
|
||||||
"/usr/share/vulkan/implicit_layer.d")
|
|
||||||
((,guix-env "etc/ssl") . "/etc/ssl")
|
((,guix-env "etc/ssl") . "/etc/ssl")
|
||||||
((,guix-env "etc/ssl") . "/run/current-system/profile/etc/ssl")
|
((,guix-env "etc/ssl") . "/run/current-system/profile/etc/ssl")
|
||||||
((,union32 "lib") . "/lib")
|
((,union32 "lib") . "/lib")
|
||||||
|
@ -512,17 +522,41 @@ application."
|
||||||
((,union64 "share/mime") . "/usr/share/mime") ; Steam tray icon.
|
((,union64 "share/mime") . "/usr/share/mime") ; Steam tray icon.
|
||||||
((,union64 "share/glib-2.0") . "/usr/share/glib-2.0") ; Heroic interface.
|
((,union64 "share/glib-2.0") . "/usr/share/glib-2.0") ; Heroic interface.
|
||||||
((,union64 "share/drirc.d") . "/usr/share/drirc.d")
|
((,union64 "share/drirc.d") . "/usr/share/drirc.d")
|
||||||
|
((,union64 "share/fonts") . "/usr/share/fonts")
|
||||||
((,union64 "share/fonts") . "/run/current-system/profile/share/fonts")
|
((,union64 "share/fonts") . "/run/current-system/profile/share/fonts")
|
||||||
((,union64 "etc/fonts") . "/etc/fonts")
|
((,union64 "etc/fonts") . "/etc/fonts")))
|
||||||
((,union64 "share/vulkan/explicit_layer.d") .
|
|
||||||
"/usr/share/vulkan/explicit_layer.d")))
|
|
||||||
(for-each
|
(for-each
|
||||||
icd-symlink
|
(cut file-symlink <> "/usr/share/egl/egl_external_platform.d")
|
||||||
;; Use stat to follow links from packages like MangoHud.
|
(append-map
|
||||||
`(,@(find-files (string-append union32 "/share/vulkan/icd.d")
|
get-files
|
||||||
#:directories? #t #:stat stat)
|
`((,union32 "share/egl/egl_external_platform.d")
|
||||||
,@(find-files (string-append union64 "/share/vulkan/icd.d")
|
(,union64 "share/egl/egl_external_platform.d"))))
|
||||||
#:directories? #t #:stat stat)))
|
(for-each
|
||||||
|
(cut file-symlink <> "/usr/share/glvnd/egl_vendor.d")
|
||||||
|
(append-map
|
||||||
|
get-files
|
||||||
|
`((,union32 "share/glvnd/egl_vendor.d")
|
||||||
|
(,union64 "share/glvnd/egl_vendor.d"))))
|
||||||
|
(for-each
|
||||||
|
(cut file-symlink <> "/usr/share/vulkan/icd.d")
|
||||||
|
(append-map
|
||||||
|
get-files
|
||||||
|
`((,union32 "share/vulkan/icd.d")
|
||||||
|
(,union64 "share/vulkan/icd.d"))))
|
||||||
|
(for-each
|
||||||
|
(cut file-symlink <> "/usr/share/vulkan/explicit_layer.d")
|
||||||
|
(append-map
|
||||||
|
get-files
|
||||||
|
`((,union64 "share/vulkan/explicit_layer.d")
|
||||||
|
(,union32 "share/vulkan/explicit_layer.d"))))
|
||||||
|
(for-each
|
||||||
|
(cut file-symlink <> "/usr/share/vulkan/implicit_layer.d")
|
||||||
|
(append-map
|
||||||
|
get-files
|
||||||
|
`((,union32 "share/vulkan/implicit_layer.d")
|
||||||
|
(,union64 "share/vulkan/implicit_layer.d")
|
||||||
|
;; For MangoHud implicit layers.
|
||||||
|
(,guix-env "share/vulkan/implicit_layer.d"))))
|
||||||
;; TODO: This is not the right place for this.
|
;; TODO: This is not the right place for this.
|
||||||
;; Newer versions of Steam won't startup if they can't copy to here
|
;; Newer versions of Steam won't startup if they can't copy to here
|
||||||
;; (previous would output this error but continue).
|
;; (previous would output this error but continue).
|
||||||
|
@ -537,7 +571,7 @@ application."
|
||||||
;; games). Wait to set this inside the container to not cause
|
;; games). Wait to set this inside the container to not cause
|
||||||
;; issues on foreign distros, see
|
;; issues on foreign distros, see
|
||||||
;; <https://gitlab.com/nonguix/nonguix/-/issues/303>
|
;; <https://gitlab.com/nonguix/nonguix/-/issues/303>
|
||||||
(setenv "LD_LIBRARY_PATH" "/lib64:/lib")
|
(setenv "LD_LIBRARY_PATH" "/lib64:/lib:/lib64/vdpau:/lib/vdpau")
|
||||||
|
|
||||||
;; Process FHS-specific command line options.
|
;; Process FHS-specific command line options.
|
||||||
(let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec))
|
(let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user