summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
12 daysxbmk: reintroduce setvar as newvar (init only)Leah Rowe
use the simpler logic recently introduced, generalised but it only sets variables to empty. this is safer than the previous design, and brings the same reduction in sloccount overall since i wasn't doing anything other than emptying variables anyway, when it was used before. i didn't like the long list of variables inside files, so this makes everything more readable. Signed-off-by: Leah Rowe <leah@libreboot.org>
13 daysinject.sh: simplify xbmkcheck initialisationLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
13 daysinject.sh: re-order variablesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
13 daysinit.sh: much more thorough locale initialisationLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
13 daysupdate header againLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
13 daysxbmk: remove setvars functionLeah Rowe
only one file used it. i've replaced its use with a simple awk call alongside eval. Signed-off-by: Leah Rowe <leah@libreboot.org>
13 daysmk: make it completely genericLeah Rowe
commands now fed from a file, include/common.sh which in turn also includes other lib files this makes mk completely generic, and means that changes will now be completely in sync with cbmk, ensuring a lack of merge conflicts, though the file was already pretty small anyway. Signed-off-by: Leah Rowe <leah@libreboot.org>
13 daysupdate lbmk headersLeah Rowe
i made several modificatinos to several files thus for in 2026, in the main part of the build system. i've added 2026 to the ones that i modified. Signed-off-by: Leah Rowe <leah@libreboot.org>
13 daysmk: generalised dispatch loopLeah Rowe
with this new function, i can turn commands on and off by virtue of config. for now, behaviour is unchanged, but this new design means i will be able to disable certain commands in child processes Signed-off-by: Leah Rowe <leah@libreboot.org>
13 daysRevert "xbmk: general code cleanup"Leah Rowe
This reverts commit 1b65e8914c4ad1e140b573fa6bc8feead14542ad. NOTE: cleanup of xbmk_git_init was retained this "cleanup" actually made the code harder to read. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-09-06include/get.sh: 3-way merge on git amLeah Rowe
this will make managing updates easier. which will be soon, because i have a lot of patches. no idea why i didn't add this before. normally, i just copy a directory and git-fetch, then cherry-pick as i please. this will make it trivial to just update a revision and merge the patches. then i can just intervene only when necessary, on a given src tree. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-07-30xbmk: general code cleanupLeah Rowe
make the code much easier to read i also cleaned up the recent git identity check Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-07-28fix git identity handling in xbmk_git_initZoomm Deka
Signed-off-by: Zoomm Deka <zoomm10@gmail.com>
2026-07-27only disable git check for ./mk -b corebootLeah Rowe
the previous patch was half the battle. now that annoying person who complained on irc should be happy. someone complained about having to enter git name/email when just doing e.g. ./mk inject a valid complaint, but their attitude kinda stunk. oh well. this patch should satisfy them. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-07-27make the bitch on irc happyLeah Rowe
some person complained about this. see diff. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-07-21init.sh: add a throught-provoking TODOLeah Rowe
this will be revisited by October 2026 Leah. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-07-21init.sh: add error check on mkdir in gentoo checkLeah Rowe
yes. i should have reviewed that patch properly. the code should meet lbmk standards now. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-07-21init.sh: fix bad printf string in gentoo checkLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-07-21init.sh: add -p on mkdir command in gentoo checkLeah Rowe
probably redundant, but can't hurt Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-07-21init.sh: double-quote variables in gentoo checkLeah Rowe
yes. silly twit. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-07-21init.sh: fix indentation in gentoo checkLeah Rowe
the submitted messed up indentation, yeah Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-07-21init.sh: add --includes to git config checkLeah Rowe
just to be sure this now matches util/gitconfig/gitconfig.sh in coreboot Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-07-21Merge pull request 'Add Gentoo dependencies.' (#428) from ↵Leah Rowe
lordbaraa/lbmk:add-gentoo-dependencies into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/428
2026-07-21init.sh: Don't check global git configLeah Rowe
Some users have it in a file e.g. inside ~/.gitconfig Those users are currently forced to set git config globally by lbmk. We only need to check that a git config is set, regardless of scope, because coreboot needs it in parts of its build system when used on lbmk. This prevents a pointless error report for users who have their git config on such a scope. Thanks go to Hendrik Jäger for reporting this to me. Yes, thank you. Further context: https://lore.kernel.org/git/20260720113402.0dc16abe@frustcomp.hnjs.home.arpa/T/#u Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-05-10Add portage package useBaraa Al-Masri
2026-04-21use old nvmutil for now, in lbmkLeah Rowe
i'm trying to make nvmutil work on openbsd. the new code in lbutils is a bit buggy, likely somewhere in mkhtemp. i'm still debugging it. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-29Revert "lbmk: use mkhtemp in libreboot's build system"Leah Rowe
This reverts commit e54862fcccca0325da8ae2879c1fa965267d3df0. nope. not ready yet. will fix it later.
2026-03-29lbmk: use mkhtemp in libreboot's build systemLeah Rowe
i added a fake -t option, which doesn't actually read optarg, so that -t usage can just override the normal template. mkhtemp isn't ready for distros yet, but it's ready for lbmk. i hacked the makefile to also copy the binary to mktemp, and i set PATH in lbmk so that this binary is used insttead of the one on your system. that way, upstream projects use it. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26util/mkhtemp: extremely hardened mkhtempLeah Rowe
This will also be used in lbmk itself at some point, which currently just uses regular mktemp, for tmpdir handling during the build process. Renamed util/nvmutil to util/libreboot-utils, which now contains two tools. The new tool, mkhtemp, is a hardened implementation of mktemp, which nvmutil also uses now. Still experimental, but good enough for nvmutil. Mkhtemp attempts to provide TOCTOU resistance on Linux, by using modern features in Linux such as Openat2 (syscall) with O_EXCL and O_TMPFILE, and many various security checks e.g. inode/dev during creation. Checks are done constantly, to try to detect race conditions. The code is very strict about things like sticky bits in world writeable directories, also ownership (it can be made to bar even root access on files and directories it doesn't own). It's a security-first implementation of mktemp, likely even more secure than the OpenBSD mkstemp, but more auditing and testing is needed - more features are also planned, including a compatibility mode to make it also work like traditional mktemp/mkstemp. The intention, once this becomes stable, is that it will become a modern drop-in replacement for mkstemp on Linux and BSD systems. Some legacy code has been removed, and in general cleaned up. I wrote mkhtemp for nvmutil, as part of its atomic write behaviour, but mktemp was the last remaining liability, so I rewrote that too! Docs/manpage/website will be made for mkhtemp once the code is mature. Other changes have also been made. This is from another experimental branch of Libreboot, that I'm pushing early. For example, nvmutil's state machine has been tidied up, moving more logic back into main. Mktemp is historically prone to race conditions, e.g. symlink attacks, directory replacement, remounting during operation, all sorts of things. Mkhtemp has been written to solve, or otherwise mitigate, that problem. Mkhtemp is currently experimental and will require a major cleanup at some point, but it already works well enough, and you can in fact use it; at this time, the -d, -p and -q flags are supported, and you can add a custom template at the end, e.g. mkhtemp -p test -d Eventually, I will make this have complete parity with the GNU and BSD implementations, so that it is fully useable on existing setups, while optionally providing the hardening as well. A lot of code has also been tidied up. I didn't track the changes I made with this one, because it was a major re-write of nvmutil; it is now libreboot-utils, and I will continue to write more programs in here over time. It's basically now a bunch of hardened wrappers around various libc functions, e.g. there is also a secure I/O wrapper for read/write. There is a custom randomisation function, rlong, which simply uses arc4random or getrandom, on BSD and Linux respectively. Efforts are made to make it as reliable as possible, to the extent that it never returns with failure; in the unlikely event that it fails, it aborts. It also sleeps between failure, to mitigate certain DoS attacks. You can just go in util/libreboot-utils and type make, then you will have the nvmutil and mkhtemp binaries, which you can just use. It all works. Everything was massively rewritten. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-08util/nvmutil: call it nvmutil in makefileLeah Rowe
a package manager by the name "nvm" exists, as i discovered. this is a courtesy to them. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-02-22vendor.sh: handle mfs in find_meLeah Rowe
This makes the argument handling easier to understand, since other arguments are also handled in find_me Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-02-22vendor.sh: handle me_cleaner -p separatelyLeah Rowe
this is a special mode that skips FPTR checks, which is needed on the topton x2e_n150 we currently set this, when MEclean="n", but we may want to skip cleaning while still checking FPTR on some boards (in a future lbmk revision) Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-02-22vendor.sh: tidied up mecleaner argument handlingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-02-21get.sh: properly initialise _uaLeah Rowe
it is currently only initialised inside case conditions. this is fine on most shells, but some of them can be a bit buggy here. initialise it empty and then override. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-02-21Add ThinkPad X270 coreboot port from Kat InskipLeah Rowe
Courtesy of Kat Inskip who ported this board. Headphone output doesn't work at the moment, due to incorrect verb. Intel VBT is also wrong. Both are taken from another board. This will be amended later with the correct verb and VBT. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-02-14Add Supermicro X11SSH-F/LN4F portRon Nazarov
Surprisingly, SeaBIOS VGA output works (coreboot documentation says it doesn't). I'm using a static CMOS option table currently (like most other boards supported in libreboot), but maybe it would be better to switch to the CBFS file option table. The default option table enables hyperthreading, overriding the compile-time setting. I'm also using a ME/SPS image extracted from the official BIOS update for this board. Unfortunately, https://www.supermicro.com/Bios/* is excluded from crawlers in robots.txt so it's not in archive.org, so I haven't been able to find a backup download URL. I also needed to set the user-agent for fetching the update to "curl/8.6.0" because the default user-agent override used by lbmk resulted in a 403 error. deguard is not required (there's no bootguard on this board). SPS does not implement CPU replacement detection which means that the MRC cache does not work and RAM training needs to happen on every boot. To avoid this it may be possible to run ME instead of SPS on this board, but I tried both the ME image used on the OptiPlex 3050 Micro in libreboot and one from the ASRock C236 WSI and they both hung at "[INFO ] POST: 0x92" (POSTCODE_FSP_MEMORY_INIT). The memtest86+ build included with libreboot doesn't work with USB keyboards and this board doesn't have a PS/2 port, which is annoying.
2025-12-25inject: fix mac address insertionLeah Rowe
during previous re-factoring, i sorted variable initialisations. that was all well and good, but prior to that, i initialised the new_mac string to empty at first, and then to the "xx" letters; the latter made the first initialisation redundant, but in the re-factoring, I put the blanking of the string afterward. this disabled mac address insertion, because the way the script works is precisely to avoid mac address insertion when the mac string is empty. this is used when running the "nuke" command. silly me. yes, i'm very silly. very very silly. so silly. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-12-24init.sh: Explicitly export UTF-8 localeLeah Rowe
C.UTF-8, instead of just C. This fixes a build issue in GRUB on my Arch Linux test bench. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-11-15tree.sh: tidy up check_gnu_pathLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-11-15lib.sh: reduce indentation in setvarsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-11-15get.sh: reduce indendation in fetch_targetsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-11-15get.sh: reduce indentation in clone_projectLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-11-14WIP: chromebook integration scriptLeah Rowe
I intend to merge every Chromebook that Mrchromebox supports, into Libreboot, ready for the Libreboot 25.12 release. Work is still ongoing, and several changes need to happen in lbmk. I started working on it a few weeks ago (today is 14 November 2025 as I push this). Still TODO: * Automatically create lbmk coreboot targets, based on the configs present in MrChromebox git * Re-work git repository management in lbmk, such that a list of upstreams is used, instead of a hardcoded list per configuration; this will allow us to use different remotes across the same project, even where they diverge. This would then allow us to use the MrChromebook repository directly, instead of cherry-picking patches into upstream coreboot * The note above about remotes would also mean that we can use MrChromebox's own edk2 repository directly. All of this would reduce the burden on lbmk.git * Support building edk2 payloads, exactly mirroring the setups used on MrChromebox builds There are some things that need to be checked first, for boards that use MMC-based or eMMC-based storage, for the GRUB and SeaBIOS payloads, also U-Boot, because I will also be using these. As such, this current script shall sit in lbmk master, but it is not yet finished. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-10-17get.sh: return clone_project if multi-treeLeah Rowe
this is the true fix, replacing the fixes previously reverted. the problem with the old fix was that it was a hack, and could result in the archived backup of a code repo being the wrong one; the destination was the one for the main repo, but what if we were cloning the backup? Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-10-17Revert "get.sh: don't frivolously copy tmp git clones"Leah Rowe
This reverts commit b840cf3a832de815a87d9d10b698eec97aceb342.
2025-10-17Revert "get.sh: remove a redundant check"Leah Rowe
This reverts commit e2a97455cc25921dcb9f5e3a4bf06cdfb3e34b49.
2025-10-17get.sh: remove a redundant checkLeah Rowe
loc is never empty. if it is, it's a bug. don't hide bugs. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-10-17get.sh: don't frivolously copy tmp git clonesLeah Rowe
this fixes a regression in a previous patch, this time also taking account for the different cache locations. all of get.sh needs to be purged, and re-written clean. it looks clean. but it's years of hacks. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-10-17Revert "get.sh: make forcepull a macro"Leah Rowe
This reverts commit b3232a7c4a6466381d798d7beda56fd020d86d54.
2025-10-17get.sh: make forcepull a macroLeah Rowe
: Signed-off-by: Leah Rowe <leah@libreboot.org>