This enables embedding U-Boot into the coreboot roms as the payload. For
now, the ELF file generated by enabling CONFIG_REMAKE_ELF is used, which
includes the U-Boot binary and the board-specific device-tree file. It
might be better to use the FIT payload support for U-Boot, but that was
reportedly broken and is not tested yet.
Coreboot boards can specify payload_uboot="y" in their board.cfg to
enable building a rom with U-Boot as the payload, which is built from
the U-Boot board with the same name. Boards can further specify a
uboot_config option, to choose which board-specific config file U-Boot
should be built with.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
The 32-bit ARM cross compiler toolchain is used to build parts of
arm-trusted-firmware needed by AArch64 boards, compile the toolchain for
those boards as well.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
The code that compiles coreboot crossgcc changes the working directory
to the coreboot directory, and the following code cannot find the lbmk
scripts that it needs to run. Compile ARMv7 and AArch64 cross compilers
in a subshell like in the x86 case so the rest of the script can work.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
These are almost verbatim copies of coreboot versions, but using
'u-boot' instead of 'coreboot' and 'ub*' instead of 'cb*'.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
This enables building U-Boot for boards which have config files in
resources/u-boot, and copying built files that could be usable to make
coreboot payloads. Right now, there is no such board in this repo.
The most important file here is "u-boot.elf", which is a combination of
the U-Boot binary and the appropriate device-tree file for the board.
Building this needs CONFIG_REMAKE_ELF=y on the U-Boot part, and using
this with CONFIG_PAYLOAD_ELF=y on the coreboot build works fine.
Note that this isn't enough to make U-Boot-only releases, since
low-level prerequisites like arm-trusted-firmware aren't passed in to
the U-Boot build system. Coreboot builds its own copy of TF-A and sets
it up on the board, so using these U-Boot builds as payloads should
still work.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Downloading coreboot and U-Boot takes quite the disk space and bandwith.
We don't need to download entire repos, only the revisions that we are
interested in.
Use the --depth=1 option to only download the files we need. Since the
initial clones may not have our target revision, always try to fetch it.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Keeping the git repositories is useful while development, e.g. to avoid
git cloning repositories over and over again while debugging download
scripts. Setting the NODELETE environment variable keeps the blobs and
the git repositories. Allow a slightly finer-tuned version of this where
we can keep only the git-related files by setting the variable to "git".
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Add a 'v2022.07' pseudo-board for the U-Boot download script with the
default blobs list, and mark the version as supported in u-boot-libre
release script.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
The coreboot download removes .git folders as they still contain the
removed blobs, remove those in the U-Boot version as well.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Although it's unlikely, boards might want to run extra commands after
the board-specific U-Boot directories are prepared. Copy the existing
mechanism for that from the coreboot download script to the U-Boot one.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Boards may need different sets of patches to be applied to their U-Boot
builds, copy the existing mechanism from the coreboot download script to
the U-Boot download script.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
The coreboot download script tries to update submodules, since coreboot
does use git submodules to retrieve and compile the projects it depends
on. Although U-Boot doesn't use submodules, try to update them anyway to
match the coreboot download script.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
The coreboot download script uses GitHub as a fallback if the upstream
coreboot is unavailable, use a similar fallback for U-Boot as well.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Boards may want to specify a board-specific U-Boot revision. At the very
least, pseudo-boards for u-boot-libre releases will need to specify their
U-Boot versions somehow.
Copy the existing mechanism from download/coreboot for specifying
build info with board.cfg files. Specify the commit hash for the
'v2021.07' pseudo-board, and 'master' as the default.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
The U-Boot download script is designed to help with releasing
u-boot-libre and it can only prepare a generic U-Boot v2021.07 tree.
However, we will need to build board-specific versions of U-Boot to be
able to use it as a coreboot payload effectively.
As a first step toward that, make the download script prepare per-board
copies of U-Boot v2021.07. Then, add a 'v2021.07' pseudo-board for the
u-boot-libre release script to work on.
The u-boot-libre deblob script hash ends up chaning due to copying my
author attribution from the download script, update its hash.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
The u-boot-libre tarball contents' mtimes are an unconventional value
due to timezone confusion. For reproducibility, timestamps like these
are usually set by a SOURCE_DATE_EPOCH which is respected by both
coreboot and U-Boot. Use it in the u-boot-libre release script as well,
and properly set the mtimes to the Unix epoch when it's not defined.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
The u-boot-libre release script copies the blobs list into the release
as the deblob script, presumably due to a copy-paste error. Fix it to
correctly copy the generated deblob script.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
The checksums in tests/u-boot-libre.sha512 do not match the tarballs
generated by this script when ran on a different timezone, e.g. UTC+3.
Explicitly specify a timezone for the tar command that makes the
tarballs match the checksums.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
For some reasons having both 'x-reviewed: true' and 'x-toc-enable:
true' results in having the following content on the top-right of the
page:
title: Code
review
x-toc-
enable:
true
x-reviewed:
true
Return to
index
…
GNU Boot
repositories
Since using the Untitled static website generator is meant to be
temporary, fixing this issue is not a priority right now.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
If we are in test/web the links work fine but if we go in
test/web/docs/, the links are relative to the current page and stop
working.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
If we are in test/web the links work fine but if we go in
test/web/docs/, the links are relative to the current page and stop
working.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
For some reasons having both 'x-reviewed: true' and 'x-toc-enable:
true' results in having the following content on the top-right of the
page:
title: Code
review
x-toc-
enable:
true
x-reviewed:
true
Return to
index
…
GNU Boot
repositories
Since using the Untitled static website generator is meant to be
temporary, fixing this issue is not a priority right now.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Using simply 'git log' or 'git show' shows the author but not the
commiter.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The new untitled revision has a fix for having spaces inside the
website title.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Before we needed to fetch the website from git because it was in a
separate repository.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, we end up with 'Fix SC2086 (info): Double quote to
prevent globbing and word splitting.' shellcheck warnings.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, using shellcheck on this file results in several warning
like this one:
In website-build/build.sh line 101:
if [ $i -ge $# ] ; then
^-- SC2086 (info):
Double quote to prevent
globbing and word splitting.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, using shellcheck on this file results in this
warning:
In website-build/check.sh line 56:
nr_files=$(tar tf "${tarball}" | grep -v '/' | wc -l)
^---------^ SC2126 (style):
Consider using
'grep -c' instead of 'grep|wc -l'.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, using shellcheck on this file results in several warning
like this one:
In website-build/build.sh line 32:
echo -e "\t-h, --help"
^-- SC3037 (warning):
In POSIX sh, echo flags are undefined.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, using shellcheck on this file results in this
warning:
In website-build/check.sh line 58:
if [ ${nr_files} -eq 1 ] ; then
^---------^ SC2086 (info):
Double quote to prevent globbing and word splitting.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, using shellcheck on this file results in several warning
like this one:
In website-build/check.sh line 27:
echo -e "\t-h, --help"
^-- SC3037 (warning):
In POSIX sh, echo flags are undefined.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, clicking to Download will go to
https://gnu.org/download.html.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The build.sh script currently hardcodes the repository URL and
revisions or branches name it uses.
If contributors aren't aware of that they could end up testing a
revision that is different from the one that they are working on.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The website and documentation originally comes from Libreboot and
Libreboot didn't have separate website and documentation.
And we need to reuse it because without it, GNU Boot would be almost
useless as without documentation most users would not be able to
install it.
The website is about 900 files and consist in about 27 MiB of
pictures.
Given that the website is not ready yet and that we are looking for
contributions to help us fixing it, we will end up having to update it
often, and ideally in a timely manner as well not to discourage
contributions.
So we needed some way to deployment the website with very few
commands.
GNU typically use CVS for deploying the website, but it is harder to
use than rsync for automatizing the deployment of a website.
To do that someone would have to write or adapt code to do the
deployment automatically, but that can potentially be time consuming
to do, especially if it needs to be done efficiently (for instance by
only adding files that changed since the last time) not to load too
much the CVS server.
Because of all that, an rsync access was temporarily setup for us, to
enable us to publish the website now and to be able to fixing this
deployment issue later and/or ask for help on the website to fix it.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Guix is being used to build the website and Guix has the 'guix deploy'
command, so this should look more familiar to people using Guix.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Most GNU projects use a CVS repository to publish their web pages.
For some reasons, in the CVS root directory (inside the gnuboot CVS
module) the only file that we can add is index.html. Subdirectories
don't have this limitation.
So we add a test for that.
In addition when the website will be ready we will most likely have an
html file that redirect to a subdirectory (like /web/) and so we add
the html file for doing that too.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Since the website and the images were merged in GNU boot respectively
in site/ and www/, we can now modify GNU boot to only be cloned once
to build the website.
The image path was also modified to make images work both in the local
served website and at gnu.org and also to minimize the differences
between the test and deployment setups.
Libreboot.at also hosted a copy of Untitled to make it simple to
control the revision being used.
But in the longer term, it would be a bad idea to do that again for
GNU boot since there are plans to convert the website and/or
documentation to the texinfo format, and so at some point Untitled
will stop being used, and we don't want to end up with a git
repository that needs to be kept for historic reasons but that is
unused.
Since the website isn't ready we also have a redirection to Savannah
to make sure that visitors are redirected to something meaningful.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Neox: Suggested the split in smaller commits and various ways to do
that (including some that were used).
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The website will be published to https://gnu.org/software/gnuboot. But
for now it is not ready yet to be published as-is because there are no
contribution instructions yet and we also need to agree on what to put
on the main page.
So until that's fixed, it will be published to
https://gnu.org/software/gnuboot/test.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Neox: Suggested the split from the "website-build: build.sh: switch to
GNU Boot repositories." commit.
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Since the website and the images were merged in GNU boot respectively
in site/ and www/, we can now modify GNU boot to only be cloned once
to build the website.
This also requires to move the images inside site/ at the place where
website-build expects them.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Neox: Suggested the split from the "website-build: build.sh: switch to
GNU Boot repositories." commit.
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This for instance enable users to manually override the revisions to
test branches of git repositories.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Having that code inside the same repository than GNU Boot makes it
easier to keep Untitled versions (and possibly additional patches on
top) in sync with the documentation/website being worked on.
This is relevant as there are plans within GNU Boot to convert the
website to Texinfo but that would require to patch untitled (to add
support for Texinfo pages in untitled) to do a progressive transition
to Texinfo.
Using an external repository to temporarily maintain a patched version
of Untitled is not optimal as we would end up having to warn users not
to use that repository anymore at some point.
Bringing in the whole untitled source code and documentation in this
GNU Boot repository is also not a good option since we only need
minimal patching on top of untitled, so in the long run not doing that
would help keep the GNU Boot repository smaller and more simple.
In addition we currently do need to wrap the build with a fixed Guix
revision as for instance with a more recent Guix revision than the one
used by website-built, for instance at the commit ("gnu: nyxt: Update
to 3.9.0."), if we run ./build.sh directly without using a fixed Guix
revision, the build is broken:
Generating 'www/lbwww/site/index.html'
Generating 'www/lbwww/site/license.html'
YAML parse exception at line 7, column 0,
while scanning a simple key:
could not find expected ':'
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The documentation/website pictures are currently in a separate
repository, but they are needed to build the documentation/website.
Since we want to be able to have commits that modify both the code and
the documentation, including its pictures in order to keep everything
in sync, we need to merge both histories.
It's also a good idea to do that as early as possible as we don't need
to deal with the confusion of having to keep an extra unused git
repository for historic purposes.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The website and the documentation are currently in a separate
repository.
Since we want to be able to have commits that modify both the code and
the documentation in order to keep everything in sync, we need to
merge both histories.
It's also a good idea to do that as early as possible as we don't need
to deal with the confusion of having to keep an extra unused git
repository for historic purposes.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Now there are probably too much people to thank to have all that on
the main page.
If we want to keep their names, a better idea would be to collect all
their names and add them to the release announcement.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
For the GNU Boot website and documentation we reused:
- The Libreboot website as it contains a lot of documentation
(installation instructions, documentation on supported computers,
etc). And we don't want to re-do all that from scratch.
- The libreboot.at website as some of its modifications (like the
ability to include images from the same domain, the fact that it
mention that it's not libreboot.org, etc) are useful to us, and here
too it's a good idea not to have to re-do all that work from
scratch.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Informing about Libreboot freedom status and/or switching URLs to GNU
Boot are two approaches meant to deal with the same issue.
Informing people about GNU Boot however is not necessarily directly
related to that.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>