Without that fix, 'make release' results in the following issue:
resources/scripts/misc/generate-configure-makefiles.sh:
line 46: ./autogen.sh: No such file or directory
make: *** [Makefile:711: release] Error 127
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix we have the following when running 'make release':
make[1]: Leaving directory '/home/gnutoo/work/projects/gnuboot/gnuboot'
cp: cannot stat 'i945-thinkpads-install-utilities/':
No such file or directory
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The creation of what became grub_memdisk.cfg can be tracked back to
the grub.cfg that I published in 2013 in my build-makefiles repository
and that is available in the very first Libreboot release in
build-makefiles/grub/memdisk/boot/grub/grub.cfg.
It was then modified by leah in 2014 who removed most of my work from
it. Details can be seen in the following repository:
[1]https://notabug.org/libreboot/obsolete-repository-preserved-for-historical-purposes
It was then picked up as-is in the osbmk repository and then the lbmk
repository that GNU Boot also has the history of.
Since we now have proper copyright history in all the files in
resources/grub/config we can now safely remove the AUTHORS file.
As for the COPYING file, we already have copyright headers and we
already ship a copy of the GPLv3 in our repository.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The resources/packages/src/release content appeared in osbmk in the
2e2fe863172b513c3bdd4d0497657223ff6abdb4 ("Retroboot beta release,
20201228"). This commit is present in both the master branch and the
libre branch of osbmk.
The libre branch was then used as a basis to the (first) commit
89517ed6b9 ("libreboot!").
Then since GNU Boot kept the history of lbmk, we then have the rest of
the history of that file.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The GNU Boot project merged several repositories in its main git
repository, each with their separate histories. So far we have:
- the documentation/website that came from Libreboot
- the documentation/website pictures that also came from Libreboot
- the build system that also came from Libreboot (it's called lbmk there).
- some website autotools build system that was made from scratch by me.
The grub.cfg we use comes from the build system repository (lbmk). I
extracted the copyrights from the git commits of this repository.
However the first commit of lbmk (which we also have in our main GNU
Boot repository) is the following:
commit 89517ed6b9
Author: [Leah Rowe]
Date: [2021]
libreboot!
this is forked from the "libre" branch in osboot, which is itself a libre,
deblobbed fork of osboot, a blobbed up fork of libreboot
libreboot needed to be purged clean. this is the new libreboot development
repository. the old one has been abandoned
So I had to continue and look at the libre branch of osboot and
extract the copyrights from its commits as well.
Then I downloaded osbmk (https://notabug.org/osboot/osbmk) and
continued to look.
And here too we need to go beyond the first commit again, because
osbmk is based on 'Libreboot 20160907':
commit df76c3eb63dd8f4979d78ca262218eedb93512ed
Author: [Leah Rowe]
Date: [2020]
Fork Libreboot 20160907 build system. Large parts have been re-written.
This build system builds ROMs for X230, but they are so far untested.
Use at your own risk!
I still need to write documentation and do testing.
SOON: T60 with ATI GPU
We can find Libreboot 20160907 in
https://notabug.org/libreboot/obsolete-repository-preserved-for-historical-purposes
And then we end up with this commit:
commit cee90ae0fce6d6aee8d78969b60c952c8890abd6
Author: [Leah Rowe]
Date: [2014]
Libreboot release 6 beta 1.
Before that Libreboot only had tarball releases and the very first
tarball release was based on build scripts/Makefiles made by me, and
the git repository having the GRUB configuration can be found in
Libreboot 20131212 in X60/build-makefiles.
commit 80c37b9093be8325bf9ca8271ae4c6dba8fe81d6
Author: [GNUtoo]
Date: [2013]
Initial commit.
For now we only build the grub payload.
Signed-off-by: [GNUtoo]
And the intial grub.cfg was made by hand by me.
While I was at it I also updated the name/email combination in the
copyright header for the ones currently used.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Even if we still don't have any installation instructions that use
these tools, we still need to document somehow what the targets to.
And not adding a help for that would make it inconsistent with the
other targets that are somewhat documented in make help.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Before being merged with the commit
dc6e1f32c1 ("Import website-build to
build the GNU Boot website."), website-build was a separate git
repository.
And so, even after the merge, until the commit
20d122e94a ("website-build: use website
from local git repository."), it still worked in the same way and
still downloaded the website from git.
This prevented merging the website and website-build directories
together as the GNU Boot repository also needed to be a valid Untitled
website repository as well.
Now after this commit, the website is built from the same git tree, so
we can simply adjust the build scripts to be able to move things
around.
In addition of making things more clear for contributors, it also
simplify the migration to haunt as with haunt we typically have the
haunt.cfg (and the autotools build code if needed) code in the top
directory and the markdown files in a subdirectory.
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 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>
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>
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 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>
Several scripts in the SeaBIOS source code used during its build use
'#!/usr/bin/env python' but there is no 'python' when installing
Trisquel through debootstrap.
So to fix that we simply add the python-is-python3 package which
creates the /usr/bin/python symlink and points it to python3.
This work is based on the commit
eeddd2b610 ("build/dependencies: debian:
adding python-is-python3 to build seabios properly").
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix 'make release' fails with the following error:
checking for mkdir... mkdir
checking for pandoc... no
configure: error: pandoc was not found in PATH
(/usr/local/bin:/usr/bin:/bin:/usr/games)
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
The 'make release' or './build release all' commands build releases of
GNU Boot that consist of installable images and the upstream source
code used to build them.
The u-boot-libre package is instead meant to follow different release
schedules as it releases deblobbed versions of various u-boot releases
for reuse by distributions like Parabola.
Before the commit 857afa42a8 ("Switch to
packages structure.") users were expected to run the release script of
u-boot-libre separately but after it it ended up being run
automatically as part of 'make release' or ./build release all.
Renaming this script ensure that it's not run during regular releases.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
After installing Guix with the following command on PureOS 10
(byzantium) with the following command:
$ sudo pkcon -y --allow-reinstall install guix
we have:
$ ./resources/dependencies/guix
./resources/dependencies/guix: 91: .:
cannot open [$HOME]/.config/guix/current/etc/profile: No such file
This should fix it.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
Without that fix we have the following issue on PureOS byzantium:
$ resources/packages/coreboot/distclean
resources/packages/coreboot/distclean: 19:
resources/packages/coreboot/../../scripts/tasks/distclean.sh:
Bad substitution
resources/packages/coreboot/distclean: 20: .:
cannot open /../../..//resources/scripts/misc/sysexits.sh:
No such file
This happens because packages/coreboot/distclean uses #!/bin/sh and
that the default sh shell isn't using bash:
$ readlink $(which sh)
dash
and using bash instead works fine:
$ bash resources/packages/coreboot/distclean ; echo $?
0
all the other distclean scripts in packages/*/ have exactly the same
issue. The tests/distlean script is also affected since it also
sources the distclean task.
So we use #!/usr/bin/env bash as it work with both Guix and regular
more or less FHS compliant distributions.
This issue was introduced by the commit
c7e28dc660 ("packages: Add distclean").
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>
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>