diff --git a/.cvsignore b/.cvsignore index 916d1f5..194032f 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1,2 @@ memtest86+-2.11.tar.gz +temp.tar.gz diff --git a/import.log b/import.log index 3509272..05a59bd 100644 --- a/import.log +++ b/import.log @@ -1,3 +1,4 @@ memtest86+-2_11-4_fc10:HEAD:memtest86+-2.11-4.fc10.src.rpm:1236973348 memtest86+-2_11-5_fc10:HEAD:memtest86+-2.11-5.fc10.src.rpm:1238510694 memtest86+-2_11-6_fc10:HEAD:memtest86+-2.11-6.fc10.src.rpm:1238679177 +memtest86+-2_11-7_fc10:HEAD:memtest86+-2.11-7.fc10.src.rpm:1239054010 diff --git a/memtest-setup b/memtest-setup deleted file mode 100755 index b2798b4..0000000 --- a/memtest-setup +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -if [ -d /sys/firmware/efi ]; then - echo "memtest86+ does not support EFI platforms." - exit 254 -fi - -MTVERSION=`rpm -q --qf '%{version}' memtest86+` -MTPATH="/boot/memtest86+-$MTVERSION" - -/sbin/grubby --info=$MTPATH > /dev/null 2> /dev/null -if [ "$?" = 0 ]; then - echo "$MTPATH is already configured. Exiting..." - exit 0 -fi - -if [ ! -f $MTPATH ]; then - echo "ERROR: $MTPATH does not exist." - exit 255 -fi - -/sbin/new-memtest-pkg --install $MTVERSION --banner="Memtest86+" -RETVAL="$?" - -if [ "$RETVAL" != "0" ]; then - echo "ERROR: grubby failed to configure your bootloader for $MTPATH." - exit $RETVAL -else - sed -i -e's,kernel /memtest86+,kernel --type=netbsd /memtest86+,' /boot/grub/grub.conf - sed -i -e"s,/memtest86+-$MTVERSION.*,/memtest86+-$MTVERSION," /boot/grub/grub.conf -fi - -echo "Setup complete." diff --git a/memtest86+.spec b/memtest86+.spec index 70a7254..397f388 100644 --- a/memtest86+.spec +++ b/memtest86+.spec @@ -1,29 +1,25 @@ +%bcond_with update_grub + # Prevent stripping %define __spec_install_post /usr/lib/rpm/brp-compress # Turn off debuginfo package %define debug_package %{nil} -%bcond_with update_grub -Summary: Stand-alone memory tester for x86 and x86-64 computers -Name: memtest86+ -Version: 2.11 -Release: 6%{?dist} -License: GPLv2 -ExclusiveArch: %{ix86} x86_64 -Group: System Environment/Base -Source0: http://www.memtest.org/download/%{version}/%{name}-%{version}.tar.gz -URL: http://www.memtest.org -Source1: new-memtest-pkg -Source2: memtest-setup +Name: memtest86+ +Version: 2.11 +Release: 7%{?dist} +License: GPLv2 +Summary: Stand-alone memory tester for x86 and x86-64 computers +Group: System Environment/Base +Source0: http://www.memtest.org/download/%{version}/%{name}-%{version}.tar.gz +Source1: temp.tar.gz +URL: http://www.memtest.org +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # require glibc-devel.i386 via this file: BuildRequires: %{_includedir}/gnu/stubs-32.h BuildRequires: compat-gcc-34 -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -Requires: /sbin/grubby sed -%if %{with update_grub} -Requires(preun): coreutils -Requires(post): coreutils -%endif +Requires: /sbin/grubby sed coreutils +ExclusiveArch: %{ix86} x86_64 %description Memtest86+ is a thorough stand-alone memory test for x86 and x86-64 @@ -31,23 +27,24 @@ architecture computers. BIOS based memory tests are only a quick check and often miss many of the failures that are detected by Memtest86+. -This version avoids the following errors when booting from grub: +The ELF version should be used for booting from grub, +and avoids the following errors: "Error 7: Loading below 1MB is not supported" "Error 13: Invalid or unsupported executable format" "Error 28: Selected item cannot fit into memory" -Please, run '/usr/sbin/memtest-setup' as root to add -the memtest86+ entry to your GRUB or lilo boot menu. +The script '%{_sbindir}/memtest-setup' can be run (as root) +to add the %{name} entry to your GRUB boot menu. %prep -%setup -q +%setup -q -a 1 sed -i -e's,0x10000,0x100000,' memtest.lds %build # Regular build flags not wanted for this binary # Note: i486 minimum runtime arch -make CC=gcc34 # It makes no sense to use smp flags here. +make CC=gcc34 %install rm -rf %{buildroot} @@ -55,17 +52,21 @@ mkdir -p %{buildroot}/boot mkdir -p %{buildroot}/sbin mkdir -p %{buildroot}%{_sbindir} -# install the ELF version, not the floppy (memtest.bin) one. -install -m644 memtest %{buildroot}/boot/%{name}-%{version} -install -m755 %{SOURCE1} %{buildroot}/sbin/new-memtest-pkg -install -m755 %{SOURCE2} %{buildroot}%{_sbindir}/memtest-setup +# the ELF (memtest) version. +install -m644 memtest %{buildroot}/boot/%{name}-elf-%{version} + +# the floppy (memtest.bin) version. +install -m644 memtest.bin %{buildroot}/boot/%{name}-%{version} + +install -m755 temp/new-memtest-pkg %{buildroot}/sbin/new-memtest-pkg +install -m755 temp/memtest-setup %{buildroot}%{_sbindir}/memtest-setup sed -i 's/\r//' $RPM_BUILD_DIR/%{name}-%{version}/README %if %{with update_grub} %post -p /usr/sbin/memtest-setup %preun -sed -i -e's,kernel --type=netbsd /%{name}-%{version},kernel /%{name}-%{version},' /boot/grub/grub.conf +sed -i -e's,kernel --type=netbsd /%{name}-elf-%{version},kernel /%{name}-elf-%{version},' /boot/grub/grub.conf /sbin/new-memtest-pkg --remove %{version} %endif @@ -76,10 +77,17 @@ rm -rf %{buildroot} %defattr(-,root,root,-) %doc README /boot/%{name}-%{version} +/boot/%{name}-elf-%{version} /sbin/new-memtest-pkg %{_sbindir}/memtest-setup + %changelog + +* Sun Apr 05 2009 Paulo Roma - 2.11-7 +- adapted the spec file for building the elf and + the bin versions #494157 + * Thu Apr 02 2009 Paulo Roma - 2.11-6 - grub.conf will not be updated by default. The user will have to add and/or remove memtest86+ entries. diff --git a/new-memtest-pkg b/new-memtest-pkg deleted file mode 100755 index bcbf261..0000000 --- a/new-memtest-pkg +++ /dev/null @@ -1,339 +0,0 @@ -#!/bin/bash -# -# Invoked upon installation or removal of a kernel package, the following -# tasks are/can be done here: -# creation/removal of initrd -# run of depmod/removal of depmod generated files -# addition/removal of kernel images from grub/lilo configuration (via grubby) -# -# Copyright (C) 2002, 2003 Red Hat, Inc. -# - -PATH=/sbin:/bin:$PATH - -lilo=/sbin/lilo - -# some defaults that are sane for most arches -kernelName=memtest86+ - -if [ -x ./grubby ]; then - grubby=./grubby -else - grubby=/sbin/grubby -fi - -cfgGrub="" -cfgLilo="" -runLilo="" -grubConfig="" - -ARCH=$(uname -m) - -if [ $ARCH = 'ia64' ]; then - liloConfig=/boot/efi/EFI/redhat/elilo.conf - bootPrefix=/boot/efi/EFI/redhat - liloFlag=elilo - isx86="" -elif [ $ARCH = 'ppc64' -o $ARCH = 'ppc' ]; then - liloConfig=/etc/yaboot.conf - bootPrefix=/boot - lilo=/sbin/ybin - kernelName=vmlinux - liloFlag=yaboot - runLilo="yes" - isx86="" -elif [ $ARCH = 'sparc' -o $ARCH = 'sparc64' ]; then - liloConfig=/etc/silo.conf - bootPrefix=/boot - liloFlag=silo - lilo=/sbin/silo - isx86="" -elif [ $ARCH = 's390' -o $ARCH = 's390x' ]; then - liloConfig=/etc/zipl.conf - bootPrefix=/boot - liloFlag=zipl - lilo=/sbin/zipl - runLilo="yes" - isx86="" -else - # this leaves i?86 and x86_64 - liloConfig=/etc/lilo.conf - grubConfig=/boot/grub/grub.conf - bootPrefix=/boot - liloFlag=lilo - isx86="yes" -fi - -mode="" -version="" -initrd="" -initrdfile="" -moddep="" -verbose="" - -usage() { - echo "Usage: `basename $0` [-v] [--mkinitrd] [--rminitrd]" >&2 - echo " [--initrdfile=] [--depmod] [--rmmoddep]" >&2 - echo " [--kernel-args=] [--banner=]" >&2 - echo " <--install | --remove> " >&2 - echo " (ex: `basename $0` --mkinitrd --depmod --install 2.4.7-2)" >&2 - exit 1 -} - -install() { - # XXX kernel should be able to be specified also (or work right on ia64) - if [ ! -f $bootPrefix/$kernelName-$version ] ; then - [ -n "$verbose" ] && echo "kernel for $version does not exist, not running grubby" - return - fi - - INITRD="" - if [ -f $initrdfile ]; then - [ -n "$verbose" ] && echo "found $initrdfile and using it with grubby" - INITRD="--initrd $initrdfile" - fi - - # FIXME: is this a good heuristic to find out if we're on iSeries? - if [ -d /proc/iSeries ]; then - [ -n "$verbose" ] && echo "On an iSeries, just making img file" - if [ -z $initrdfile ]; then - [ -n "$verbose" ] && echo "No initrd, just adding system map" - /sbin/addSystemMap $bootPrefix/System.map-$version $bootPrefix/$kernelName-$version $bootPrefix/vmlinitrd-$version - else - /sbin/addSystemMap $bootPrefix/System.map-$version $bootPrefix/$kernelName-$version $bootPrefix/vmlinux.sm-$version - /sbin/addRamDisk $initrdfile $bootPrefix/System.map-$version $bootPrefix/vmlinux.sm-$version $bootPrefix/vmlinitrd-$version 2>/dev/null - rm $bootPrefix/vmlinux.sm-$version - fi - return - fi - - # get the root filesystem to use; if it's on a label make sure it's - # been configured. if not, get the root device from mount - rootdevice=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/fstab) - short=$(echo $rootdevice | cut -d= -f1) - if [ "$short" == "LABEL" ]; then - label=$(echo $rootdevice | cut -d= -f2 |head -n 1) - device=$(echo "showlabels" | /sbin/nash --force --quiet | - awk '$2 == "'$label'" {print $1}') - if [ -z "$device" ]; then - rootdevice=$(mount | awk '$3 == "/" { print $1 }') - fi - fi - - if [ -n "$cfgGrub" ]; then - [ -n "$verbose" ] && echo "adding $version to $grubConfig" - - if [ -n "$banner" ]; then - title="$banner ($version)" - elif [ -f /etc/redhat-release ]; then - title="$(sed 's/ release.*$//' < /etc/redhat-release) ($version)" - else - title="Red Hat Linux ($version)" - fi - /sbin/grubby --add-kernel=$bootPrefix/$kernelName-$version $INITRD \ - --copy-default --title "$title" \ - --args="root=$rootdevice $kernargs" \ - --remove-kernel="TITLE=$title" - else - [ -n "$verbose" ] && echo "$grubConfig does not exist, not running grubby" - fi - - if [ -n "$cfgLilo" ]; then - [ -n "$verbose" ] && echo "adding $version to $liloConfig" - - /sbin/grubby --add-kernel=$bootPrefix/$kernelName-$version $INITRD \ - --copy-default --title $version \ - --args="root=$rootdevice $kernargs" \ - --remove-kernel="TITLE=$version" \ - --$liloFlag - - if [ -n "$runLilo" ]; then - [ -n "$verbose" ] && echo "running $lilo" - if [ ! -x $lilo ] ; then - [ -n "$verbose" ] && echo "$lilo does not exist" - else - $lilo > /dev/null - fi - fi - else - [ -n "$verbose" ] && echo "$liloConfig does not exist, not running grubby" - fi - -} - -remove() { - # FIXME: is this a good heuristic to find out if we're on iSeries? - if [ -d /proc/iSeries ]; then - [ -n "$verbose" ] && echo "On an iSeries, remove img file" - rm -f $bootPrefix/$kernelName-$version.img 2>/dev/null - return - fi - - if [ -n "$cfgGrub" ]; then - [ -n "$verbose" ] && echo "removing $version from $grubConfig" - /sbin/grubby --remove-kernel=$bootPrefix/$kernelName-$version - else - [ -n "$verbose" ] && echo "$grubConfig does not exist, not running grubby" - fi - - if [ -n "$cfgLilo" ]; then - [ -n "$verbose" ] && echo "removing $version from $liloConfig" - /sbin/grubby --remove-kernel=$bootPrefix/$kernelName-$version \ - --$liloFlag - - if [ -n "$runLilo" ]; then - [ -n "$verbose" ] && echo "running $lilo" - if [ ! -x $lilo ] ; then - [ -n "$verbose" ] && echo "$lilo does not exist" - else - $lilo > /dev/null - fi - fi - else - [ -n "$verbose" ] && echo "$liloConfig does not exist, not running grubby" - fi -} - -mkinitrd() { - [ -n "$verbose" ] && echo "creating initrd $initrdfile using $version" - /sbin/mkinitrd -f $initrdfile $version - rc=$? - if [ $rc != 0 ]; then - echo "mkinitrd failed" >&2 - exit 1 - fi -} - -rminitrd() { - [ -n "$verbose" ] && echo "removing initrd $initrdfile" - [ -f $initrdfile ] && rm -f $initrdfile -} - -doDepmod() { - [ -n "$verbose" ] && echo "running depmod for $version" - depmod -ae -F /boot/System.map-$version $version -} - -doRmmoddep() { - [ -n "$verbose" ] && echo "removing modules.dep info for $version" - [ -d /lib/modules/$version ] && rm -f /lib/modules/$version/modules.* -} - - -while [ $# -gt 0 ]; do - case $1 in - --mkinitrd) - initrd="make" - ;; - - --rminitrd) - initrd="remove" - ;; - - --initrdfile*) - if echo $1 | grep '=' >/dev/null ; then - initrdfile=`echo $1 | sed 's/^--initrdfile=//'` - else - initrdfile=$2 - shift - fi - ;; - - --kernel-args*) - if echo $1 | grep '=' >/dev/null ; then - kernargs=`echo $1 | sed 's/^--kernel-args=//'` - else - kernargs=$2 - shift - fi - ;; - - --banner*) - if echo $1 | grep '=' >/dev/null ; then - banner=`echo $1 | sed 's/^--banner=//'` - else - banner=$2 - shift - fi - ;; - - --depmod) - moddep="make" - ;; - - --rmmoddep) - moddep="remove" - ;; - - -v) - verbose=-v - ;; - - *) - if [ -z "$mode" ]; then - mode=$1 - elif [ -z "$version" ]; then - version=$1 - else - usage - fi - ;; - esac - - shift -done - -# make sure the mode is valid -if [ "$mode" != "--install" -a "$mode" != "--remove" ] ; then - usage -fi - -if [ -z "$version" ]; then - usage -fi - -# set the initrd file based on arch; ia64 is the only currently known oddball -if [ -z "$initrdfile" ]; then - if [ `uname -m` = "ia64" ]; then - initrdfile="/boot/efi/EFI/redhat/initrd-$version.img" - else - initrdfile="/boot/initrd-$version.img" - fi - -fi -[ -n "$verbose" ] && echo "initrdfile is $initrdfile" - -if [ "$moddep" == "make" ]; then - doDepmod -elif [ "$moddep" == "remove" ]; then - doRmmoddep -fi - -if [ "$initrd" == "make" ]; then - mkinitrd -elif [ "$initrd" == "remove" ]; then - rminitrd -fi - -if [ ! -x $grubby ] ; then - [ -n "$verbose" ] && echo "$grubby does not exist" - exit 0 -fi - - -[ -n "$grubConfig" ] && [ -f "$grubConfig" ] && cfgGrub=1; -[ -n "$liloConfig" ] && [ -f "$liloConfig" ] && cfgLilo=1; - -# if we have a lilo config on an x86 box, see if the default boot loader -# is lilo to determine if it should be run -if [ -n "$cfgLilo" -a -n "$isx86" ]; then - runLilo=$($grubby --bootloader-probe | grep lilo) -fi - -if [ "$mode" == "--install" ]; then - install -elif [ "$mode" == "--remove" ]; then - remove -fi - -exit 0 diff --git a/sources b/sources index a962df6..a6e13ea 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ e457774139c0bfef899359df91f49b3e memtest86+-2.11.tar.gz +518763b187bb85249120d06dfebd1235 temp.tar.gz