minimal AppImage-like portable packaging system
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tarinstall/PROCESS.md

38 lines
1.6 KiB

4 years ago
# Making a tarinstall
## Detailed creation process
1. A temporary directory is created, from now it will be referred to as `tmp/`
2. Inside `tmp/` the structure is created (`bin/`, `lib/`, `env`, etc.)
3. The file `tmp/id` gets written
4. `tmp/bin/` gets populated with the executables listed in the `deps`
file
5. The binaries inside `tmp/bin/` get read and the list of shared libraries gets
written to `liblist`
6. The `liblist` file gets read and all the necessary libraries get downloaded
and/or copied to `tmp/lib/`, then `liblist` gets deleted
7. The `tmp/env` gets generated
8. The `tmp/man/` and `tmp/ext/` directories get populated with the right files
9. The checksum for the files inside `tmp` gets calculated and written to
4 years ago
`tmp/checksum`
10. The `tmp` directory gets compressed as a tar archive
11. The decompressor and loader programs get applied to the tar archive
12. The archive gets renamed `<id>.ti` and granted executable permission
4 years ago
## The project's root directory structure
The project's root directory has to contain a subdirectory called `tarinstall`
which has to contain the following elements:
- `id` file: contains the id name of the program
- `type` file: contains the type of project
- `deps` file: contains a list of the binary files that the program uses
## Types of project
The `type` file may contain one or more of these option separated by a newline
in order to determine which binaries/libraries to download or copy from the
system and in order to generate the right `env` file.
This requirement may be removed in favour of automatic recognition.
- C (also the option for C++)
- python
- go
- perl