summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElijah Malaby <qwe12345678910@gmail.com>2023-05-29 22:39:12 -0600
committerison <ison@airmail.cc>2023-05-29 22:39:12 -0600
commitc323f4c866cdf7c9fb958ed968b80e0911ecd899 (patch)
tree9ee34bcf6b5ee3fb840f2cbf43b18a290220bf49
parent5bc3c9da84ee172511d702bd564872bf6b8e0639 (diff)
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>
-rw-r--r--nongnu/packages/steam-client.scm82
-rw-r--r--nonguix/multiarch-container.scm7
2 files changed, 37 insertions, 52 deletions
diff --git a/nongnu/packages/steam-client.scm b/nongnu/packages/steam-client.scm
index f3cb184..b8c8de3 100644
--- a/nongnu/packages/steam-client.scm
+++ b/nongnu/packages/steam-client.scm
@@ -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
diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm
index 541d6f2..85d36ad 100644
--- a/nonguix/multiarch-container.scm
+++ b/nonguix/multiarch-container.scm
@@ -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 '()