canoeboot build system. https://canoeboot.org/
Leah Rowe 6fbd756f1f klompboot 20240102 | 10 months ago | |
---|---|---|
config | 10 months ago | |
include | 10 months ago | |
script | 10 months ago | |
util | 10 months ago | |
.gitignore | 1 year ago | |
COPYING | 1 year ago | |
README.md | 10 months ago | |
build | 10 months ago | |
projectname | 1 year ago | |
update | 1 year ago |
Software voor de vrijheid!
This version, from the "klompboot" branch of canoeboot, is a special version of Canoeboot. It only builds for x86 machines, and does not have release scripts, so the deblobbing has also been removed. The codename for this version is klompboot. Klompen (plural) are wooden shoes popular in the Netherlands, and the name Canoeboot was coined because boot means boat in Dutch; it was going to be called Kanuboot as a joke, originally, but it was named Canoeboot instead. Then I thought: what might you wear while riding in a canoe?
Klompen enable you to walk, while a canoe will allow you to travel via many of the Netherlands' beautiful rivers. Klompen are nimble footwear, light and simple to use.
Coreboot's own build system skips downloading blobs during checkout, if
you omit the --checkout
argument in git submodule update. Since the release
scripts are not there, the few blobs that coreboot overlooked shouldn't be
a problem for FSF stans. Thus, klompboot could be considered a rolling
release FSDG-aligned coreboot distro. Support for U-Boot and ARM could be
re-added, but the purpose of klompboot was to be small, and most people who
use FSDG coreboot are on GM45 thinkpads or AMD fam15h based boards anyway. The
purpose of klompboot is to be simple. If you want to use the RK3399 machines,
with U-Boot, just use regular Canoeboot or Libreboot. Similarly, the serprog
firmware build scripts have been removed - ditto, use Libreboot/Canoeboot for
these. The purpose of klompboot is to provide an extremely simple build system
for building coreboot images, targeting x86 machines exclusively.
Additionally: CONFIG_USE_BLOBS
is not enabled, on each given mainboard
configuration. Each coreboot tree that would use microcode has been patched,
as in Canoeboot proper, to never attempt adding microcode, even if told to, so
there's no risk of that either (which, if not avoided, would either add them,
or more likely result in a build error since CONFIG_USE_BLOBS
is disabled).
This special branch of Canoeboot was made as part of an experiment, to see how small the build system could become, reducing the functionality so that it is similar to the Libreboot 20220710 build system in function, but with the modern lbmk redesign based on the four lbmk audits of 2023, and with modern code revisions as of January 2024 - so for example, it uses GRUB 2.12.
The reason 20220710 was focused on, for comparison, is that the featureset of
klompboot really is about the same as that; 20230710's release build scripts
were much simpler, about 100 sloc for src
and roms
release scripts. Alas,
Libreboot 20220710's build system was 2117 source lines, versus
klompboot's very tight 803 lines of code, but klompboot is vastly superior
in terms of features and quality (and actually supports 1 additional board
in klompboot, namely the Dell Latitude E6400).
803 code lines, counting build
, script/*/*
and include/*
in
the sloccount
utility by David Wheeler.
By comparison, Canoeboot cbmk is 1127 code lines (in the shell scripts that
make the build system), on the revision that the first klompboot revision
was based on, namely 102ce12cea023783729d6a2cd1576afc95bf7540
.
This version of Canoeboot was made for fun, and will not be used officially, and it should not be used in production.
This readme is licensed under Creative Commons Zero 1.0, which you can find the text of here: https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt
tl;dr klompboot was done for science