[PATCH 0/1] Add grub-coreboot

  • Done
  • quality assurance status badge
Details
2 participants
  • Denis 'GNUtoo' Carikli
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Denis 'GNUtoo' Carikli
Severity
normal
D
D
Denis 'GNUtoo' Carikli wrote on 16 Jul 2023 18:49
(address . guix-patches@gnu.org)(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
cover.1689524124.git.GNUtoo@cyberdimension.org
Hi,

In the following mail there will be a patch that adds grub-coreboot.

The './pre-inst-env guix lint grub-coreboot' command shows some warnings:
[...]/bootloaders.scm:301:2: grub-coreboot@2.06:
label 'qemu' does not match package name 'qemu-minimal'
[...]/bootloaders.scm:301:2: grub-coreboot@2.06:
label 'gettext' does not match package name 'gettext-minimal'
[...]/bootloaders.scm:301:2: grub-coreboot@2.06:
file names of patches should start with the package name
[...]/bootloaders.scm:301:2: grub-coreboot@2.06:
probably vulnerable to CVE-2022-2601, CVE-2022-3775, CVE-2021-3981
[...]/bootloaders.scm:301:2: grub-coreboot@2.06:
updater 'gnu' failed to find upstream releases
but since this package is based on grub-coreboot, I guess that things should
be fixed there instead.

A standalone image was built with the following commands:

modules="ahci at_keyboard cbfs ehci ext2 fat ohci part_gpt part_msdos \
pata uhci usb_keyboard usbms usbserial_usbdebug"

install_modules="acpi ahci all_video archelp at_keyboard ata blocklist \
boot btrfs cat cbfs cbls cbls cbmemc cbmemc cbtime cbtime chain chain \
cmosdump cmostest cmp configfile configfile cpio cpuid crc64 crypto \
cryptodisk cs5536 date datehook datetime disk diskfilter div dm_nv echo \
echo ehci elf eval exfat ext2 extcmd fat file fshelp gcry_crc gcry_rfc2268 \
gcry_rijndael gcry_rsa gcry_seed gcry_serpent gcry_sha1 gcry_sha256 \
gcry_sha512 gcry_twofish gettext gfxmenu gfxterm_background gfxterm_menu \
gptsync gzio gzio halt halt hashsum hdparm help help hexdump hexdump iorw \
iorw iso9660 jpeg keylayouts keystatus ldm linux linux linux16 linux16 \
loadenv loopback ls ls lsacpi lsacpi lsmmap lsmmap lspci lspci luks lvm \
lzopio mda_text memdisk memrw memrw minicmd minicmd mmap morse mpi \
msdospart multiboot multiboot multiboot2 nativedisk newc nilfs2 normal \
normal odc offsetio ohci part_gpt part_msdos parttool password \
password_pbkdf2 password_pbkdf2 pata pbkdf2 pci pcidump pcidump pgp play \
priority_queue probe procfs progress random read reboot reboot regexp \
regexp relocator romfs scsi search search search_fs_file search_fs_uuid \
search_label serial serial setjmp setpci setpci sfs sleep spkmodem squash4 \
syslinuxcfg syslinuxcfg tar terminal terminfo test test testload testspeed \
time tr trig true udf uhci usb usb_keyboard usbms usbserial_common \
usbserial_ftdi usbserial_pl2303 usbserial_usbdebug video_colors videoinfo \
xnu xzio"

"/gnu/store/[...]/bin/grub-mkstandalone" \
-O i386-coreboot \
-o grub_payload.elf \
--fonts= \
--themes= \
--locales= \
--modules="${modules}" \
--install-modules="${install_modules}" \
/boot/grub/grub.cfg=coreboot.cfg

The coreboot.cfg file was taken from grub source code (GPLv3+) and consist of
the following:
if test -f (cbfsdisk)/etc/grub.cfg; then
source (cbfsdisk)/etc/grub.cfg
fi

The resulting image was tested on a Thinkpad X200 running a custom 100% free
software version of Coreboot with as a GRUB payload) with the following
commands:
chainloader /path/to/grub_payload.elf
boot

It then booted fine. As for the partitions I used, I have LUKS encrypted hard
drive with LVM2 and a mix of BTRFS and ext4 partitions.

Denis 'GNUtoo' Carikli (1):
gnu: Add grub-coreboot

gnu/packages/bootloaders.scm | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)


