summaryrefslogtreecommitdiff
path: root/include/vendor.sh
AgeCommit message (Collapse)Author
2024-06-29vendor.sh: simplify initialisation of variablesLeah Rowe
also unify handling of cbutils Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-29vendor.sh inject: skip serprog targetsLeah Rowe
this is to prevent a fault condition during automated testing Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-29vendor.sh: don't inject /dev/nullLeah Rowe
if injection is attempted, verification comes next, and verification fails. this happens for kcma/kgpe amd boards, where pike2008 fake roms are inserted by inserting the correct pci ids using /dev/null as a source. an empty pike2008 rom prevents seabios from loading the real pci rom, and this is done because the real one hangs SeaBIOS. a similar fix was made for ./vendor download, but overlooked for ./vendor inject. this patch fixes that. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: simplify inject()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: clean up GbE handlingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: condense fetch() a bitLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: general code cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: simplified modify_gbe handlingLeah Rowe
we don't need the "modifygbe" variable. we only need to know that new_mac was set. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: simplify modify_gbe()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: minor code cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: re-add modify_gbe()Leah Rowe
i accidentally deleted it in an earlier code purge Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28Revert "vendor.sh: remove unnecessary check"Leah Rowe
This reverts commit 8196ce6ddf4f0c2320cbb0f8ea378dfff0d639c4.
2024-06-28remove more unnecessary checks on trees commandsLeah Rowe
the trees script already performs these checks Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: remove unnecessary checksLeah Rowe
again: the trees script already checks binaries, and already checks sources. if they exist, the relevant action is skipped entirely. we don't need to check it in vendor.sh, because the trees script already performs the same check. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: remove unnecessary commandLeah Rowe
we don't need to download the entire coreboot tree here, because the next command after it builds utils from that tree, using the trees script which would then go and download that tree anyway; this is part of the design. if a given elf binary exists, it won't be re-built, but the missing sources will still be downloaded automatically. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: remove unnecesessary cbutils checkLeah Rowe
the trees script already does this same check, so don't do it in here. defer to the trees script. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: remove unnecessary checkLeah Rowe
mktemp will never return empty output, and the next command after it is an mkdir, which would throw an error anyway, if the string is empty. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: condense check_board() a bitLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor fetch(): condense variable initialisationLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: remove unnecessary cbfstool checkLeah Rowe
the trees script already performs this check Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: simplified cbfstoolref checkLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: rename release to vreleaseLeah Rowe
also remove inject_vendorfiles() and merge it into vendor_download() the "release" variable is included in some target.cfg files, which we put in config/coreboot/ and handle here, so they could conflict with the release variable used in vendor.sh, used for a different purpose. therefore, rename it to "vrelease". Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: unified reading of board configsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: simplify variable check in getcfg()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-28vendor.sh: remove unnecessary cbdir checkLeah Rowe
we don't need to check this, because the trees script already checks it. avoid unnecessary work. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-27lib.sh: remove unused cbdir variableLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-27lib.sh: simplified TMPDIR handlingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-22use backticks on eval commands, not subshellsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-22lib.sh: more unified config handlingLeah Rowe
replace it with logic that simply uses "." to load files directly. for this, "vcfg" is added as a variable in coreboot target.cfg files, referring to a directory in config/vendor/ containing a file named pkg.cfg, and this file then contains the same variables as the erstwhile config/vendor/sources config/git files are now directories, also containing pkg.cfg files each with the same variables as before, such as repository link and commit hash this change results in a noticeable reduction in code complexity within the build system. unified reading of config files: new function setcfg() added to lib.sh setcfg checks if a config exists. if a 2nd argument is passed, it is used as a return value for eval, otherwise a string calling err is passed. setcfg output is passed through eval, to set strings based on config; eval must be used, so that the variables are set within the same scope, otherwise they'd be set within setcfg which could lead to some whacky results. there's still a bit more more to do, but this single change results in a substantial reduction in code complexity. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-20vendor.sh: more cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-20vendor.sh: correction (s/scancfg/scan_config)Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-20vendor.sh: minor code cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-20minor code cleanup in the build systemLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-17roms: remind the user about gkb filesLeah Rowe
nowadays, we don't insert GRUB keymaps automatically, for sake of efficiency; without one, the default is US QWERTY. a user will only want one keymap in particular, so this is more efficient. in practise, they're either building from source anyway, or using the inject scripts which compile cbfstool anyway, so the user will already have cbfstool. also output this message from the inject script. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-14lib.sh: remove the items() functionLeah Rowe
it's pretty much just doing the same thing as ls -1 remove it! Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-09minor code cleanup in the build systemLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-08vendor.sh: add a return at the end of mkdirsLeah Rowe
i don't like that it's not there, because of the quirks in sh behaviour. put it there to put my mind at ease. otherwise, this doesn't change any behaviour. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-08vendor.sh: move download logic to lib.shLeah Rowe
in future revisions, i will make tarballs become subfiles, to complement submodules. e.g. crossgcc tarballs in coreboot Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-07move uefiextract to elf/uefitool/Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-06put coreboot utils in elf/, not cbutils/Leah Rowe
one directory per util, under elf/ e.g. elf/cbfstool/ further split by tree name, e.g.: elf/cbfstool/default/ elf/cbfstool/foo/ Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-06-06move cbcfgsdir variable to vendor.shLeah Rowe
it's only ever used here Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-31vendor.sh: remove unnecessary assignmentLeah Rowe
dl_fail is set to n and then immediately to y afterward why? clearly i was dehydrated Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-29./vendor download: skip if blob path is /dev/nullLeah Rowe
We use a path of /dev/null pointing to a ROM for Fam15h AMD boards, to add fake PIKE2008 images. This is to mitigate a hang in SeaBIOS, but now with recent changes, this causes the command below to download coreboot, when it should just exit saying no vendor files needed. Prevent accidentally wasted bandwidth. The command was: ./vendor download kcma_d8_rdimm_16mb This now correctly does the following: $ ./vendor download kcma_d8_rdimm_16mb Vendor files not needed for: kcma_d8_rdimm_16mb The joys of programming a build system in sh! Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-29./vendor download: more fine-tuned error controlLeah Rowe
By default, the build system does set -u -e Some errors are unavoidable and have to be handled, so we have to set +u +e (turn off error handling in sh), when downloading vendor files, but only certain parts of vendor.sh trigger errors (which cause an exit). Replace the current bazooka approach with a more fine grained approach, turning error handling back on again when it is safe to do so. In the parts of the code where it is disabled, the code is written very, very carefully, with errors still handled manually, but more careful auditing is required. This change has been tested and makes the command much safer to run. In security (or any bug auditing), it is the principle of least privilege that holds true. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-29vendor.sh: don't error on main targetsLeah Rowe
e.g. coreboot/default contains no config directory, so the old logic would be trying to do: . which is obviously invalid now for example: $ ./vendor download default Vendor files not needed for: default and it will exit with zero status the only thing that should ever return non-zero status is when you define a target that does not exist, config or no. Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-26general code cleanup in the build systemLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
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>