commit:     ce2de42b3e6175b3eea66cc6f91f5c7c3eb54d18
Author:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 28 18:43:26 2025 +0000
Commit:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Fri Nov 28 18:45:40 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce2de42b

sys-apps/memtest86+: add 8.00

Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>

 sys-apps/memtest86+/Manifest               |   1 +
 sys-apps/memtest86+/files/39_memtest86+-r3 |  70 +++++++++++++++++
 sys-apps/memtest86+/memtest86+-8.00.ebuild | 122 +++++++++++++++++++++++++++++
 3 files changed, 193 insertions(+)

diff --git a/sys-apps/memtest86+/Manifest b/sys-apps/memtest86+/Manifest
index 9c3e2ed00c9d..eeb401368082 100644
--- a/sys-apps/memtest86+/Manifest
+++ b/sys-apps/memtest86+/Manifest
@@ -1,3 +1,4 @@
 DIST memtest86+-6.20.tar.gz 232436 BLAKE2B 
6e3bea4b18049446f27da2cb1313300c578ef7fdb774b6a20df603271b66a6c0066be64a91b0a6d4ffcc63f1e139132942290a8111f6a991cccc0a5586cac966
 SHA512 
b12856bd6ba82dac6308bb9f611ddb16df68c3da4d00ad9abf23bcf5d3f2e5c424fc1bccedd8c0732b4c68013c421ed20c5db56c39b619bbe77c4c1f5e8504f0
 DIST memtest86+-7.00.tar.gz 244385 BLAKE2B 
608f4e31ddaee01d828cb1574086196c26f5e96c5049806ac3ab174ddf669db8cdcb8f336bec5a1ce74439d96fca505fea81311a06581bb43a8034156a4f8165
 SHA512 
1325ee08b280404fb47d37b62d65e51de21dd09b96bef29ece193072b09ff3c6eea8657b2e7c98801bf81ba4288c2bff580a91eb45d5a93744b0a273652266c4
 DIST memtest86+-7.20.tar.gz 269027 BLAKE2B 
f53570e9364f7fc15c946d925b449139f72bdfab6e2c69e40f7edf6aa034c6b46e40194d32eb56122365b6badc199ed9eeb8f3281d1908adb85495ffd25ea5f7
 SHA512 
6982f6e9dfebf226b82c7385c10322ad49ac821400a07d577727bfca65b0c430d2680237ede7b4e532fa37dcc6d37a6a3bfb8858a6036ddcb01d644b0707e5a5
+DIST memtest86+-8.00.tar.gz 278468 BLAKE2B 
e48300edbe587325ab7b73c4e9cfcd624a85931b1e72538e511bf37e41fa04f198b1be1cd4d41b72de590757623d4cae7b74b7a407062558b57e71fb22a9089f
 SHA512 
e363af146903c6cc5b49c957b3f206dfa0f63f29780520f2a75589fb5fa6cec7ee3c611fc7455c6806c35bcb8b32697ba53b7684bc6d552dbb68943ef99fb625

diff --git a/sys-apps/memtest86+/files/39_memtest86+-r3 
b/sys-apps/memtest86+/files/39_memtest86+-r3
new file mode 100644
index 000000000000..5350f6691d68
--- /dev/null
+++ b/sys-apps/memtest86+/files/39_memtest86+-r3
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+. /usr/share/grub/grub-mkconfig_lib
+
+mt32=/boot/memtest86plus/memtest.i586
+mt64=/boot/memtest86plus/memtest.x86_64
+
+if [ $(ls /boot/memtest86plus | wc -l) -gt 1 ]; then
+       multiple_memtest=true
+fi
+
+submenu_indentation=""
+if [ "${multiple_memtest}" = "true" ] && [ "${GRUB_DISABLE_SUBMENU}" != "y" ]; 
then
+       submenu_indentation="${grub_tab}"
+       cat <<EOF
+submenu 'Memtest86+' {
+EOF
+fi
+
+# Start i586
+if [ -f "${mt32}" ]; then
+       gettext_printf "Found memtest image: %s\n" "${mt32}" >&2
+
+       device="$("${grub_probe}" --target=device "${mt32}")"
+       path="$(make_system_path_relative_to_its_root "${mt32}")"
+       cat <<EOF
+${submenu_indentation}menuentry 'Memtest86+ 32bit' {
+EOF
+
+       if [ -n "${submenu_indentation}" ]; then
+               prepare_grub_to_access_device "${device}" | grub_add_tab | 
grub_add_tab
+       else
+               prepare_grub_to_access_device "${device}" | grub_add_tab
+       fi
+
+       cat <<EOF
+       ${submenu_indentation}linux "${path}"
+${submenu_indentation}}
+EOF
+fi
+# End i586
+
+# Start x86_64
+if [ -f "${mt64}" ]; then
+        gettext_printf "Found memtest image: %s\n" "${mt64}" >&2
+
+        device="$("${grub_probe}" --target=device "${mt64}")"
+        path="$(make_system_path_relative_to_its_root "${mt64}")"
+        cat <<EOF
+${submenu_indentation}menuentry 'Memtest86+ 64bit' {
+EOF
+
+        if [ -n "{submenu_indentation}" ]; then
+                prepare_grub_to_access_device "${device}" | grub_add_tab | 
grub_add_tab
+        else
+                prepare_grub_to_access_device "${device}" | grub_add_tab
+        fi
+
+        cat <<EOF
+        ${submenu_indentation}linux "${path}"
+${submenu_indentation}}
+EOF
+fi
+# End x86_64
+
+if [ "${multiple_memtest}" = "true" ] && [ "${GRUB_DISABLE_SUBMENU}" != "y" ]; 
then
+       cat <<EOF
+}
+EOF
+fi

