Commit Graph

1160 Commits (e90bffff3c3c2afc734c41a424e164355aefd2e2)

Author SHA1 Message Date
Leah Rowe e90bffff3c move git_init to the main build script
also, don't use x_ because it totally b0rks on
these commands. handle exit status directly.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 21:10:26 +01:00
Leah Rowe c7e764a3f0 update/release: confirm vdir path on exit
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 12:09:31 +01:00
Leah Rowe 1c8b2114cc update/release: copy crossgcc to archive
everything downloaded, then tarballed, then built,
now crossgcc is downloaded by coreboot.

now extract, copy crossgcc tarballs, re-compress.

TODO: simply add files to the archive, without re-
compressing the whole thing.

this is still more efficient than the old way: build
everything, then clean and compress, making another
build test on the release archive necessary; with this,
there is still only one build test per release.

with this, and the previous revisions dealing with
submodules, the source archives should now be complete.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 12:08:36 +01:00
Leah Rowe 54a05fc167 always re-generate .git in lbmk
in release archives, .git is excluded but the version
and versiondate files are included. from these, the
git history is re-created with the exact date (but not
taking into account timezone, at present).

in this way, lbmk will have git history in a release
archive. some build systems, like coreboot, prefer that
there be git history available, so this is a nice
workaround on those build systems.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 11:16:25 +01:00
Leah Rowe 52c9416b19 update flashrom revision
flashrom-stable isn't really going anywhere

i'll decide at some future point what to do
with flashrom. for now, just give latest rev

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 10:47:21 +01:00
Leah Rowe af1c1e10f1 add backup git repo for flashrom
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 10:46:03 +01:00
Leah Rowe 18364822a2 Revert "config/git: don't download flashrom"
This reverts commit bf4ea8102a.
2023-10-20 10:45:10 +01:00
Leah Rowe ac442808ee config/git: add more backup repos
the grub backup was the same gnu server

i decided to host grub on codeberg, as backup

(gnu links as primary is ok)

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 10:39:37 +01:00
Leah Rowe 759800523f git/config: don't use github on main repos
it's ok for now to use it as a backup.

where only github was specified, i mirrored each
given repository to codeberg as main repo for lbmk.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 10:31:10 +01:00
Leah Rowe bf4ea8102a config/git: don't download flashrom
it's not actually needed in lbmk

flashrom can be downloaded separately by the user,
if they want to flash their chip

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 09:52:49 +01:00
Leah Rowe da3044e7d7 git/config stm32-vserprog: don't fetch libopencm3
it's downloaded by .gitmodules in stm32-vserprog

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 09:52:03 +01:00
Leah Rowe 782371a59c update/release: delete *all* .git and .gitmodules
do it using find -exec

this is more robust, and it will never need to be
maintained over time (famous last words).

this is done because now we download submodules
for all git projects, so it's hard to predict.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 09:27:27 +01:00
Leah Rowe 743a425cd6 include/git: fix already-exists download message
i forgot to put the download path in printf

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 09:13:49 +01:00
Leah Rowe 73145b7980 Revert "Revert "include/git: don't re-download single-trees""
This reverts commit baa3d4f217.
2023-10-20 09:12:23 +01:00
Leah Rowe 31b35bb4ce include/git: fix error caused by sh idiosyncrasy
when [] is used right at the end of a function, or
certain loops/subshells, some sh implementations will
just return a non-zero exit

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 09:11:29 +01:00
Leah Rowe baa3d4f217 Revert "include/git: don't re-download single-trees"
This reverts commit 8de7bc9339.
2023-10-20 08:58:02 +01:00
Leah Rowe 8de7bc9339 include/git: don't re-download single-trees
only do it if the target source tree does not exist

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 08:54:01 +01:00
Leah Rowe d1f23eca34 config/git: remove rpi-pico-tinyusb dependency
it's now downloaded automatically as a submodule,
when downloading pico-sdk (which defines this module)

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 08:50:26 +01:00
Leah Rowe 97e5207ecf config/git: give pico-sdk its own file
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 08:49:31 +01:00
Leah Rowe 182ee8e416 update/trees: don't run make if mode=fetch
this fixes a regression caused by a previous revision

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 08:45:57 +01:00
Leah Rowe 54eb347a30 include/git: fetch submodules on one-tree projects
only fetch if .gitmodules exists

