From dc3a93bf0e9b1c1f82af95477fd4537579652567 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Jan 2018 14:03:23 -0500 Subject: [PATCH] Fix some efi modules bugs - Fix grub2-efi-modules provides/obsoletes generation Resolves: rhbz#1506704 - *Also* build grub-efi-ia32{,-*,!-modules} packages for i686 builds Resolves: rhbz#1502312 Signed-off-by: Peter Jones --- grub.macros | 38 +++++++++++++++++++++++++++++--------- grub2.spec | 8 +++++++- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/grub.macros b/grub.macros index 44c6886..df825b9 100644 --- a/grub.macros +++ b/grub.macros @@ -61,15 +61,9 @@ %global platform ieee1275 %endif -%ifarch %{ix86} -%global target_cpu_name %{_arch} -%global legacy_target_cpu_name i386 -%global legacy_package_arch pc -%global platform pc -%endif %global efi_only aarch64 %{arm} -%global efi_arch x86_64 ia64 %{efi_only} +%global efi_arch x86_64 %{ix86} ia64 %{efi_only} %ifarch %{efi_arch} %global with_efi_arch 1 %else @@ -96,6 +90,17 @@ %global legacy_provides -l %endif +%ifarch %{ix86} +%global efiarch ia32 +%global target_cpu_name i386 +%global grub_target_name i386-efi +%global package_arch efi-ia32 + +%global legacy_target_cpu_name i386 +%global legacy_package_arch pc +%global platform pc +%endif + %ifarch x86_64 %global efiarch x64 %global target_cpu_name %{_arch} @@ -140,6 +145,13 @@ %global grubefiname grub%{efiarch}.efi %global grubeficdname gcd%{efiarch}.efi %global grubefiarch %{target_cpu_name}-efi +%ifarch %{ix86} +%global with_efi_modules 0 +%global without_efi_modules 1 +%else +%global with_efi_modules 1 +%global without_efi_modules 0 +%endif %endif %if 0%{?alt_efi_arch:1} @@ -233,16 +245,18 @@ Provides: %{name}-efi = %{evr} \ This subpackage provides support for %{1} systems. \ \ %{expand:%%{?!buildsubdir:%%define buildsubdir grub-%{1}-%{tarversion}}}\ +%{expand:%if 0%{?with_efi_modules} \ %{expand:%%package %{1}-modules} \ Summary: Modules used to build custom grub.efi images \ Group: System Environment/Base \ BuildArch: noarch \ Requires: %{name}-common = %{evr} \ -%{-p:Provides: %{name}-efi-modules = %{evr}} \ -%{-p:Obsoletes: %{name}-efi-modules < %{evr}} \ +Provides: %{name}-efi-modules = %{evr} \ +Obsoletes: %{name}-efi-modules < %{evr} \ %{expand:%%description %{1}-modules} \ %{desc} \ This subpackage provides support for rebuilding your own grub.efi. \ +%endif} \ \ %{expand:%%package %{1}-cdboot} \ Summary: Files used to boot removeable media with EFI \ @@ -480,12 +494,18 @@ touch ${RPM_BUILD_ROOT}/boot/%{name}/grub.cfg \ %ghost %config(noreplace) /boot/efi/EFI/%{efidir}/grub.cfg \ /boot/grub2/grubenv \ %ghost %config(noreplace) %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grubenv \ +%{expand:%if 0%{?without_efi_modules} \ +%exclude %{_libdir}/grub/%{6} \ +%exclude %{_libdir}/grub/%{6}/* \ +%endif} \ \ +%{expand:%if 0%{?with_efi_modules} \ %{expand:%%files %{1}-modules} \ %defattr(-,root,root,-) \ %dir %{_libdir}/grub/%{6}/ \ %{_libdir}/grub/%{6}/* \ %exclude %{_libdir}/grub/%{6}/*.module \ +%endif} \ \ %{expand:%%files %{1}-cdboot} \ %defattr(-,root,root,-) \ diff --git a/grub2.spec b/grub2.spec index 8bdef5a..242cd99 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 20%{?dist} +Release: 21%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -454,6 +454,12 @@ fi %endif %changelog +* Thu Jan 18 2018 Peter Jones - 2.02-21 +- Fix grub2-efi-modules provides/obsoletes generation + Resolves: rhbz#1506704 +- *Also* build grub-efi-ia32{,-*,!-modules} packages for i686 builds + Resolves: rhbz#1502312 + * Wed Jan 17 2018 Peter Jones - 2.02-20 - Pull in patches for Apollo Lake hardware Resolves: rhbz#1519311