Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/AppImageCrafters/AppRun
AppDir runtime components
https://github.com/AppImageCrafters/AppRun
appdir appimage apprun execve-hook hooks runtime
Last synced: 2 months 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 (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-06-30T17:14:09.000Z (over 2 years ago)
- Last Synced: 2024-11-16T04:50:20.258Z (3 months ago)
- Topics: appdir, appimage, apprun, execve-hook, hooks, runtime
- Language: C
- Homepage:
- Size: 373 KB
- Stars: 27
- Watchers: 6
- Forks: 10
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - AppImageCrafters/AppRun - AppDir runtime components (others)
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)