guix-linux-run/README.md

68 lines
2.4 KiB
Markdown
Raw Normal View History

2021-06-06 10:35:14 +00:00
# Presentation
2021-06-06 10:28:49 +00:00
2021-06-06 10:35:14 +00:00
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.
2021-06-06 15:46:08 +00:00
2021-06-06 10:35:14 +00:00
# Usage
2021-06-06 14:13:18 +00:00
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.
2021-06-06 10:35:14 +00:00
Then to use it, it's as easy as: `linux-run ./some_executable`.
2021-06-06 15:46:08 +00:00
# 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`
2021-06-06 14:13:18 +00:00
# Guix package definition
2021-06-06 10:35:14 +00:00
2021-06-06 14:13:18 +00:00
```
(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)))
```