canoeboot build system. https://canoeboot.org/

Leah Rowe 6fbd756f1f klompboot 20240102 11 月之前
config 6fbd756f1f klompboot 20240102 11 月之前
include 6fbd756f1f klompboot 20240102 11 月之前
script 6fbd756f1f klompboot 20240102 11 月之前
util 102ce12cea rebase cbmk 9429287 per lbmk c4d90087..f5b04fa5 11 月之前
.gitignore 6adbc8680f Canoeboot 20231107 release 1 年之前
COPYING 472aa3589b censored libreboot c20230710 1 年之前
README.md 6fbd756f1f klompboot 20240102 11 月之前
build 6fbd756f1f klompboot 20240102 11 月之前
projectname 58ec3ca34f Canoeboot 20231026 release 1 年之前
update 58ec3ca34f Canoeboot 20231026 release 1 年之前

README.md

Klompboot

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.

Ok, what's this about?

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