diff --git a/sys-apps/memtest86+/memtest86+-8.00.ebuild 
b/sys-apps/memtest86+/memtest86+-8.00.ebuild
new file mode 100644
index 000000000000..f4724c32b324
--- /dev/null
+++ b/sys-apps/memtest86+/memtest86+-8.00.ebuild
@@ -0,0 +1,122 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit mount-boot secureboot toolchain-funcs
+
+MY_PV=${PV/_/-}
+
+DESCRIPTION="Memory tester based on PCMemTest"
+HOMEPAGE="https://www.memtest.org/";
+SRC_URI="https://github.com/memtest86plus/memtest86plus/archive/refs/tags/v${MY_PV}.tar.gz
 -> ${P}.tar.gz"
+
+S=${WORKDIR}/memtest86plus-${MY_PV}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="bios32 bios64 +boot uefi32 uefi64 iso32 iso64"
+
+ISODEPS="
+       dev-libs/libisoburn
+       sys-fs/dosfstools
+       sys-fs/mtools
+"
+BDEPEND="
+       iso32? ( ${ISODEPS} )
+       iso64? ( ${ISODEPS} )
+       sys-devel/gcc:*
+"
+
+pkg_setup() {
+       if use uefi32 || use uefi64; then
+               secureboot_pkg_setup
+       fi
+}
+
+src_prepare() {
+       sed -i \
+               -e 's#/sbin/mkdosfs#mkfs.vfat#' \
+               -e 's/shell size/shell $(SIZE)/' \
+               build/{i586,x86_64,loongarch64}/Makefile || die
+
+       if ! tc-is-gcc; then
+               ewarn "clang doesn't support indirect goto in function with no 
address-of-label expressions"
+               ewarn "Ignoring CC=$(tc-getCC) and forcing ${CHOST}-gcc"
+               export CC=${CHOST}-gcc AR=${CHOST}-gcc-ar
+               tc-is-gcc || die "tc-is-gcc failed in spite of CC=${CC}"
+       fi
+
+       default
+}
+
+src_compile() {
+       tc-export OBJCOPY
+       export SIZE=$(tc-getPROG SIZE size)
+
+       if use loong; then
+               # a different build directory has to be selected for loong, and
+               # there's no "BIOS" support.
+               pushd build/loongarch64
+                       use uefi64 && emake mt86plus
+                       use iso64 && emake iso
+               popd
+               return
+       fi
+
+       pushd build/i586
+               use bios32 || use uefi32 && emake mt86plus
+               use iso32 && emake iso
+       popd
+
+       pushd build/x86_64
+               use bios64 || use uefi64 && emake mt86plus
+               use iso64 && emake iso
+       popd
+}
+
+install_memtest_images() {
+       if use loong; then
+               use uefi64 && newins build/loongarch64/mt86plus 
memtest.loongarch64
+               return
+       fi
+
+       use bios32 || use uefi32 && newins build/i586/mt86plus memtest.i586
+       use bios64 || use uefi64 && newins build/x86_64/mt86plus memtest.x86_64
+}
+
+src_install() {
+       default
+       if use boot; then
+               exeinto /etc/grub.d/
+               newexe "${FILESDIR}"/39_memtest86+-r3 39_memtest86+
+               insinto /boot/memtest86plus
+               install_memtest_images
+       fi
+
+       insinto /usr/share/${PN}
+       install_memtest_images
+       if use loong; then
+               use iso64 && newins build/loongarch64/memtest.iso memtest64.iso
+       else
+               use iso32 && newins build/i586/memtest.iso memtest.i586.iso
+               use iso64 && newins build/x86_64/memtest.iso memtest.x86_64.iso
+       fi
+
+       if use uefi32 || use uefi64; then
+               secureboot_auto_sign --in-place
+       fi
+}
+
+pkg_pretend() {
+       use boot && mount-boot_pkg_pretend
+}
+
+pkg_preinst() {
+       use boot && mount-boot_pkg_preinst
+}
+
+pkg_prerm() {
+       use boot && mount-boot_pkg_prerm
+}

Reply via email to