https://github.com/appimagecrafters/apprun
AppDir runtime components
https://github.com/appimagecrafters/apprun
appdir appimage apprun execve-hook hooks runtime
Last synced: about 1 month ago
JSON representation
AppDir runtime components
- Host: GitHub
- URL: https://github.com/appimagecrafters/apprun
- Owner: AppImageCrafters
- License: mit
- Created: 2020-04-04T04:00:24.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-06-30T17:14:09.000Z (almost 3 years ago)
- Last Synced: 2025-03-28T04:41:48.374Z (about 2 months ago)
- Topics: appdir, appimage, apprun, execve-hook, hooks, runtime
- Language: C
- Homepage:
- Size: 373 KB
- Stars: 28
- Watchers: 5
- Forks: 10
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://appimage-builder.readthedocs.io/).
## 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
```shell
git clone https://github.com/AppImageCrafters/AppRun.git
mkdir -p AppRun/buildcd AppRun/build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
```## Useful links
- [Usage Instructions](docs/USAGE.md)
- libc switching at runtime
- private environment variables
- path mappings
- [License](LICENSE)