summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-05-18vendor.sh: further simplify config handlingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-18vendor.sh: greatly simplified config handlingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-18vendor.sh: move config checks to detect_firmwareLeah Rowe
they will later be removed, as part of unification against other files that perform the same tasks Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-18vendor.sh: print an error upon ill-defined targetLeah Rowe
previously, it was attempting to load the configs and silently failing. we must provide feedback to the user. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-18vendor.sh: remove redundant checkLeah Rowe
we literally do this check twice, in immediate succession. avoid wasted i/o Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-18vendor.sh: simplify defconfig checkLeah Rowe
re-use check_defconfig from option.sh Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-18git.sh: Remove .git if XBMK_RELEASE=yLeah Rowe
The build system already deletes .git in all source directories for each given release, but does so at the very end; it still does, but now it is deleted one by one per project, to save space during very large builds (release sizes vary wildly, depending on how many trees exist for coreboot basically). If you're building entirely in tmpfs (as I do), this could be a problem if you have lots of .git/ directories. This change reduces disk usage, or in the above example, memory usage when running the build system from tmpfs. This complements another recent change, where ROM images are compressed per target during release builds, rather than all at the very end of the process. It is part of a series of optimisations, to reduce the memory and disk usage of the build system, and to reduce I/O wastage in general. This change will not be the last of such changes! Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-16build: remove initcmd() and simplify main()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-16build: initialise git first (before commands)Leah Rowe
when running the inject logic, we should still initialise the git repository because these commands make use of the coreboot build system which requires git. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-16build: remove excmd() and simplify main()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-16build: don't make script_path a global variableLeah Rowe
this allows a mild cleanup of the code (reduction by 1 line) Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-16lbmk: allow easier sync with cbmkLeah Rowe
an equivalent change has been made in cbmk. certain lbmk-specific variable names have been made generic, with certain functions and other variables moved around. i maintain sync between libreboot and canoeboot, where both projects can have the same behaviours, and most of the merge conflicts have to do with variable names containing "LBMK", "lbmk", "cbmk" or "CBMK", or indeed "canoeboot" and "libreboot" LBMK/lbmk/CBMK/cbmk variables between canoeboot and libreboot now contain the string XBMK/xbmk it should now be *much* easier to merge build system changes between lbmk and cbmk. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15remove help commands (user should read docs)Leah Rowe
i always say, code should never document itself. that's what documentation is for. the releases contain documentation under docs/ but the git repository does not; for that, use the website. (in practise, lbmk usually needs internet anyway) Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15option.sh: delete check_git()Leah Rowe
it's only used from main() in the main build script, and it's very small, as is main() therefore, move the logic into main() Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15build: define "xp" in the global variablesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15build: simplify for loop in fetch_trees()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15build: simplified downloads in fetch_trees()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15./build release: don't do u-boot-only archivesLeah Rowe
it's a pointless feature, initially added just to one-up gnuboot and only intended for canoeboot, to provide u-boot tarballs with deblobbing. this was done, because the parabola build system has certain limitations so the idea is to provide them with tarballs. but why? they can just fix their build system... delete this bloat from lbmk. we only need to provide full sources, and rom images. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15build: use utc+0 when initialising git repo datesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15remove check_project() (always set variables)Leah Rowe
in lbmk, we call check_project() to set variables such as projectname, version, version date this is unnecessary, because all main scripts use this functionality anyway do it by default Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15build: simplify deletions in fetch_trees()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15build: delete mkversion() (just print relname)Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15build/roms: clean up tarball handlingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15rm src/u-boot/*/test/lib/strlcat.c in u-bootLeah Rowe
i accidentally removed this in a previous commit Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15build: remove mkrom_imagesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15build: use same tarball name on uboot-only releaseLeah Rowe
it's a rarely used feature, not currently used by the libreboot project itself remove unnecessary bloat Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15build/roms: create full release tarball nameLeah Rowe
set relname from option.sh under check_project() now the release logic simply has to move a directory Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15option.sh: don't bother checking for GNU tarLeah Rowe
releases aren't reproducible anyway. we were using options available in gnu tar for this. it will be revisited at a later date. however, the next time this is done, we will use another method because there are in fact portable ways to create tarballs reproducibly, documented on reproducible-builds.org to be revisited, at a later date. for now, remove bloat. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15option.sh: remove insert_version_files()Leah Rowe
it's only called once, from this file, within a small function, and the function itself is very small. remove, and put the contents of the function in the calling function. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15cleanup: remove mkvdirLeah Rowe
this function is not needed, because it's only called once and it's very small. furthermore: insert_version_files does ntot need to be called here, because they same files are generated immediately afterward when running that version of lbmk. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-15unified sha512sum creation for tarballsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-14move rom tarball creation to script/romsLeah Rowe
export LBMK_RELEASE="y" if this is done, the tarball is created instead of a directory, and the rom images are nuked using ./vendor inject with the nuke option, inserting the correct version files; the rom directory is deleted now the release script logic simple renames existing tarballs. the benefit of this change is fewer lines of code, and now lbmk doesn't use an insane amount of disk space when building a *lot* of release images (the uncompressed directories are deleted after each build) Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-12disable x301 for next release (for now)Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-11mrc.sh: remove redundant function extract_ref()Leah Rowe
extract_ref() is no longer used Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-11print two line breaks before confirming releaseLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-11remove haswell mrc blob (libre raminit stable now)Leah Rowe
broadwell mrc is retained, because it's needed on 820 g2 it's no longer needed on haswell, because nri is stable. nri is short for "native ram initialisation", and libreboot provides this for: thinkpad t440p, thinkpad w541, dell optiplex 9020 mt, and dell optiplex 9020 sff remove, in line with libreboot's binary blob reduction policy previous revisions, prior to the recent release, stated that it would be retained for compatibility, but it's really not right to retain it, because doing so violates libreboot's policy the recent release excluded mrc-based rom images for haswell machines, providing only those rom images that use the libre raminit, while retaining support for mrc in the build system, so that users could still run the lbmk inject script on older release roms that use mrc again: libreboot's binary blob reduction policy is very clear: https://libreboot.org/news/policy.html it is a policy that can be summarised, thus: if a blob can be avoided, it must be avoided. therefore, we will avoid the Haswell MRC raminit blob Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-11remove all status checks. only handle release.Leah Rowe
the release variable is all we need, turning a target on or off for a given release. the status checks were prone to bugs, and unnecessary; it also broke certain benchmark scripts. it's better to keep the lbmk logic simpler. board status will be moved to the documentation instead. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-11git.sh: remove errant commentLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-11move script/*/* to script/Leah Rowe
there are only two scripts under script/ now, and there probably won't be many more. lbmk's design has simplified to such a degree that the two-level directory structure is no longer necessary. the existing command structure has not changed. for example: ./build roms list ./update trees -f coreboot default these will still work, but the symlinks to "build" are now strictly for backwards compatibility; they may be removed at a later date, but i'll keep the current design for now. this also leads to a quirk, for example: ./build roms all ./update roms all these now do the exact same thing, whereas "./update roms all" would have previously been an invalid command. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-11merge script/vendor/* into include/vendor.shLeah Rowe
stub it from the main build script the commands remain identical: ./vendor download arguments_here ./vendor inject arguments_here Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-11build: print usage for special commandsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-11merge script/update/release into buildLeah Rowe
the main script isn't that big, and since the main purpose of lbmk is geared toward the releases, it makes sense to reduce the number of scripts by merging into the main one the way this works, "./update release" still works afterward so, the way lbmk is used shall remain unchanged Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-10bump seabios to e5f2e4c69643bc3cd385306a9e5d29e11578148cLeah Rowe
changes upstream, relative to the previous revision: * e5f2e4c6 pciinit: don't misalign large BARs * 731c88d5 stdvgaio: Only read/write one color palette entry at a time * c5a361c0 stdvga: Add stdvga_set_vertical_size() helper function * 22c91412 stdvga: Rename stdvga_get_vde() to stdvga_get_vertical_size() * 549463db stdvga: Rename stdvga_set_scan_lines() to stdvga_set_character_height() * c67914ac stdvga: Rename stdvga_set_text_block_specifier() to stdvga_set_font_location() * aa94925d stdvga: Rework stdvga palette index paging interface functions * 8de51a5a stdvga: Rename stdvga_toggle_intensity() to stdvga_set_palette_blinking() * 96c7781f stdvga: Add comments to interface functions in stdvga.c * 2996819f stdvga: Rename CGA palette functions * 91368088 stdvgamodes: Improve naming of dac palette tables * 70f43981 stdvgamodes: No need to store pelmask in vga_modes[] * 1588fd14 vgasrc: Rename vgahw_get_linesize() to vgahw_minimum_linelength() * d73e18bb vgasrc: Use curmode_g instead of vmode_g when mode is the current video mode * 192e23b7 vbe: implement function 09h (get/set palette data) * 3722c21d vgasrc: round up save/restore size * 5d87ff25 vbe: Add VBE 2.0+ OemData field to struct vbe_info * 163fd9f0 fix smbios blob length overflow * 82faf1d5 Add LBA 64bit support for reads beyond 2TB. * 3f082f38 Add AHCI Power ON + ICC_ACTIVE into port setup code * 3ae88886 esp-scsi: terminate DMA transfer when ESP data transfer completes * a6ed6b70 limit address space used for pci devices. Signed-off-by: Leah Rowe <info@minifree.org>
2024-05-09build: further prevent non-lbmk-work-directoryLeah Rowe
this is a follow-up to the previous commit again, there's no posix way to check the path to the file at argument 0, because readlink (utility) isn't defined in posix (the C function is defined, but not the utility included on many unices) check whether "build" (file) exists, and whether it is a symlink; if the latter, then we are definitely not in the lbmk work directory! Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-09build: exit if not running from lbmk directoryLeah Rowe
there's no portable(posix) way to check when running from a symlink to lbmk in the current work directory for example: ln -s lbmk/build lbmktest ./lbmktest roms list this would pass the new test, and first try to include option.sh. in practise, the user probably doesn't happen to have include/option.sh in their current path i can use readlink here, but again not portable the current check will suffice. it also works when the symlink is called from $PATH e.g. /usr/bin/lbmktest exists and you do: lbmktest roms list Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-09build/roms: print serprog helpLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-09merge script/build/serprog with script/build/romsLeah Rowe
previous command: ./build serprog now it is: ./build roms serprog after that, it's the same arguments e.g. ./build roms serprog stm32 ./build roms serprog rp2040 further cleanup to commence Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-09build/roms: remove unnecessary commandLeah Rowe
there is no need to return 0 at the end of a function. sh does that anyway Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-06merge include/err.sh with include/option.shLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-06err.sh: correct copyright infoLeah Rowe
i replaced 2022, 2023 with 2022, 2024 when updating the years, as per modifications, but the 2023 copyright doesn't become invalidated change it to 2022-2024 instead, which is correct Signed-off-by: Leah Rowe <leah@libreboot.org>