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.
seed
├── seed.kaem
├── script-generator.c
├── ...
└── stage0-posix
steps
├── manifest
├── any-global-files
├── jump
│ └── linux.sh
├── improve
│ └── x.sh
├── somepackage-version
│ ├── pass1.kaem
│ ├── pass2.sh
│ ├── files
│ ├── simple-patches
│ ├── mk
│ └── patches
The seed
directory contains everything required for script-generator
to be
run.
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
.
In this folder, there are other folders/files. *.checksums
are
required for early packages that are build with kaem, others are optional.
Permissible folders/files:
files
: auxiliary files required for the build distributed by live-bootstrap.mk
: makefiles.patches
: patches for the source.simple-patches
: patches for the source that use the before/after convention of simple-patch.c*.checksums
: files containing the checksums for the resulting binaries and libraries that are compiled and installed.- Otherwise, the package's checksum is in SHA256SUMS.pkgs.
- compilation script(s)
- Patches:
- all patches are
-p0
- all patches begin with a patch header
- all patches are
- parts.rst:
- all packages are explained in
parts.rst
- all packages are explained in
- 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.
- 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.