gnu: Add umu-launcher and umu-launcher-run.
* nongnu/packages/game-client.scm (umu-launcher, umu-launcher-container, umu-launcher-run): New variable.
This commit is contained in:
parent
dfeebe2ae8
commit
99eff92b50
|
@ -16,6 +16,7 @@
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
|
#:use-module (guix utils)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system pyproject)
|
#:use-module (guix build-system pyproject)
|
||||||
#:use-module (guix build-system python)
|
#:use-module (guix build-system python)
|
||||||
|
@ -43,10 +44,12 @@
|
||||||
#:use-module (gnu packages llvm)
|
#:use-module (gnu packages llvm)
|
||||||
#:use-module (gnu packages logging)
|
#:use-module (gnu packages logging)
|
||||||
#:use-module (gnu packages lsof)
|
#:use-module (gnu packages lsof)
|
||||||
|
#:use-module (gnu packages man)
|
||||||
#:use-module (nongnu packages nvidia)
|
#:use-module (nongnu packages nvidia)
|
||||||
#:use-module (gnu packages pciutils)
|
#:use-module (gnu packages pciutils)
|
||||||
#:use-module (gnu packages pulseaudio)
|
#:use-module (gnu packages pulseaudio)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
|
#:use-module (gnu packages python-build)
|
||||||
#:use-module (gnu packages python-web)
|
#:use-module (gnu packages python-web)
|
||||||
#:use-module (gnu packages python-xyz)
|
#:use-module (gnu packages python-xyz)
|
||||||
#:use-module (gnu packages toolkits)
|
#:use-module (gnu packages toolkits)
|
||||||
|
@ -319,6 +322,115 @@ all the dependencies incincluded in the container for Steam.")))
|
||||||
|
|
||||||
(define-public run-in-game-client-container (nonguix-container->package run-in-gc-container))
|
(define-public run-in-game-client-container (nonguix-container->package run-in-gc-container))
|
||||||
|
|
||||||
|
(define-public umu-launcher
|
||||||
|
(package
|
||||||
|
(name "umu-launcher")
|
||||||
|
(version "1.1.4")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/Open-Wine-Components/umu-launcher")
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "1vha229dkdr8gbgh8md5k6nsa07hxi13mmdw13xw0mrnm8mibssc"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
(list #:tests? #f ;no tests
|
||||||
|
#:make-flags
|
||||||
|
#~(list (string-append "PYTHON_INTERPRETER="
|
||||||
|
#$(this-package-input "python")
|
||||||
|
"/bin/python3")
|
||||||
|
(string-append "DESTDIR=" #$output))
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'fix-path
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(substitute* "Makefile.in"
|
||||||
|
(("\\$\\(PYTHONDIR\\)/umu/umu_run.py")
|
||||||
|
(string-append #$output "/lib/python"
|
||||||
|
#$(version-major+minor
|
||||||
|
(package-version (this-package-input "python")))
|
||||||
|
"/site-packages/umu/umu_run.py")))))
|
||||||
|
(replace 'configure
|
||||||
|
(lambda _
|
||||||
|
;; Build complains about no zip before 1980 stamps (even if
|
||||||
|
;; importing and using the ensure-no-mtimes-pre-1980
|
||||||
|
;; phase).
|
||||||
|
(setenv "SOURCE_DATE_EPOCH" "1531865062")
|
||||||
|
(invoke "sh" "configure.sh" (string-append "--prefix=" #$output))))
|
||||||
|
;; Like the Nix packaging done upstream, need to unnest the
|
||||||
|
;; "install."
|
||||||
|
(add-after 'install 'fix-install
|
||||||
|
(lambda _
|
||||||
|
(let ((output-output (string-append #$output "/" #$output))
|
||||||
|
(output-python (string-append #$output "/"
|
||||||
|
#$(this-package-input "python"))))
|
||||||
|
(copy-recursively output-output #$output)
|
||||||
|
(delete-file-recursively output-output)
|
||||||
|
(copy-recursively output-python #$output)
|
||||||
|
(delete-file-recursively output-python))))
|
||||||
|
(add-after 'fix-install 'python-wrap
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let ((python-path (string-append
|
||||||
|
"/lib/python"
|
||||||
|
#$(version-major+minor
|
||||||
|
(package-version (this-package-input "python")))
|
||||||
|
"/site-packages")))
|
||||||
|
(for-each (lambda (prog)
|
||||||
|
(wrap-program (string-append #$output prog)
|
||||||
|
`("GUIX_PYTHONPATH" =
|
||||||
|
(,(string-append (getenv "GUIX_PYTHONPATH")
|
||||||
|
":" #$output python-path)))))
|
||||||
|
(list "/bin/umu-run"
|
||||||
|
(string-append "/share/steam/compatibilitytools.d/"
|
||||||
|
"umu-launcher/umu-run")))))))))
|
||||||
|
(inputs (list bash-minimal python python-filelock python-xlib))
|
||||||
|
(native-inputs (list python-pypa-build
|
||||||
|
python-pypa-installer
|
||||||
|
python-hatchling
|
||||||
|
scdoc))
|
||||||
|
(home-page "https://github.com/Open-Wine-Components/umu-launcher")
|
||||||
|
(synopsis "Unified launcher for Windows games")
|
||||||
|
(description "umu-launcher is a unified launcher for Windows games on Linux. It is
|
||||||
|
essentially a copy of the Steam Runtime Tools and Steam Linux Runtime that
|
||||||
|
Valve uses for Proton, with some modifications made so that it can be used
|
||||||
|
outside of Steam.
|
||||||
|
|
||||||
|
You probably want the umu-launcher-run package to use umu-launcher, as that
|
||||||
|
will run in the nonguix container (like for Steam and Heroic).")
|
||||||
|
(license license:gpl3)))
|
||||||
|
|
||||||
|
(define-public umu-launcher-container
|
||||||
|
(nonguix-container
|
||||||
|
(name "umu-launcher-run")
|
||||||
|
(wrap-package umu-launcher)
|
||||||
|
(run "/bin/umu-run")
|
||||||
|
(ld.so.conf steam-ld.so.conf)
|
||||||
|
(ld.so.cache steam-ld.so.cache)
|
||||||
|
(union64
|
||||||
|
(fhs-union `(,@heroic-extra-client-libs
|
||||||
|
,@steam-container-libs)
|
||||||
|
#:name "fhs-union-64"))
|
||||||
|
(union32
|
||||||
|
(fhs-union steam-container-libs
|
||||||
|
#:name "fhs-union-32"
|
||||||
|
#:system "i686-linux"))
|
||||||
|
(link-files '("share"))
|
||||||
|
(preserved-env '("^GAMEID"))
|
||||||
|
(description "Use this package for the command umu-launcher-run, which
|
||||||
|
runs umu-run in the nonguix container environment. For example, to run a game
|
||||||
|
installed by legendary,
|
||||||
|
|
||||||
|
@example
|
||||||
|
GAMEID=umu-<game> GUIX_SANDBOX_EXTRA_SHARES=/home/<user>/Games guix shell \\
|
||||||
|
legendary umu-launcher-run -- \\
|
||||||
|
legendary launch <game> --no-wine --wrapper umu-launcher-run
|
||||||
|
@end example")))
|
||||||
|
|
||||||
|
(define-public umu-launcher-run (nonguix-container->package umu-launcher-container))
|
||||||
|
|
||||||
(define-public heroic-container
|
(define-public heroic-container
|
||||||
(nonguix-container
|
(nonguix-container
|
||||||
(name "heroic")
|
(name "heroic")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user