initiated commitment

Alessandro Mauri 4 years ago
commit c8ebdfac8f
  1. 56

@ -0,0 +1,56 @@
# tarinstall
An alternative to AppImages, flatpacks and snaps to let the user install an
application as a single executable file when static linking is not possible
tarinstall does not include any external files as such it does not include
any man pages, example configuration files, etc. All of those have to be
installed separately.
## Graph
An application packaged as a tarinstall is made as such
----- Decompressor -----
| |
| |
|------- Loader -------|
| |
| |
|----- App Tarball ----|
| |
| app/ |
| lib/ |
| start |
| env |
| |
Decompressor: It decompresses the archive and then runs the loader
Loader: It reads the `env` file in the tarball and enumerates the `lib/`
directory to loads all the necessary libraries and sets the correct environment
before executing the `start` script in the `app/` directory
- Find a way to include external files
- Include a package manager
- App binary diffs for incremental upgrades
- Automated tarinstall packaging for developers
- Package manager for shared objects (libraries)
- Standardized way to define dependencies
## Experimental optional components in App Tarball
`ext/` directory: it includes all of the external files that have to be installed
upon running the application for the first time
`deps` file: lists all the required dependencies and their version to allow for
an empty `lib/` directory at first start, all the dependencies can be downloaded
upon running the application for the first time. It can also be used when
packaging the tarinstall to automatically download the dependencies.
## Advantages
- Allows for application compression
- Simpler and configyred in plaintext
- Does not include any external dependencies other than optional ones
- It can be used alongside other package managers and package formats