parent
7f342df5d3
commit
f865965e7c
@ -0,0 +1,39 @@ |
|||||||
|
# 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 binaries inside `tmp/bin/` get modified so that their `RPATH` value points |
||||||
|
to `tmp/lib` |
||||||
|
8. The `tmp/env` gets generated |
||||||
|
9. The `tmp/man/` and `tmp/ext/` directories get populated with the right files |
||||||
|
10. The checksum for the files inside `tmp` gets calculated and written to |
||||||
|
`tmp/checksum` |
||||||
|
11. The `tmp` directory gets compressed as a tar archive |
||||||
|
12. The decompressor and loader programs get applied to the tar archive |
||||||
|
13. The archive gets renamed `<id>.ti` and granted executable permission |
||||||
|
|
||||||
|
## 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 |
@ -0,0 +1,11 @@ |
|||||||
|
# Stuff to make |
||||||
|
- simple checksum calculator |
||||||
|
- enter directory |
||||||
|
- checksum of all file |
||||||
|
- write file inside directory |
||||||
|
- simple RPATH changer |
||||||
|
- open file |
||||||
|
- determine type of file, exit if not binary |
||||||
|
- read RPATH section if present |
||||||
|
- modify it with custom path |
||||||
|
- save file |
Loading…
Reference in new issue