Go to file
Solene Rapenne f6c3bc18ff Rework the content order 2021-06-06 17:46:08 +02:00
LICENSE Initial commit 2021-06-06 10:28:49 +00:00
README.md Rework the content order 2021-06-06 17:46:08 +02:00
linux-run Fix an issue passing parameters 2021-06-06 16:56:52 +02:00

README.md

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