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:
Elijah Malaby 2023-05-29 22:39:12 -06:00 committed by ison
parent 5bc3c9da84
commit c323f4c866
No known key found for this signature in database
GPG key ID: 5E76B1AD0FC22F93
2 changed files with 37 additions and 52 deletions

View file

@ -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

View file

@ -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 '()