Documenting where to find binaries built with 'make release' helps
users trying to build GNU Boot for the first time, especially if
something goes wrong.
It is also extremely useful for contributors writing release scripts
as this avoid needing to build a complete release just to find out the
name and location of released files.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The test was reported in the bug #64981[1].
[1]https://savannah.gnu.org/bugs/?64981
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This page is supposed to describe the Libreboot build system, but it
seems to only be there as a placeholder waiting for contributions that
add the actual information.
The problem here is that we don't want to describe the build system in
details in the manual for now as it is being reworked and it is
subject to change.
So for now we prefer to cleanup the code instead, and commenting it
along the way if possible, and if some explanations need to be added
in the manual it will most likely cover the global architecture which
isn't defined yet.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
In Trisquel 10 (nabia) there is no lib32ncurses5-dev package anymore.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
In Trisquel 10 (nabia) there is no lib32tinfo-dev package anymore.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
If wget isn't installed and that we install it, it works fine:
# pkcon -y --allow-reinstall install wget
Resolving [=========================]
Installing [=========================]
Loading cache [=========================]
Running [=========================]
Installing packages [=========================]
Finished [=========================]
But then if we try again it fails because it's already installed:
# pkcon -y --allow-reinstall install wget
Resolving [=========================]
Package not found: wget
Command failed: This tool could not find any available package: No
packages were found
So for now we need to workaround this issue.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
We can't require contributors to install Debian as it has freedom
issues[1] but for contributors, installing PureOS is easier since
it's at least FSDG compliant[2]. So it makes sense to show that
PureOS is the primary target here.
This is also reflected in the reality as the current GNU Boot
maintainers already installed PureOS 10 inside virtual machines
and/or containers to test this script and build the GNU Boot 0.1
RC1 release.
[1]https://www.gnu.org/distros/common-distros.html#Debian
[2]https://www.gnu.org/distros/free-distros.html
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
We can't require contributors to install Ubuntu as it has freedom
issues[1] but for contributors, installing Trisquel is easier since
it's at least FSDG compliant[2]. So it makes sense to show that
Trisquel is the primary target here.
This is also reflected in the reality as the current GNU Boot
maintainers already installed Trisquel 10 inside virtual machines
and/or containers to test this script.
[1]https://www.gnu.org/distros/common-distros.html#Ubuntu
[2]https://www.gnu.org/distros/free-distros.html
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
In PureOS 10 (byzantium) there is no lib32ncurses5-dev package anymore.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
In PureOS 10 (byzantium) there is no lib32tinfo-dev package anymore,
so running the debian dependency script fails with:
Package not found: lib32tinfo-dev
Command failed: This tool could not find any available package: No
packages were found
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix already the installation script fails on PureOS when
some packages are already installed :
# ./resources/dependencies/debian
[...]
[...] Package not found: wget
[...] Command failed: The selected packages may already be installed.
Since most other dependencies installation scripts also use
PackageKit, they are likely to behave in the same way and so we also
apply the same fix.
This was broken by the commit 0f74569af0
("dependencies: switch arch, debian, fedora35, ubuntu2004 to
packagekit").
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, build.sh compares the desired Untitled revision with
the GNU Boot git revision, so the comparison always fail, which leads
to broken offline builds.
This was broken from the start in the commit
cabc1cac08 ("website-build: avoid
unnecessary git fetch").
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The reference to lbmk was removed because there is no lbmk script in
GNU Boot.
The python section was removed as this is already taken care of by the
combination of the dependencies installation scripts and the
recommendation of specific distributions to build GNU Boot. Untested
distributions were also removed.
As for the removal of x-toc-enable, we had issues when having both
x-toc-enable and x-reviewed on the same page in the past. This is
documented in the commit adc578ae49
("site: license.md: fix x-reviewed"). So to make sure to avoid similar
issue we preemptively remove x-toc-enable.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Many projects that make hardware work (drivers, etc) have status
pages.
Here GNU Boot is a distribution and with very few exceptions (like
infrared and TPM on I945 Thinkpads) most of the hardware work fine.
However we currently need to track what computers were tested, if the
installation instruction work, and the upstream status to know if a
computer is likely to continue being supported or not if nobody
volunteers to help.
This is also a practical way to ask volunteers to test with very
simple tasks like bug reporting if things work or don't work.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The website-build code already uses guix by default. Given that it
also requires a specific Guix revision to workaround an issues with
pandoc, it's a good idea to help users easily install Guix.
PureOS Byzantium has a package for Guix 1.2.0, so if users install
that they will need to update it at least to Guix 1.4.0 to have the
same Guix commands.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Void was not migrated to PackageKit because there is no backend for
xbps in it.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This can simplify the overal structure of GNU Boot as we don't need to
compute some git tag everytime in the code.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
GNU boot has mailing lists and an IRC channel. This commit reflects that in
contact.md
Signed-off-by: Adrien 'neox' Bourmault <neox@gnu.org>
GNUtoo: Fixed lines over 80 characters, fixed main mailing list scope,
grouped mailing lists together.
Acked-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
The t60_unbrick.html[1] page didn't show any images on gnu.org but it
worked fine locally with 'make test'. A sysadmin from the FSF noticed
that these pages had an .htaccess and after temporarily removing them
the pages worked again. So removing the .htaccess should fix that
issue.
[1]https://www.gnu.org/software/gnuboot/web/docs/install/t60_unbrick.html
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
It is possible to install GNU Boot on I945 Thinkpads without opening
the computer even if the nonfree bios sets the bootblock region (the
last 64K of the flash chip) read-only.
The flash chip looks like that:
+----- -----+---------------------------+-------------------------+
| ... | Secondary bootblock (64k) | Primary bootblock (64k) |
+----- -----+---------------------------+-------------------------+
0 0x1e0000 2MiB
To bypass the read-only restriction we use an utility (bucts) that
tells the hardware to swap the primary bootblock with the secondary
one for the next boot. We then have to disable that swap and reflash
again.
CONFIG_INTEL_ADD_TOP_SWAP_BOOTBLOCK generates the two bootblocks
directly in coreboot so we don't need to use special commands to do
that anymore.
In addition the MacBook 1.1 and 2.1 are known not to have such
read-only restrictions so they don't need to have
CONFIG_INTEL_ADD_TOP_SWAP_BOOTBLOCK enabled.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, running 'shellcheck -x build' produces the following
errors/warnings:
In update line 81:
case "${option}" in
^-- SC1009 (info):
The mentioned syntax error was in this case expression.
In update line 82:
list)
^-- SC1073 (error):
Couldn't parse this case item. Fix to allow more checks.
In update line 92:
all)
^-- SC1072 (error):
Fix any mentioned problems and try again.
^-- SC1074 (error):
Did you forget the ;; after the previous case item?
After fixing these and rerunning 'shellcheck -x build', we then have
the following errors/warnings:
In update line 23:
[ "x${DEBUG+set}" = 'xset' ] && set -v
^-------------^ SC2268 (style):
Avoid x-prefix in comparisons as it no longer serves a purpose.
In update line 32:
ls -d resources/packages/*/update/ | \
^-- SC2012 (info):
Use find instead of ls to better handle non-alphanumeric filenames.
In update line 40:
ls -d resources/packages/"${package}"/update/* | \
^-- SC2012 (info):
Use find instead of ls to better handle non-alphanumeric filenames.
In update line 95:
resources/packages/"${package}"/update/"${option}" $@
^-- SC2068 (error):
Double quote array expansions to avoid re-splitting elements.
In update line 102:
"${pkg_dir}"/update/"${option}" $@
^-- SC2068 (error):
Double quote array expansions to avoid re-splitting elements.
so we fix them as well.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, running 'shellcheck -x build' produces the following
errors/warnings:
In download line 26:
[ "x${DEBUG+set}" = 'xset' ] && set -v
^-------------^ SC2268 (style):
Avoid x-prefix in comparisons as it no longer serves a purpose.
In download line 37:
[ "x${NODELETE+set}" = 'xset' ] && deleteblobs="false"
^----------------^ SC2268 (style):
Avoid x-prefix in comparisons as it no longer serves a purpose.
In download line 102:
NODELETE= "${script}"
^-- SC1007 (warning):
Remove space after = if trying to assign a value (for empty string,
use var='' ... ).
In download line 117:
NODELETE= resources/packages/"${package}"/download
^-- SC1007 (warning):
Remove space after = if trying to assign a value (for empty string,
use var='' ... ).
In download line 123:
NODELETE= resources/packages/"${package}"/download $@
^-- SC1007 (warning):
Remove space after = if trying to assign a value (for empty string,
use var='' ... ).
^-- SC2068 (error):
Double quote array expansions to avoid re-splitting elements.
In download line 125:
resources/packages/"${package}"/download $@
^-- SC2068 (error):
Double quote array expansions to avoid re-splitting elements.
In download line 131:
./.gitcheck clean
^---------------^ SC2317 (info):
Command appears to be unreachable. Check usage (or ignore if invoked
indirectly).
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, running 'shellcheck -x build' produces the following
errors/warnings:
In modify line 23:
[ "x${DEBUG+set}" = 'xset' ] && set -v
^-------------^ SC2268 (style):
Avoid x-prefix in comparisons as it no longer serves a purpose.
In modify line 106:
resources/packages/"${package}"/modify/"${option}" $@
^-- SC2068 (error):
Double quote array expansions to avoid re-splitting elements.
In modify line 113:
"${pkg_dir}"/modify/"${option}" $@
^-- SC2068 (error):
Double quote array expansions to avoid re-splitting elements.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix, running 'shellcheck -x build' produces the following
errors/warnings:
In build line 25:
[ "x${DEBUG+set}" = 'xset' ] && set -v
^-------------^ SC2268 (style): Avoid x-prefix in comparisons
as it no longer serves a purpose.
In build line 131:
resources/packages/"${package}"/"${task}" $@
^-- SC2068 (error):
Double quote array expansions to avoid re-splitting elements.
In build line 138:
"${pkg_dir}"/"${task}" $@
^-- SC2068 (error):
Double quote array expansions to avoid re-splitting elements.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The arch, debian and ubuntu2005 packages names were respectively
checked on Parabola, PureOS byzantium and Trisquel 11.
The fedora35 and void packages were checked using the Fedora and Void
Linux online package databases.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The various scripts present in GNU Boot are very fragile, so it's a
good idea to have a pristine GNU Boot source code for making releases.
The issue is that 'git clean -dfx' doesn't remove existing git
repositories like coreboot/ grub/ etc, so we need additional code to
take care of that.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This commit corrects linelength (this should have no functional impact)
and adds exit codes
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
neox: wrote the commit message
This commit corrects linelength (this should have no functional impact)
and adds exit codes
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
neox: wrote the commit message
This commit corrects linelength (this should have no functional impact)
and adds exit codes
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
neox: wrote the commit message
This commit corrects linelength (this should have no functional impact)
and adds exit codes (sysexit.sh)
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
neox: wrote the commit message
This should contain no functional modifications.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
neox: wrote the commit message
Having an {arch,debian,fedora35,ubuntu2004,void} GNU Boot package
looked strange. Having a dependencies package instead makes more
sense.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The various build scripts are scattered around in multiple
places. This make it hard for contributors to understand what they
need to modify.
Most GNU Boot users are interested in running GNU/Linux or BSD
operating systems. And the way to install software on these
operating systems is through a package manager. So most users and
contributors already know the package manager abstraction.
So using that abstraction makes it easier to find where things are.
The scripts to install dependencies don't really fit the new structure
but for now we move them in to make sure that everything works
fine. This could be fixed later on and migrated to a single
dependencies packages by auto-detecting the distribution with
/etc/os-release.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Signed-off-by: Adrien 'neox' Bourmault <neox@gnu.org>
Most GNU Boot users are interested in running GNU/Linux or BSD
operating systems. And the way to install software on these
operating systems is through a package manager. So most users and
contributors already know the package manager abstraction.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Most GNU Boot users are interested in running GNU/Linux or BSD
operating systems. And the way to install software on these
operating systems is through a package manager. So most users and
contributors already know the package manager abstraction.
So referring to packages instead of options makes it easier to
understand what the script is doing.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Most GNU Boot users are interested in running GNU/Linux or BSD
operating systems. And the way to install software on these
operating systems is through a package manager. So most users and
contributors already know the package manager abstraction.
So referring to packages instead of options makes it easier to
understand what the script is doing.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Most GNU Boot users are interested in running GNU/Linux or BSD
operating systems. And the way to install software on these
operating systems is through a package manager. So most users and
contributors already know the package manager abstraction.
So referring to packages instead of options makes it easier to
understand what the script is doing.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Most GNU Boot users are interested in running GNU/Linux or BSD
operating systems. And the way to install software on these
operating systems is through a package manager. So most users and
contributors already know the package manager abstraction.
So referring to packages instead of options makes it easier to
understand what the script is doing.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
While that microcode is licensed under a permissive free software
license we don't have any corresponding source code, so until someone
produces that source code we need to treat it as nonfree software.
This issue was introduced by the commit the
f7c0fec698 ("coreboot/fam15h: update
code base, deblob, unset CONFIG_STM (see bug #64535)") and is also
present in GNU Boot 0.1 RC1.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The files were sorted with the sort command.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The configuration is based on the one in resources/coreboot/x60/.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>