Commit Graph

720 Commits

Author SHA1 Message Date
Adrien Bourmault 83f955870a
website/docs/build: mark the Trisquel bug as solved and clarify the Guix one
Signed-off-by: Adrien Bourmault <neox@gnu.org>
GNUtoo: fixed whitespace issue.
Acked-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2024-09-09 17:04:53 +02:00
Adrien Bourmault c18e78555d
ressources/coreboot/fam15h*: fix building crossgcc 8.3.0 (fixes #64870)
This commit fixes an error encountered on Trisquel 11 while trying to
build the fam15h coreboot crossgcc 8.3.0:

In file included from /usr/include/signal.h:328,
                 from /usr/include/x86_64-linux-gnu/sys/param.h:28,
                 from ../../gcc-8.3.0/gcc/system.h:298,
                 from ../../gcc-8.3.0/gcc/ada/init.c:65:
../../gcc-8.3.0/gcc/ada/init.c:575:18: error: missing binary operator before token "("
  575 | # if 16 * 1024 < MINSIGSTKSZ
      |                  ^~~~~~~~~~~
make[1]: *** [Makefile:1110 : ada/init.o] Erreur 1

The changes of the GLIBC that removed the MINSKTSZ constant was
introduced only for systems using the Linux kernel, and while the
changelog is recommanding using sysconf to get the value of
`_SC_MINSTKSZ`. The problem is that it does not allow to get the value
in the preprocessor context.

This error has been corrected on upstream GCC by Eric Botcazou <ebotcazou@adacore.com>
but this was not applied on upstream coreboot (even 4.11 branch).
It has been accepted by GCC and the bug report has been set as RESOLVED
FIXED, meaning it solved the bug.

The MINSTKSZ patch is needed for all GCC versions from 8 to 9, since this
commit solved the bug for 9, 10 and later versions. It has been adopted
by OpenSUSE for its GCC 8 package:
https://build.opensuse.org/projects/devel:gcc/packages/gcc8/files/gcc8-ada-MINSTKSZ.patch

Here's the corresponding patch header (in debian's format:
https://dep-team.pages.debian.net/deps/dep3/):
    Origin: upstream, https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=a5a7cdcaa0c29ee547c41d24f495e9694a6fe7f1
    Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99264
    Bug-GNU Boot: https://savannah.gnu.org/bugs/?64870

The MINSTKSZ patch added by this commit is unmodified from the
OpenSUSE one mentioned above, and the OpenSUSE patch is probably a
backport of the upstream GCC patch as there is not difference in what
it does.

Signed-off-by: Adrien 'neox' Bourmault <neox@gnu.org>
GNUtoo: small formatting of the commit message + last paragraph.
Acked-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2024-09-09 16:05:14 +02:00
Denis 'GNUtoo' Carikli 768fde6f2d
website: Remove news generation.
We have redundant news systems: GNU Boot is already using GNU and
Savannah's new infrastructure, so we don't need to duplicate that on
the GNU Boot website.

This lowers the maintenance now (as we need to do less work to publish
news).

But it also lowers the amount of work in the future as Untitled (the
static website generator that we use) handles news generation
differently from the rest of the pages, and since we planned to
migrate to Haunt, getting rid of news generation should probably
divide the amount of work needed to do the migration by two.

Thanks a lot to Adrien 'neox' Bourmault for the help with this patch
(neox gave me the links, told me about the capabilities of Savannah,
Planet, etc).

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:37:11 +02:00
Denis 'GNUtoo' Carikli 23118cc799
packages: release: test: really fail when files are missing from ${release_files}.
We have a test for catching a situation where new files are added in
releases without adding them as well in the ${release_files} variable
to test for their existance.

But this test only warn of the issue instead of failing. And since
people might not inspect all the log details in depth, it's better to
fail instead.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:35:57 +02:00
Denis 'GNUtoo' Carikli a113eceaa4
packages: release: test: really warn when files are missing from ${release_files}.
Before this commit if some files were in the release directory but
missing from ${release_files}, it would show something like that:
    [ !! ] release/i945-thinkpads-install/gnuboot_src.tar

The ${release_files} variable is used to test for files missing in the
release directory, and it prints something if a file is missing:
    [ !! ] release/roms/gnuboot-0.1-rc3-95-g1783708_d510mo.tar.xz is missing

Since confusion is possible between the two tests (especially if the
people looking at the log don't have all the code and context in mind
when doing that), this commit changes the code to print something like
that instead:
    [ !! ] release/i945-thinkpads-install/gnuboot_src.tar missing in ${release_files}

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
neox: fixed commit message
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:34:14 +02:00
Denis 'GNUtoo' Carikli 77d000a1ab
packages: release: test: add files missing from ${release_files}.
This was broken by the commit 7df6d6169b
("Build bucts and patched flashrom for I945 ThinkPads with Guix.").

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:32:36 +02:00
Denis 'GNUtoo' Carikli fc1c2686b4
i945-thinkpads-install-utilities: fix build.
Without that fix the build is stuck on the following during days on a
ThinkPad X200 with 8GiB of RAM and an Intel P8600:
    building /gnu/store/z7k1rs4j98s5zj0f9xrn1p3k1w1fmgqa-proot-static-5.3.0.drv...
    / 'check' phase

And the Guix manual says the following about -R/-RR:
    When this option is passed once, the resulting binaries require
    support for “user namespaces” in the kernel Linux; when passed
    _twice_(1), relocatable binaries fall to back to other techniques
    if user namespaces are unavailable, and essentially work
    anywhere—see below for the implications.

So by using -R instead of -RR we don't build proot-static anymore, and
we rely on the fact that most GNU/Linux distribution have namespaces
enabled (else a lot of packages like Guix or container software
would not work on them).

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
neox: fixed typo in commit message
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:31:15 +02:00
Denis 'GNUtoo' Carikli 4bbd9f0f3b
Add contrib script to start the guix-daemon in chroots of systemd distros.
It can be handy to build GNU Boot in a chroot because Guix's
debootstrap can easily debootstrap both PureOS byzantium and Trisquel
10 (nabia), and once done users can simply chroot inside the target
rootfs. In addition chroots also don't have much isolation with the
host, so it is easy to set it up in a way that export /dev/kvm for
faster testing.

The downside is that while some init systems can start daemons while
in chroot, systemd chose not to support that as the separation between
the chroot and the host operating system is not good enough to prevent
accidental modifications of the host system[1].

So practically speaking if we want to start guix-daemon, 'systemctl
start' detects that it's in a chroot and refuses to work.

The concerns of systemd about running some init in chroots[1] is valid
however here we limit the risk by only running the daemon start
commands and not something else that kills host processes.

Also we choose to parse systemd units instead of running the commands
manually as some settings need to be retrieved from the distribution
such as the environment or the build group being used (this varries
accross distributions or installation methods).

[1]https://0pointer.de/blog/projects/changing-roots

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
neox: fixed whitespace issue in code and fixed commit message
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:28:22 +02:00
Denis 'GNUtoo' Carikli 2c5382f249
build system: wrap git commands.
We need to somehow isolate the git configuration being used to build
GNU Boot from the rest of the system as otherwise things like
automatic gpg signatures can kick in and block the build because it
waits for a pinentry.

In addition:
- It enables us to simplify the build code as the git configuration is
  now the same during all the build.
- Contributors don't need to setup git anymore just to build GNU
  Boot. This also makes GNU Boot a bit more reproductible.

Replacing git inside the build scripts / Makefiles enable us to still
run them manually (like ./resources/packages/coreboot/download).

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:18:53 +02:00
Denis 'GNUtoo' Carikli 5dba3872b4
Fix 'Git error: unable to parse OID - contains invalid characters' issue.
With Trisquel 11 (aramo) and its guix package (guix 1.3.0) using 'guix
time-machine --commit=v1.4.0' fails like that:
    $ guix time-machine --commit=v1.4.0 -- describe
    guix time-machine: error: Git error: unable to parse OID - contains invalid characters

But if we use the real commit hash instead of the tag name, the same
command works fine:
    $ guix time-machine --commit=8e2f32cee982d42a79e53fc1e9aa7b8ff0514714 -- describe
      guix 8e2f32c
        repository URL: https://git.savannah.gnu.org/git/guix.git
        commit: 8e2f32cee982d42a79e53fc1e9aa7b8ff0514714

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:17:15 +02:00
Denis 'GNUtoo' Carikli d0028b81ed
packages: roms: boot: add --help option.
The resources/packages/roms/boot script already work with the "help"
argument, however most of the other scripts use --help, so for
consistency we need to add --help as well.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:14:14 +02:00
Denis 'GNUtoo' Carikli 6721094e10
packages: descriptors: add tests.
The Intel Flash Descriptor files are supposed to be reproducible
already, so it's a good idea to add a test for that.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:13:06 +02:00
Denis 'GNUtoo' Carikli 5dccbfb4c7
dependencies: add libtool.
Without that fix, with a very basic Trisquel 11 (aramo) installation
and after running resources/dependencies/trisquel-10, the GNU Boot
autogen.sh is broken due to the lack of libtool:
    $ ./autogen.sh 2>&1  > temp
    autoreconf: export WARNINGS=
    autoreconf: Entering directory '.'
    autoreconf: configure.ac: not using Gettext
    autoreconf: running: aclocal --force
    autoreconf: configure.ac: tracing
    autoreconf: configure.ac: not using Libtool
    autoreconf: configure.ac: not using Intltool
    autoreconf: configure.ac: not using Gtkdoc
    autoreconf: running: /usr/bin/autoconf --force
    configure.ac:79: error: possibly undefined macro: AC_PROG_LIBTOOL
          If this token and others are legitimate, please use m4_pattern_allow.
          See the Autoconf documentation.
    autoreconf: error: /usr/bin/autoconf failed with exit status: 1

So we simply make sure that libtool is installed as part of the
dependencies.

For Arch, libtool is already in base-devel (checked with Parabola).

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:12:30 +02:00
Denis 'GNUtoo' Carikli 9cc02ddde1
packages: roms: Start adding automatic tests.
In GNU Boot, at the time of writing, we want to advise users to use
the GRUB images as they don't require users to modify their
distribtions.

However before the commit aec2e2f2bcf7693a05e416f9722e15b9d1854516
("Fix bug #65663 (No support for LVM2)."), most computers using LVM2
would not boot with these images.

The bug is now fixed by this commit, however since we ship a custom
grub.cfg and that it is very important to get it right, it's a good
idea to have some sort of automated testing for it.

It uses Trisquel (instead of other FSF certified distributions) for
several reasons:
- Trisquel can be used by less technical users, and so it's important
  to make sure it works as less technical users tend to have harder
  times finding workaround when things break.

- It's probably the GNU/Linux distribution that most current and
  potential GNU Boot users use.

- It is also maintained by a community that welcome contributions, so
  if we hit some issues, we can also contribute to get it fixed (we
  also verified that multiple times by contributing to it).

Note that we also welcome tests that reuse other distributions as
well.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
neox: fixed typos in the commit message and fixed copyright notice
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:11:04 +02:00
Denis 'GNUtoo' Carikli f0959c9283
packages: roms, src: release: xz: show progress.
The xz compression operation can be quite long, so it's a good idea to
show its progression.

To do that we need to produce a tarball file first as xz doesn't have
any idea of the progression when just compressing a piped stream of
data.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 16:33:31 +02:00
Denis 'GNUtoo' Carikli 860b00bf1e
ressources/grub, website: add LVM2 support (fix bug #65663 "No support for LVM2").
This commit fixes a bug causing the GRUB2 payload not finding
LVM2 partitions.

See https://savannah.gnu.org/bugs/index.php?65663

Reported-by: WodeShengli <wodeshengli@disroot.org>
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 16:31:12 +02:00
Denis 'GNUtoo' Carikli f55201d2f3
tests: lint: files: fix alphabetically order.
In the commit c7e28dc660 ("packages: Add
distclean"), adding resources/packages/grub/distclean broke the
alphabetical order.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-07 13:04:55 +02:00
Denis 'GNUtoo' Carikli 2d2c6f1fbd
packages: Add extremely basic documentation for the various tasks.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-07 13:04:17 +02:00
Denis 'GNUtoo' Carikli 7fa1b8c40e
config.sh: export GUIX_BUILD_MAX_CORES.
This enables guix commands used in various place to use that variable.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-07 13:03:40 +02:00
Denis 'GNUtoo' Carikli ada459875c
Use a released guix revision globally.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-07 13:01:46 +02:00
Denis 'GNUtoo' Carikli a437a5f718
configure.ac: remove duplicated guix command detection.
This was there from the start in the introduction of the guix command
detection in the commit 7df6d6169b
("Build bucts and patched flashrom for I945 ThinkPads with Guix.").

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-07 12:58:30 +02:00
Denis 'GNUtoo' Carikli 4857df11a6
releases: fix autogen.sh not found.
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>
2024-09-07 12:36:43 +02:00
Denis 'GNUtoo' Carikli 33e4563ca2
releases: fix 'i945-thinkpads-install-utilities/' not found.
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>
2024-09-07 12:35:34 +02:00
Denis 'GNUtoo' Carikli b84b45ca06
clarify configure option to limit the number of cores used by Guix.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-07 12:34:39 +02:00
Denis 'GNUtoo' Carikli 84293df92f
resources: grub: config: grub_memdisk.cfg: Update copyrights.
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>
2024-09-07 12:33:05 +02:00
Denis 'GNUtoo' Carikli 6e4a433006
website: update untitled to the latest version.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 19:41:51 +02:00
Denis 'GNUtoo' Carikli 9ee2908475
website: Add git the git hash and subject to the bottom of the pages.
Without this change, we have no idea if the website we see on
https://gnu.org/software/gnuboot/ is using the latest git commit.

It also allows anyone to spot and report to us that the website has
the wrong revision.

With this change we can also potentially spot issues in the website
generation for instance when the website should have been regenerated
and it wasn't, or from an archive or web page file, get to the git
commit it was generated from.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 19:41:09 +02:00
Denis 'GNUtoo' Carikli 43caba609e
Website: .gitignore: add site.cfg
Since the commit 776073e2f8 ("website:
make the website prefix (software/gnuboot) configurable."), site.cfg
is generated. So we also need to add it to .gitignore as well, else it
shows up in git status.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 19:40:09 +02:00
Denis 'GNUtoo' Carikli 01fe71fab4
website: docs: index: remove x-unreviewed.
All the content on this page has now been reviewed by the GNU Boot
project.

This change is badly needed as the docs link is available in the
header of most pages of the website, and also because the docs page
also links to pages that were reviewed and that are perfectly valid,
so readers might stop there and not look at other pages below.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 19:39:26 +02:00
Denis 'GNUtoo' Carikli 8ef7e99ded
website: docs: index: move version information in a separate page.
The information on how to find the GNU Boot version that is running is
outdated (for instance there is no lbversion, it also refers to older
Libreboot revisions). Because of that, we move it in a separate page
for now as this can then enable to remove the unreviewed tag to the
docs index page.

This is urgent and important as the docs link is available in the
header of most pages of the website, and also because the docs page
also links to pages that were reviewed and that are perfectly valid,
so readers might stop there and not look at other pages below.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 19:38:29 +02:00
Denis 'GNUtoo' Carikli 32939baf38
website: docs: shorten part about news and put it in a section.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 19:33:50 +02:00
Denis 'GNUtoo' Carikli 16b173a23f
website: docs: FAQ link: rename Libreboot to GNU Boot.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 19:32:48 +02:00
Denis 'GNUtoo' Carikli e088fed9eb
website: docs: operating systems: rename Libreboot to GNU Boot.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 19:31:57 +02:00
Denis 'GNUtoo' Carikli a7bdf7421c
website: docs: Installing: rename Libreboot to GNU Boot.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 19:31:08 +02:00
Denis 'GNUtoo' Carikli f0d2cf5af0
website: history: copyright: add verified website/serve.sh file.
The entries inside the "Verified copyright headers" section refer to
commit hashes. And since a commit can't refer to itself (unless SHA1
is broken), we split that in two commits.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 17:39:50 +02:00
Denis 'GNUtoo' Carikli c2d32b05be
website: serve.sh: update copyright headers.
The serve.sh script was added in the commit
58fc2a673d ("Add the ability to test the
website locally") in the website-build repository of the Genuine
Libreboot project. This repository was then merged in GNU Boot.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 17:39:04 +02:00
Denis 'GNUtoo' Carikli 0b89b94ecb
website: history: copyright: add verified website/.gitignore file.
The entries inside the "Verified copyright headers" section refer to
commit hashes. And since a commit can't refer to itself (unless SHA1
is broken), we split that in two commits.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 17:38:02 +02:00
Denis 'GNUtoo' Carikli e378b45440
website: .gitignore: add copyright header.
The Libreboot maintainer (Leah Rowe) included nonfree software in
Libreboot releases. This lead to the creation of Genuine Libreboot
project (https://libreboot.at). Since this project reused the
Libreboot website from before the inclusion of nonfree software, it
also depended on Untitled, a website generator written in shell
script.

Since this website generator is not packaged in most distributions,
and that the Genuine Libreboot project wanted automatic builds of the
website, I wrote a set of scripts and Makefile to automatize the
download of Untitiled and the build of the website in November
2022. This corresponds to the commit
db0fb8a251 ("Initial import").

Then I improved these script(s) and Makefile(s) over time and they
were merged in the GNU Boot project.

While what is now in website/ is the result of merging the site/ and
website-build/ directories. To do that site/ was renamed to website/
just before the merge. Only website-build/ had a .gitignore.

This is because the website was only built with the website-build code
in subdirectories of website-build/ and/or in temporary volatile
directories, and so this would not create any built file in the git
repository outside of website-build.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 17:36:55 +02:00
Denis 'GNUtoo' Carikli abe5a40fad
website: history: track work on copyright headers updates.
Without this commit we have no way of tracking the status of files and
we risk making the same verification too many times.

Ideally we also need procedure and/or tools to make sure omissions
don't get in.

So far the work to update some of the headers on some of the files
required to look at multiple git repositories and even tarball
releases, and in some cases it even required good knowledge of the
provenance of the files to reconstruct the proper history.

In contrast the way we track contributions in git makes it much easier
to fix subsequent omissions of people/dates in the copyright headers.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-09-06 17:34:36 +02:00
Denis 'GNUtoo' Carikli 5ac76f6235
build: replace non-working example.
I've not found how to fix the example, and we also need to document
how to build an image for a specific computer.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-08-30 16:45:23 +02:00
Denis 'GNUtoo' Carikli 1ccd450fec
build: Update copyright header.
At the very beginning, we had tarball releases of Libreboot which were
made by Leah Rowe.

The first 3 tarball releases are in 2013 and the fourth is in
2014. The 2013 tarballs didn't have this build script: In 2013, to
build Libreboot, Leah used a combination of commands typed by hand and
scripts I provided her (they are in the build-makefiles directory in
these tarball releases). So she wrote the build script in 2014.

I also looked if I could find traces of my "build-makefiles" scripts
inside Leahs's build script but I didn't find any. This means that she
wrote it from scratch and that the copyright really starts with her in
2014.

Then in 2014, more tarball releases follow and then we finally have
the very first commit of Libreboot: commit
cee90ae0fce6d6aee8d78969b60c952c8890abd6 ("Libreboot release 6 beta
1.").

Since all these tarball releases and the very first commit of
Libreboot were made by Leah Rowe and that all that happened in 2014,
it means that the build script in it was made in 2014 by Leah Rowe.

After that following the history is easier. To do that we need several
repositories:

- First we need to follow it in
  obsolete-repository-preserved-for-historical-purposes from the very
  first commit until the r20160907 tag.

- Then we follow it in osbmk from the very first commit: commit
  df76c3eb63dd8f4979d78ca262218eedb93512ed ("Fork Libreboot 20160907
  build system. Large parts have been re-written.") up to the last
  commit of the libre branch: commit
  a02723897cab744c7ed31d7cca48308528cafe76 ("fix seabios
  downloading").

- Then we follow it in GNU Boot directly as we included the history of
  lbmk as well, starting from the commit
  89517ed6b9 ("libreboot!").

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
neox: minor fix in commit message (typo)
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-08-30 16:44:18 +02:00
Denis 'GNUtoo' Carikli 65c0e57a55
resources: packages: src: release: Update copyright header.
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>
2024-08-30 16:42:06 +02:00
Denis 'GNUtoo' Carikli 2695c97561
grub.cfg: Add copyright header.
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>
2024-08-30 16:40:07 +02:00
Denis 'GNUtoo' Carikli 9b96b24570
website: status: Add usability bugs.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-08-30 16:37:26 +02:00
Denis 'GNUtoo' Carikli 5627c799b5
website: faq: Puri.sm: remove hardware recommendation.
This has several reasons:

- The GNU Boot project didn't review all the hardware made by Pusi.sm,
  especially because Puri.sm also sell hardware that is out of scope
  for the GNU Boot project like USB tokens or SIM cards.

- Reducing the scope to just x86 computers made by Puri.sm instead
  doesn't work either because there is no context to the
  recommendation.

  In harm reduction[1], the Freedom Ladder campaign by the FSF[2], and
  the FSF giving guide[3], context is taken into account so that people
  can make informed choices based on their constraints and choices.

  In practice these approaches make statement like "this computer
  respects more your freedom than this other one", or "this is
  dangerous because of that and you can reduce harm this way, even if
  it's far from perfect" and give context to statements to enable
  people to really understand what it means.

  [1]https://en.wikipedia.org/wiki/Harm_reduction
  [2]https://www.fsf.org/campaigns/campaigns-summaries#ladder
  [3]https://www.fsf.org/givingguide/

At the end of the day it's also less work and maintenance to just
remove that hardware recommendation statement than to review specific
computers that GNU Boot doesn't even support.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-08-30 16:36:34 +02:00
Denis 'GNUtoo' Carikli 8843206032
website: faq: Add entry about how to support more computers.
The idea behind this FAQ entry is to be able to point to it when
people ask us to support additional computers.

This makes sure we don't miss important points in our answers and it
also tries to convey the kind of work needed, including for less
common but important cases like when the code for a computer is found
to work on another one (in that case we badly want to know about it,
especially if there is only documentation work to be done for it).

In addition this kind of question is very common in projects that have
limited hardware support, so that also should help us spending less
time answering that question again and again.

The answer also makes it very clear that GNU Boot is just a
distribution and also shows the kind of work various contributors do
to show that some of them are really easy to do, in the hope that it
could bring up more contributors as well.

The way the entry is written (trying to avoid technical words, while
also speaking about very technical topics) is because it is meant for
a very wide audience that go from less technical users that just want
GNU Boot to work on the computer they have but don't know anything
about hardware support, to contributors to projects like Coreboot and
U-Boot that might just want to also add support for computers they
worked on in GNU Boot.

Wording like "the computer will need to be supported well by other
project" is vague to enable people used to contribute to projects like
Coreboot or U-Boot or even experienced distributions contributors will
understand it as having the strict minimum of out of tree patches,
while also enabling less technical users (that don't know what is an
"out of tree patch") to understand more or less what it means.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
neox: minor changes (typo and repetition)
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-08-30 16:28:56 +02:00
Denis 'GNUtoo' Carikli 388c0ef3d0
website: add history page of the GNU Boot git repositories.
While this doesn't show the complete history of GNU Boot, it is at
least useful for fixing missing copyrights inside copyright headers.

Also I tried adding the first tarball releases of Libreboot, before it
was in git, inside the same git-history.dot and it turned out to be
way too messy as some arrows ended up mostly in the same place making
it impossible to distinguish which arrow went where without using
color or other ways of distinguishing them.

However the textual version of the tarball history turned out to be
easier to read/understand so we used that.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
neox: minor fix in the commit message
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-08-30 16:04:55 +02:00
Denis 'GNUtoo' Carikli aead2a318c
website: lighttpd.conf: sort mimetype alphabetically.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-08-30 15:55:45 +02:00
Denis 'GNUtoo' Carikli e1b24cb136
website: clarify that patches are not the only way to contribute.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-08-30 15:49:37 +02:00
Anton McClure 6eea404319
Replaced broken contact links with ones to lists.gnu.org
Signed-off-by: Anton McClure <asm@gnu.org>
Acked-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2024-08-26 17:12:02 +02:00