Subject: [bug#64667] [PATCH v2] gnu: Add grub-coreboot

From: Denis 'GNUtoo' Carikli <[email-masked]>
Date: Fri, 15 Sep 2023 16:34:25 +0200

* gnu/packages/bootloaders.scm (grub-coreboot): New variable.

Signed-off-by: Denis 'GNUtoo' Carikli <[email-masked]>
---
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(-)

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 <[email-masked]>
 ;;; Copyright © 2021 Vincent Legoll <[email-masked]>
 ;;; Copyright © 2021 Brice Waegeneire <[email-masked]>
-;;; Copyright © 2022 Denis 'GNUtoo' Carikli <[email-masked]>
+;;; Copyright © 2022, 2023 Denis 'GNUtoo' Carikli <[email-masked]>
 ;;; Copyright © 2021 Stefan <[email-masked]>
 ;;; Copyright © 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;;
@@ -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