summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2025-04-26init.sh: split xbmk_child_init into functionsLeah Rowe
one function, for one task. skeleton functions for performing multiple tasks. that is the basic coding style guideline for lbmk. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26init.sh: move parent fork to new functionLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26init.sh: Provide more complete error infoLeah Rowe
On initialisation of the child instance, ./mk is executed, but an error from it won't reveal what command was actually executed. This change makes that the case, since x_ does print the command that caused an error. This is useful for debugging. However, we don't want x_ to cause a real exit, because we still need to handle the lock file from the parent instance. Therefore, the first child instance is executed inside a subshell, and xbmk_rval is set if that subshell returns non-zero. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26rename include/vendor.sh to inject.shLeah Rowe
this matches cbmk, where inject.sh is the file name this will make future cherry-picks of lbmk->cbmk easier Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26lib.sh: move _ua to the xbmkget functionLeah Rowe
don't declare it globally, because it's only used here Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26move variables out of init.sh to othersLeah Rowe
move them where they are used, or if they are used in many places, move them to lib.sh Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26lib.sh: rename vendor_checksumLeah Rowe
rename it to bad_checksum, so that its use makes more sense Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26lib.sh: move singletree() to git.shLeah Rowe
it is primarily used there, and then in mk, but only after git.sh is sourced. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26lib.sh: move cbfs() to rom.shLeah Rowe
it is only ever used there, so move it there Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26re-split include/init.sh to lib.shLeah Rowe
move non-init functions to lib.sh Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26rename include/lib.sh to init.shLeah Rowe
this is in prep for the next change, where non-init functions will be moved to another file, again named include/lib.sh Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26lib.sh: introduce more top-down function orderLeah Rowe
a lot of init code was handled outside of any function. the coding style used in the rest of the build system has now been introduced, with xbmk_init being the main function. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26mk/git.sh: remove tree_depend variableLeah Rowe
this was used alongside the xgcc linking, so that coreboot trees could specify that another tree was to be downloaded. since this variable will no longer be used, it should be removed, to avoid dead code bloat. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26git.sh: remove unused xgcc linking featureLeah Rowe
the "xtree" variable is used by projects such as u-boot, to export a CROSS_COMPILE variable specifying prefix for gnu compilers, and for building the named coreboot tree. for example, xtree can be "default", which is then the coreboot tree downloaded, for use of crossgcc. however, it is also used to symlink identical versions of crossgcc between coreboot trees. this latter feature was only needed for fam15h boards which were previously split between two mostly identical coreboot trees, that were later merged into a single tree, and this feature is therefore no longer used. remove this dead code, to reduce bloat in the build system. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26mk: simplify main()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26lib.sh: use realpath to get sys python on venvLeah Rowe
In the previous revision, I make hardcoded use of /usr/local/bin and /usr/bin as search locations, instead of relying on PATH, when the user has a python venv, because in those cases, we cannot rely on PATH so we use a python command to detect the venv and then force use of the normal system path for python. However, there's no guarantee that the real Python will indeed live at these locations. For example, some distros like Nix or Guix will use many locations for different versions of a given package, and it's for the birds as to what given package version the user might be running. Therefore, this patch retains that current hardcoded assumption of /usr/local/bin and /usr/bin but *only* as a fallback solution, instead checking realpath first. The "realpath" command isn't technically POSIX standard, but in practise it is available on GNU coreutils, Busybox, and the various BSD userlands. I could perhaps *import* a realpath utility, and use that, but this should be fine. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-26lib.sh: Force use of System Python to prevent hangLeah Rowe
If the user has a virtual environment, the current logic will cause lbmk to hang. A useful workaround is to force use of the direct path to the system binary of python. This works by detecting a virtual environment first, and deferring to the old behaviour if no venv is found. If one is found, then it will not rely on PATH, but instead only search the standard locations /usr/local/bin and /usr/bin. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-23lib.sh: further condense the python checkLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-23lib.sh: further simplify the python checkLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-23lib.sh: condense the python checkLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-23lib.sh: simplify mk()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-23lib.sh: simplify cbfs()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-23lib.sh: simplify the python checkLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-22lib.sh: add missing copyright yearLeah Rowe
alper made a fix to this file a few hours ago, but forgot to update the copyright header i'm doing it for alper, as a courtesy Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-21lib.sh: Fix python3 detection when 'python' is python2Alper Nebi Yasak
Properly set $pyver to "3" when we detect we can use python3. In the following version checks, use the $python we detected instead of a 'python' from PATH because the latter might be a python2 while still co-existing with a python3. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2025-04-18Revert "git.sh: minor cleanup"Leah Rowe
This reverts commit e63d8dd20d99ec18ef03699516fd800a81b7f1df.
2025-04-18lib.sh: perform root check even earlierLeah Rowe
initialising variables, setting PWD, setting version, this is all unnecessary before the root check, because the dependencies commands use none of these. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-18lib.sh: tidy up opening logic (put it together)Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-18lib.sh: do root check before python checkLeah Rowe
we don't need python before the root check principle of least privilege Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-18git.sh: minor cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-18lib.sh: simplify mktarball()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-18vendor.sh: tidy up vendor_download()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-18lib.sh: fix missing s/TMPDIR/xbmktmpLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17lbmk: don't handle TMPDIR directlyLeah Rowe
lbmk creates TMPDIR as /tmp/xbmk_*, but it's theoretically possible that something could re-export it by mistake. this change retains the same initialisation, but further use is now via a new variable "xbmktmp", that stores the value of TMPDIR upon lbmk's initialisation of it. this reduces the chance of such a bug in the future, as described above, so it is a preemptive/preventative fix. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17rom.sh: minor cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17vendor.sh: yet even more code cleanupLeah Rowe
code equals bugs. code that doesn't exist can't have bugs, so it is superior by definition. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17vendor.sh: even more cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17vendor.sh: more cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17vendor.sh: minor cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17vendor.sh: simplify process_release_romsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17vendor.sh: remove unnecessary checkLeah Rowe
the next part checks whether the file is below 512k, so there's no point checking if it's below 2, because the lowest a file size can be is zero, and expr will produce a result of -1 if decrementing from zero. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17git.sh: remove unnecessary commentLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17git.sh: remove link_crossgcc()Leah Rowe
merge it with git_prep Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17git.sh: remove move_repo()Leah Rowe
merge it with git_prep, since it's only a small function and only called from there. the merged code still makes sense and its purpose is still quite clear on casual reading. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17git.sh: remove prep_submodule()Leah Rowe
merge it with git_prep, since it's only a tiny function and only called from there. the for loop moved to the if block still makes sense on casual reading. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17git.sh: make git_prep command clearerLeah Rowe
the "u" argument can actually be any thing. git_prep handles git submodules only for single-tree projects, under any candition, or on multi-tree projects if the number of arguments to git_prep is above four. "u" is the 5th argument, meant to enable submodule downloads. it really doesn't matter what this string says, so let's just make it as clear as possible. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17mrc.sh: Make proper use of variable inside printfLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17simplify a few file checksLeah Rowe
the combination of x_ with the "e" function enables for much simpler file-check error handling, which is a unique innovation of lbmk as it pertains to sh. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17rom.sh: remove unnecessary checkLeah Rowe
the cbfs function will call cbfstool, which will perform the same check, and the same error condition would cause the same exit behaviour in lbmk. the error message would also provide output that is just as useful for debugging. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-17lbmk: minor cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>