diff options
-rw-r--r-- | .SRCINFO | 15 | ||||
-rw-r--r-- | PKGBUILD | 30 | ||||
-rw-r--r-- | grub.conf | 10 | ||||
-rw-r--r-- | memtest86-efi | 67 | ||||
-rw-r--r-- | systemd-boot.conf | 2 |
5 files changed, 61 insertions, 63 deletions
@@ -1,29 +1,24 @@ pkgbase = memtest86-efi pkgdesc = A free, thorough, stand alone memory test as an EFI application - pkgver = 7.5.1001 + pkgver = 8.0 pkgrel = 1 url = http://www.memtest86.com install = memtest86-efi.install - arch = i686 - arch = x86_64 + arch = any license = GPL2 license = custom:PassMark makedepends = p7zip optdepends = efibootmgr: to add a new EFI boot entry optdepends = grub: to add MemTest86 entry in GRUB2 menu backup = etc/memtest86-efi/memtest86-efi.conf - source = https://www.passmark.com/ftp/memtest86-usb-7.5.1001.tar.gz + source = https://www.passmark.com/ftp/memtest86-usb-8.0.1001.zip source = memtest86-efi source = memtest86-efi.conf - source = grub.conf - source = systemd-boot.conf source = memtest86-efi-update.hook source = memtest86-efi-remove.hook - sha512sums = 10232a1c3a589407e06257f7fff14a28b524d3998bc712317d25081e3e67f87549bf36cb9e79f50ee9676e32b050d38bbfa74d2f536899d358bcd05edea3b97a - sha512sums = 001151346736fc901dac0f5f2b07557b049f2e2cf2a7de0aae7019e7fde126e4e6cf291328dea920d5af45b21b08366b6465b8a8aa453f7af0fd760ced3952aa + sha512sums = b725f807285c03fa5f7f5d77af29162aebeb46762a27ed6e4316420ed0b0af34c307a8abc9c364c22d21a86ab4a58cc4882507500a2ee0397bd7cc8749407118 + sha512sums = 799d580b87b4db0b53851bd31d08afb1cba3c6487256d5bd5ffb9296b2740de92bda36cdb8281bd297230741f56f3a1698568db2e1565e8bab4e02d26c64bd45 sha512sums = 947df5f141bdb00a007a796c74f862d6ca41f74b4e5b28d1a444b4b8e538114e7f404f54420508639a77e554c2477ad324570ada0462c9fd7b058ed51e0ea8d8 - sha512sums = df883042a5bad262e74b69e2ca0cd8c9c21a4e4eb5132aed0041a07050b5ab7f280e94681ffe106e6de547d00b621fd2a019cf5b669e00876a32e637687395f8 - sha512sums = 1ece1ca18d53a19eff8341cce0c6099ac6b8d27ebad176c9a85714a7cac24cef7dfa2b462d8a0160dc8eb71f21aca1ee2469ebdf095083dcd77fa0b0f90f1812 sha512sums = 6952376b601b84da5fba14a7a5316d37b6083bae20f68f5b90b22d2728a19bf6d1fb367cf1adecfb82bf03e339b7dbf91f6d23f0d59731f89cf45240f16d5614 sha512sums = 1fe55a642e36005f5b7b58e5fb245e8029bb1a19b5f30d8ddba6bbf5a4b96c1bba35be0dfacee478034b8367fdde62d34a934dcd787f4c6702889615bac9f78a @@ -2,10 +2,11 @@ _pkgbasename=memtest86 pkgname=$_pkgbasename-efi -pkgver=7.5.1001 +pkgver=8.0 +_build=1001 pkgrel=1 pkgdesc="A free, thorough, stand alone memory test as an EFI application" -arch=('i686' 'x86_64') +arch=('any') url="http://www.memtest86.com" license=('GPL2' 'custom:PassMark') makedepends=('p7zip') @@ -13,42 +14,37 @@ optdepends=('efibootmgr: to add a new EFI boot entry' 'grub: to add MemTest86 entry in GRUB2 menu') backup=(etc/$pkgname/$pkgname.conf) install=$pkgname.install -source=("https://www.passmark.com/ftp/$_pkgbasename-usb-$pkgver.tar.gz" +source=("https://www.passmark.com/ftp/$_pkgbasename-usb-$pkgver.$_build.zip" "memtest86-efi" "memtest86-efi.conf" - "grub.conf" - "systemd-boot.conf" "memtest86-efi-update.hook" "memtest86-efi-remove.hook") -sha512sums=('10232a1c3a589407e06257f7fff14a28b524d3998bc712317d25081e3e67f87549bf36cb9e79f50ee9676e32b050d38bbfa74d2f536899d358bcd05edea3b97a' - '001151346736fc901dac0f5f2b07557b049f2e2cf2a7de0aae7019e7fde126e4e6cf291328dea920d5af45b21b08366b6465b8a8aa453f7af0fd760ced3952aa' +sha512sums=('b725f807285c03fa5f7f5d77af29162aebeb46762a27ed6e4316420ed0b0af34c307a8abc9c364c22d21a86ab4a58cc4882507500a2ee0397bd7cc8749407118' + '799d580b87b4db0b53851bd31d08afb1cba3c6487256d5bd5ffb9296b2740de92bda36cdb8281bd297230741f56f3a1698568db2e1565e8bab4e02d26c64bd45' '947df5f141bdb00a007a796c74f862d6ca41f74b4e5b28d1a444b4b8e538114e7f404f54420508639a77e554c2477ad324570ada0462c9fd7b058ed51e0ea8d8' - 'df883042a5bad262e74b69e2ca0cd8c9c21a4e4eb5132aed0041a07050b5ab7f280e94681ffe106e6de547d00b621fd2a019cf5b669e00876a32e637687395f8' - '1ece1ca18d53a19eff8341cce0c6099ac6b8d27ebad176c9a85714a7cac24cef7dfa2b462d8a0160dc8eb71f21aca1ee2469ebdf095083dcd77fa0b0f90f1812' '6952376b601b84da5fba14a7a5316d37b6083bae20f68f5b90b22d2728a19bf6d1fb367cf1adecfb82bf03e339b7dbf91f6d23f0d59731f89cf45240f16d5614' '1fe55a642e36005f5b7b58e5fb245e8029bb1a19b5f30d8ddba6bbf5a4b96c1bba35be0dfacee478034b8367fdde62d34a934dcd787f4c6702889615bac9f78a') prepare() { msg2 "Extract ISO..." 7z x -y "$srcdir/memtest86-usb.img" > /dev/null - 7z x -y "$srcdir/EFI System Partition.img" -oc:"$srcdir/$pkgname-$pkgver" > /dev/null + 7z x -y "$srcdir/EFI System Partition.img" -oc:"$srcdir/$pkgname-$pkgver" > /dev/null } package() { cd "$srcdir/$pkgname-$pkgver" msg2 "Move MemTest86 stuff in share directory..." - [[ "$CARCH" == "i686" ]] && install -Dvm755 "EFI/BOOT/BOOTIA32.efi" "$pkgdir/usr/share/$pkgname/bootia32.efi" - [[ "$CARCH" == "x86_64" ]] && install -Dvm755 "EFI/BOOT/BOOTX64.efi" "$pkgdir/usr/share/$pkgname/bootx64.efi" - install -Dvm644 "EFI/BOOT/mt86.png" "$pkgdir/usr/share/$pkgname/mt86.png" - install -Dvm644 "EFI/BOOT/unifont.bin" "$pkgdir/usr/share/$pkgname/unifont.bin" - install -Dvm644 "license.rtf" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.rtf" + install -Dvm755 "EFI/BOOT/BOOTIA32.efi" "$pkgdir/usr/share/$pkgname/bootia32.efi" + install -Dvm755 "EFI/BOOT/BOOTX64.efi" "$pkgdir/usr/share/$pkgname/bootx64.efi" + install -Dvm644 "EFI/BOOT/blacklist.cfg" "$pkgdir/usr/share/$pkgname/blacklist.cfg" + install -Dvm644 "EFI/BOOT/mt86.png" "$pkgdir/usr/share/$pkgname/mt86.png" + install -Dvm644 "EFI/BOOT/unifont.bin" "$pkgdir/usr/share/$pkgname/unifont.bin" + install -Dvm644 "license.rtf" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.rtf" msg2 "Install AUR provided script..." install -Dvm755 "$srcdir/memtest86-efi" "$pkgdir/usr/bin/memtest86-efi" install -Dvm644 "$srcdir/memtest86-efi.conf" "$pkgdir/etc/memtest86-efi/memtest86-efi.conf" - install -Dvm644 "$srcdir/grub.conf" "$pkgdir/etc/memtest86-efi/grub.conf" - install -Dvm644 "$srcdir/systemd-boot.conf" "$pkgdir/etc/memtest86-efi/systemd-boot.conf" msg2 "Install Pacman hooks..." install -Dvm644 "$srcdir/memtest86-efi-update.hook" "$pkgdir/usr/share/libalpm/hooks/memtest86-efi-update.hook" diff --git a/grub.conf b/grub.conf deleted file mode 100644 index 62487f169a4a..000000000000 --- a/grub.conf +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -cat <<EOF -if [ "\$grub_platform" = "efi" ]; then - menuentry "Memtest86" { - search --set=root --no-floppy --fs-uuid @UUID@ - chainloader /EFI/memtest86/memtest@ARCH@.efi - } -fi -EOF diff --git a/memtest86-efi b/memtest86-efi index 7889ce39f0b8..6386bb7c4003 100644 --- a/memtest86-efi +++ b/memtest86-efi @@ -8,6 +8,7 @@ PRGNAME=$(basename $0) CONFDIR="/etc/memtest86-efi" CONFFILE="$CONFDIR/memtest86-efi.conf" source "$CONFFILE" || exit 127 +shopt -s extglob [[ "$(uname -m)" == "i686" ]] && ARCH="ia32" [[ "$(uname -m)" == "x86_64" ]] && ARCH="x64" @@ -30,13 +31,39 @@ checkcommand() { } _common_install() { - efidir="$esp/EFI/memtest86" - efifile="$efidir/memtest$ARCH.efi" + efidir="$1" + efifile="$2" - echo -e "MemTest86 will be installed in ${CB}$efidir/${CR}." + echo -e "MemTest86 is installed into ${CB}$efidir/${CR} directory." mkdir -pv "$efidir" - cp -v "$MEMTEST86_PATH/"* "$efidir/" # Move files in memtest ESP directory - mv -v "$efidir/boot$ARCH.efi" "$efifile" # Rename .efi file + cp -v "$MEMTEST86_PATH/"!(*.efi) "$efidir/" # Move files in memtest ESP directory + cp -v "$MEMTEST86_PATH/boot$ARCH.efi" "$efidir/$efifile" # Copy and rename .efi file +} + +_write_grub_cfg() { + uuid="$1" + + cat > "/etc/grub.d/86_memtest" <<FOE +#!/bin/sh + +cat <<EOF +if [ "\$grub_platform" = "efi" ]; then + menuentry "Memtest86" { + search --set=root --no-floppy --fs-uuid $uuid + chainloader /EFI/memtest86/memtest$ARCH.efi + } +fi +EOF +FOE +} + +_write_systemd_boot_cfg() { + systemdbootdir="$1" + + cat > "$systemdbootdir/memtest86-efi.conf" <<FOE +title MemTest86 +efi /EFI/memtest86/memtest$ARCH.efi +FOE } install() { @@ -86,16 +113,13 @@ install() { case $choice in 1) # Install MemTest86 in $esp/ - echo -e "MemTest86 will be installed in ${CB}$esp/${CR}." - efifile="$esp/shell$ARCH.efi" [[ -f "$esp/shell$ARCH.efi" ]] && mv -v "$esp/shell$ARCH.efi" "$esp/shell$ARCH.efi.bak" # Backup if exist - cp -v "$MEMTEST86_PATH/"* "$esp/" # Move files in ESP root - mv -v "$esp/boot$ARCH.efi" "$efifile" # Rename .efi file + _common_install "$esp" "shell$ARCH.efi" ;; 2) # Install MemTest86 in $esp/EFI/memtest86/ & add an EFI boot entry checkcommand efibootmgr - _common_install + _common_install "$esp/EFI/memtest86" "memtest$ARCH.efi" echo -e "\nAdd a new EFI boot entry..." efibootmgr -c -d ${device} -p ${partnumber} -w -L "MemTest86" -l "\EFI\memtest86\memtest$ARCH.efi" # Manage efi entry ;; @@ -106,22 +130,21 @@ install() { echo -e "${CE}GRUB2 seems not installed on your system. Aborted.${CR}" > /dev/stderr exit 2 fi - _common_install + _common_install "$esp/EFI/memtest86" "memtest$ARCH.efi" echo -e "\nAdd a new configuration file for GRUB..." - /bin/install -Dvm755 "$CONFDIR/grub.conf" "/etc/grub.d/86_memtest" uuid=$(blkid $partition -s UUID -o value) - sed -i "s|@UUID@|$uuid|g" "/etc/grub.d/86_memtest" - sed -i "s|@ARCH@|$ARCH|g" "/etc/grub.d/86_memtest" + _write_grub_cfg "$uuid" grub-mkconfig -o "/boot/grub/grub.cfg" ;; 4) # Install MemTest86 in $esp/EFI/memtest86/ & add a file for systemd-boot - _common_install + checkcommand bootctl + _common_install "$esp/EFI/memtest86" "memtest$ARCH.efi" echo -e "\nAdd a new configuration file for systemd-boot..." systemdbootdir="$esp/loader/entries" mkdir -pv "$systemdbootdir" - /bin/install -Dvm644 "$CONFDIR/systemd-boot.conf" "$systemdbootdir/memtest86-efi.conf" - sed -i "s|@ARCH@|$ARCH|g" "$systemdbootdir/memtest86-efi.conf" + _write_systemd_boot_cfg "$systemdbootdir" + bootctl --path="$esp" update ;; *) # Do nothing and quit @@ -147,15 +170,11 @@ update() { case $choice in 1) # Update files in $esp/ - echo -e "MemTest86 will be updated in ${CB}$esp/${CR}." - cp -fv "$MEMTEST86_PATH/"* "$esp/" - mv -fv "$esp/boot$ARCH.efi" "$esp/shell$ARCH.efi" + _common_install "$esp" "shell$ARCH.efi" ;; 2|3|4) # Update files in $esp/EFI/memtest86/ - echo -e "MemTest86 will be updated in ${CB}$esp/EFI/memtest86/${CR}." - cp -fv "$MEMTEST86_PATH/"* "$esp/EFI/memtest86/" - mv -fv "$esp/EFI/memtest86/boot$ARCH.efi" "$esp/EFI/memtest86/memtest$ARCH.efi" + _common_install "$esp/EFI/memtest86" "memtest$ARCH.efi" ;; esac @@ -171,7 +190,7 @@ remove() { case $choice in 1) # Remove files in $esp/ echo -e "MemTest86 will be removed from ${CB}$esp/${CR}." - rm -v "$esp/mt86.png" "$esp/shell$ARCH.efi" + rm -v "$esp/shell$ARCH.efi" "$esp/blacklist.cfg" "$esp/mt86.png" "$esp/unifont.bin" [[ -f "$esp/shell$ARCH.efi.bak" ]] && mv -v "$esp/shell$ARCH.efi.bak" "$esp/shell$ARCH.efi" ;; diff --git a/systemd-boot.conf b/systemd-boot.conf deleted file mode 100644 index 593166be1f72..000000000000 --- a/systemd-boot.conf +++ /dev/null @@ -1,2 +0,0 @@ -title MemTest86 -efi /EFI/memtest86/memtest@ARCH@.efi |