To work on the website, more than one of the targets (like 'make
serve' or 'make check') are useful. So it's better to inform users
about the available targets instead of building a tarball directly.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Since we're migrating to haunt, and that 'haunt build' builds the
website, 'haunt serve' serve the website locally, and that 'haunt
publish' takes care of publishing the website, using the same target
names will make remembering the targets easier.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
When working on multiple websites the same time, having every website
using the port 8080 by default isn't very convenient.
In addition here we need a number that is somewhat easy to remember
and possibly meaningful for each website, so in general that not easy
to choose.
But in the case of GNU Boot we can find a scheme because:
- GNU Boot supports only x86 machines for now,
- the GM45 ThinkPads are probably the most well supported by GNU
Boot and also well known machines,
- that the GM45 ThinkPads use Intel CPUs,
- that 8086 is frequently used as vendor ID for Intel,
so here we can simply use 8086 as it's meaningful and at least very
easy to remember at least for people working in that field.
In addition for people not familiar with writing drivers for x86
computers, it could also reminds of a CPU also from Intel.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
The variable could be updated, but this could be misleading as it is
only used in the help of that Makefile.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
The Guix manual[1] allows patches under pseudonymous:
Contributors are not required to use their legal name in patches
and on-line communication; they can use any name or pseudonym of
their choice.
[1]https://guix.gnu.org/en/manual/en/html_node/Contributing.html
For Guix packages that contain patches to other upstream projects we
would need to contact the upstream project to best see how to handle
that.
As for the documentation, part of it is most likely to stay specific
to GNU Boot, but other parts could be merged into Guix (which was
already checked), GRUB or other projects to simplify maintenance.
As for the GNU Boot build system, it's most likely specific to GNU
Boot or likely to be moved into Guix packages at some point. The only
problematic cases that can remain are the move of the build logic
inside upstream project or for transforming hacks into autotools
contributions.
But in any case when contributions that could be merged in projects
that weren't checked are made, the GNU Boot maintainers and/or
followers of the GNU Boot patches mailing list could simply mention
the issue and look up the upstream policy with regard to pseudonymous
contributions, and if that doesn't work out, work with upstream
projects to find a solution.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
One of the definitions of ROM is read-only-memory. Because of that it
creates confusion when this term is used to refer to an image that
is to be installed on a writable storage.
Signed-off-by: DiffieHellman <DiffieHellman@endianness.com>
GNUtoo: split commit, commit message.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Signed-off-by: DiffieHellman <DiffieHellman@endianness.com>
GNUtoo: split, commit message, keep "Linux kernel", rephrase the part
with BusyBox, fix more spelling mistakes found by neox and me.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
GNU Boot can be installed on some I945 ThinkPads without disassembling
them. To do that it requires both a patched flashrom and bucts.
This build them and also integrate Guix in GNU Boot as a dependency to
build them.
This will enable us to later on ship these utilities and then update
the installation instructions to use them somehow.
It also makes sure that we have proper authorship of the patch used
for flashrom and also unify the two flashrom patches not to require
two different flashrom binaries.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The build documentation (site/docs/build/index.md) references some
commands, so documenting them in the a 'make help' command as well can
help improve the contributors efficiency by not having to re-read the
documentation every time we are looking for a command.
In addition this can help separate well known commands from other less
documented ones that are internal to GNU Boot and that can more easily
change.
This is also important as it allows, if the need arrise, to have the
the autotools system play a more important role than merely a
"compatibility system" for people used to type "make" as the build
instructions currently state.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The goal here is to be able to add configure options later on.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
For some reason the regex being removed ends up ignoring .scm files:
if we run git add to some files in ./resources/guix/*/*.scm, we end up
with:
The following paths are ignored by one of your .gitignore files:
[...]
hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"
but if we remove '*.s[a-w]?' from .gitignore, git add works fine
without any warning.
As this gitignore entry was added by the very first commit of this
repository (commit 89517ed6b9
"libreboot!"), we don't really know why it was added (what type of
files it's supposed to match again).
But given that we plan to use .scm files extensively, it's probably
better to remove that ignore rule and find out later the reason why it
was added in the first place, and adjust the rules accordingly, than
risking to forget some important scheme files.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without this fix, running shellcheck -x on
resources/scripts/misc/guix.sh returns many errors.
For each guix version declaration we have something like that:
In resources/scripts/misc/guix.sh line 21:
guix_v0_0="6365068393254e1131ab80eb0d68a759e7fd2256"
^-------^ SC2034 (warning): guix_v0_0 appears unused.
Verify use (or export if used externally).
and here the variables are actually used in this code:
guix_version_commit()
{
version="$1"
eval echo "$(echo \$guix_"${version}" | sed 's#\.#_#g')"
}
so we workaround by disabling that test for each version declaration.
Then shellcheck cannot find "$GUIX_PROFILE"/etc/profile:
In resources/scripts/misc/guix.sh line 91:
. "$GUIX_PROFILE"/etc/profile
^-------------------------^ SC1091 (info):
Not following: ./etc/profile: openBinaryFile:
does not exist (No such file or directory)
so we disabled that test for this line.
After that we have many issues with quoting like this one:
In resources/scripts/misc/guix.sh line 104:
eval echo $(echo \$guix_"${version}" | sed 's#\.#_#g')
^-- SC2046 (warning):
Quote this to prevent word splitting.
or this one:
In resources/scripts/misc/guix.sh line 233:
major="$(echo ${version} | awk -F . '{print $1}')"
^--------^ SC2086 (info):
Double quote to prevent globbing and word splitting.
these were fixed.
We also improved a test by using grep -q:
In resources/scripts/misc/guix.sh line 272:
elif [ -n "$(echo ${revision} | grep '\.')" ] ; then
^-- SC2143 (style):
Use grep -q instead of comparing output with [ -n .. ]
And finally in guix_version_commit a sed was avoided by using bash
replacement, and when that was not possible (in guix_next_version),
the shellcheck test for that was disabled.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Guix now supports debootstraping both PureOS and Trisquel. In Guix,
the keyring packages are runtime dependencies of debootstrap, and
debootstrap refers to them by their full path in /gnu/store.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
We need to install the keyring packages to make sure that the
signatures are checked. So a table was created for that and also to
enable to add more distributions in it (like Guix) later on.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
While T60 with ATI GPUs can be used as servers for instance, not
officially supporting them simplifies the support and also doesn't
steer users toward installing nonfree Video BIOS afterward.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The patch added support for deploying websites made with untitled in
subdirectory and was needed to make the news/ pages work.
But now the functionality has been merged upstream, so we don't need a
patch for that anymore.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
In the commit d68b4f8930 ("Makefile: Add
logging.") I forgot to add the SHELL := $(shell which bash) line that
is mentionned in the commit to the Makefile.
So now the Makefile targets are actually broken:
$ make release
echo 'Makefile: running release target' >> make-1705163885.log
set -o pipefail ; ./build release src | tee -a make-1705163885.log
/bin/sh: 1: set: Illegal option -o pipefail
make: *** [Makefile:59: release] Error 2
Since 'SHELL := bash' also works on PureOS 10 and Trisquel 10, I'll
use that instead as it is more simple.
The path of bash is not hardcoded to respect users decisions to use
the bash they want, and also to work better with non-FHS
distributions.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Signed-off-by: Adrien 'neox' Bourmault <neox@gnu.org>
A link was also fixed in the news along the way.
On the Thinkpads T60 and X60 a full installation from the nonfree BIOS
was tested with locally built patched Flashrom 1.2 and bucts.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The GNU Boot 0.1 RC1 and 0.1 RC2 releases don't have any images for
the Chromebook C201. And the Chromebook C201 also cannot use images
for any of the other computers as all the other computers are x86
whereas the C201 is ARM.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
For some reason, 'make release' produces the following files:
- release/roms/gnuboot-lbwww-20211122-328-gafe01fb_default.tar.xz
- release/roms/gnuboot-lbwww-20211122-328-gafe01fb_fam15h_rdimm.tar.xz
- release/roms/gnuboot-lbwww-20211122-328-gafe01fb_fam15h_udimm.tar.xz
This commit works around that issue.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
We also need to check if we have all the files and no superfluous
files inside the released archives.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This has several goals:
- It checks if the test works fine and if someone forgot to add some
files.
- It checks if the build system produces files that it should not
produce due to some bugs.
- It can also check if some leftover files are there from previous
builds. This can help avoiding pushing wrong files as part as a
release.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This should help catching bugs that are hard to reproduce.
Without the pipefail make only take into account the tee command
return code.
The 'SHELL := $(shell which bash)' is to use bash as dash for instance
doesn't have pipefail and we don't want to have to install new
utilities to handle that.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
In the commit 4744953f73 ("u-boot-libre:
move to different tasks."), the distclean task of u-boot-libre was
removed, so this broke the lint tests as that file was not removed
from the list of files to check in tests/lint.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This makes sure that the release at least has all the expected files.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix building images with make release or './build release
all' results in the following error:
[...]
Built lenovo/t400 (ThinkPad R400)
make[1]: Leaving directory '/home/gnutoo/gnuboot/coreboot/default'
Creating new ROM image: bin/r400_16mb/seabios_withgrub_r400_16mb_libgfxinit_corebootfb_colemak.rom
Usage:
./build <TASK> <PACKAGE>
./build --help
[...]
Refer to the gnuboot documentation for more information.
Error: Invalid task 'descriptors'.
Error: See './build --help'.
Error: build/roms: something went wrong
make: *** [Makefile:47: release] Error 1
This was broken by the commit 857afa42a8
("Switch to packages structure.").
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Since we use untitled as well it's a good practice to release its
corresponding source code as well to make sure people can rebuild the
website in case upstream disapear.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This was broken from the start in the commit
fe28bc3c82 ("dependencies: move into
single package.").
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This was broken by the commit 8f3d30f809
("dependencies: rename debian in pureos-10.").
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This was broken from the start in the commit
fe28bc3c82 ("dependencies: move into
single package.").
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The "$(dirname $0)"/../dependencies/ directory is the same as
"$(dirname $0)".
So when running the script we have:
# ./resources/packages/dependencies/install
./resources/packages/dependencies/install: 49:
./resources/packages/dependencies/../dependencies/arch: not found
This was broken from the start in the commit
fe28bc3c82 ("dependencies: move into
single package.").
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, running ./resources/packages/dependencies/install
prints the help and does not do any dependency installation.
This was broken from the start in the commit
fe28bc3c82 ("dependencies: move into
single package.").
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
We had both issues described in the text during the RC2:
- Both maintainers agreed to merge a translation under a pseudonym but
one of the maintainers also asked to GNU permission to do that. Due
to a miscommunication between the maintainers it was pushed before
getting feedback from the GNU project.
- Both maintainers agreed to the release commit but due to a
misunderstanding / miscommunication it was pushed too early while
some other commits that still need to be made were supposed to go in
before that announcement commit in order to tag that announcement.
In both cases a process like the one mentioned in the text would
probably avoid to push things too early, especially because the author
of the patch set new about these issues and had them in mind all the
time, and since an additional Ack from that person would still be
needed before pushing, it would avoided this issue.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>