summary refs log tree commit diff
path: root/gnu/packages/hardware.scm
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2022-10-23 02:00:00 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2022-10-23 02:00:06 +0200
commit68f4b7a1585f71ccb1809cf808ad759f744438f3 (patch)
tree344b10e2a921670bf5eeb4672c660cd017da8f7a /gnu/packages/hardware.scm
parent634f7cd7dfef8746a39c2054d0ef9240a75d74d1 (diff)
downloadguix-68f4b7a1585f71ccb1809cf808ad759f744438f3.tar.gz
gnu: memtest86+: Include a GRUB-based ISO image.
* gnu/packages/hardware.scm (memtest86+)[arguments]: Add a new 'patch-broken-Makefiles and custom 'build phase.
Add "grub-memtest.iso" to the list of files to 'install.
[native-inputs]: Add dosfstools, grub-hybrid, mtools, and xorriso.
Diffstat (limited to 'gnu/packages/hardware.scm')
-rw-r--r--gnu/packages/hardware.scm25
1 files changed, 24 insertions, 1 deletions
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 50ad9ff15f..e72163616b 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -38,6 +38,8 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages bootloaders)
+  #:use-module (gnu packages cdrom)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cpp)
@@ -60,6 +62,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lxqt)
+  #:use-module (gnu packages mtools)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
@@ -815,12 +818,29 @@ specific SMBIOS tables.")
       #:tests? #f                       ; no way to test this
       #:phases
       #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-broken-Makefiles
+            (lambda _
+              (substitute* (list "build32/Makefile"
+                                 "build64/Makefile")
+                (("/sbin/(mkdosfs)" _ command)
+                 command))))
           (delete 'configure)           ; no configure script
           (add-before 'build 'enter-build-directory
             (lambda _
               (chdir #$(if (target-x86-32?)
                            "build32"
                            "build64"))))
+          (replace 'build
+            (lambda* (#:key inputs make-flags #:allow-other-keys)
+              (apply invoke
+                     "make" "all" "grub-iso" ; more options than memtest.iso
+                     (string-append "GRUB_FONT_DIR="
+                                    (search-input-directory inputs
+                                                            "share/grub"))
+                     (string-append "GRUB_LIB_DIR="
+                                    (search-input-directory inputs
+                                                            "lib/grub"))
+                     make-flags)))
           (replace 'install
             (lambda* (#:key outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))
@@ -830,10 +850,13 @@ specific SMBIOS tables.")
                 (for-each
                  (lambda (file)
                    (install-file file lib))
-                 (list "memtest.bin"
+                 (list "grub-memtest.iso"
+                       "memtest.bin"
                        "memtest.efi"))
                 (chdir "..")
                 (install-file "README.md" doc)))))))
+    (native-inputs
+     (list dosfstools grub-hybrid mtools xorriso))
     (supported-systems (list "i686-linux" "x86_64-linux"))
     (home-page "https://www.memtest.org/")
     (synopsis "Thorough real-mode memory tester")