Commit Graph

6 Commits

Author SHA1 Message Date
Adrien Bourmault b7e7b5a257
packages: seabios: fix payload not being added to the GNU Boot image
A bug has been introduced in

    a202dce646
    ("images: remove 'libgfxinit' from the image names.")

where we simplified images names without taking care of renaming the filename
used as the SeaBIOS build target.

This error was visible during the generation of the images:

    Creating new ROM image: bin/[...]/seabios_kgpe-d16-[...].rom
    payload/seabios/seabios.elf: No such file or directory
    E: Could not load file 'payload/seabios/seabios.elf'.
    E: Failed while operating on 'COREBOOT' region!
    E: The image will be left unmodified.

The resulting image was then missing a payload entry and was then
non-functional (people would then just get a black screen without any OS loaded
from the disk).

GNUtoo confirmed by bisecting that the commit cited above was indeed responsible
of the bug and also that the error message above was specific to this issue.

This commit fixes this bug by setting variables to hold the actual payload
location (making future changes easier), in the relevant files.

Tested-by: Adrien 'neox' Bourmault <neox@gnu.org>
Signed-off-by: Adrien 'neox' Bourmault <neox@gnu.org>
GNUtoo: Added "Created new ROM image" log, made it fit,
        improved source code comment.
Acked-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2024-11-29 00:31:22 +01:00
Adrien Bourmault d80a69e47c
packages: seabios: remove seabios_vgarom.elf
This commit removes the generation of the unused seabios_vgarom.elf image.

Signed-off-by: Adrien 'neox' Bourmault <neox@gnu.org>
GNUtoo: Removed speculations from the commit message
Acked-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2024-11-29 00:10:42 +01: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 0057ddf2a1
packages: coreboot: distclean: Use bash to avoid issue in PureOS.
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>
2023-12-09 15:53:48 +01:00
Denis 'GNUtoo' Carikli c7e28dc660
packages: Add distclean
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>
2023-12-06 17:32:18 +01:00
Denis 'GNUtoo' Carikli 857afa42a8
Switch to packages structure.
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>
2023-12-06 17:14:14 +01:00