in some cases, lbmk is compiling source trees that
use submodules, without having downloaded them first.

in all cases, those submodules are either optional,
or the build system auto-fetches them (or if it can,
we sometimes disable it as with grub and gnulib).

this is a nice fallback behaviour, for situations where
we forget to put submodules as dependencies under
config/git (and disable submodules in the given project).

with this change, release archives are guaranteed to
be complete, sans crossgcc downloads in coreboot; this
will be handled in a follow-up commit.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 07:50:47 +01:00
Leah Rowe f855611c99 include/git: only download submodules if possible
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 07:47:10 +01:00
Leah Rowe 0c32c1d643 update/release .git/*: delete one more level up
it couldn't hurt

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 07:44:27 +01:00
Leah Rowe 0375cfaf1c update/release: don't hardcode project names
config/git has been re-arranged in a prior revision,
ensuring that each file only refers to a main source
tree defined within those files.

the erstwhile "./build clean all" functionality is now
once again possible in lbmk

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 07:37:51 +01:00
Leah Rowe d245e0b1b4 consistent naming for src/pico-serprog
don't ever name it rpi-pico-serprog

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 06:49:59 +01:00
Leah Rowe fac62a8c58 config/git: name files per download name
don't put multiple downloads in the same files, except
when they are dependencies that go inside the directory
of another download.

by doing this, the following functionality will become
possible: clean every project or build every project,
or maybe fetch every project, based entirely on the
names of these files.

this will be used later to simplify the release script.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 06:45:50 +01:00
Leah Rowe 0e1602f5b1 do a nice thing
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 05:34:41 +01:00
Leah Rowe 7b2060086a Merge pull request 'fix_distro_dependencies - part 2' (#139) from andreamtp/lbmk:fix_distro_dependencies into master
Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/139
2023-10-20 04:30:44 +00:00
Leah Rowe 6af65ad430 error handling code cleanup and fixes
in some cases, use of x_ or xx_ can be error-prone,
due to the way $@ is handled; commands requiring
quotes, or with funny file names as arguments such
as spaces in the file name, or other special
characters, can make the x/xx functions break.

in those cases, where x/xx must not be used, the
commands use || err instead

in other cases, use of x/xx is superfluous, and has
been removed in some commands.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 05:03:16 +01:00
Leah Rowe 4e54a051ef another code cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 03:29:55 +01:00
Leah Rowe 8d9aeef3de lbmk: use 2-level directory structure in script/
as opposed to the current 3-level structure.

recent build system simplifications have enabled
this change, thus:

./build fw coreboot -> ./build roms
./build fw grub -> ./build grub
./build fw serprog -> ./build serprog
./update project release -> ./update release
./update project trees -> ./update trees
./update vendor download -> ./vendor download
./update vendor inject -> ./vendor inject

alper criticised that the commands were too long,
so i made them shorter!

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-20 01:00:38 +01:00
Leah Rowe 0b98c9b00c minor code cleanup in shell scripts
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-19 23:36:56 +01:00
Andrea Perotti a16cd1a349 Added python-unversioned-command for Fedora38
Added python-unversioned-command as dependency to have /usr/bin/python
to call python3 in Fedora.
2023-10-19 17:04:18 +02:00
Andrea Perotti 8a063f6b4b Fix Debian/Ubuntu dependencies
Dependencies for Debian/Ubuntu and derived distros are now deduplicated and sorted.
Added target for Linux Mint as well.
2023-10-19 17:03:11 +02:00
Leah Rowe 8b6e44a104 Merge pull request 'Fix F38/Ubuntu 20.04 dependencies' (#137) from andreamtp/lbmk:fix_distro_dependencies into master
Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/137
2023-10-19 14:44:18 +00:00
Leah Rowe 9fac3c1232 Merge pull request 'Fix Void Dependencies for building Serprog' (#138) from neutrocyte/lbmk:fix_void_dependencies into master
Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/138
2023-10-19 14:43:36 +00:00
neutrocyte e63399cf25 Fixed Void Dependencies for building Serprog 2023-10-19 15:00:56 +02:00
Andrea Perotti 6758b5c85d Fix F38/Ubuntu 20.04 dependencies
Dependencies for Fedora 38 and Ubuntu 20.04 are now deduplicated and sorted.
Missing packages added and packages names updated where needed.
2023-10-19 00:04:37 +02:00
Leah Rowe 4cdf60e60a util/spkmodem-recv: detailed copyright history
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-17 13:55:20 +01:00
Leah Rowe fc2cab3124 update/release: fix missing variable definition
i forgot to include option.sh in this script,
during previous re-factoring. the cbfstoos variable
is now defined exclusively in option.sh, but other
scripts can set it to something else.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-15 23:33:29 +01:00
Leah Rowe c14461a56b delete include/vendor.sh and merge elsewhere
move it all to other files where items are used, and not
used anywhere else. this reduces the size of vendor.sh.

also remove a few redundant variables, or variables that
are not meaningfully used.

a few items have been moved to include/option.sh

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-15 13:00:14 +01:00
Leah Rowe d8c2c24507 vendor.sh: move some functions to vendor/download
they are the functions only used by the download
script, so they don't belong in vendor.sh

an include file should only contain variables and
functions used by multiple main scripts

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-15 10:01:16 +01:00
Leah Rowe 0f807762a2 update .gitignore for the dell-flash-unlock binary
it wasn't updated, when e6400-flash-unlock renamed
to dell-flash-unlock

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-15 08:38:36 +01:00
Leah Rowe 34b8687e94 coreboot/fam15h: remove redundant patch
i previously added this just for kicks, but it's not
actually needed; gnat isn't used on fam15h boards so
lbmk doesn't even use it (it's disabled).

in fact, i tested lbmk with crossgcc_ada handling
taken out, but with said patch; i still got build
errors with gnat anyway, on that old coreboot
revision (but gnat isn't needed there anymore).

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-15 07:16:28 +01:00
Leah Rowe 1a299f1b0b Merge pull request 'util/e6400-flash-unlock: Rename to dell-flash-unlock' (#135) from nic3-14159/lbmk:rename-e6400-flash-unlock into master
Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/135
2023-10-15 00:24:08 +00:00
Leah Rowe 8583a05dde Merge pull request 'Update U-Boot to v2023.10 and use default coreboot tree for gru chromebooks' (#136) from alpernebbi/lbmk:uboot-v2023.10 into master
Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/136
2023-10-14 19:42:54 +00:00
Alper Nebi Yasak 4d9567a756 coreboot: gru: Use default coreboot tree
We don't really need a custom coreboot tree for Chromebooks. I had added
one, because at a cursory glance to the available config/coreboot/board
subdirectories I had the impression that I should. But upstreams have
one tree for every board and I think we should move towards that too.

Move the one important BL31 makefile patch into the default coreboot
patches, update the gru boards' configs by running savedefconfig in the
cros tree and then running olddefconfig in the default tree.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14 17:34:42 +03:00
Alper Nebi Yasak 6e65595da5 u-boot: gru: Do not persist EFI variables
By default U-Boot stores EFI variables in a ubootefi.var file in
whatever EFI System Partition it finds, which would be a FAT filesystem.
I'm occasionally finding out while testing that my ESPs somehow end up
with a corrupted filesystem, and I'm suspecting it's this.

For now, disable storing EFI environment variables on disk so that
U-Boot doesn't try to manipulate the filesystem.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14 16:48:41 +03:00
Alper Nebi Yasak 4e7e476191 u-boot: gru: Enable more EFI commands
Enable U-Boot commands to manipulate EFI environment storage, to
self-test EFI implementation, and to run a basic EFI test application.
These are so that we can test and debug EFI functionality easier.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14 16:48:41 +03:00
Alper Nebi Yasak f08102a227 u-boot: gru: Enable more bootstd features
U-Boot upstream is switching to a new code framework for discovering and
booting OSes ("Standard Boot", or "bootstd"). Enable more features for
it, including commands we can use for introspection and debugging.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14 16:48:41 +03:00