diff --git a/0007-Use-the-volume-UUID-to-search-for-the-GRUB-config-in.patch b/0007-Use-the-volume-UUID-to-search-for-the-GRUB-config-in.patch new file mode 100644 index 0000000..971372d --- /dev/null +++ b/0007-Use-the-volume-UUID-to-search-for-the-GRUB-config-in.patch @@ -0,0 +1,46 @@ +From 2efdec8ba54caff05548d8711db6a3f9523b157d Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Mon, 8 Mar 2021 17:42:15 +0100 +Subject: [PATCH] Use the volume UUID to search for the GRUB config in btrfs + partitions + +For UEFI installs, a minimal GRUB config file is created in the EFI System +Partition that is used to load the main config file that is located in the +/boot/grub2 directory. The partition that contains the latter, is found by +the minimal config searching a device with a given filesystem UUID. + +But for this to work the stage2 device must have a filesystem UUID set and +blivet doesn't set this for partitions formatted with a btrfs filesystem. + +Because each btrfs volume will have its own UUID, the UUID of the volume +that's mounted according to /etc/fstab must be used to search the device. + +Resolves: rhbz#1930567 + +Signed-off-by: Javier Martinez Canillas +--- + pyanaconda/modules/storage/bootloader/efi.py | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/pyanaconda/modules/storage/bootloader/efi.py b/pyanaconda/modules/storage/bootloader/efi.py +index 425cb31954..82f60e4c40 100644 +--- a/pyanaconda/modules/storage/bootloader/efi.py ++++ b/pyanaconda/modules/storage/bootloader/efi.py +@@ -172,7 +172,13 @@ class EFIGRUB(EFIBase, GRUB2): + + with open(config_path, "w") as fd: + grub_dir = self.config_dir +- fs_uuid = self.stage2_device.format.uuid ++ if self.stage2_device.format.type != "btrfs": ++ fs_uuid = self.stage2_device.format.uuid ++ else: ++ fs_uuid = self.stage2_device.format.vol_uuid ++ ++ if fs_uuid is None: ++ raise BootLoaderError("Could not get stage2 filesystem UUID") + + grub_dir = util.execWithCapture("grub2-mkrelpath", [grub_dir], + root=conf.target.system_root) +-- +2.26.2 + diff --git a/3230.patch b/3230.patch new file mode 100644 index 0000000..9404230 --- /dev/null +++ b/3230.patch @@ -0,0 +1,35 @@ +From 2fda26c1ec30da3b5fb8bdc4bbe6720d7870b2ec Mon Sep 17 00:00:00 2001 +From: Radek Vykydal +Date: Tue, 9 Mar 2021 17:51:00 +0100 +Subject: [PATCH] Do not follow symlinks when copying /etc/resolv.conf + (#1933454) + +--- + pyanaconda/modules/network/installation.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/pyanaconda/modules/network/installation.py b/pyanaconda/modules/network/installation.py +index ed61ae961b..0d87101b93 100644 +--- a/pyanaconda/modules/network/installation.py ++++ b/pyanaconda/modules/network/installation.py +@@ -225,9 +225,9 @@ def _copy_resolv_conf(self, root, overwrite): + :param overwrite: overwrite existing configuration file + :type overwrite: bool + """ +- self._copy_file_to_root(root, self.RESOLV_CONF_FILE_PATH) ++ self._copy_file_to_root(root, self.RESOLV_CONF_FILE_PATH, follow_symlinks=False) + +- def _copy_file_to_root(self, root, config_file, overwrite=False): ++ def _copy_file_to_root(self, root, config_file, overwrite=False, follow_symlinks=True): + """Copy the file to target system. + + :param root: path to the root of the target system +@@ -244,7 +244,7 @@ def _copy_file_to_root(self, root, config_file, overwrite=False): + return + if not os.path.isdir(os.path.dirname(fpath)): + util.mkdirChain(os.path.dirname(fpath)) +- shutil.copy(config_file, fpath) ++ shutil.copy(config_file, fpath, follow_symlinks=follow_symlinks) + + def _copy_device_config_files(self, root): + """Copy network device config files to target system. diff --git a/anaconda.spec b/anaconda.spec index fea821c..7ca5d18 100644 --- a/anaconda.spec +++ b/anaconda.spec @@ -1,7 +1,7 @@ Summary: Graphical system installer Name: anaconda Version: 34.24.5 -Release: 3%{?dist} +Release: 5%{?dist} License: GPLv2+ and MIT URL: http://fedoraproject.org/wiki/Anaconda @@ -27,6 +27,14 @@ Patch3: 0004-Determine-GRUB-directory-relative-path-to-use-in-con.patch Patch4: 0005-The-network-spoke-should-be-visible-in-live-spins-19.patch Patch5: 0006-Choose-the-best-locale-more-carefully-1933384.patch +# Proposed fix for https://bugzilla.redhat.com/show_bug.cgi?id=1933454 +# https://github.com/rhinstaller/anaconda/pull/3230 +Patch6: 3230.patch + +# FE fix for a BTRFS GRUB issue +# https://bugzilla.redhat.com/show_bug.cgi?id=1930567 +Patch7: 0007-Use-the-volume-UUID-to-search-for-the-GRUB-config-in.patch + # Versions of required components (done so we make sure the buildrequires # match the requires versions of things). @@ -427,6 +435,12 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_d %{_prefix}/libexec/anaconda/dd_* %changelog +* Wed Mar 10 2021 Martin Kolman - 34.24.5-5 +- Use the volume UUID to search for the GRUB config in btrfs partitions (#1930567) (vponcova) + +* Tue Mar 09 2021 Adam Williamson - 34.24.5-4 +- Backport #3230 to try and fix #1933454 + * Tue Mar 02 2021 Martin Kolman - 34.24.5-3 - Choose the best locale more carefully (#1933384) (vponcova)