Skip to content

Latest commit

 

History

History
52 lines (36 loc) · 1.42 KB

README.md

File metadata and controls

52 lines (36 loc) · 1.42 KB

AppRun

A framework to create portable application bundles to be used on GNU/Linux systems

NOTE: If you're planing to pack your application as an AppImage please use appimage-builder.

Motivation

To make an application bundle that could be used on different GNU/Linux systems the packager must face different challenges which include:

  • absence of forward compatibility in libraries loaded from the system (i.e.: libc),
  • absolute interpreter paths in scripts shebang and elf executables,
  • application specific environment variables,
  • and fixed paths in binaries.

We aim to provide an effective solution for those problems.

Features

  • Forward and backward compatible bundles.
  • Private environment variables setup.
  • Private interpreters.
  • Path mappings (override paths in binaries).

Todo

  • Support libstdc++ runtime switching

Limitations

  • Don't work on statically linked executable (those are portable anyway).
  • Execution flow should not leave the bundle to ensure the private environment is preserved.
  • Path mappings only work on a hooked libc functions

Setup

git clone https://github.com/AppImageCrafters/AppRun.git
mkdir -p AppRun/build

cd AppRun/build
cmake .. -DCMAKE_BUILD_TYPE=Release
make

Useful links