summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/memtest86+/memtest86+-6.20-r1.ebuild')
-rw-r--r--sys-apps/memtest86+/memtest86+-6.20-r1.ebuild100
1 files changed, 100 insertions, 0 deletions
diff --git a/sys-apps/memtest86+/memtest86+-6.20-r1.ebuild b/sys-apps/memtest86+/memtest86+-6.20-r1.ebuild
new file mode 100644
index 000000000000..5ca6984446ce
--- /dev/null
+++ b/sys-apps/memtest86+/memtest86+-6.20-r1.ebuild
@@ -0,0 +1,100 @@
+# Copyright 2022-2024 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"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="bios32 bios64 +boot uefi32 uefi64 iso32 iso64"
+
+ISODEPS="
+ dev-libs/libisoburn
+ sys-fs/dosfstools
+ sys-fs/mtools
+"
+BDEPEND="
+ iso32? ( ${ISODEPS} )
+ iso64? ( ${ISODEPS} )
+"
+
+S=${WORKDIR}/memtest86plus-${MY_PV}
+
+pkg_setup() {
+ if use uefi32 || use uefi64; then
+ secureboot_pkg_setup
+ fi
+}
+
+src_prepare() {
+ sed -i \
+ -e 's#/sbin/mkdosfs#mkfs.vfat#' \
+ -e 's/^AS = as/AS +=/' \
+ -e '/^CC/d' \
+ -e 's/objcopy/$(OBJCOPY)/' \
+ -e 's/shell size/shell $(SIZE)/' \
+ build{32,64}/Makefile || die
+ default
+}
+
+src_compile() {
+ tc-export OBJCOPY
+ export SIZE=$(tc-getPROG SIZE size)
+ pushd build32
+ use bios32 && emake memtest.bin
+ use uefi32 && emake memtest.efi
+ use iso32 && emake iso
+ popd
+
+ pushd build64
+ use bios64 && emake memtest.bin
+ use uefi64 && emake memtest.efi
+ use iso64 && emake iso
+ popd
+}
+
+install_memtest_images() {
+ use bios32 && newins build32/memtest.bin memtest32.bios
+ use bios64 && newins build64/memtest.bin memtest64.bios
+ use uefi32 && newins build32/memtest.efi memtest.efi32
+ use uefi64 && newins build64/memtest.efi memtest.efi64
+}
+
+src_install() {
+ default
+ if use boot; then
+ exeinto /etc/grub.d/
+ newexe "${FILESDIR}"/39_memtest86+-r2 39_memtest86+
+ insinto /boot/memtest86plus
+ install_memtest_images
+ fi
+
+ insinto /usr/share/${PN}
+ install_memtest_images
+ use iso32 && newins build32/memtest.iso memtest32.iso
+ use iso64 && newins build64/memtest.iso memtest64.iso
+
+ 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
+}