summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
6 daysswitch spkmodem_decode back to spkmodem_recvLeah Rowe
this version is more tested. i'll merge _decode back once it's better tested. it contains a lot of invasive changes, whereas recv is much closer to the original GNU code that i inherited, that i also know works quite well. Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysdisable lbutils on non-linux systemsLeah Rowe
i should probably test musl as well, on linux libreboot-utils is stable on the glibc systems i tested with linux. it is quite buggy on bsd systems. it's irresponsible to let users compile this until i've properly tested the code. putting this error in for now. i made lbmk use the old nvmutil version for now, and retro fitted several improvements to i/o there from lbutils, changes that i know are stable on bsd. Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysnvmutil: don't rely on errno for errorsLeah Rowe
adapted from the changes made in lbutils i'm just patching this crappy code. lbutils doesn't work properly on openbsd yet, and i just want nvmutil to work properly there, so i'm using the old code for now, on openbsd. Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysnvmutil-standalone: add eintr safetyLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysadd gitignoreLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysfix make fileLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysnope. use nvmutil from libreboot 26.01Leah Rowe
guaranteed not to break on openbsd (tm) Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysremove pledge in nvmutilLeah Rowe
don't fix it for now. this version was buggy. i'm only using nvmutil for now, until i properly fix all the memory issues in lbutils on openbsd. Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysfix nvmutil Makefile for openbsdLeah Rowe
same fix i did for lbutils the nvmutil version is the same one used before lbutils was introduced. just before. Signed-off-by: Leah Rowe <leah@libreboot.org>
6 daysuse 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>
7 daysnow mkhtemp works on openbsd!Leah Rowe
yay Signed-off-by: Leah Rowe <leah@libreboot.org>
7 dayslbutils: don't use stack memory for path stringsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
7 daysfurther makefile cleanup in lbutilsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
7 dayslbutils: remove xpledge/xunveil, just call them directLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
7 daysfix bsdLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
7 daystidy up lbutils makefileLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-10lbutils/mkhtemp: correct return value checkLeah Rowe
check if above or equal to zero, except where counterindicated. this is the usual way on unix, where a command returns -1 on error, or above/equal to zero on success. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-10lbutils/mkhtemp: use openat_on_eintrLeah Rowe
missing EINTR handling fixed Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-10lbutils/file: only override EEXIST if not setLeah Rowe
in the linux fast path, we are universally overriding errno with EEXIST, which pollutes errno in case of debugging under fault condition. this is inconsistent with posix and also leah. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-10lbutils/file: tidy up mkhtemp_tmpfile_linuxLeah Rowe
make failure more obvious. no behavioural change. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-10Merge pull request 'supermicro x11ssh_f: Enable SATA hotplug' (#419) from ↵Leah Rowe
noisytoot/supermicro-x11ssh-f-sata-hotplug into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/419
2026-04-10supermicro x11ssh_f: Enable SATA hotplugRon Nazarov
See the commit message in the patch: Before this patch, hotplugging only worked to replace drives (if you tried to plug a drive into a SATA port that no drive was plugged in to at boot, it wouldn't be detected) and you'd have to manually rescan the bus (echo "- - -" > /sys/class/scsi_host/host*/scan) to make plugs/unplugs get detected by the operating system. Now, hotplugging works for all ports (tested and working on Supermicro X11SSH-LN4F) and there's no need to manually rescan (it sometimes takes a few seconds for unplugs to be detected, but plugs are detected instantly). Also submitted upstream as https://review.coreboot.org/c/coreboot/+/91824
2026-04-01lbutils/file: ignore close err if errno is EINTRLeah Rowe
but DONT LOOP IT. see comment. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01remove dead codeLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: don't eintr loop fcntlLeah Rowe
not indicated. the way we use it is basically like stat, to check that a file exists / is a file. just err the fuck out nuance: SETLK is non-blocking (no wait). we should loop on SETLKW, but we don't use that. in this codebase, we use SETLK for locking a tmpfile, but because of race conditions and wanting to make another file quickly, we just try again with a newly generated name, with a certain number of retries, so we justt use SETLK Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils: don't loop lseek on EINTRLeah Rowe
not necessary. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: don't use undefined USE_OPENATLeah Rowe
clang -Weverything told me to Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: don't loop EINTR on close()Leah Rowe
state is undefined after EINTR. just abort universally. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: fix implicit conversion on openat2Leah Rowe
as dictated by clang -Weverything Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: fix overflow checkLeah Rowe
clang -Weverything: lib/file.c:165:49: warning: implicit conversion changes signedness: 'ssize_t' (aka 'long') to 'size_t' (aka 'unsigned long') [-Wsign-conversion] 165 | if (if_err(rval >= 0 && (size_t)rval > (nrw - rc), EOVERFLOW)) Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: remove more unused macrosLeah Rowe
detected via clang -Weverything Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: remove unused macroLeah Rowe
not needed here (detected with clang -Weverything) Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: rename rw_file_exactLeah Rowe
call it rw_exact, so that it's closer to the name rw. it matches naming more closely; the alternative was to call rw rw_file but read/write can handle more than just files! Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils/file: never retry file rw on zeroLeah Rowe
even with a timer, it's possible that on a buggy system, we may keep writing even though the outcome is zero. if a system comes back with zero bytes written, that is a fatal bug and we should stop. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: remove -WerrorLeah Rowe
the actual warn flags are still there. leaving Werror in production is ill advised. i can (and will) still fix build errors as i see them. as a result of this, i now also see more info when i type: make strict (this uses clang with -Weverything) Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/rand: close fd on urandom errorLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: remove rw on_eintr functions. just use rwLeah Rowe
rw is enough. i unified everything there. next commit will remove rw_type and instead run positional i/o depending on whether the offset is zero. i'm simplifying the API a lot. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: portable options in MakefileLeah Rowe
add options for building with urandom+openat and arc4+openat. useful for emulating a bsd / old linux environment in modern linux distros, for portability testing. these options are not recommended for everyday use. just use make without any special options, and the code has build-time OS detection for features like randomisation/openat2. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: support using arc4random on linuxLeah Rowe
-DUSE_ARC4=1 use that Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: don't set USE_OPENAT and USE_URANDOMLeah Rowe
these can be set explicitly in the compiler flags, e.g. make CC="cc -DUSE_OPENAT=1 -DUSE_URANDOM=1" these options, if set to 1, will cause you to use the code as if it were running on non-linux systems such as openbsd. of course, some differences will still exist, but this is useful for portability testing when compiling on linux. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: only use GNU SOURCE for syscallLeah Rowe
and remove manual prototypes; fchmod, realpath and so on rely on the _XOPEN_SOURCE macro. the POSIX macro wasn't needed: _XOPEN_SOURCE is sufficient. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils: don't use the GNU SOURCE macroLeah Rowe
use the POSIX one declare prototypes where necessary. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils: fix clang hell modeLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils: always use strict cc flagsLeah Rowe
otherwise, i will end up with a mess like the one i recently fixed. we always want to use correct C. the current spec is set to c99, with -pedantic turned on. flags now: -Os -Wall -Wextra -std=c99 -pedantic -Werror if you do: make hell, you get (uses clang): -Os -Wall -Wextra -std=c99 -pedantic -Werror -Weverything i initially loosened up the Makefile rules, so that the code would be more "portable", but every compiler worth caring about has these flags, and turning them on is advisable, especially pedantic and -std, because you want to have some guarantee that the compiler is generating correct code; if the standard is left ambiguous, you could be introducing subtle bugs when people compile it, because who knows what spec the compiler is using? Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils: fix ALL compiler warningsLeah Rowe
i wasn't using strict mode enough in make: make strict now it compiles cleanly. mostly removing unused variables, fixing implicit conversions, etc. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01fix coreboot/fam15h build error on archLeah Rowe
In file included from /home/user/lbmk/src/coreboot/fam15h/util/cbfstool/partitioned_file.h:19, from /home/user/lbmk/src/coreboot/fam15h/util/cbfstool/partitioned_file.c:16: /home/user/lbmk/src/coreboot/fam15h/util/cbfstool/common.h:34:16: error: expected ‘)’ before ‘__attribute__’ 34 | #define unused __attribute__((unused)) | ^~~~~~~~~~~~~ In file included from /home/user/lbmk/src/coreboot/fam15h/util/cbfstool/common.h:25: /home/user/lbmk/src/coreboot/fam15h/src/commonlib/include/commonlib/helpers.h:137:40: error: expected identifier or ‘(’ before ‘)’ token 137 | #define __unused __attribute__((unused)) ^ this removes that error Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01coreboot/default: fix vboot build error on archLeah Rowe
or any newer linux really. new gcc is much stricter about const chars. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01fix u-boot builds on arch linuxLeah Rowe
gnu changed a flag for like, no fucking reason Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils: loop fcntl on eintrLeah Rowe
but i can't write a generic function for this, because fcntl is a variadic function, so wrapping cannot be done cleanly. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01safer macroLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>