summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2017-03-14 16:52:49 -0700
committerMike Frysinger <vapier@gentoo.org>2017-03-14 16:54:28 -0700
commit08eded4644881cf6de9a4acd78f047ed86d27276 (patch)
treeeb2583c8e1b3c43f8d178dc538772c9940b5d4bf
parent8fe39c8d9fd69b55db808f93edb8c1cbee496f36 (diff)
downloadgentoo-08eded4644881cf6de9a4acd78f047ed86d27276.tar.gz
gentoo-08eded4644881cf6de9a4acd78f047ed86d27276.tar.xz
sys-apps/memtest86+: rename installed files to match upstream #382757
We move back to using: - memtest.bin: bootable image - memtest: bare metal ELF We drop the "memtest.netbsd" file since it was never related to NetBSD. It was simply an ELF file (renamed from "memtest"). It used that name simply because we used grub's netbsd boot logic to load it (since it supports booting ELF files).
-rw-r--r--sys-apps/memtest86+/files/39_memtest86+-r169
-rw-r--r--sys-apps/memtest86+/memtest86+-5.01-r3.ebuild90
2 files changed, 159 insertions, 0 deletions
diff --git a/sys-apps/memtest86+/files/39_memtest86+-r1 b/sys-apps/memtest86+/files/39_memtest86+-r1
new file mode 100644
index 00000000000..20422b74d65
--- /dev/null
+++ b/sys-apps/memtest86+/files/39_memtest86+-r1
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+. /usr/share/grub/grub-mkconfig_lib
+
+memtest=/boot/memtest86plus/memtest.bin
+
+memtestelf=/boot/memtest86plus/memtest
+
+if [ -f "${memtest}" ] && [ -f "${memtestelf}" ]; 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
+
+if [ -f "${memtest}" ]; then
+ gettext_printf "Found memtest image: %s\n" "${memtest}" >&2
+
+ device="$("${grub_probe}" --target=device "${memtest}")"
+ path="$(make_system_path_relative_to_its_root "${memtest}")"
+ cat <<EOF
+${submenu_indentation}menuentry 'Memtest86+' {
+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}linux16 "${path}"
+${submenu_indentation}}
+EOF
+fi
+
+if [ -f "${memtestelf}" ]; then
+ gettext_printf "Found memtest image: %s\n" "${memtestelf}" >&2
+
+ device="$("${grub_probe}" --target=device "${memtestelf}")"
+ path="$(make_system_path_relative_to_its_root "${memtestelf}")"
+ cat <<EOF
+${submenu_indentation}menuentry 'Memtest86+ (ELF)' {
+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
+
+ # We use knetbsd as a lazy way of booting an ELF.
+ # It's not actually related to NetBSD at all.
+ cat <<EOF
+ ${submenu_indentation}knetbsd "${path}"
+${submenu_indentation}}
+EOF
+fi
+
+if [ "${multiple_memtest}" = "true" ] && [ "${GRUB_DISABLE_SUBMENU}" != "y" ]; then
+ cat <<EOF
+}
+EOF
+fi
diff --git a/sys-apps/memtest86+/memtest86+-5.01-r3.ebuild b/sys-apps/memtest86+/memtest86+-5.01-r3.ebuild
new file mode 100644
index 00000000000..36d52d85693
--- /dev/null
+++ b/sys-apps/memtest86+/memtest86+-5.01-r3.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit mount-boot eutils toolchain-funcs
+
+DESCRIPTION="Memory tester based on memtest86"
+HOMEPAGE="http://www.memtest.org/"
+SRC_URI="http://www.memtest.org/download/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE="floppy iso serial"
+
+BOOTDIR="/boot/memtest86plus"
+QA_PRESTRIPPED="${BOOTDIR}/memtest"
+QA_FLAGS_IGNORED="${BOOTDIR}/memtest"
+
+RDEPEND="floppy? ( >=sys-boot/grub-0.95:0 sys-fs/mtools )"
+DEPEND="iso? ( app-cdr/cdrtools )"
+
+src_prepare() {
+ sed -i -e 's,0x10000,0x100000,' memtest.lds || die
+ epatch "${FILESDIR}/${P}-gcc-473.patch" \
+ "${FILESDIR}/${P}-hardcoded_cc.patch"
+ epatch "${FILESDIR}"/${P}-no-scp.patch
+ epatch "${FILESDIR}"/${P}-io-extern-inline.patch #548312
+ epatch "${FILESDIR}"/${P}-reboot-def.patch #548312
+ epatch "${FILESDIR}"/${P}-no-clean.patch #557890
+ epatch "${FILESDIR}"/${P}-no-C-headers.patch #592638
+ epatch "${FILESDIR}"/${P}-test-random-cflags.patch #590974
+
+ sed -i 's:genisoimage:mkisofs:' makeiso.sh || die
+ if use serial ; then
+ sed -i \
+ -e '/^#define SERIAL_CONSOLE_DEFAULT/s:0:1:' \
+ config.h \
+ || die "sed failed"
+ fi
+}
+
+src_configure() {
+ tc-ld-disable-gold #580212
+ tc-export AS CC LD
+}
+
+src_compile() {
+ emake
+ if use iso ; then
+ ./makeiso.sh || die
+ fi
+}
+
+src_test() { :; }
+
+src_install() {
+ insinto "${BOOTDIR}"
+ use iso && newins mt*.iso memtest.iso
+ doins memtest memtest.bin
+
+ exeinto /etc/grub.d
+ doexe "${FILESDIR}"/39_memtest86+
+
+ dodoc README README.build-process FAQ changelog
+
+ if use floppy ; then
+ dobin "${FILESDIR}"/make-memtest86+-boot-floppy
+ doman "${FILESDIR}"/make-memtest86+-boot-floppy.1
+ fi
+}
+
+pkg_postinst() {
+ mount-boot_pkg_postinst
+ elog
+ elog "memtest has been installed in ${BOOTDIR}/"
+ elog "You may wish to update your bootloader configs"
+ elog "by adding these lines:"
+ elog " - For grub2 just run grub-mkconfig, a configuration file is installed"
+ elog " as /etc/grub.d/39_${PN}"
+ elog " - For grub legacy: (replace '?' with correct numbers for your boot partition)"
+ elog " > title=${PN}"
+ elog " > root (hd?,?)"
+ elog " > kernel ${BOOTDIR}/memtest.bin"
+ elog " - For lilo:"
+ elog " > image = ${BOOTDIR}/memtest.bin"
+ elog " > label = ${PN}"
+ elog
+}