summaryrefslogtreecommitdiff
path: root/config/data
AgeCommit message (Collapse)Author
2 daysdell5050sff: enable edk2 payload for testingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2 daysexperimental edk2 supportLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysbuild seabios in a target, not tree/defaultLeah Rowe
otherwise, the recent fix to coreboot builds breaks seabios builds. lbmk should be stable now. Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysdon't build when tree=target on noconfig=nLeah Rowe
only do if config=y. this reintroduces a hack that i accidentally removed in the recent redesign. grub has been changed to noconfig=y, and the files for memdisk are now source from config/data/grub Signed-off-by: Leah Rowe <leah@libreboot.org>
4 daysxbmk: make all projects multi-treeLeah Rowe
we currently distinguish, by virtue of logic, multi- and single-tree projects. this introduces a lot of complexity, so the following patch has removed this distinction. all single-tree projects are now multi tree, but with only one tree. other design changes: config/git removed. rev/tree now handled with mkhelper and target configs. this allows per-tree remote handling, so we could (for example) add the mrchromebox coreboot fork easily, for specific chromebook models. config/project is now config/module/project. this cleans up the main config/ directory. cfgname variable: .config no longer hardcoded when doing configs in projects. it is configurable with this variable. if unset, the previous .cfg is used noconfig variable: set this in target/mkhelper configs, and config/module/project/tree/config/ is unused; instead, make is called without config copying. a "noconfig" placeholder is used. this enables cleaner usage of previously single-tree projects in the new multi-tree-only structure. cfgvars: variables reinitialised in project config are cleaned more reliably. in particular, several variables e.g. autogenargs were not being reset between projects, although the autogenargs variable is currently unused. general cleanup has been conducted across the build system, as part of this redesign. several parts of the build system more over-engineered as a result of the previous design, and the new design enabled a severe reduction in sloccount (75 lines reduced in lbmk). yes, this change *adds features* but there are fewer lines of code than before. this is the best kind of change. way better than the 3-line-diff. yes. rev= and tree= are set more centrally in configs. the mkhelper config can be used to set url/url_bkup, but individual trees can override them. configs have been cleaned up, with several variables now much more heavily centralised. config/git/ was used before to first download the bare repository, and then the real clone was made with patches. this allows git repositories to be cached for future re-builds. with config/git/ gone, the download logic for projects is more centrally implemented. a separate call to ./mk -f is no longer performed, and in fact ./mk -f never needs to be used anymore as a result. ./mk -f now is basically the same thing as -b, just without any action performed. this change will allow rapid expansion of the libreboot project. i want to add hundreds of chromebooks to the project, using mrchromebox, but the previous design did not permit this. this change means that i can easily have unlimited upstreams per project. coreboot will, in some follow-up changes, have the following upstreams: coreboot/default: coreboot.org coreboot/fam15h: 15h.org fork coreboot/chromebook: mrchromebox fork this can now be done freely without massive changes to the build system. under the previous design, i worked on a now-abandoned patch to do N remotes per project, reading repo links from a file. this meant that i'd have coreboot.org first (main and backup), then mrchromebox. this meant that lbmk would failover through to mrchromebox, wasting time for the user. this new design is much cleaner, and will enable the project to be maintained much more easily. Signed-off-by: Leah Rowe <leah@libreboot.org>
7 daysrom.sh: put coreboot dry checks in mkhelperLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
7 daysrom.sh: check grub dry build in mkhelperLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
7 dayspcsx-redux: check dry build in mkhelperLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysmk: rename autoconfargs to configureargsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysmk: remove -c and -x commands (clean/xgcc-clean)Leah Rowe
the user never runs these. it's not needed. the design of lbmk already cleans everything, or caches everything, between builds. everything cached out of tree. it's not expected to ever need to clean manually, so just remove the option. knobs are for nobs. releases don't need it either, because we tar everything before building, thus eliminating all build artifacts. we do this on a fresh copy of lbmk on ./mk release Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysmk: turn on git-clean by default, except corebootLeah Rowe
libreboot's policy is to thoroughly clean sources per build, because we cache builds out of tree and avoid re-builds if they exist; these and the sources are deleted if metadata in config/ changes per project, tree and/or target. the problem is that this change only affects lbmk.git it doesn't affect release archives, where project sources do not have git-init applied to them. this will be addressed. can't use it on coreboot, because it will delete xgcc tarballs in a way currently not handled, and handling it will mean adding a project-specific hack. the xgcc tarballs could be built out-of-tree, and this will have to be done, otherwise coreboot will have to be made gitclean="y" for now. everything else is fair game. Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysmk: remove u-boot-specific git-clean handlingLeah Rowe
yes, make it generalised. use a new variable in mkhelper.cfg, gitclean and gitcleanargs not enabled by default, but u-boot enables it. i'm considering whether to use this by default, as it is the general policy of lbmk to clean everything just after a build, as builds are cached out of tree. this way, we can do re-builds safely for each project. there are probably a lot of subtle bugs that might be fixed if we used this the problem is that this is currently only used on lbmk.git, but not on libreboot release archives which lack .git directories; the main one is initialised in lbmk, but not in upstream sources. we could just initialise those. in fact, that is probably what i'm going to do. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-02-08Added Danish Keymap dkqwerty.gkbNiel Nielsen
2026-01-19update grub to 2.14Leah Rowe
This brings these extra changes: * eaa3b8f0f Bump version to 2.15 * d38d6a1a9 Release 2.14 * 35bfd6c47 build: Add grub-core/tests/crypto_cipher_mode_vectors.h file to EXTRA_DIST * ac042f3f5 configure: Print a more helpful error if autoconf-archive is not installed * e37d02158 kern/ieee1275/openfw: Add a check for invalid partition number * f94eae0f8 grub-mkimage: Do not generate empty SBAT metadata * 1aa0dd0c0 configure: Defer check for -mcmodel=large until PIC/PIE checks are done * ff1edd975 util/grub-mkimagexx: Stop generating unaligned appended signatures * 51ebc6f67 tests: Add functional tests for ecb/cbc helpers * caaf50b9a osdep/aros/hostdisk: Fix use-after-free bug during MsgPort deletion * 18f08826f kern/efi/sb: Enable loading GRUB_FILE_TYPE_CRYPTODISK_ENCRYPTION_KEY and GRUB_FILE_TYPE_CRYPTODISK_DETACHED_HEADER NOTE: This patch was reversed: * ac042f3f5 configure: Print a more helpful error if autoconf-archive is not installed Because it quite unhelpfully broke the build. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-12-24grub modules: add more gcry_ ciphersLeah Rowe
Since the libgcrypt update in GRUB, which imported GNU's own Argon2 implementation, other ciphers have also been introduced. This patch adds them to lbmk's GRUB build. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-11-22grub: add a keyboard layout for norwayLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-10-06cb/kabylake: don't hardcode power_on_after_failLeah Rowe
I realised that the Dell OptiPlex 3050 Micro has NVRAM available. Use that backend, and hardcode power_on_after_fail to Disable, which is already done in cmos.default. The Lenovo ThinkPad T480 currently has no option table in coreboot, besides the CBFS one. For this, the CBFS option table has been enabled, and the build system has been modified to insert a relevant config for power_on_after_fail. Nicholas Chin informs me that Kabylake generally has legacy NVRAM, so enabling it for the T480/T480s should work, but we'll need to use it in the future anyway; better to just use CBFS now. I *could* use the CBFS backend on 3050micro as well. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-10-04tree.sh: rename btype to buildtype, for clarityLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-10-04xbmk: rename the "dry" variable to if_not_dry_runLeah Rowe
and add a line break where it is used now it is essentially a macro of sorts, used in terms of syntax, to mean the same as: if [ "$dry" != ":" ]; do thing fi in this case, we say: $if_not_dry_build \ thing yes. macros in sh are a thing. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-10-04coreboot/mkhelper: don't use evalLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-10-02grub/xhci: rename to grub/xhci_nvmeLeah Rowe
we have the "default" tree, then the "nvme" tree which adds nvme support. the "xhci" tree adds xhci patches, *and* nvme patches. riku suggested that i rename it accordingly, and his advice was quite correct, indeed wise. this will reduce confusion for contributors, including *myself*. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-09-28libarchive: also copy bsdunzip and bsdcpioLeah Rowe
bsdunzip in particular, can be used instead of relying on the host to provide unzip. most linux hosts use info-zip as the implementation, which bsdzip is compatible with. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-09-28config/git: Support building libarchiveLeah Rowe
This is for bsdtar, which we will use in place of unar, because unar is not available on all of the distros, and we had some recent problems with it. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-09-18Revert "xbmk: don't use backticks for command substitution"Leah Rowe
This reverts commit 4999a49de39667b3239fc2010d0e99c958b29417.
2025-09-11xbmk: don't use backticks for command substitutionLeah Rowe
the newer way handles escaped characters better, and it can be nested more easily. it's also more readable. personally, i prefer the old way, because it's more minimalist, but it occurs to me that a lot of people nowadays don't know about backticks, but they do know of the modern way. to make the code more readable, i have modernised it. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-07-10cache coreboot builds in elf/ againLeah Rowe
This was a problem when I did it before, because individual target builds weren't automatically re-compiled when needed. The recent design improvements in lbmk enable this to be done again. Cached images in elf/ have no payloads, so they are a liability, therefore they are padded by one byte to prevent flashing. This solves the problem that the previous caching had. With this change, modifying payloads can be tested without needing to re-build coreboot each time. The cached coreboot builds are also automatically re-built when needed, which is another improvement this time, compared to the last time coreboot builds were cached in this manner. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-07-08tree.sh: Place target builds under tree/target/Leah Rowe
as opposed to target/ for example: image the command: ./mk -b u-boot amd64coreboot This would put the U-Boot binaries here: elf/u-boot/amd64coreboot/default/ With this change, they now go here: elf/u-boot/x86_64/amd64coreboot/default/ This solves a problem that existed previously, where you could modify a given tree in a multi-tree project, but cached builds for targets branching separately off of each tree would not be deleted, and thus not re-built. This accomplishes such a result, without needing to further check hashes of individual targets. The latter will still be done, in a future change, because this change doesn't fix another problem: If you change a given config, e.g. targetname "foo" which uses tree "bar", elf/foo/ would not be removed automatically for re-build. So this change only deletes individual target builds when their master tree changes. Where the target and tree are the same, this also means elf/tree/target/ for example: seabios/default would create binaries in: elf/seabios/default/default/ not: elf/seabios/default/ Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-07-06GRUB: Bump to rev a68a7dece, 23 June 2025Leah Rowe
NOTE: gfxterm_menu module removed, because of this change by upstream: commit ca2a91f43bf6e1df23a07c295534f871ddf2d401 Author: Glenn Washburn <development@efficientek.com> Date: Mon May 5 16:11:36 2025 -0500 tests: Disable gfxterm_menu and cmdline_cat tests This brings in the following changes from upstream: * a68a7dece loader/i386/pc/linux: Fix resource leak * de80acf36 loader/efi/linux: Unload previous Linux kernel/initrd before updating kernel size * 249db11d8 loader/efi/linux: Correctly terminate load_options member * f3b339af1 loader/efi/linux: Use sizeof() instead of constant * c2b2e0dcf loader/efi/linux: Use proper type for len variable * de4e8e2aa loader/efi/linux: Do not pass excessive size for source string * 8c8f96664 loader/efi/linux: Remove useless assignment * 8ebf155af include/grub/charset.h: Update documentation * 2f2ed28d5 Revert "lzma: Make sure we don't dereference past array" * 2539ede82 tests/util/grub-shell: Correct netboot and file_filter test failure * 8c2d4e64f normal/charset: Fix underflow and overflow in loop init * ba8eadde6 dl: Provide a fake grub_dl_set_persistent() and grub_dl_is_persistent() for the emu target * 409e72ced util/grub-protect: Correct uninit "err" variable * 5eca564b1 gnulib: Bring back the fix for resolving unused variable issue * ac1512b87 gnulib: Add patch to allow GRUB w/GCC-15 compile * db506b3b8 gnulib/regexec: Fix resource leak * bba7dd736 gnulib/regcomp: Fix resource leak * 91cb7ff6b tests/tpm2_key_protector_test: Add tests for SHA-384 PCR bank * 451e227e5 tpm2_key_protector: Dump the PCR bank for key unsealing * 11caacdb2 util/grub-protect: Fix the hash algorithm of PCR digest * ce23919ca build: Add new header files to dist to allow building from tar * e3b15bafd build: Remove extra_deps.lst from EXTRA_DIST * 40e261b89 lib/LzmaEnc: Validate "len" before subtracting * 86e8f2c4b osdep/unix/hostdisk: Fix signed integer overflow * 438f05581 disk/luks2: Add attempting to decrypt message to align with luks and geli modules * 20e6d0c4a osdep/linux/getroot: Detect DDF container similar to IMSM * b71bc0f8b fs/fshelp: Avoid possible NULL pointer deference * 272ff81cb fs/ntfs: Correct possible infinite loops/hangs * 8c95307a0 fs/ntfs: Correct possible access violations * 06914b614 fs/ntfs: Correct attribute vs attribute list validation * 0e1762c8a fs/ntfs: Correct regression with run list calculation * be303f8c1 lib/envblk: Ignore empty new lines while parsing env files * 34bd00ee2 fs/zfs: Fix another memory leak in ZFS code * ca2a91f43 tests: Disable gfxterm_menu and cmdline_cat tests Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-25rom.sh: rename mkvendorfilesLeah Rowe
it mainly does general tasks, like handling utils and enabling ccache. the vfiles are a small part. rename the function accordingly. it is called by premake, so let's call it corebootpremake. this change will also make sense when cherry-picked into cbmk, which does not handle vfiles at all. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-25rom.sh: simplify u-boot payload handlingLeah Rowe
define it with a single variable, rather than several. this allows several checks to be greatly simplified. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-07lib.sh: Simplified fx_() and removed fe_()Leah Rowe
Instead of calling fe_, prefix x_ as indicated. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-07build serprog using fe_ *defined inside mkhelper*Leah Rowe
sh macros ftw Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-02mk: include rom.sh directlyLeah Rowe
remove it from mkhelper files, because rom.sh doesn't initialise any variables globally, except one that never changes. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-30serprog: Remove pico2 support for the time beingLeah Rowe
Many users report bugs, so I'm reverting lbmk back to only supporting the rp2040 dongles for the time being. The documentation will be updated to reflect this. Pico2 support will be re-added at a later date, once more testing has been done, and fixes made if necessary.
2025-04-21add missing config/data/coreboot/0Leah Rowe
this is a file containing one byte, of value zero i meant to add it in previous commits, for the resizing and shrinking of tarballs when inserting or deleting vendor files used by include/vendor.sh Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-21coreboot/default: Update, c247f62749b (8 Feb 2025)Leah Rowe
This is currently the latest revision of coreboot. Other coreboot trees to follow. The "next" tree will also be merged with coreboot/default, in a follow-up commit. 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-11lbmk: unified PWD handling (work directory)Leah Rowe
instead of running pwd all the time, run it once in lib.sh, and export PWD. for lbmk-specific use of PWD, use xbmkpwd, which contains the value of PWD as was set by the pwd utility in lib.sh. many parts of lbmk rely on pwd, and it *must* be correct. this change adds basic error handling, since pwd can in fact return errors in some cases. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-04-11lbmk: use pwd util, not PWD environmental variableLeah Rowe
PWD could be anything, if the user manually exported it before running lbmk. always run pwd instead, to get the real string. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-01-06pico-sdk: Import picotool as a dependencyLeah Rowe
We were previously not handling picotool at all, and pico-sdk would download picotool itself, at build time. This means that the source archive, if created, would not contain picotool. While not strictly required, for complete corresponding source, since it's a toolchain and not the actual pico-serprog firmware, it is my policy that releases must include full corresponding source code, when it is feasible to do so. I must say, I intensely dislike cmake, with such burning passion; I am thoroughly displeased by how hacky this is, but it works and now nothing is in my way for a Libreboot 20241206 rev8 release! Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-12-28rom.sh: Name pico directory serprog_picoLeah Rowe
Previously serprog_rp2040, but we now also support the RP2530 boards. Therefore, serprog_pico is a nice generic name. The directory on release archives will now be serprog_pico instead of serprog_rp2040; it will contain serprog images for both RP2040 and RP2530 devices. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-12-27add spdx headers to various config filesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-12-24data/deguard: Remove unused patchLeah Rowe
The appdir.patch file was used on the older deguard version, prior to Mate Kukri's rewrite. This patch is no longer required, and no longer used, so it can be removed safely from lbmk. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-12-18rom.sh: support grub-first setupsLeah Rowe
in this setup, seabios is never the default payload, grub is, but only if grub is enabled. set this in target.cfg: payload_grubsea="y" if payload_grub isn't enabled, this is auto-set to n ditto if initmode=normal NOTE: if flashing libgfx setups, you should make sure that you're not booting with a graphics card, only intel graphics. this setting will intentionally not be documented, because it's not recommended, but is being implemented for testing purposes (and i implemented it for some guy who i think is cool). i'll probably also use this myself, since i already do grub-only setups on all my own machines. seagrub is the default on x86 because of past instabilities with grub. to mitigate in case of future issues, since seabios is always stable, we reduce the chance of bricks. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-12-17Revert "use rainbow deer on the grub background"20241206rev5Leah Rowe
libreboot has a lot of users worldwide, some of whom live in countries that punish being gay; if they look at libreboot or boot it and it has the pride colours on it, it could actually get them in trouble. this fact occured to me, and i've decided therefore to revert back to the boring plain logo. though, perhaps we could actually properly design a new logo? a new, modern logo, and a nicer website. we'll see! This reverts commit 401efb24b2213454732e769531f660605771e538.
2024-12-17use rainbow deer on the grub backgroundLeah Rowe
same as on u-boot recently Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-12-02Revert "trees: Allow using a custom clean command"Leah Rowe
This reverts commit 5b4c9158e5a79f8d7e776c8c4ece69dda5aa8690.
2024-12-02trees: Allow using a custom clean commandLeah Rowe
On coreboot for example, as Mate has told me, if you're making Kconfig changes and re-compiling, sometimes the actual image that you build might still have the old one in it, due to how coreboot's build system works. To mitigate this, you can just always run distclean before doing the build, but lbmk was doing just clean. In practise, we did not find any issues, but this change should be harmless, and might prevent such issues in the future. It's even possible that we might have already encountered this before and not realised, and we were just lucky that no noticeable issues were caused. It's *also* possible that the reverse is true: an issue that was previously covered up, then that issue will now be exposed. However, if that turns out to be true, then that is good because we are exposing said bugs and then we will know to fix them! Anyway, the variable in target.cfg is: cleancmd="whatever_you_want" e.g. cleancmd="distclean" You may also specify this in global mkhelper.cfg files, per project; I've already done this for SeaBIOS, coreboot and U-Boot, since all of these use Kconfig files. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-11-21rom.sh: Support SeaUBoot for 64-bit x86 U-BootLeah Rowe
Same concept as SeaGRUB, but for U-Boot. SeaBIOS starts, but has a bootorder file loading U-Boot first, from flash. You can interrupt it with the ESC menu, to boot something else in SeaBIOS, including GRUB. With this, we can effectively provide extremely user-friendly UEFI-first setups in Libreboot. Take that, edk2! Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-11-19Re-enable U-Boot x86 on real mainboardsLeah Rowe
The previous stability issues were resolved, thanks to the previous revision which added a fix courtesy Simon Glass. This reverts commit eba73c778a85d1c6ad2f0de57c82a8775cdd1c17.