base-commit: 796c823a0d1d0aec9f4af908eca462e58e5675b5
--
2.41.0
D
D
Denis 'GNUtoo' Carikli wrote on 16 Jul 2023 18:56
[PATCH 1/1] gnu: Add grub-coreboot
(address . 64667@debbugs.gnu.org)(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
8828e02880eda902dd7be2195abc013094936567.1689524124.git.GNUtoo@cyberdimension.org
* gnu/packages/bootloaders.scm (grub-coreboot): New variable.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
---
gnu/packages/bootloaders.scm | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)

Toggle diff (37 lines)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 01fd1093ff..c5090d1ead 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
-;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2022, 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2021 Stefan <stefan-guix@vodafonemail.de>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
@@ -297,6 +297,21 @@ (define-public grub-minimal
#t))))))))
+(define-public grub-coreboot
+ (package
+ (inherit grub)
+ (name "grub-coreboot")
+ (synopsis "GRand Unified Boot loader (Coreboot payload version)")
+ (arguments
+ `(,@(substitute-keyword-arguments (package-arguments grub)
+ ;; Several tests fail
+ ((#:tests? _ #f)
+ #f)
+ ((#:configure-flags flags
+ ''())
+ `(cons* "--with-platform=coreboot"
+ ,flags)))))))
+
(define-public grub-efi
(package
(inherit grub)
--
2.41.0
V
V
Vagrant Cascadian wrote on 18 Jul 2023 20:00
87v8eh14mq.fsf@wireframe
On 2023-07-16, Denis 'GNUtoo' Carikli wrote:
Toggle quote (1 lines)
> * gnu/packages/bootloaders.scm (grub-coreboot): New variable.
...
Toggle quote (4 lines)
> diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
> index 01fd1093ff..c5090d1ead 100644
> --- a/gnu/packages/bootloaders.scm
> +++ b/gnu/packages/bootloaders.scm
...
Toggle quote (11 lines)
> +(define-public grub-coreboot
> + (package
> + (inherit grub)
> + (name "grub-coreboot")
> + (synopsis "GRand Unified Boot loader (Coreboot payload version)")
> + (arguments
> + `(,@(substitute-keyword-arguments (package-arguments grub)
> + ;; Several tests fail
> + ((#:tests? _ #f)
> + #f)

Could you explain in more detail about the failing tests in the comment?
Which tests? Are they testing things that are not valid in a
grub-coreboot context? Is it not reasonable or not plausible to
selectively disable only the failing tests?


QA seems to build it fine, and nothing else obviously leaps out at me.


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZLbTTQAKCRDcUY/If5cW
qicGAPsETo9jC4k6Lsk+ZBZFsRsrvmeT+nO9f0QRkCYvlYKm0wEAgum+XvcVnG7P
yctPYXbZP8c8NBEywz5kC+47rDCcQAU=
=J8/d
-----END PGP SIGNATURE-----

D
D
Denis 'GNUtoo' Carikli wrote on 27 Jul 2023 05:42
(name . Vagrant Cascadian)(address . vagrant@debian.org)
20230727054224.138476d6@primary_laptop
Hi,

On Tue, 18 Jul 2023 11:00:45 -0700
Vagrant Cascadian <vagrant@debian.org> wrote:
Toggle quote (8 lines)
> > + ;; Several tests fail
> > + ((#:tests? _ #f)
> > + #f)
>
> Could you explain in more detail about the failing tests in the
> comment? Which tests? Are they testing things that are not valid in a
> grub-coreboot context? Is it not reasonable or not plausible to
> selectively disable only the failing tests?
I've looked into it, and the reason the test fails is similar than with
UEFI: many tests require to build a Coreboot image (and also to
build cbfstool which is available in Coreboot)[1].

And building Coreboot for qemu would require to deblob it first, and
simply using Libreboot for that doesn't work anymore because recent
versions don't deblob Coreboot and even ship nonfree software in the
releases.

So at some point we will likely have some clean solution for that, but
it could take some time.

In the meantime if the comment is changed for the following, would it
work for you?
Toggle quote (2 lines)
> ;; TODO: Tests need a (deblobbed) Coreboot firmware for qemu.

Or do I really need to disable the failing tests[2]?

References:
-----------
[1]To be more precise in tests/util/grub-shell.in we have:
> if [ x$boot = xcoreboot ]; then
> imgfile=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1
> cp "${GRUB_COREBOOT_ROM}" "${imgfile}"
> "${GRUB_CBFSTOOL}" "${imgfile}" add-payload -f \
> "${rom_directory}/coreboot.elf" -n fallback/payload
> [...]
> fi

And GRUB_COREBOOT_ROM and GRUB_CBFSTOOL are not provided anywhere so
somehow the user has to provide them. It's also pretty clear (for
people used to Coreboot) that GRUB_COREBOOT_ROM is a Coreboot image
because the cbfstool command above is for coreboot images.

[2]Here's the output of the build failure with tests enabled:
make check-TESTS
make[3]: Entering directory '/tmp/guix-build-grub-coreboot-2.06.drv-0/grub-2.06'
make[4]: Entering directory '/tmp/guix-build-grub-coreboot-2.06.drv-0/grub-2.06'
SKIP: ext234_test
SKIP: squashfs_test
SKIP: iso9660_test
SKIP: hfsplus_test
SKIP: ntfs_test
SKIP: reiserfs_test
SKIP: fat_test
SKIP: minixfs_test
SKIP: xfs_test
SKIP: f2fs_test
SKIP: nilfs2_test
SKIP: romfs_test
SKIP: exfat_test
SKIP: tar_test
SKIP: udf_test
SKIP: hfs_test
SKIP: jfs_test
SKIP: btrfs_test
SKIP: zfs_test
SKIP: cpio_test
PASS: example_scripted_test
FAIL: pata_test
FAIL: ahci_test
PASS: gettext_strings_test
FAIL: uhci_test
FAIL: ehci_test
FAIL: example_grub_script_test
FAIL: ohci_test
FAIL: grub_script_eval
FAIL: grub_script_echo1
FAIL: grub_script_test
FAIL: grub_script_echo_keywords
FAIL: grub_script_vars1
FAIL: grub_script_leading_whitespace
FAIL: grub_script_while1
FAIL: grub_script_for1
PASS: grub_script_blanklines
PASS: grub_script_final_semicolon
PASS: grub_script_dollar
FAIL: grub_script_comments
FAIL: grub_script_if
FAIL: grub_script_break
FAIL: grub_script_functions
FAIL: grub_script_shift
FAIL: grub_script_continue
FAIL: grub_script_blockarg
FAIL: grub_script_setparams
FAIL: grub_cmd_regexp
FAIL: grub_script_return
FAIL: grub_cmd_date
FAIL: grub_script_expansion
FAIL: grub_cmd_sleep
PASS: grub_script_no_commands
SKIP: partmap_test
PASS: hddboot_test
PASS: fddboot_test
PASS: cdboot_test
PASS: netboot_test
PASS: pseries_test
PASS: core_compress_test
SKIP: xzcompress_test
SKIP: gzcompress_test
SKIP: lzocompress_test
FAIL: grub_cmd_echo
FAIL: help_test
FAIL: grub_script_not
FAIL: grub_script_gettext
FAIL: grub_script_escape_comma
FAIL: grub_script_strcmp
FAIL: test_sha512sum
FAIL: test_unset
FAIL: grub_cmd_tr
FAIL: file_filter_test
PASS: grub_cmd_test
PASS: syslinux_test
PASS: example_unit_test
PASS: printf_test
PASS: date_test
PASS: cmp_test
PASS: priority_queue_unit_test
============================================================================
Testsuite summary for GRUB 2.06
============================================================================
# TOTAL: 80
# PASS: 19
# SKIP: 24
# XFAIL: 0
# FAIL: 37
# XPASS: 0
# ERROR: 0
============================================================================
See ./test-suite.log
Please report to bug-grub@gnu.org
============================================================================
make[4]: *** [Makefile:11629: test-suite.log] Error 1
make[4]: Leaving directory '/tmp/guix-build-grub-coreboot-2.06.drv-0/grub-2.06'
make[3]: *** [Makefile:11737: check-TESTS] Error 2
make[3]: Leaving directory '/tmp/guix-build-grub-coreboot-2.06.drv-0/grub-2.06'
make[2]: *** [Makefile:12533: check-am] Error 2
make[2]: Leaving directory '/tmp/guix-build-grub-coreboot-2.06.drv-0/grub-2.06'
make[1]: *** [Makefile:11514: check-recursive] Error 1
make[1]: Leaving directory '/tmp/guix-build-grub-coreboot-2.06.drv-0/grub-2.06'
make: *** [Makefile:12535: check] Error 2
Test suite failed, dumping logs.
--- ./test-suite.log --------------------------------------------------------
=================================
GRUB 2.06: ./test-suite.log
=================================
# TOTAL: 80
# PASS: 19
# SKIP: 24
# XFAIL: 0
# FAIL: 37
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
SKIP: ext234_test
=================
SKIP ext234_test (exit status: 77)
SKIP: squashfs_test
===================
mksquashfs not installed; cannot test squashfs.
SKIP squashfs_test (exit status: 77)
SKIP: iso9660_test
==================
xorriso not installed; cannot test iso9660.
SKIP iso9660_test (exit status: 77)
SKIP: hfsplus_test
==================
SKIP hfsplus_test (exit status: 77)
SKIP: ntfs_test
===============
SKIP ntfs_test (exit status: 77)
SKIP: reiserfs_test
===================
SKIP reiserfs_test (exit status: 77)
SKIP: fat_test
==============
SKIP fat_test (exit status: 77)
SKIP: minixfs_test
==================
SKIP minixfs_test (exit status: 77)
SKIP: xfs_test
==============
SKIP xfs_test (exit status: 77)
SKIP: f2fs_test
===============
SKIP f2fs_test (exit status: 77)
SKIP: nilfs2_test
=================
SKIP nilfs2_test (exit status: 77)
SKIP: romfs_test
================
genromfs not installed; cannot test romfs.
SKIP romfs_test (exit status: 77)
SKIP: exfat_test
================
SKIP exfat_test (exit status: 77)
SKIP: tar_test
==============
tar not installed; cannot test tar.
SKIP tar_test (exit status: 77)
SKIP: udf_test
==============
SKIP udf_test (exit status: 77)
SKIP: hfs_test
==============
SKIP hfs_test (exit status: 77)
SKIP: jfs_test
==============
SKIP jfs_test (exit status: 77)
SKIP: btrfs_test
================
SKIP btrfs_test (exit status: 77)
SKIP: zfs_test
==============
SKIP zfs_test (exit status: 77)
SKIP: cpio_test
===============
cpio not installed; cannot test cpio.
SKIP cpio_test (exit status: 77)
FAIL: pata_test
===============
tar: Removing leading `/' from member names
cp: cannot stat '': No such file or directory
FAIL pata_test (exit status: 1)
FAIL: ahci_test
===============
tar: Removing leading `/' from member names
cp: cannot stat '': No such file or directory
FAIL ahci_test (exit status: 1)
FAIL: uhci_test
===============
tar: Removing leading `/' from member names
cp: cannot stat '': No such file or directory
FAIL uhci_test (exit status: 1)
FAIL: ohci_test
===============
tar: Removing leading `/' from member names
cp: cannot stat '': No such file or directory
FAIL ohci_test (exit status: 1)
FAIL: ehci_test
===============
tar: Removing leading `/' from member names
cp: cannot stat '': No such file or directory
FAIL ehci_test (exit status: 1)
FAIL: example_grub_script_test
==============================
cp: cannot stat '': No such file or directory
FAIL example_grub_script_test (exit status: 1)
FAIL: grub_script_eval
======================
cp: cannot stat '': No such file or directory
FAIL grub_script_eval (exit status: 1)
FAIL: grub_script_test
======================
cp: cannot stat '': No such file or directory
FAIL grub_script_test (exit status: 1)
FAIL: grub_script_echo1
=======================
cp: cannot stat '': No such file or directory
FAIL grub_script_echo1 (exit status: 1)
FAIL: grub_script_leading_whitespace
====================================
cp: cannot stat '': No such file or directory
FAIL grub_script_leading_whitespace (exit status: 1)
FAIL: grub_script_echo_keywords
===============================
cp: cannot stat '': No such file or directory
FAIL grub_script_echo_keywords (exit status: 1)
FAIL: grub_script_vars1
=======================
cp: cannot stat '': No such file or directory
FAIL grub_script_vars1 (exit status: 1)
FAIL: grub_script_for1
======================
cp: cannot stat '': No such file or directory
FAIL grub_script_for1 (exit status: 1)
FAIL: grub_script_while1
========================
cp: cannot stat '': No such file or directory
FAIL grub_script_while1 (exit status: 1)
FAIL: grub_script_if
====================
cp: cannot stat '': No such file or directory
FAIL grub_script_if (exit status: 1)
FAIL: grub_script_comments
==========================
cp: cannot stat '': No such file or directory
FAIL grub_script_comments (exit status: 1)
FAIL: grub_script_functions
===========================
cp: cannot stat '': No such file or directory
FAIL grub_script_functions (exit status: 1)
FAIL: grub_script_break
=======================
cp: cannot stat '': No such file or directory
FAIL grub_script_break (exit status: 1)
FAIL: grub_script_continue
==========================
cp: cannot stat '': No such file or directory
FAIL grub_script_continue (exit status: 1)
FAIL: grub_script_shift
=======================
cp: cannot stat '': No such file or directory
FAIL grub_script_shift (exit status: 1)
FAIL: grub_script_blockarg
==========================
cp: cannot stat '': No such file or directory
[] != [{ true }]
FAIL grub_script_blockarg (exit status: 1)
FAIL: grub_script_setparams
===========================
cp: cannot stat '': No such file or directory
FAIL grub_script_setparams (exit status: 1)
FAIL: grub_script_return
========================
cp: cannot stat '': No such file or directory
FAIL grub_script_return (exit status: 1)
FAIL: grub_cmd_regexp
=====================
cp: cannot stat '': No such file or directory
FAIL grub_cmd_regexp (exit status: 1)
FAIL: grub_cmd_date
===================
cp: cannot stat '': No such file or directory
Date not in range: 1690428943 <= 1690416000 <= 1690428943
FAIL grub_cmd_date (exit status: 1)
FAIL: grub_cmd_sleep
====================
cp: cannot stat '': No such file or directory
FAIL grub_cmd_sleep (exit status: 1)
FAIL: grub_script_expansion
===========================
cp: cannot stat '': No such file or directory
FAIL grub_script_expansion (exit status: 1)
FAIL: grub_script_not
=====================
cp: cannot stat '': No such file or directory
FAIL grub_script_not (exit status: 1)
SKIP: partmap_test
==================
parted not installed; cannot test partmap
SKIP partmap_test (exit status: 77)
SKIP: xzcompress_test
=====================
xz not installed; cannot test xz compression.
SKIP xzcompress_test (exit status: 77)
SKIP: gzcompress_test
=====================
gzip not installed; cannot test gzip compression.
SKIP gzcompress_test (exit status: 77)
SKIP: lzocompress_test
======================
lzop not installed; cannot test lzo compression.
SKIP lzocompress_test (exit status: 77)
FAIL: grub_cmd_echo
===================
cp: cannot stat '': No such file or directory
FAIL grub_cmd_echo (exit status: 1)
FAIL: help_test
===============
cp: cannot stat '': No such file or directory
FAIL help_test (exit status: 1)
FAIL: grub_script_gettext
=========================
cp: cannot stat '': No such file or directory
FAIL grub_script_gettext (exit status: 1)
FAIL: grub_script_escape_comma
==============================
cp: cannot stat '': No such file or directory
FAIL grub_script_escape_comma (exit status: 1)
FAIL: grub_script_strcmp
========================
cp: cannot stat '': No such file or directory
FAIL grub_script_strcmp (exit status: 1)
FAIL: test_sha512sum
====================
cp: cannot stat '': No such file or directory
GRUB sha512sum output did not match sha512sum output.
See diff -u /tmp/guix-build-grub-coreboot-2.06.drv-0/tmp.3JBlCBhBGy /tmp/guix-build-grub-coreboot-2.06.drv-0/tmp.1s7bz8jSnV
FAIL test_sha512sum (exit status: 1)
FAIL: test_unset
================
cp: cannot stat '': No such file or directory
FAIL test_unset (exit status: 1)
FAIL: grub_cmd_tr
=================
cp: cannot stat '': No such file or directory
FAIL grub_cmd_tr (exit status: 1)
FAIL: file_filter_test
======================
cp: cannot stat '': No such file or directory
FAIL file_filter_test (exit status: 1)
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("check" "-j" "2") exit-status: 2 term-signal: #f stop-signal: #f>
phase `check' failed after 34.0 seconds
command "make" "check" "-j" "2" failed with status 2
builder for `/gnu/store/h78fy12q7nijz54ppfdr7z3h7yvpnyxs-grub-coreboot-2.06.drv' failed with exit code 1
build of /gnu/store/h78fy12q7nijz54ppfdr7z3h7yvpnyxs-grub-coreboot-2.06.drv failed
View build log at '/var/log/guix/drvs/h7/8fy12q7nijz54ppfdr7z3h7yvpnyxs-grub-coreboot-2.06.drv.gz'.
guix build: error: build of `/gnu/store/h78fy12q7nijz54ppfdr7z3h7yvpnyxs-grub-coreboot-2.06.drv' failed

Denis
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEeC+d2+Nrp/PU3kkGX138wUF34mMFAmTB56AACgkQX138wUF3
4mNU0w//WLcxuKJdj6tTcUIgE0vH+XcPofLI2XLxbzrFq5N20azs0P4Vs7GPX6bE
/2rYBzBmWbRPC5qJ0o7PrT8lEXt1SKKygtGX9SaBVdvDeH89xLTnNQoHpfReAEGc
gPh971IhZEW8bFyP/dmA58HUDM214Zsdv4nMKmlP7VGyWZFECy+fPsoUQQIf3oHD
NDM/eNSTDN10HfNDe6U1Z3/+BoFnO5KPPBPfLfK7cLnOZhKJZnFK4Ng1iWYiuXq1
y4cmhHPieBXUlWfZm1c9dHVfnU+CQoEaeAg3MfeYPqVdHWwkSdJc2Q/dbCO50sQk
VkAmnEMeENpgCkAOZGkXMDiKqTVdbUjFe2HoaS0huL4ER7JNuKRBLD0NtcAk2nhA
lyJURDJyechNKohkuy//IBjjqwJAjUKCilvoTa/XD8Gydf82VvW8Bn4WBHzoCUZt
V58Kv2DEmaz79r3keVXIpoibu+daDxSr+awHvoJnXppHpFQ5C7Iu7kS1OeoHrt+6
518uhIjKCndZTNhFoRRSOJXPHqvR2Y9HfByKV9724PAWQ89YvqX6Dj5Xp0UYW/Y0
hQsm+cSV55nB8itTp85kit28EqB++h9TFyZu+EFtK9PS0lOsj+L6CfdXGSLUNDID
EbLGG+dFtD/g7OmfLan1II8Ci5eMP9oACugC82g7BxPbleGYE/Q=
=aorc
-----END PGP SIGNATURE-----


V
V
Vagrant Cascadian wrote on 30 Aug 2023 00:58
(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
87il8xv4km.fsf@wireframe
On 2023-07-27, Denis 'GNUtoo' Carikli wrote:
Toggle quote (26 lines)
> On Tue, 18 Jul 2023 11:00:45 -0700
> Vagrant Cascadian <vagrant@debian.org> wrote:
>> > + ;; Several tests fail
>> > + ((#:tests? _ #f)
>> > + #f)
>>
>> Could you explain in more detail about the failing tests in the
>> comment? Which tests? Are they testing things that are not valid in a
>> grub-coreboot context? Is it not reasonable or not plausible to
>> selectively disable only the failing tests?
> I've looked into it, and the reason the test fails is similar than with
> UEFI: many tests require to build a Coreboot image (and also to
> build cbfstool which is available in Coreboot)[1].
>
> And building Coreboot for qemu would require to deblob it first, and
> simply using Libreboot for that doesn't work anymore because recent
> versions don't deblob Coreboot and even ship nonfree software in the
> releases.
>
> So at some point we will likely have some clean solution for that, but
> it could take some time.
>
> In the meantime if the comment is changed for the following, would it
> work for you?
>> ;; TODO: Tests need a (deblobbed) Coreboot firmware for qemu.

Still seems a bit brief, but I suppose it is not terrible. :)

I might want to identify in the comment which tests need a coreboot
image and which need cbfstool for example. If it is really involved,
perhaps a link to a more detailed explanation, such as to a comment
filed on this bug report.


Toggle quote (2 lines)
> Or do I really need to disable the failing tests[2]?

Well...

Toggle quote (12 lines)
> =================================
> GRUB 2.06: ./test-suite.log
> =================================
>
> # TOTAL: 80
> # PASS: 19
> # SKIP: 24
> # XFAIL: 0
> # FAIL: 37
> # XPASS: 0
> # ERROR: 0

Disabling all the tests means that you would miss out on at least 19
tests that currently PASS (but might someday fail, because they are
actually presumably testing something)...

Are all of the failures or skipped tests things that cannot reasonably
be fixed, such as being unable to build a coreboot image or cbfstool?


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZO54GQAKCRDcUY/If5cW
qmGRAQCpfsZsbSwo9NVda0EgHd5A5IjGA07w+HONet6PIGoLoAD/fePNi7RUmxMY
Q9Yf9y9PFuMpLgk280sYHBKKsjvElQs=
=IcVM
-----END PGP SIGNATURE-----

D
D
Denis 'GNUtoo' Carikli wrote on 15 Sep 2023 16:31
(name . Vagrant Cascadian)(address . vagrant@debian.org)
20230915163159.51d2e7fa@primary_laptop
Hi,

On Tue, 29 Aug 2023 15:58:33 -0700
Vagrant Cascadian <vagrant@debian.org> wrote:
Toggle quote (2 lines)
> Still seems a bit brief, but I suppose it is not terrible. :)

With:
Toggle quote (2 lines)
> I might want to identify in the comment which tests need a coreboot
> image and which need cbfstool for example.
and:
Toggle quote (2 lines)
> Are all of the failures or skipped tests things that cannot reasonably
> be fixed, such as being unable to build a coreboot image or cbfstool?
I've looked and luckily all the tests that we need to disable fail
because they miss a Coreboot image.

I'll send a v2.

Toggle quote (2 lines)
> If it is really involved, perhaps a link to a more detailed
> explanation, such as to a comment filed on this bug report.
In the v2 I've also improved a bit the description of the issue.

Denis.
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEeC+d2+Nrp/PU3kkGX138wUF34mMFAmUEat8ACgkQX138wUF3
4mPcBQ//a65D9pT7a8BqsaVgy1ABpE94ENX+Jyra9ANF2knfoWuzcnQ9X5LHcP+i
T6kswOxW9rplayEP1zwZg2h2JSIkxp6qSyDZNiphyWhQkFtWhMF0VHp5oSaYPcwZ
mCqn626t/Qn5+IDNPt5aYRwMuAQ+TY/fNZ28C6Dx0HSq44/4xmwIp2X+sAiGkcPc
OmNrOXZAEgMkP2BVEymp9ug5jIwPdUzRI+GBg3SOaDJlSDiTN1zYHyfQTAAwU3dX
8ANDZLzegUabjGuRdfRUXPzsEPQy1+VPJgk9F/mNUO51ze3UVAUg7acIYI58JunW
Mena0SWBYUKl4/15NF8254fHjZvLpIjxBwlXwQ4Ts7S66pj9MhO1jnxmd1gJbzg9
cyoIevdAwAP7Az/mD6dp19GdJm9HmBNfmRfFJC7MP+IW7tbINJdppvRBa30PH4G3
sGL5D0SWl7EhvtpkR4oz1jIFaWeF0rX5stdTMjQrBopQBwcLTKwFIg1y/Z3GMuun
J4vaxPkj1I2Oxwlcyj2If1bXba+6m/+kBVaVbhnvY2vx+CV24Xbm9wP24+r1HGW7
RBFeZ+7HNS2tKj/hzlStxWmDV5fTHGvVfe4LtxX9GtQ1tSWCHuGCVkfFe8lMJ0wo
NBLEPJ6d3i6ib7B/nxfvX2SwrTYlHBoQHxdwbB/4S1+pAPBi44M=
=EQkI
-----END PGP SIGNATURE-----


D
D
Denis 'GNUtoo' Carikli wrote on 15 Sep 2023 16:34
[PATCH v2] gnu: Add grub-coreboot
(address . 64667@debbugs.gnu.org)(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
6ea5063330afa7ae3b9f008552be81641747863e.1694788144.git.GNUtoo@cyberdimension.org
* gnu/packages/bootloaders.scm (grub-coreboot): New variable.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
---
ChangeLog:
* All the failing tests failed because they require a Coreboot image.
So now:
* Only theses tests are disabled, enabling other tests to run.
* There is a better comment explaning why these tests needed to be disabled.
---
gnu/packages/bootloaders.scm | 67 +++++++++++++++++++++++++++++++++++-
1 file changed, 66 insertions(+), 1 deletion(-)

Toggle diff (89 lines)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 1c47636341..15c3de2619 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
-;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2022, 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2021 Stefan <stefan-guix@vodafonemail.de>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
@@ -297,6 +297,71 @@ (define-public grub-minimal
#t))))))))
+(define-public grub-coreboot
+ (package
+ (inherit grub)
+ (name "grub-coreboot")
+ (synopsis "GRand Unified Boot loader (Coreboot payload version)")
+ (arguments
+ `(,@(substitute-keyword-arguments (package-arguments grub)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-before 'check 'disable-broken-tests
+ (lambda _
+ (setenv "DISABLE_HARD_ERRORS" "1")
+ (setenv
+ "XFAIL_TESTS"
+ (string-join
+ ;; TODO: All the tests below use grub shell
+ ;; (tests/util/grub-shell.in), and here grub-shell uses
+ ;; QEMU and a Coreboot image to run the tests. Since we
+ ;; don't have a Coreboot package in Guix yet these tests
+ ;; are disabled. See the Guix bug #64667 for more details
+ ;; (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64667).
+ (list
+ "pata_test"
+ "ahci_test"
+ "uhci_test"
+ "ehci_test"
+ "example_grub_script_test"
+ "ohci_test"
+ "grub_script_eval"
+ "grub_script_echo1"
+ "grub_script_test"
+ "grub_script_leading_whitespace"
+ "grub_script_echo_keywords"
+ "grub_script_vars1"
+ "grub_script_for1"
+ "grub_script_while1"
+ "grub_script_if"
+ "grub_script_comments"
+ "grub_script_functions"
+ "grub_script_continue"
+ "grub_script_break"
+ "grub_script_shift"
+ "grub_script_blockarg"
+ "grub_script_return"
+ "grub_script_setparams"
+ "grub_cmd_date"
+ "grub_cmd_sleep"
+ "grub_cmd_regexp"
+ "grub_script_not"
+ "grub_cmd_echo"
+ "grub_script_expansion"
+ "grub_script_gettext"
+ "grub_script_escape_comma"
+ "help_test"
+ "grub_script_strcmp"
+ "test_sha512sum"
+ "grub_cmd_tr"
+ "test_unset"
+ "file_filter_test")
+ " "))))))
+ ((#:configure-flags flags
+ ''())
+ `(cons* "--with-platform=coreboot"
+ ,flags)))))))
+
(define-public grub-efi
(package
(inherit grub)

base-commit: 0c1aa354048f82023e6d2043bfecc4fd58bc9b58
--
2.41.0
D
D
Denis 'GNUtoo' Carikli wrote on 23 Nov 2023 12:27
Re: [bug#64667] [PATCH 1/1] gnu: Add grub-coreboot
(name . Vagrant Cascadian)(address . vagrant@debian.org)
20231123122757.1b726d81@primary_laptop
On Fri, 15 Sep 2023 16:31:59 +0200
Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> wrote:
Toggle quote (1 lines)
> I'll send a v2.
That is now done.

Ping.

Denis.
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEeC+d2+Nrp/PU3kkGX138wUF34mMFAmVfNz0ACgkQX138wUF3
4mMQDQ//fBNdv2mBtozoiyIrW5ydiag8cFZeTFdbHjTKDk37gFQzy82BhdUIkOcf
P7NLnds30YxYNMfsxZiymOExL01qRQnRVE+FZ7CLUPVdSeIOMlmLNRGWarEXIpRK
O6Ht625GL/S9HwdRpKmPVkOOUPADZDPOU9q7chD1Cr1iJ60K/BSy7gX2Z2mBTbMP
p8ZaRX7HnBH2luRjYwXXhicPpDCfaTSF2aGqu2EwERlisUUrej8ahxCD5wMkPOpH
MXTA6rE9btIb6wskkkjyxmjBJYgO4fax4bFfa8KU9XL05pBxlaSFfwAOmHUK9cG+
VdYtUSYLNaHR6edqftP5mucuK9Har3mPk7MwDPRu10UdJF3F4yVBWhUwIaNQa1Y/
8+r+/IA/SB1YiUiZ2t62hSrwe5VsNQPEv5XyuolGPFT/mXhJD/vhx/+R6KqVBE9+
avqhoyANoHxL7GV85ayDJzsKPaLY5IdFQ7UoYLHGbYhri2WXNnGQtkV563sQIy0I
N2k3A5M6UjE36e1i0CDrL/iiVkKvK3TkOg0ymJGGkAQaJQmHLhvsZOqw68p2wqNC
jDXm8XJX8gOA/mLXFxE1tlO2Q4uGT/z0YUVLko/Kno3MkwUCAkI6hfbjtebuXznt
xG/3vMkEGLOJB8Uz45X3O0SKP0nhI18Cpaq5E1vJ9cMvYN1xOf4=
=ejDd
-----END PGP SIGNATURE-----


V
V
Vagrant Cascadian wrote on 24 Nov 2023 22:42
(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
87zfz2rfp7.fsf@wireframe
On 2023-11-23, Denis 'GNUtoo' Carikli wrote:
Toggle quote (7 lines)
> On Fri, 15 Sep 2023 16:31:59 +0200
> Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> wrote:
>> I'll send a v2.
> That is now done.
>
> Ping.

Never received the patch; it was only sent to the bug tracking system,
not the team members.

Pushed now as:

4b6f6b3e180afc5d1b286130710dd9e3eb6c2889 gnu: Add grub-coreboot

live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZWEYxAAKCRDcUY/If5cW
qiw9AP9jSWah9SuJ/LGQT+Z/FVL/2W5LcW7ZtrF+rQCirsWQlgEAqwBY2fcy7CqK
erJIKoclitN3PGDbgFInvnPywpx+ig4=
=/P5o
-----END PGP SIGNATURE-----

Closed
?