summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-08-13config/coreboot: Fix INTEL_GMA_VBT_FILE in Latitude configsNicholas Chin
Commit 3ee4cc9ddec62276c374f8c7f0c0b3322cfaa9f6 (fix typo in dell latitude coreboot coreboot config) fixed a typo from ${VARIANT_DIR) to $(CONFIG_VARIANT_DIR). While this does work, since CONFIG_VARIANT_DIR is a valid variable, it is not technically correct, as the default VBT path set by coreboot's Kconfig files uses $(VARIANT_DIR), which is the same as CONFIG_VARIANT_DIR, but with quotes stripped out. Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
2024-08-13config/coreboot: Add config for Dell Latitude E6230Nicholas Chin
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
2024-08-13config/coreboot: Add config for Dell Latitude E6330Nicholas Chin
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
2024-08-13config/coreboot: Add config for Dell Latitude E6320Nicholas Chin
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
2024-08-13config/coreboot: Add config for Dell Latitude E6220Nicholas Chin
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
2024-08-12coreboot/x4x: fix build errorLeah Rowe
see relevant patch added in the diff set the clock on x4x boards to 96MHz like on GM45 fixes the following build error on x4x boards: hw-gfx-gma-plls.adb:465:46: error: "INTEL_GMA_DPLL_REF_FREQ" not declared in "Config" make: *** [Makefile:423: build/ramstage/libgfxinit/common/g45/hw-gfx-gma-plls.o] Error 1 Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-08-11coreboot/default: fix build issue with DDR2 fixLeah Rowe
some of my DDR2 checks were unnecessary, as nicholas pointed out on irc, because they were in places that only ran if DDR2 memory was used anyway. in another, valid place, I was checking the wrong variable for knowing what memory type is used. this patch fixes build errors in lbmk: src/northbridge/intel/gm45/raminit.c: In function 'dram_program_timings': src/northbridge/intel/gm45/raminit.c:1120:29: error: 'sysinfo' undeclared (first use in this function); did you mean 'sysinfo_t'? 1120 | if (sysinfo->spd_type == DDR2) | ^~~~~~~ | sysinfo_t src/northbridge/intel/gm45/raminit.c:1120:29: note: each undeclared identifier is reported only once for each function it appears in src/northbridge/intel/gm45/raminit.c: In function 'ddr2_odt_setup': src/northbridge/intel/gm45/raminit.c:1291:21: error: 'sysinfo' undeclared (first use in this function); did you mean 'sysinfo_t'? 1291 | if (sysinfo->spd_type == DDR2) { | ^~~~~~~ | sysinfo_t make: *** [Makefile:423: build/romstage/northbridge/intel/gm45/raminit.o] Error 1 Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-08-11fix typo in dell latitude coreboot coreboot configLeah Rowe
these configs were otherwise correct, but i typo'd a variable in them when manually rebasing the old configs, after switching to nicholas's new ports implemented as variants, where the old ones in lbmk were individual board ports for those same boards. Signed-off-by: Leah Rowe <info@minifree.org>
2024-08-11vendor.sh: use readkconfig on inject tooLeah Rowe
same as the last change. we must avoid use of make variables, in sh specifically, when handling these configuration files. Signed-off-by: Leah Rowe <info@minifree.org>
2024-08-11vendor.sh: don't load entire coreboot configsLeah Rowe
instead, only grep for the entries required, such as Intel ME paths. some variables in coreboot configs use $(), which is used in *make*, on the coreboot build system, and there refers to variables. here, we are sourcing them from sh, which treats this as a mini subshell to run a command; for example CONFIG_FOO would be executed, which is bad. The current logic still theoretically has this problem, with this patch, but the entries we scan from the configs do not currently have variable names in the strings. So: filter out just what we need, into a temporary config, when scanning for vendor files in coreboot configs, and use the temporary config. This fixes a build error when compiling for e5520_6mb. Signed-off-by: Leah Rowe <info@minifree.org>
2024-08-11lib.sh: more verbose error in x_Leah Rowe
part of the command was cut off in the output Signed-off-by: Leah Rowe <info@minifree.org>
2024-08-11flashprog: bump to 639d563 (2024-08-02)Leah Rowe
The workaround-mx patch was rebased on one section in spi.c, because that part in upstream added QPI support; in the newly rebase mx patch, the workaround_mx behaviour is only honoured if QPI (Quad SPI) is not in use. Quad SPI is not used in practise, on the machines where this workaround is intended (GM45 ThinkPads with Macronix chips). This imports the following upstream changes: * 639d563 README: Update flashprog.org URLs * cbbd601 README: Update dependency list and Linux package names * 79451f1 README: Rename "Packaging" -> "Source Packaging" * 5b4695c README: Dial laptop warning down a little * 7224085 udev rules: Add some more IDs * 448457a ch347_spi: Add CH347F ID and loop over the entries * e39549b ch347_spi: Search for compatible USB interface * dfd0647 ich_descriptors: Refactor component density handling * b2ad9fd ich_descriptors: Make use of SPI_ENGINE_PCH100 marker * 140e22f chipset_enable: Make use of SPI_ENGINE_PCH100 marker * 869f0e7 ichspi: Use `swseq_data' on ICH7 paths too * eeee91b ichspi: Replace all switch/case on `ich_generation' * ecba1d8 ichspi: Drop redundant bail-out cases in ich_set_bbar() * e8babf4 ichspi: Use a single check to enable hwseq for PCH100+ * fda324b ichspi: Introduce SPI_ENGINE_PCH100 marker * a1f6476 ichspi: Split ICH7 init out * 3f75d44 ich_descriptors: Remove `Dual Output Fast Read' for newer gens * 2862011 spi25: Try to set volatile quad-enable (QE) automatically * 4ac536b spi25_statusreg: Allow to write (non-)volatile bits specifically * b1d2bae dediprog: Fix and enable 4BA modes for SF600Plus-G2 * d0afeef dediprog: Disable 4BA modes for SF100 w/ protocol v2 * 1b1deda Implement QPI support * a1b7f35 dediprog: Implement multi-i/o reads * 008a44f dediprog: Split read/write command preparation by protocol * 4760b6e spi25: Implement multi-i/o reads * 0c9af0a spi25: Check quad-enable (QE) bit * 930d421 spi25: Introduce generic spi_prepare_io()/spi_finish_io() * 8d0f465 spi25: Extract 4BA preparations into new `spi25_prepare.c` * 044c9dc Add FT4222H support * fc7c13c linux_gpio2_spi: Implement multi i/o * 5fc3154 bitbang_spi: Implement multi-i/o * d16a911 bitbang_spi: Move API into its own header file * 226bb87 flashchips: Add missing QE-bit definitions * 4fa39c5 flashchips: Fill multi-i/o gaps in MX25U family * 5f50999 flashchips: Fill multi-i/o gaps in MX25R family * 46552c8 flashchips: Fill multi-i/o gaps in MX25L family * 96786d0 flashchips: Fill quad-i/o gaps in XM25Q family * a26a3c6 flashchips: Fill dual-i/o gaps in W25X family * 2133f59 flashchips: Fill quad-i/o gaps in W25Q family * 68573af flashchips: Split GD25Q127C and GD25Q128C * 4da971f flashchips: Fill quad-i/o gaps in GD25*Q families * f7e2d97 spi: Allow to define a quad-enable (QE) configuration bit * 1412d9f spi: Rework FEATURE_QPI * d518563 spi: Prepare for multi i/o and dummy bytes * bd72a47 spi25_statusreg: support reading/writing configuration register * 3d728e7 spi25_statusreg.c: support reading security register * a358b14 flashchips: Split W25Q64.W -> W25Q64DW | W25Q64FW/W25Q64JW...Q * 3127db1 manibuilder: Drop legacy flashrom tag collections * 619d9c0 manibuilder: Use `test_build.sh' * 6560bba manibuilder/almalinux: Install `diffutils' for new `test_build.sh' * c7b549e test_build.sh: Compare output for -L of Make and Meson builds * 72b30a0 test_build.sh: Don't try to run cross-compiled programs * 3d2f212 test_build.sh: Allow to override Make and Meson commands * 4eb9748 test_build.sh: Run tests for both Make and Meson builds * 8279457 manibuilder: Add Alpine Linux 3.18 & 3.19 images * 15e9b10 manibuilder/alpine: Install libjaylink-dev when available * b8b3593 manibuilder: Add images for Fedora 38..40 * 7b05f09 manibuilder: Add images for Ubuntu 24.04 "Noble Numbat" * 5e8b339 manibuilder/anita: Add NetBSD 10.0 i386 & amd64 images * 61da8c7 manibuilder/anita: Export library path for libusb * 39152af manibuilder: Set sourcearcade.org as default source * 20073e7 Properly clear erase-block selection when bigger block is chosen * 3824c8d ichspi: Allow all opcodes when the "opmenu" isn't locked * 0d4354e flashchips: Add W25Q32JV-.M Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-08-11seabios/default: bump to ec0bc256 (2024-06-24)Leah Rowe
This brings in a single change: commit ec0bc256ae0ea08a32d3e854e329cfbc141f07ad Author: Gerd Hoffmann <kraxel@redhat.com> Date: Mon Jun 24 10:44:09 2024 +0200 limit address space used for pci devices, part two This increases compatibility with i686 hosts, when allocating memory for pci devices. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-08-11grub/*: Bump to rev b53ec06a1 (2024-06-17)Leah Rowe
Of note: upstream has made several improvements to memory management, and several fixes to file systems. User-friendly change to LUKS: if the passphrase input failed, the user is prompted again for the correct passphrase, instead of GRUB just failing. Similar to cryptsetup luksOpen behaviour under Linux. This pulls in the following changes from upstream (gnu.org): * b53ec06a1 util/grub-mkrescue: Check existence of option arguments * ab9fe8030 loader/efi/fdt: Add fdtdump command to access device tree * 0cfec355d osdep/devmapper/getroot: Unmark 2 strings for translation * f171122f0 loader/emu/linux: Fix determination of program name * 828717833 disk/cryptodisk: Fix translatable message * 9a2134a70 tests: Add test for ZFS zstd * f96df6fe9 fs/zfs/zfs: Add support for zstd compression * 55d35d628 kern/efi/mm: Detect calls to grub_efi_drop_alloc() with wrong page counts * 61f1d0a61 kern/efi/mm: Change grub_efi_allocate_pages_real() to call semantically correct free function * dc0a3a27d kern/efi/mm: Change grub_efi_mm_add_regions() to keep track of map allocation size * b990df0be tests/util/grub-fs-tester: Fix EROFS label tests in grub-fs-tester * d41c64811 tests: Switch to requiring exfatprogs from exfat-utils * c1ee4da6a tests/util/grub-shell-luks-tester: Fix detached header test getting wrong header path * c22e052fe tests/util/grub-shell: Add flexibility in QEMU firmware handling * d2fc9dfcd tests/util/grub-shell: Use pflash instead of -bios to load UEFI firmware * 88a7e64c2 tests/util/grub-shell: Print gdbinfo if on EFI platform * b8d29f114 configure: Add Debian/Ubuntu DejaVu font path * 13b315c0a term/ns8250-spcr: Add one more 16550 debug type * 8abec8e15 loader/i386/multiboot_mbi: Fix handling of errors in broken aout-kludge * d35ff2251 net/drivers/ieee1275/ofnet: Remove 200 ms timeout in get_card_packet() to reduce input latency * 86df79275 commands/efi/tpm: Re-enable measurements on confidential computing platforms * 0b4d01794 util/grub-mkpasswd-pbkdf2: Simplify the main function implementation * fa36f6376 kern/ieee1275/init: Add IEEE 1275 Radix support for KVM on Power * c464f1ec3 fs/zfs/zfs: Mark vdev_zaps_v2 and head_errlog as supported * 2ffc14ba9 types: Add missing casts in compile-time byteswaps * c6ac49120 font: Add Fedora-specific font paths * 5e8989e4e fs/bfs: Fix improper grub_free() on non-existing files * c806e4dc8 io/gzio: Properly init a table * 243682baa io/gzio: Abort early when get_byte() reads nothing * bb65d81fe cli_lock: Add build option to block command line interface * 56e58828c fs/erofs: Add tests for EROFS in grub-fs-tester * 9d603061a fs/erofs: Add support for the EROFS * 1ba39de62 safemath: Add ALIGN_UP_OVF() which checks for an overflow * d291449ba docs: Fix spelling mistakes * 6cc2e4481 util/grub.d/00_header.in: Quote background image pathname in output * f456add5f disk/lvm: GRUB fails to detect LVM volumes due to an incorrect computation of mda_end * 386b59ddb disk/cryptodisk: Allow user to retry failed passphrase * 99b4c0c38 disk/mdraid1x_linux: Prevent infinite recursion * b272ed230 efi: Fix stack protector issues * 6744840b1 build: Track explicit module dependencies in Makefile.core.def Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-08-10coreboot/fam15h: only use this, for amd boardsLeah Rowe
it is identical to fam15h_rdimm, with _udimm now removed; the latter had a patch that added certain behaviour only intended for rdimm, but the patch in question breaks various configurations. raminit has always been unreliable on these boards. i'd rather simplify it all, in lbmk. i'll probably update this to the dasharo tree later on, specificalyl for kgpe-d16 Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-08-10coreboot/default: re-merge coreboot/i945Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-08-10coreboot/default: merge coreboot/haswellLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-08-09coreboot/dell: merge into coreboot/defaultLeah Rowe
The libgfxinit patch and other patches e.g. DDR2 fix, are now provided in coreboot/default. The Latitude E6400 is now using the newer coreboot revision from late July 2024. Some other configs had to change because of this, relating to the new way that Nicholas handles timing on LVDS displays with the E6400 port; a default 96MHz clock is still used for pixel reference clock, overridden with a value of 100MHz on other GM45 machines, where 96MHz was previously hardcoded. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-08-09coreboot/default: Update to 97bc693ab (2024-07-29)Leah Rowe
Several patches are now merged upstream and no longer needed in lbmk, such as the HP EliteBook 8560w patch, and related patches. Some patches were changed, for example the Dell Latitude ivb/snb laptops are now variants in coreboot, instead of being individual ports; now they re-use the same base code. This this, the corresponding files under config/submodules have changed, for things like 3rdparty submodules e.g. libgfxinit, and tarballs e.g. crossgcc. This is long overdue, and will enable more boards to be added. This newer revision will be used in the next release, and some follow-up patches will merge these trees into default: * coreboot/haswell * coreboot/dell Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-28fix hp8200sff_4mb ifd file (pd region)Leah Rowe
see bug report: https://codeberg.org/libreboot/lbmk/issues/228 The layout specified incorrect boundaries for the pd region. With this change, it should flash and boot reliably. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-28uefitool: Only define ACCESSPERMS on *nixLeah Rowe
I re-read the modified code, and it has defines in place for building on Windows; I was defining ACCESSPERMS universally, but it should only be defined for non-Windows systems, which the context in this code means Linux/BSD. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-28uefitool: Add patch working around musl libc issueLeah Rowe
musl libc is very conservative in what it implements, preferring a very "pure" libc implementation. this means that it lacks many of the niceties found in others like the GNU C Library; the latter implements many BSD libc extensions, for example. ACCESSPERMS is a #define in BSD libc that does: S_IRWXU | S_IRWXG | S_IRWXO Essentially, it provides a bitwise OR providing chmod 0777, which can be used as shorthand in calls to functions such as mkdir() available in all libc implementations. In the case of uefitool, this define is indeed used on mkdir. Conditionally re-define ACCESSPERMS, if undefined, so that musl libc can be used when building uefitool. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-28lib.sh: new function mk() to handle trees in bulkLeah Rowe
single-tree projects cannot be handled in bulk, e.g. ./mk -f project1 project2 project3 that is still the case, from the shell, but internally it is now possible: mk -f project1 project2 project3 mk() is a function that simply handles the given flag, and all projects specified. it does not handle cases without argument, for example you cannot do: mk -f arguments must be provided. it can be used internally, to simplify cases where multiple single-tree projects must be handled, but *also* allows multi-tree projects to be specified, without being able to actually handle trees within that multi-tree project; so for example, you can only specify coreboot, and then it would run on every coreboot tree. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-26general code cleanup in the build systemLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-22rom.sh: don't dry-run mkcoreboottarLeah Rowe
same as the last change. make the main function a wrapper that dry-runs the real function. if the "dry" variable is blank, it executes. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-22rom.sh: don't run mkcorebootbin on trees -dLeah Rowe
don't let it execute during dry builds Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-22support ./mk in place of ./update treesLeah Rowe
it's a shortcut command. a new symlink. ./update trees -b flashprog can instead do: ./mk -b flashprog Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-22trees: initialise badhash no n, not empty stringLeah Rowe
this is another alternative to the previous fix. this one is therefore now a pre-emptive fix, in case other code is written in the future that makes use of badhash. the badhash variable in a y/n variable, so initialise to n. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-22rom.sh: fix buggy deletion of cbutilsLeah Rowe
when badhash=y, the utils should be deleted, but the check is deleting if badhash isn't n. if the hash check isn't being performed, then this will always be the case and the utils are always deleted. make it positively delete the file only if badhash=y, not when it isn't n. while this may not sound very different, it will prevent the utils being deleted and re-build endlessly in other cases, like when building release archives and running the inject --nuke mode on every image that gets built. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-22rom.sh: also add grub to seabios imagesLeah Rowe
we want multiple seagrub images made, with different keymaps, but we only want one non-seagrub image. however, we also want grub in the non-seagrub image. it just means that seabios is primarily what the user wants, and they might occasionally use grub, whereas the seagrub images are for people who primarily want grub but may occasionally access the seabios menu. right now, the seabios images really only contain seabios, but there's no harm in adding grub to them. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-22rom.sh: copy tmprom to TMPDIR for modificationLeah Rowe
don't rely on build/coreboot.rom staying in place, because sometimes it can get purged under certain conditions, due to idiosyncrasies in the coreboot build system, even when we don't explicitly clean it Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-22rom.sh: re-add seabios-only roms and grub keymapsLeah Rowe
this time, only handle multiple keymaps on seagrub images. for images where seabios is first but does not immediately load grub, whether grub is still available in flash, just do one image (US Qwerty) this still results in fewer images per target than Libreboot 20240612, but should prevent most users from being annoyed. i got a few people asking repeatedly, and i hadn't documented yet how to add keymap.gkb or how to remove bootorder, to get a different keymap or disable seagrub respectively. i anticipate that i'll get such questions a lot, even if i do document it, so i'm reversing that decision. it doesn't result in much extra code. the new design in lbmk makes this sort of thing much simpler. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-22emphasis on readme that lbmk isn't a coreboot forkLeah Rowe
i actually only made this change so that the revision changes, so that the release directory changes when doing: ./update release this is to test whether such location change affects the build time when using ccache. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-21include/rom.sh: use ccache when building corebootLeah Rowe
ccache now required, in build dependencies Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-19vendor.sh: don't use XBMK_CACHE for appdiraudit6Leah Rowe
the me_extract function prefixes it with PWD in some cases, but we can't predict where appdir will point to. the "app" directory is not intended to be a cache anyway, so it doesn't make sense to put it in the cache directory. it's essentially scratch memory. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-19put cachedir in environmental variableLeah Rowe
XBMK_CACHE is now used, instead of hardcoding cache/ this is exported initialised to cache/, if unset. this means you can set your own directory, and it means ./update release will use the same directory. this means bandwidth wastage is further avoided. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-18git.sh: warn when a cached clone failsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-18git.sh: fix typo in git commandLeah Rowe
the || : condition should be used, whereas i just wrote : by mistake. this was done in a previous change. fix it now. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-18git.sh: fix lack of error exits on faultLeah Rowe
a previous change made it more redundant, falling back on old behaviour (direct downloading, not cached), but the way it's done means that the function never returns an error condition in practise. this patch fixes it. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-18build: remove tmp/ on release archivesLeah Rowe
i overlooked this before. remove it. the directory happened to be empty when i tested archives, but it's still not a good thing that we have it. remove it! Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-17trees: hardcode makeargs for xgccLeah Rowe
if coreboot itself is being handled, crossgcc has the correct makeargs, setting the number of build threads. however, other projects can specify "xtree" pointing to a given coreboot tree, and build crossgcc for it. one workaround may be to use trees -d coreboot TREE, but then extra code would have to be written to make it avoid other things like building cbfstool, which is not required for just building crossgcc. the cleanest way to do it is to simply hardcode it. the value is set exactly the same as regular coreboot makeargs. this fixes a bug, where some builds of crossgcc are made on a single thread, rather than using XBMK_THREADS. this patch forces it to always use CPUS=$XBMK_THREADS Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-17allow using coreboot's build system to add payloadLeah Rowe
lbmk must still define payloads, but specific configs may use coreboot's build system instead. you might use this to add your own config with, say, tianocore payload, using coreboot.git to build it, rather than using lbmk's choice of payloads. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-17trees: remove unnecessary commandLeah Rowe
we no longer need to remove cache/ per project, because it's removed in bulk at the end, in the main build script, when generating release archives. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-17build: remove cache/ on making releasesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-17unify caching of files into cache/Leah Rowe
hash/ becomes cache/hash/ repo/ becomes cache/repo/ Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-17unified cache file handling for vendorfile/subfileLeah Rowe
lib.sh download() is used by subfile handling in git.sh, e.g. crossgcc tarballs, and also the vendor scripts. vendor files are cached, but not subfiles for repos. cache both, under cache/file/, saved with the name equal to the checksum, so: cache/file/CHECKSUM also move vendorfiles/app/ to cache/app/ in this change. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-17git.sh: remove previous tmprepo if args>5Leah Rowe
if doing a retry, the directory may still exist, which would make git clone yield an error response; the existing directory will have been the one that failed to reset, so let's delete it. the one deleted is not the cache (repo/PROJECT/), thus otherwise maintaining current behaviour. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-17git.sh: try direct clone if cached git failsLeah Rowe
normally, a project is cached at repo/PROJECT/, and cloned from there to the final destination. errors lead to a calling of $err, but this will result in a return if done from inside a subshell, of non-zero value, so use this to re-try with a 6th argument when calling tmpclone(). in most cases, this fallback will never kick in, but it will kick in resetting or patching the cached clone fails; specifically, we are interested in the reset part. a given project name may change repositories in lbmk at a given time. if this happens, and the old one is cached, the overall result of this patch is that lbmk will fall back to the old behaviour, where git urls are tried directly, without caching. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-17git.sh: re-try git pull three timesLeah Rowe
mitigate jittery internet connections Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-07-17trees: auto-delete+auto-rebuild if project changesLeah Rowe
actual source code is not scanned, but config directories are scanned. simply get the checksum of each file under config/ pertaining to a given project/tree, and also for the given target. coreboot utilities are also handled. if it changes, in any way, delete and re-build automatically. such deletions should probably still be done manually, as part of understanding the build system, but this change should make the build system much easier to use during development. Signed-off-by: Leah Rowe <leah@libreboot.org>