# 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))) ```