From e75a01510f0c0ac105d03d6e95f6aa046197e614 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Tue, 7 Jun 2016 17:44:48 +0200 Subject: fix selecting grub2-efi on UEFI (mga#18646) the issue is that we select basesystem which pulls bootloader -> grub2 then later grub2-efi b/c we're on UEFI which results in: we don't use the right API for selecting packages which results in: * preferring grub2 over lilo,grub2-efi,grub * replacing bootloader with grub2 * selecting grub2-2.02-0.git10457.6.mga6.x86_64 (...) * selecting grub2-efi because of needed for UEFI boot (...) * no packages match grub2-efi (it is either in skip.list or already rejected) * ERROR: selection failed: grub2-efi-2.02-0.git10457.6.mga6.x86_64 (due to conflicts with grub2-2.02-0.git10457.6.mga6.x86_64) the proper fix would be to use a better URPM API but it's just as simple to pick the bootloader before picking basesystem... --- perl-install/install/any.pm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'perl-install/install/any.pm') diff --git a/perl-install/install/any.pm b/perl-install/install/any.pm index c6a226e7e..20fd25bc3 100644 --- a/perl-install/install/any.pm +++ b/perl-install/install/any.pm @@ -612,6 +612,7 @@ sub setPackages { install::pkgs::select_by_package_names($urpm, [ $devel_kernel_pkg ], 1); } + install::pkgs::select_by_package_names_or_die($urpm, default_bootloader(), 1); install::pkgs::select_by_package_names_or_die($urpm, ['basesystem'], 1); my $rpmsrate_flags_was_chosen = $o->{rpmsrate_flags_chosen}; @@ -793,6 +794,19 @@ sub rpmsrate_always_flags { $rpmsrate_flags_chosen; } +sub default_bootloader() { + my $p; + # we only support grub2-efi on UEFI: + if (is_uefi()) { + log::l("selecting grub2-efi because it's needed for UEFI boot"); + $p = 'grub2-efi'; + } else { + log::l("defaulting to grub"); + $p = 'grub2-efi'; + } + [ $p ]; +} + =item default_packages($o) Selects default packages to install according to configuration (FS, HW, ...) @@ -831,8 +845,6 @@ sub default_packages { # only needed for CDs/DVDs installations: add_n_log("method='cdrom'", 'perl-Hal-Cdroms') if $o->{method} eq 'cdrom'; add_n_log("needed for VMware hypervisor", 'open-vm-tools') if detect_devices::is_vmware(); - # we only support grub2-efi on UEFI: - add_n_log("needed for UEFI boot", 'grub2-efi') if is_uefi(); my $dmi_BIOS = detect_devices::dmidecode_category('BIOS'); my $dmi_Base_Board = detect_devices::dmidecode_category('Base Board'); -- cgit v1.2.1