libreboot / lbwww (public) (License: Unspecified) (since 2023-04-11) (hash sha1)
libreboot website (markdown files). https://libreboot.org/
List of commits:
Subject Hash Author Date (UTC)
shorten the introduction on audit5 2a116950ed5f49ef97f18772d8eb2ef90efb4abe Leah Rowe 2024-06-11 14:29:59
correction 592fd5a38524e6abb39aad1f2a0013a57091c1e0 Leah Rowe 2024-06-10 10:12:44
Libreboot Build System Audit 5 38539e9feab75797bf31819b7fd70a475076a7a4 Leah Rowe 2024-06-09 23:30:10
update 2 (to make certain things make sense) 557921522a72f08587daaac5362c4805c8979c51 Leah Rowe 2024-06-09 22:09:09
update 6b95fd6afd25cf7fdc4b473295fd3187f048aecf Leah Rowe 2024-06-09 22:03:39
remove completed tasks 99728a5cef9b3f5f324361616da3c1a390fea0cb Leah Rowe 2024-06-09 15:26:44
remove superfluous article eb5f72881cb3a29952bc68ff399cb63b8ed6fd14 Leah Rowe 2024-06-05 12:57:28
misc/emulation: fix image path d68baade32d6f2c5e9ccdd21c9da210dde7f5940 Leah Rowe 2024-06-02 18:18:11
Update site/docs/hardware/dell9020.md 6fa59464fadbdd620d91468084c0bb92426d0e2e Gusher_123 2024-05-31 18:46:58
Update site/news/safety.md 94c1e51ce3b746e1356143434176f27c8e66cf3c Gusher_123 2024-05-31 18:33:39
Update site/docs/hardware/dell9020.md e4823653c6fbc7fe6b4ed9c0d54c0dddd6472fc9 Gusher_123 2024-05-31 18:26:32
remove obsolete information e27edff3877dc30b5c3d0b3a323f5136ac150d45 Leah Rowe 2024-05-28 18:04:32
Update site/docs/hardware/ga-g41m-es2l.md da2ec62369472714c18949ed5bea6dee04be6fef chrislogan2 2024-05-28 00:56:26
update 89868f9fa969cae2420581d45e5294b0444b4f6c Leah Rowe 2024-05-27 23:46:58
update ec4e4007fa874a7377005b171cf6a8b1a0c40c3c Leah Rowe 2024-05-27 23:07:53
don't demote the other safety warning 1930325800b0d457867e4b31d3716f1b6480a944 Leah Rowe 2024-05-27 11:09:06
grub payload warning 040249ca742becbbbf9f3cd4cf4e6e7a0ac1ff9e Leah Rowe 2024-05-27 11:02:37
put cc0 on site.cfg 1ea2893e03bb863485bdd3edb39f01af5de589cc Leah Rowe 2024-05-27 07:42:55
update docs/maintain/ b2b2b7a95698b1591b3fa945a27aefdca60f82eb Leah Rowe 2024-05-26 14:39:50
add missing parenthese 91e4e3974aece4a24d142c1300b3d43cceacb60e sertonix 2024-05-23 18:30:45
Commit 2a116950ed5f49ef97f18772d8eb2ef90efb4abe - shorten the introduction on audit5
i do waffle on a bit, don't i?

