68 lines
2.4 KiB
Markdown
68 lines
2.4 KiB
Markdown
# Presentation
|
|
|
|
This tool is a simple wrapper that help running Linux binaries on Guix because otherwise you can't easily execute a binary that doesn't come from the system itself.
|
|
|
|
This is inspired by the [steam-run](https://nixos.wiki/wiki/Steam#steam-run) wrapper available on NixOS, which is not related to Steam because it's used to run any Linux binary.
|
|
|
|
|
|
# Usage
|
|
|
|
You need to have to following packages installed to make it work: `gcc-objc++:lib gtk+` but this may depend on what you are running.
|
|
|
|
Then to use it, it's as easy as: `linux-run ./some_executable`.
|
|
|
|
|
|
# Compatibility
|
|
|
|
I tried a few programs to see if it was working fine.
|
|
|
|
## Known to work
|
|
|
|
- game Steam Marines 2 (itch.io)
|
|
- game Frick (itch.io)
|
|
- game Depth of Extinction (itch.io)
|
|
- game Nowhere Prophet (GOG)
|
|
|
|
|
|
## Doesn't work
|
|
|
|
- software Firefox: `couldn't load XPCOM`
|
|
- software Deltachat AppImage: `error while loading shared libraries: ./DeltaChat-1.20.2.AppImage: ELF file ABI version invalid`
|
|
- game Mewnbase: guix lacks `lwjgl`
|
|
- game Midboss: `monoconfig not found!`
|
|
- game FTL: because they provide x86 binary only
|
|
- game Barony: `error while loading shared libraries: libGLU.so.1: cannot open shared object file: No such file or directory`
|
|
- game Into the breach: `error while loading shared libraries: libfmodstudio.so.10: cannot open shared object file: No such file or directory`
|
|
- game Torchlight 2: `error while loading shared libraries: libuuid.so.1: cannot open shared object file: No such file or directory`
|
|
|
|
|
|
# Guix package definition
|
|
|
|
```
|
|
(define-public linux-run
|
|
(package
|
|
(name "linux-run")
|
|
(version "1.0.0")
|
|
(source (origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://tildegit.org/solene/guix-linux-run")
|
|
(commit version)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"0prh4i68xw6r8vkzz3g7njfgsj32i1viw17rbrhds25dr64zi070"))))
|
|
(build-system copy-build-system)
|
|
(arguments
|
|
'(#:install-plan
|
|
'(("linux-run" "bin/"))))
|
|
(propagated-inputs
|
|
`(("gtk+" ,gtk+)
|
|
("gcc-objc++:lib" ,gcc-objc++ "lib")))
|
|
(home-page "https://tildegit.org/solene/guix-linux-run")
|
|
(synopsis "Wrapper to run Linux binaries that are not from Guix")
|
|
(description "This package provides a shell wrapper that will redefine
|
|
the environment to use Guix libraries for running a Linux binary.")
|
|
(license license:bsd-2)))
|
|
```
|