2021-02-08 06:23:31 +00:00
|
|
|
<!--
|
|
|
|
SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
|
|
|
|
|
|
|
|
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
|
|
-->
|
|
|
|
|
2021-01-20 01:43:40 +00:00
|
|
|
# Development Guidelines
|
|
|
|
|
|
|
|
## Testing
|
|
|
|
|
|
|
|
Before making a PR, please test your change locally. It is OK to develop outside
|
|
|
|
of the live environment, but please be sure to test inside the live environment
|
|
|
|
and that a full build completes.
|
|
|
|
|
|
|
|
## Structure
|
|
|
|
|
|
|
|
```
|
2023-11-24 03:59:30 +00:00
|
|
|
seed
|
|
|
|
├── seed.kaem
|
|
|
|
├── script-generator.c
|
|
|
|
├── ...
|
|
|
|
└── stage0-posix
|
|
|
|
|
|
|
|
steps
|
|
|
|
├── manifest
|
|
|
|
├── any-global-files
|
|
|
|
├── jump
|
|
|
|
│ └── linux.sh
|
|
|
|
├── improve
|
|
|
|
│ └── x.sh
|
2021-01-20 01:43:40 +00:00
|
|
|
├── somepackage-version
|
2023-11-24 03:59:30 +00:00
|
|
|
│ ├── pass1.kaem
|
|
|
|
│ ├── pass2.sh
|
2021-01-20 01:43:40 +00:00
|
|
|
│ ├── files
|
2023-04-11 07:28:52 +01:00
|
|
|
│ ├── simple-patches
|
2021-01-20 01:43:40 +00:00
|
|
|
│ ├── mk
|
2022-05-21 19:29:55 +01:00
|
|
|
│ └── patches
|
2021-01-20 01:43:40 +00:00
|
|
|
```
|
|
|
|
|
2023-11-24 03:59:30 +00:00
|
|
|
The `seed` directory contains everything required for `script-generator` to be
|
|
|
|
run.
|
2021-02-03 06:02:11 +00:00
|
|
|
|
2023-11-24 03:59:30 +00:00
|
|
|
In the `steps` directory, the bootstrap process is defined in `manifest`.
|
|
|
|
Each package to be built is named `package-version`.
|
|
|
|
Each subsequent build of a package is the nth pass. Scripts are named
|
|
|
|
accordingly; eg, the first build would be called `pass1.sh`, the second would be
|
|
|
|
`pass2.sh`, etc.
|
|
|
|
Scripts run in kaem era should be denoted as such in their filename;
|
|
|
|
`pass1.kaem`, for example. Pass numbers do not reset after kaem, ie, you cannot
|
|
|
|
have both `pass1.kaem` and `pass1.sh`.
|
2021-01-20 01:43:40 +00:00
|
|
|
|
2022-05-21 19:29:55 +01:00
|
|
|
In this folder, there are other folders/files. `*.checksums` are
|
|
|
|
required for early packages that are build with kaem, others are optional.
|
2021-02-14 07:47:21 +00:00
|
|
|
|
2022-05-21 19:29:55 +01:00
|
|
|
Permissible folders/files:
|
2021-01-20 01:43:40 +00:00
|
|
|
|
|
|
|
- `files`: auxiliary files required for the build distributed by live-bootstrap.
|
|
|
|
- `mk`: makefiles.
|
|
|
|
- `patches`: patches for the source.
|
2023-03-31 19:08:50 +01:00
|
|
|
- `simple-patches`: patches for the source that use the before/after convention of simple-patch.c
|
2022-05-20 16:10:20 +01:00
|
|
|
- `*.checksums`: files containing the checksums for the resulting binaries and
|
|
|
|
libraries that are compiled and installed.
|
2023-11-24 03:59:30 +00:00
|
|
|
- Otherwise, the package's checksum is in SHA256SUMS.pkgs.
|
|
|
|
- compilation script(s)
|
2021-02-12 07:20:18 +00:00
|
|
|
|
2021-02-03 06:02:11 +00:00
|
|
|
## Conventions
|
|
|
|
|
|
|
|
- **Patches:**
|
|
|
|
- all patches are `-p0`
|
|
|
|
- all patches begin with a patch header
|
2023-11-24 03:59:30 +00:00
|
|
|
- **parts.rst:**
|
|
|
|
- all packages are explained in `parts.rst`
|
2021-02-03 06:02:11 +00:00
|
|
|
- **General:**
|
|
|
|
- Where possible, all blocks of text should be limited to a length of 80
|
|
|
|
characters.
|
|
|
|
- There is no character limit for code, the reasons for this are two-fold:
|
|
|
|
- Often harms readability.
|
|
|
|
- Often impossible/hard in early bootstrap stages.
|
2021-02-06 23:22:21 +00:00
|
|
|
- **Licensing:**
|
|
|
|
- Generally, the project is licensed under the GNU GPL v3.0 (or any later
|
|
|
|
version).
|
|
|
|
- Documentation is licensed under CC-BY-SA-4.0.
|
|
|
|
- Patches are licensed under the license of the project which they are
|
|
|
|
patching.
|
|
|
|
- All files (excluding files within submodules) must comply with REUSE v3.0.
|