summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
32 hourscoreboot/default: Remove unneeded FSP modulesLeah Rowe
We only need the Kabylake version. We can safely remove the other ones, thereby significantly reducing the size of the lbmk release archive. Signed-off-by: Leah Rowe <leah@libreboot.org>
33 hoursget.sh: Always update git remotesLeah Rowe
Right now, if cache/clone/PROJECT/ already exists, the logic for pulling new changes doesn't execute, and neither does the logic for updating remotes. This is bad when updating revisions, because then manual updating is required, defeating the purpose of xbmk's own automation in this regard. Fix it by only checking the cached download on files, not Git repositories; the try_git function itself will already perform this check, before updating remotes and pulling in new commits from upstream. The updating only happens when a given target directory doesn't exist, e.g. src/flashprog/ or src/grub/default/, so this won't slow down release builds for example. Signed-off-by: Leah Rowe <leah@libreboot.org>
34 hoursget.sh: re-generate remotes every timeLeah Rowe
that way, when a remote changes in config/, it will be updated automatically, without user intervention. Signed-off-by: Leah Rowe <leah@libreboot.org>
34 hoursrelease.sh: copy version files to rsrcLeah Rowe
Otherwise, an "unknown" version number is created. This regression was caused by the recent optimisation that reduces the amount of extra work done by init.sh on child instances of xbmk. As a result of those changes, now release.sh has to do some minor initialisation of its own, such as this. Signed-off-by: Leah Rowe <leah@libreboot.org>
34 hoursxbmk: add fake config makefile args to flashprogLeah Rowe
also pcsx-redux this way, commands like "./mk -u" without argument will not fail. these fake makefile commands do nothing. otherwise, an error errors because their makefiles do not define these options. Signed-off-by: Leah Rowe <leah@libreboot.org>
35 hoursvendor.sh: add colon at the end of a for loopLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
44 hoursrom.sh: skip copyps1bios on dry buildsLeah Rowe
otherwise, ./mk -d (without arguments) will fail. Signed-off-by: Leah Rowe <leah@libreboot.org>
45 hourstree.sh: Don't run make-clean on dry runsLeah Rowe
Otherwise, ./mk -d (without arguments) fails for GRUB, which first requires running autoconf to get a Makefile. Signed-off-by: Leah Rowe <leah@libreboot.org>
2 daysGRUB: Update to revision 73d1c959e (14 March 2025)Leah Rowe
This brings in several changes from upstream: * 73d1c959e cryptocheck: Add --quiet option * dbc0eb5bd disk/cryptodisk: Wipe the passphrase from memory * 301b4ef25 disk/cryptodisk: Add the "erase secrets" function * 23ec4535f docs: Document available crypto disks checks * 10d778c4b commands/search: Add the diskfilter support * 7a584fbde disk/diskfilter: Introduce the "cryptocheck" command * ed691c0e0 commands/search: Introduce the --cryptodisk-only argument * c448f511e kern/rescue_reader: Block the rescue mode until the CLI authentication * 4abac0ad5 fs/xfs: Fix large extent counters incompat feature support This commit is of particular interest: * dbc0eb5bd disk/cryptodisk: Wipe the passphrase from memory Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysRevert "vendor.sh: optimise find_me()"Leah Rowe
This reverts commit fb7aaa78bb080a473bdf0edf449bf08045e8366c. it caused a few issues. will re-do later the old code isn't really broken, just inefficient, because several files are scanned twice, but in practise the overhead isn't that great The error occurs sometimes, when bruteforcing me.bin: ERROR ./mk: Unhandled error for: mv /home/user/lbmk/tmp/me.bin /home/user/lbmk/cache/tmpdl/check This revert should fix the issue, for now.
4 daysvendor.sh: optimise find_me()Leah Rowe
i'm adding characters to 7ztest, which isn't being passed on through because everything runs in subshells; the next pass would default back to the original string, so a given file may be checked multiple times. fix this by mitigation; use the random string from mktemp as a suffix instead. in practice, this has not affected performance much, but it will nevertheless avoid unnecessary work by xbmk. Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysget.sh: add missing check in fetch_project()Leah Rowe
we check the main url, but not backup urls. this patch fixes that oversight. Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysget.sh: stricter URL check in xbmkget()Leah Rowe
don't skip if the URL is empty. throw an error instead. i decree that all links must be properly initialised, because that is the design of lbmk. where only one link is provided, such as in a local copy operation, the second would succeed no better than the first so two identical paths are given. Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysget.sh: make xbmkget() easier to understandLeah Rowe
the intent once again is that this for loop shall return, with zero status, if success is observed. otherwise, the loop breaks and an error is thrown. Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysget.sh: Make xbmkget err on exiting the loop checkLeah Rowe
The idea in this function is that if a file or repo is successfully handled, a return will be performed from the loop. If the loop exits for any reason, an error is thrown. The current code is probably fine, but I can forsee future modifications possibly causing bugs here. Make it unambiguous, by always throwing an error if execution reaches the end of the function. Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daystree.sh: fix up copy_elf(), bad for loopLeah Rowe
Because of how sh works, having just the [] line causes sh to exit, annoyingly without an error message, but it does cause a non-zero exit. This bug will have already been triggering, before I added the recent error handling on files for this for loop. also do it to the other loop in lib.sh Signed-off-by: Leah Rowe <leah@libreboot.org>
4 dayslib.sh: Use while, not for, to process argumentsLeah Rowe
This is more reliable against globbing, in context of for. Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysxbmk: stricter handling of files on while loopsLeah Rowe
i overlooked these! Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysinit.sh: looser XBMK_THREADS validationLeah Rowe
on child processes, we can simply correct it. we currently provide an error message, but this is silly. Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysinit.sh: Hardcode XBMK_CACHE for integrityLeah Rowe
I never really intended for this to be configurable, but the cache directory is also used during release builds. There's too much that can go wrong, letting the user decide where their cache is. Simplify it by hardcoding. Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysdependencies/debian: add libx86Leah Rowe
already present on a few other config files, e.g. arch i noticed on debian-experimental that i needed to explicitly install it, whereas it was implicitly installed on debian 12 Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: merge xbmk_lock() with xbmk_set_env()Leah Rowe
it's just two lines, and we want much more granular control of where the lock is enforced. it should be JUST after confirming that the instance is a parent. it is at this moment that we should bail if a lock file exists, because this signals that another instance of xbmk is running. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: move xbmk_set_versionLeah Rowe
it's called before set_pyver, so move it above that Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: set pyver from set_envLeah Rowe
it's related to this function, no point calling from main Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: merge xbmk_mkdirs with set_envLeah Rowe
it's just two lines, and they relate. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: check version/versiondate once readLeah Rowe
once again, we are being stricter in child instances. we must ensure that these variables are set by xbmk. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: error if version not readLeah Rowe
we no longer rely on the .git version being read by child instances, so we MUST ensure that it is being read. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: only update version files on parentLeah Rowe
don't update them on child instances, since it's a waste of time; the lock file prevents further execution, so we are just wasting time writing to disk. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: simplify unknown version creationLeah Rowe
we don't need to read or write a file at all, in that case. we only then need to generate one if running ./mk release. the scenario in which no .git and no version files exist is when someone grabs the build system from a snapshot generated by e.g. forgejo instances. it's ill advised, so we advise against it, but it is mitigated in code. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: only set xbmk version on parent instanceLeah Rowe
On child instances, we need only read. Apply the principle of least privilege. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: initialise variables AFTER pathLeah Rowe
That way, unnecessary work is avoided on child instances. Of course, the current check assumes that TMPDIR wasn't already set by a wily user before running lbmk, but then those sorts of users probably know what they're doing. If they don't know, they will soon find out. Therefore, I have added additional checks on child instances, preventing the build system from running if XBMK_CACHE is not set; if it isn't, then that could very easy lead to certain system files being overwritten. The user must never know what happens if XBMK_CACHE is unset. We simply will not allow it. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: merge create_pathdirs with set_pyverLeah Rowe
all this function does now is create the python symlink, based on work that was already performed in set_pyver Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: Set python version only on parentLeah Rowe
Do it after the creation of xbmkpath. This avoids performing an unnecessary check, since PATH will have already been corrected for child instances; Python will already be correct there. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: remove useless commandLeah Rowe
we mkdir -p xbmklocal, only to remkdir it immediately afterward, which is the intended behaviour; on parent instances, xbmklocal is to be re-created fresh. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: remove useless commentLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: xbmk_create_tmpdir to xbmk_mkdirsLeah Rowe
this function now simply creates directories that lbmk will use, rather than creating specific directories. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: move gnupath creation to create_tmpdirLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: move PATH init to set_envLeah Rowe
we must only set this in the parent instance, not child instances. this prevents the variable from being over-populated with repeated entries. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: check the lock file BEFORE git initLeah Rowe
this way, initialisation will not be performed erroneously while another parent instance of lbmk is running. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinit.sh: return from child in set_env insteadLeah Rowe
This is earlier than the current check, thus preventing the initialisation of a git repository and/or the recreation of xbmktmp and xbmklocal by erroneous parent executions of lbmk while another parent is running - the latter of which could have caused a massively unpredictable build failure, so this is also a pre-emptive bug fix, fixing all kinds of weird bugs. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysinject.sh: shorten the nukemode variable nameLeah Rowe
just call it "nuke". this is what tells whether to remove vendor files from an archive. Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysvendor.sh: simplify mksha512sum()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysvendor.sh: Remove _dest if it's badLeah Rowe
Also, provide more ample warning to the user Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysrelease.sh: rename relsrc to rsrcLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
5 daysrelease.sh: tidy up nuke()Leah Rowe
i wasn't ok having that variable initialisation and then the commands on the same line. it looks messy. having the commands on a separate line makes the code nice to read, so let's separate them. Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysget.sh: remove useless messageLeah Rowe
the user doesn't care where the temporary git repo is git shows that information anyway, in the git clone command Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysget.sh: simplify bad_checksum()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysrelease.sh: simplify nuke() EVEN MORE, yet againLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysrelease.sh: use x_ on find command for nuke()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysrelease.sh: simplify nuke() EVEN MORELeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>