mirror of
https://gitlab.com/nonguix/nonguix.git
synced 2025-03-14 05:45:15 +01:00
nongnu: Export steam containers and minor refactor.
nonguix: Make container actually respect the ngc-shared and ngc-exposed fields. * nongnu/packages/steam-client.scm (steam-container): New variable. This is to export the container definition from steam. (steam-nvidia-container): New variable. This is the container for steam-nvidia and now inherits from steam-container. (steam, steam-nvidia): Container definitions moved to steam-container and steam-nvidia-container. * nonguix/multiarch-container.scm (make-container-wrapper): Add ngc-exposed and ngc-shared to expose and share lists. Signed-off-by: ison <ison@airmail.cc>
This commit is contained in:
parent
5bc3c9da84
commit
c323f4c866
2 changed files with 37 additions and 52 deletions
|
@ -6,6 +6,7 @@
|
|||
;;; Copyright © 2021 Kozo <kozodev@runbox.com>
|
||||
;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2023 Elijah Malaby
|
||||
|
||||
(define-module (nongnu packages steam-client)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
|
@ -163,59 +164,40 @@
|
|||
(define steam-ld.so.cache
|
||||
(ld.so.conf->ld.so.cache steam-ld.so.conf))
|
||||
|
||||
(define-public steam
|
||||
(nonguix-container->package
|
||||
(nonguix-container
|
||||
(name "steam")
|
||||
(wrap-package steam-client)
|
||||
(run "/bin/steam")
|
||||
(ld.so.conf steam-ld.so.conf)
|
||||
(ld.so.cache steam-ld.so.cache)
|
||||
(union64
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-64"))
|
||||
(union32
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))
|
||||
(link-files '("share/applications/steam.desktop"
|
||||
"share/applications/steam-asound32.desktop"))
|
||||
(description "Steam is a digital software distribution platform created by
|
||||
(define-public steam-container
|
||||
(nonguix-container
|
||||
(name "steam")
|
||||
(wrap-package steam-client)
|
||||
(run "/bin/steam")
|
||||
(ld.so.conf steam-ld.so.conf)
|
||||
(ld.so.cache steam-ld.so.cache)
|
||||
(union64
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-64"))
|
||||
(union32
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))
|
||||
(link-files '("share/applications/steam.desktop"
|
||||
"share/applications/steam-asound32.desktop"))
|
||||
(description "Steam is a digital software distribution platform created by
|
||||
Valve. This package provides a script for launching Steam in a Guix container
|
||||
which will use the directory @file{$HOME/.local/share/guix-sandbox-home} where
|
||||
all games will be installed."))))
|
||||
all games will be installed.")))
|
||||
|
||||
(define-public steam-nvidia
|
||||
(nonguix-container->package
|
||||
(nonguix-container
|
||||
(name "steam-nvidia")
|
||||
(wrap-package steam-client)
|
||||
(run "/bin/steam")
|
||||
(ld.so.conf steam-ld.so.conf)
|
||||
(ld.so.cache steam-ld.so.cache)
|
||||
(union64
|
||||
(replace-mesa
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-64")))
|
||||
(union32
|
||||
(replace-mesa
|
||||
(fhs-union `(,@steam-client-libs
|
||||
,@steam-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux")))
|
||||
(link-files '("share/applications/steam.desktop"
|
||||
"share/applications/steam-asound32.desktop"))
|
||||
(description "Steam is a digital software distribution platform created by
|
||||
Valve. This package provides a script for launching Steam in a Guix container
|
||||
which will use the directory @file{$HOME/.local/share/guix-sandbox-home} where
|
||||
all games will be installed."))))
|
||||
(define-public steam-nvidia-container
|
||||
(nonguix-container
|
||||
(inherit steam-container)
|
||||
(name "steam-nvidia")
|
||||
(union64 (replace-mesa (ngc-union64 steam-container)))
|
||||
(union32 (replace-mesa (ngc-union32 steam-container)))))
|
||||
|
||||
(define-public steam (nonguix-container->package steam-container))
|
||||
(define-public steam-nvidia (nonguix-container->package steam-nvidia-container))
|
||||
|
||||
(define-public protonup-ng
|
||||
(package
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
|
||||
;;; Copyright © 2023 Elijah Malaby
|
||||
|
||||
;;; The script provided by this package may optionally be started as
|
||||
;;; a shell instead of automatically launching the wrapped entrypoint by setting
|
||||
|
@ -303,7 +304,8 @@ in a sandboxed FHS environment."
|
|||
,@(exists-> "/sys/class/powercap") ; Needed for power monitoring like MangoHud.
|
||||
"/sys/dev"
|
||||
"/sys/devices"
|
||||
,@(exists-> "/var/run/dbus")))
|
||||
,@(exists-> "/var/run/dbus")
|
||||
#$@(ngc-exposed container)))
|
||||
;; /dev/hidraw is needed for SteamVR to access the HMD, although here we
|
||||
;; share all hidraw devices. Instead we could filter to only share specific
|
||||
;; device. See, for example, this script:
|
||||
|
@ -317,7 +319,8 @@ in a sandboxed FHS environment."
|
|||
,@(exists-> (string-append home "/.config/pulse"))
|
||||
,@(exists-> (string-append xdg-runtime "/pulse"))
|
||||
,@(exists-> (string-append xdg-runtime "/bus"))
|
||||
,@(exists-> (getenv "XAUTHORITY"))))
|
||||
,@(exists-> (getenv "XAUTHORITY"))
|
||||
#$@(ngc-shared container)))
|
||||
(DEBUG (equal? (getenv "DEBUG") "1"))
|
||||
(args (cdr (command-line)))
|
||||
(command (if DEBUG '()
|
||||
|
|
Loading…
Add table
Reference in a new issue