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.
This commit is contained in:
Tobias Geerinckx-Rice 2022-10-23 02:00:00 +02:00
parent 634f7cd7df
commit 68f4b7a158
No known key found for this signature in database
GPG key ID: 0DB0FF884F556D79

View file

@ -38,6 +38,8 @@ (define-module (gnu packages hardware)
#: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 @@ (define-module (gnu packages hardware)
#: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 @@ (define-public memtest86+
#: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 @@ (define-public memtest86+
(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")