diff options
author | Mike Frysinger <vapier@gentoo.org> | 2017-03-20 03:19:42 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2017-03-20 03:19:42 -0400 |
commit | b2f095cc8a812ca6b9e57dafc2825b7041c41aec (patch) | |
tree | 1f238bb4f36b362aba6422877b94e5a1ebb64311 /sys-apps | |
parent | sys-apps/memtest86: drop old <4.3.7 versions (diff) | |
download | gentoo-b2f095cc8a812ca6b9e57dafc2825b7041c41aec.tar.gz gentoo-b2f095cc8a812ca6b9e57dafc2825b7041c41aec.tar.bz2 gentoo-b2f095cc8a812ca6b9e57dafc2825b7041c41aec.zip |
sys-apps/memtest86: install memtest & memtest.bin #613228
This installs files as upstream names them:
- memtest.bin: bootable image
- memtest: bare metal ELF
Diffstat (limited to 'sys-apps')
-rw-r--r-- | sys-apps/memtest86/files/39_memtest86-r1 | 69 | ||||
-rw-r--r-- | sys-apps/memtest86/memtest86-4.3.7-r1.ebuild | 71 |
2 files changed, 140 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 000000000000..596a676cceb2 --- /dev/null +++ b/sys-apps/memtest86/files/39_memtest86-r1 @@ -0,0 +1,69 @@ +#!/bin/sh + +. /usr/share/grub/grub-mkconfig_lib + +memtest=/boot/memtest86/memtest.bin + +memtestelf=/boot/memtest86/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-4.3.7-r1.ebuild b/sys-apps/memtest86/memtest86-4.3.7-r1.ebuild new file mode 100644 index 000000000000..73cf407c5484 --- /dev/null +++ b/sys-apps/memtest86/memtest86-4.3.7-r1.ebuild @@ -0,0 +1,71 @@ +# 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="A stand alone memory test for x86 computers" +HOMEPAGE="http://www.memtest86.com/" +SRC_URI="http://www.memtest86.com/downloads/${P}-src.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +IUSE="serial" + +S="${WORKDIR}/src" + +BOOTDIR="/boot/memtest86" +QA_PRESTRIPPED="${BOOTDIR}/memtest" +QA_FLAGS_IGNORED="${BOOTDIR}/memtest" + +src_prepare() { + epatch "${FILESDIR}"/${PN}-4.3.3-build-nopie.patch #66630 + #206726 + epatch "${FILESDIR}"/${PN}-4.3.7-io-extern-inline.patch #548312 #568292 + epatch "${FILESDIR}"/${PN}-4.3.7-reboot-def.patch #548312 #568292 + epatch "${FILESDIR}"/${PN}-4.3.7-no-clean.patch #557890 + + sed -i -e 's,0x10000,0x100000,' memtest.lds || die + + if use serial ; then + sed -i \ + -e '/^#define SERIAL_CONSOLE_DEFAULT/s:0:1:' \ + config.h \ + || die "sed failed" + fi +} + +src_configure() { + tc-export AS CC LD +} + +src_test() { :; } + +src_install() { + insinto "${BOOTDIR}" + doins memtest memtest.bin + + exeinto /etc/grub.d + newexe "${FILESDIR}"/39_${PN}-r1 39_${PN} + + dodoc README README.build-process README.background +} + +pkg_postinst() { + mount-boot_pkg_postinst + + elog "${PN} has been installed in ${BOOTDIR}/" + elog "You may wish to update your bootloader configs 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 "" + elog "Note: For older configs, you might have to change from 'memtest' to 'memtest.bin'." +} |