The package rpms/memtest86+.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/memtest86+.git/commit/?id=8fc12e7....
Change:
+ExclusiveArch: x86_64 %{ix86}
Thanks.
Full change:
============
commit 8fc12e7d5a7336f1595832af80f11e20d3845d97
Author: Jonathan Steffan <jsteffan(a)fedoraproject.org>
Date: Fri Jun 30 15:02:18 2023 -0600
Use kernel-install to manage BLS (rhbz#2209779)
- Use KERNEL_INSTALL_PLUGINS to define configuration logic
- Require systemd > 252 that has support for KERNEL_INSTALL_PLUGINS
diff --git a/memtest86+.kernel-install-plugin b/memtest86+.kernel-install-plugin
new file mode 100644
index 0000000..9710771
--- /dev/null
+++ b/memtest86+.kernel-install-plugin
@@ -0,0 +1,98 @@
+#!/usr/bin/bash
+
+# Sanity Checks
+if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then
+ exit 0
+fi
+if ! [[ $KERNEL_INSTALL_BOOT_ROOT ]]; then
+ exit 0
+fi
+
+# Setup variables
+[[ -f /etc/default/grub ]] && . /etc/default/grub
+[[ -f /etc/os-release ]] && . /etc/os-release
+
+COMMAND="$1"
+MEMTEST_VERSION="$2"
+BOOT_DIR_ABS="$3"
+MEMTEST_IMAGE="$4"
+
+IMAGE_DIR="${MEMTEST_IMAGE%/*}"
+BOOT_ROOT="${KERNEL_INSTALL_BOOT_ROOT}"
+MACHINE_ID="${KERNEL_INSTALL_MACHINE_ID}"
+BLS_DIR="${BOOT_ROOT}/loader/entries"
+BLS_ENTRY="${BLS_DIR}/${MACHINE_ID}-0-memtest86+.conf"
+
+# Setup functions
+mkbls_grub() {
+ local memtestver=$1 && shift
+ local memtestimg=$1 && shift
+
+ cat <<EOF
+title Memtest86+ (${memtestimg}-${memtestver})
+version 0-${memtestver}-memtest86+
+linux /${memtestimg}
+grub_users \$grub_users
+grub_arg --unrestricted
+grub_class ${ID}
+EOF
+}
+
+# If ${BOOT_DIR_ABS} exists, some other boot loader is active.
+[[ -d "${BOOT_DIR_ABS}" ]] && exit 0
+
+case "$COMMAND" in
+ add)
+ # Install into BOOT_ROOT, if not already there
+ if [[ "${MEMTEST_DIR}" != "${BOOT_ROOT}" ]]; then
+ for i in \
+ "$MEMTEST_IMAGE"
+ do
+ [[ -e "$i" ]] || continue
+ rm -f "${BOOT_ROOT}/${i##*/}"
+ cp -aT "$i" "${BOOT_ROOT}/${i##*/}"
+ command -v restorecon &>/dev/null && \
+ restorecon -R "${BOOT_ROOT}/${i##*/}"
+ done
+ fi
+
+ # Generate GRUB BLS, if enabled
+ if [[ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]]; then
+ [[ -d "$BLS_DIR" ]] || mkdir -m 0700 -p "$BLS_DIR"
+ mkbls_grub "${MEMTEST_VERSION}" "${MEMTEST_IMAGE##*/}"
> "${BLS_ENTRY}"
+ command -v restorecon &>/dev/null && restorecon -R
"${BLS_ENTRY}"
+
+ MEMTEST_LOC="$(grep '^linux[ \t]' "${BLS_ENTRY}" | sed
-e 's,^linux[ \t]*,,')"
+ if [[ "$(grub2-probe --device $(grub2-probe --target=device /)
--target=fs)" == "btrfs" &&
+ "${SUSE_BTRFS_SNAPSHOT_BOOTING}" == "true" ]]; then
+ MEMTEST_RELPATH="$(grub2-mkrelpath -r
${BOOT_ROOT}${MEMTEST_LOC})"
+ else
+ MEMTEST_RELPATH="$(grub2-mkrelpath
${BOOT_ROOT}${MEMTEST_LOC})"
+ fi
+
+ BOOTPREFIX="$(dirname ${MEMTEST_RELPATH})"
+
+ if [[ "${MEMTEST_LOC}" != "${MEMTEST_RELPATH}" ]]; then
+ sed -i -e "s,^linux.*,linux ${BOOTPREFIX}${MEMTEST_LOC},g"
"${BLS_ENTRY}"
+ fi
+
+ exit 77
+ fi
+ ;;
+ remove)
+ # Find MEMTEST_IMAGE location in BLS_ENTRY, delete both MEMTEST_IMAGE and
BLS_ENTRY
+ if [[ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]]; then
+ if [[ -f "${BLS_ENTRY}" ]]; then
+ MEMTEST_IMAGE="$(grep '^linux[ \t]' "${BLS_ENTRY}" |
sed -e 's,^linux[ \t]*,,')"
+ if [[ -f "${BOOT_ROOT}${MEMTEST_IMAGE}" ]]; then
+ rm -f "${BOOT_ROOT}${MEMTEST_IMAGE}"
+ fi
+ rm -f "${BLS_ENTRY}"
+ fi
+
+ exit 77
+ fi
+ ;;
+ *)
+ ;;
+esac
diff --git a/memtest86+.spec b/memtest86+.spec
index a4f2d98..4e52b8d 100644
--- a/memtest86+.spec
+++ b/memtest86+.spec
@@ -15,16 +15,18 @@ Memtest86+.
%global mt_isa ia32
%endif
-Name: memtest86+
-Version: 6.20
-Release: %autorelease
-Summary: Stand-alone memory tester for x86-64 computers
-License: GPL-2.0-only
-URL:
https://www.memtest.org/
-Source0:
https://github.com/memtest86plus/memtest86plus/archive/v%{version}/memtes...
-
-BuildRequires: gcc, make, xorriso, dosfstools, mtools
-ExclusiveArch: x86_64 %{ix86}
+Name: memtest86+
+Version: 6.20
+Release: %autorelease
+Summary: Stand-alone memory tester for x86-64 computers
+License: GPL-2.0-only
+URL:
https://www.memtest.org/
+Source0:
https://github.com/memtest86plus/memtest86plus/archive/v%{version}/memtes...
+Source1: memtest86+.kernel-install-plugin
+
+BuildRequires: gcc, make, xorriso, dosfstools, mtools
+Requires(pre): systemd-udev >= 252
+ExclusiveArch: x86_64 %{ix86}
%description
%wordwrap -v common_description
@@ -49,6 +51,7 @@ pushd build%{__isa_bits}
install -m 0644 memtest.efi %{buildroot}%{_libdir}/%{name}/memtest86+%{mt_isa}.efi
install -m 0644 memtest.bin %{buildroot}%{_libdir}/%{name}/memtest86+%{mt_isa}.bin
install -m 0644 memtest.iso %{buildroot}%{_datarootdir}/%{name}/memtest86+%{mt_isa}.iso
+install -m 0755 %{SOURCE1}
%{buildroot}%{_libdir}/%{name}/memtest86+.kernel-install-plugin
popd
@@ -56,27 +59,23 @@ popd
%license LICENSE
%doc README.md
%{_libdir}/%{name}/memtest86+%{mt_isa}.*
+%{_libdir}/%{name}/memtest86+.kernel-install-plugin
%{_datarootdir}/%{name}/memtest86+%{mt_isa}.iso
%posttrans
-install -m 0644 %{_libdir}/%{name}/memtest86+%{mt_isa}.* /boot/
+MEMTEST_IMAGE="memtest86+%{mt_isa}.bin"
if [ -d /sys/firmware/efi/ ]; then
-cat << EOBLSEFI > /boot/loader/entries/`cat
/etc/machine-id`-0-memtest86+-%{version}-uefi.%{mt_isa}.conf
-title Memtest86+ v%{version} %{mt_isa} UEFI
-linux /memtest86+%{mt_isa}.efi
-EOBLSEFI
-else
-cat << EOBLSBIN > /boot/loader/entries/`cat
/etc/machine-id`-0-memtest86+-%{version}-bios.%{mt_isa}.conf
-title Memtest86+ v%{version} %{mt_isa} BIOS
-linux /memtest86+%{mt_isa}.bin
-EOBLSBIN
+MEMTEST_IMAGE="memtest86+%{mt_isa}.efi"
fi
+KERNEL_INSTALL_PLUGINS=%{_libdir}/%{name}/memtest86+.kernel-install-plugin \
+kernel-install add %{version} %{_libdir}/%{name}/${MEMTEST_IMAGE}
exit 0
-%postun
+
+%preun
if [ $1 -eq 0 ]; then
-rm -f /boot/memtest86+%{mt_isa}.*
-rm -f /boot/loader/entries/`cat
/etc/machine-id`-0-memtest86+-%{version}-*.%{mt_isa}.conf
+KERNEL_INSTALL_PLUGINS=%{_libdir}/%{name}/memtest86+.kernel-install-plugin \
+kernel-install remove %{version}
fi
exit 0