Signed-off-by: Leah Rowe <info@minifree.org>
Author: Leah Rowe
Author date (UTC): 2024-06-11 14:29
Committer name: Leah Rowe
Committer date (UTC): 2024-06-11 14:29
Parent(s): 592fd5a38524e6abb39aad1f2a0013a57091c1e0
Signer:
Signing key:
Signing status: N
Tree: 31af3b547b8535c3c4da46e95e932abf67d86529
File Lines added Lines deleted
site/news/audit5.md 16 65
File site/news/audit5.md changed (mode: 100644) (index 66a40e7..29effdf)
... ... what the Libreboot releases are built with. The *lbmk* build system essentially
17 17 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
18 18 distribution. distribution.
19 19
20 Extensive auditing has been performed on that build system (lbmk) since
21 last month's release, the Libreboot 20240504 release. The purpose
22 of these audits is to fix bugs, reduce code bloat and generally improve
23 efficiency, adding new features and refining everything in the most careful
24 and conservative way possible, with a focus on providing *clean code*. Remember
25 always, these three magic words: code equals bugs.
26
27 This article pertains to the current Libreboot (lbmk) revision at this time
28 of writing, which is `2ee186aee3aa3ab9619ed9549bd3b82909dcfbd0` from 9
29 June 2024. A *release* is also being considered for some time in June
30 of 2024, based on this audit and new features that are planned, plus new
31 boards. The focus *now*, post-audit, shall be on hardware testing; lots of new
32 board ports are planned for the next Libreboot release.
33
34 There are *211* changes in this audit, relative to Libreboot 20250504 from which
35 the audit immediately started. Vast improvements have been made to the build
36 system in terms of reliability, stability and safety; there are many changes,
37 which will be listed in the following sections.
38
39 This is Libreboot Build System Audit **5**. The previous audit can be read in
40 the article for [Libreboot Build System Audit 4](audit4.md).
41
42 All of the following changes, which you are about to learn of, will be included
43 in the next Libreboot release (after Libreboot 20240504).
20 Extensive auditing has been performed on lbmk, since the Libreboot 20240504
21 release. These audits fix bugs, reduce code bloat and generally improve the
22 efficiency of lbmk, adding and removing features in a careful, conservative
23 way, with a focus on *clean code*. Remember the magic words: code equals bugs.
44 24
45 Modest code size reduction
46 --------------------------
47
48 Code size (of lbmk) is counted by running David A. Wheeler's *sloccount*
49 utility, with the following command: `sloccount build script/ include/`. This
50 counts the number of *source lines* and, based on this, the code size has been
51 reduced by *198 lines*.
25 This article covers changes from Libreboot 20240504, up to
26 revision `2ee186aee3aa3ab9619ed9549bd3b82909dcfbd0` from 9 June 2024.
52 27
53 The build system is vastly more efficient, with the shell scripts now counting
54 at *1482 lines* of shell script, down from *1680 lines* in Libreboot 20240504.
55 This represents an approximate *12% reduction* in code size.
28 You can read about the *previous* audit in the article
29 for [Libreboot Build System Audit 4](audit4.md).
56 30
57 Shell scripts?? Libreboot's build system is implemented *entirely* with POSIX
58 compliant shell scripts. Not BASH, not ZSH, not KSH, just good old `sh`. You
59 can read more about it in the [lbmk maintenance manual](../docs/maintain/).
60
61 Libreboot's build system, lbmk, is essentially a *source-based package manager*
62 which downloads, patches and builds various sources, to then automatically
63 provide binary images for easy installation. This is how Libreboot releases are
64 made, so it goes without saying: lbmk is the beating heart of Libreboot.
31 Modest code size reduction
32 --------------------------
65 33
66 Despite this reduction by 198 lines, there are *many* new features. Line for
67 line, lbmk is now much more powerful. NOTE: there are changes between *audit 4*
68 and Libreboot 20240504, but those are covered in the release announcements for
69 Libreboot 20240126, 20240225 and 20240504.
34 There are 1482 lines of shell script in the build system, versus 1680 in the
35 Libreboot 20240504 release. Libreboot's build system is written purely in
36 POSIX sh; not BASH, not KSH, not ZSH, jush sh!
70 37
71 That code reduction may seem impressive, or maybe small; now you will see all
72 of the changes that yielded this result. It's a lot!
38 This is a difference of 198 lines, or a 12% reduction. Despite the reduction,
39 numerous features have been added and a large number of bugs were fixed.
73 40
74 41 Summarised list of changes Summarised list of changes
75 42 ========================== ==========================
76 43
77 Together, all of these changes are substantial, but the most interesting and
78 useful changes are highlighted in **bold**.
79
80 These and subsequent changes will be present in the *next Libreboot release*,
81 after Libreboot 20240504, but they can already be obtained now, if you compile
82 Libreboot [from source via lbmk.git](../docs/build/).
83
84 Not all of these are actually audit-related, but are still nice changes, and
85 will be included in the release changelog, for the next release
86 after Libreboot 20240504. The changes are, from newest to oldest:
87
88 NOTE: The changes *per category* are in order from latest on top, and earliest
89 changes on the bottom, but if you're reading top down (in this article), please
90 note that the changes between categories are *not* in order.
91
92 For the purpose of this article, I've split the changes into different
93 categories e.g. bugfixes, general code cleanup, features and so on.
44 Changes are in order per category, from newest to oldest:
94 45
95 46 Feature changes Feature changes
96 47 --------------- ---------------
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/libreboot/lbwww

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/libreboot/lbwww

Clone this repository using git:
git clone git://git.rocketgit.com/user/libreboot/lbwww

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main