shorten the introduction on audit5

i do waffle on a bit, don't i?

Signed-off-by: Leah Rowe <info@minifree.org>
master
Leah Rowe 2024-06-11 15:29:59 +01:00
parent 592fd5a385
commit 2a116950ed
1 changed files with 14 additions and 63 deletions

View File

@ -17,80 +17,31 @@ what the Libreboot releases are built with. The *lbmk* build system essentially
implements a *coreboot distro*, the same way you might think of a Linux implements a *coreboot distro*, the same way you might think of a Linux
distribution. distribution.
Extensive auditing has been performed on that build system (lbmk) since Extensive auditing has been performed on lbmk, since the Libreboot 20240504
last month's release, the Libreboot 20240504 release. The purpose release. These audits fix bugs, reduce code bloat and generally improve the
of these audits is to fix bugs, reduce code bloat and generally improve efficiency of lbmk, adding and removing features in a careful, conservative
efficiency, adding new features and refining everything in the most careful way, with a focus on *clean code*. Remember the magic words: code equals bugs.
and conservative way possible, with a focus on providing *clean code*. Remember
always, these three magic words: code equals bugs.
This article pertains to the current Libreboot (lbmk) revision at this time This article covers changes from Libreboot 20240504, up to
of writing, which is `2ee186aee3aa3ab9619ed9549bd3b82909dcfbd0` from 9 revision `2ee186aee3aa3ab9619ed9549bd3b82909dcfbd0` from 9 June 2024.
June 2024. A *release* is also being considered for some time in June
of 2024, based on this audit and new features that are planned, plus new
boards. The focus *now*, post-audit, shall be on hardware testing; lots of new
board ports are planned for the next Libreboot release.
There are *211* changes in this audit, relative to Libreboot 20250504 from which You can read about the *previous* audit in the article
the audit immediately started. Vast improvements have been made to the build for [Libreboot Build System Audit 4](audit4.md).
system in terms of reliability, stability and safety; there are many changes,
which will be listed in the following sections.
This is Libreboot Build System Audit **5**. The previous audit can be read in
the article for [Libreboot Build System Audit 4](audit4.md).
All of the following changes, which you are about to learn of, will be included
in the next Libreboot release (after Libreboot 20240504).
Modest code size reduction Modest code size reduction
-------------------------- --------------------------
Code size (of lbmk) is counted by running David A. Wheeler's *sloccount* There are 1482 lines of shell script in the build system, versus 1680 in the
utility, with the following command: `sloccount build script/ include/`. This Libreboot 20240504 release. Libreboot's build system is written purely in
counts the number of *source lines* and, based on this, the code size has been POSIX sh; not BASH, not KSH, not ZSH, jush sh!
reduced by *198 lines*.
The build system is vastly more efficient, with the shell scripts now counting This is a difference of 198 lines, or a 12% reduction. Despite the reduction,
at *1482 lines* of shell script, down from *1680 lines* in Libreboot 20240504. numerous features have been added and a large number of bugs were fixed.
This represents an approximate *12% reduction* in code size.
Shell scripts?? Libreboot's build system is implemented *entirely* with POSIX
compliant shell scripts. Not BASH, not ZSH, not KSH, just good old `sh`. You
can read more about it in the [lbmk maintenance manual](../docs/maintain/).
Libreboot's build system, lbmk, is essentially a *source-based package manager*
which downloads, patches and builds various sources, to then automatically
provide binary images for easy installation. This is how Libreboot releases are
made, so it goes without saying: lbmk is the beating heart of Libreboot.
Despite this reduction by 198 lines, there are *many* new features. Line for
line, lbmk is now much more powerful. NOTE: there are changes between *audit 4*
and Libreboot 20240504, but those are covered in the release announcements for
Libreboot 20240126, 20240225 and 20240504.
That code reduction may seem impressive, or maybe small; now you will see all
of the changes that yielded this result. It's a lot!
Summarised list of changes Summarised list of changes
========================== ==========================
Together, all of these changes are substantial, but the most interesting and Changes are in order per category, from newest to oldest:
useful changes are highlighted in **bold**.
These and subsequent changes will be present in the *next Libreboot release*,
after Libreboot 20240504, but they can already be obtained now, if you compile
Libreboot [from source via lbmk.git](../docs/build/).
Not all of these are actually audit-related, but are still nice changes, and
will be included in the release changelog, for the next release
after Libreboot 20240504. The changes are, from newest to oldest:
NOTE: The changes *per category* are in order from latest on top, and earliest
changes on the bottom, but if you're reading top down (in this article), please
note that the changes between categories are *not* in order.
For the purpose of this article, I've split the changes into different
categories e.g. bugfixes, general code cleanup, features and so on.
Feature changes Feature changes
--------------- ---------------