forked from rpms/python-blivet
		
	Make GPT default label type on all architectures
Resolves: RHEL-52200
This commit is contained in:
		
							parent
							
								
									a7eddd983a
								
							
						
					
					
						commit
						b475497402
					
				
							
								
								
									
										122
									
								
								0011-Make-GPT-default-label-type-on-all-architectures.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								0011-Make-GPT-default-label-type-on-all-architectures.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,122 @@ | |||||||
|  | From c8eff25e4c25183a76e97108d4607455cfc96ae2 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Vojtech Trefny <vtrefny@redhat.com> | ||||||
|  | Date: Thu, 14 Nov 2024 14:53:28 +0100 | ||||||
|  | Subject: [PATCH] Make GPT default label type on all architectures | ||||||
|  | 
 | ||||||
|  | Exceptions are DASD drives on s390 and 32bit ARM. Everywhere else | ||||||
|  | GPT will be default. | ||||||
|  | 
 | ||||||
|  | Resolves: RHEL-52200 | ||||||
|  | ---
 | ||||||
|  |  blivet/formats/disklabel.py                   | 11 +++++----- | ||||||
|  |  .../formats_tests/disklabel_test.py           | 20 +++++++++---------- | ||||||
|  |  2 files changed, 16 insertions(+), 15 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/blivet/formats/disklabel.py b/blivet/formats/disklabel.py
 | ||||||
|  | index f2857f07..8b39dc79 100644
 | ||||||
|  | --- a/blivet/formats/disklabel.py
 | ||||||
|  | +++ b/blivet/formats/disklabel.py
 | ||||||
|  | @@ -220,12 +220,13 @@ class DiskLabel(DeviceFormat):
 | ||||||
|  |   | ||||||
|  |      @classmethod | ||||||
|  |      def get_platform_label_types(cls): | ||||||
|  | -        label_types = ["msdos", "gpt"]
 | ||||||
|  | +        # always prefer gpt except for configurations below
 | ||||||
|  | +        label_types = ["gpt", "msdos"]
 | ||||||
|  |          if arch.is_pmac(): | ||||||
|  |              label_types = ["mac"] | ||||||
|  | -        # always prefer gpt on aarch64, x86_64, and EFI plats except 32-bit ARM
 | ||||||
|  | -        elif arch.is_aarch64() or arch.is_x86(bits=64) or (arch.is_efi() and not arch.is_arm()):
 | ||||||
|  | -            label_types = ["gpt", "msdos"]
 | ||||||
|  | +        # prefet msdos on 32-bit ARM
 | ||||||
|  | +        elif arch.is_arm():
 | ||||||
|  | +            label_types = ["msdos", "gpt"]
 | ||||||
|  |          elif arch.is_s390(): | ||||||
|  |              label_types += ["dasd"] | ||||||
|  |   | ||||||
|  | @@ -254,7 +255,7 @@ class DiskLabel(DeviceFormat):
 | ||||||
|  |          if arch.is_s390(): | ||||||
|  |              if blockdev.s390.dasd_is_fba(self.device): | ||||||
|  |                  # the device is FBA DASD | ||||||
|  | -                return "msdos"
 | ||||||
|  | +                return "gpt"
 | ||||||
|  |              elif self.parted_device.type == parted.DEVICE_DASD: | ||||||
|  |                  # the device is DASD | ||||||
|  |                  return "dasd" | ||||||
|  | diff --git a/tests/unit_tests/formats_tests/disklabel_test.py b/tests/unit_tests/formats_tests/disklabel_test.py
 | ||||||
|  | index 9f6e4542..823a3663 100644
 | ||||||
|  | --- a/tests/unit_tests/formats_tests/disklabel_test.py
 | ||||||
|  | +++ b/tests/unit_tests/formats_tests/disklabel_test.py
 | ||||||
|  | @@ -71,7 +71,7 @@ class DiskLabelTestCase(unittest.TestCase):
 | ||||||
|  |          arch.is_pmac.return_value = False | ||||||
|  |          arch.is_x86.return_value = False | ||||||
|  |   | ||||||
|  | -        self.assertEqual(disklabel_class.get_platform_label_types(), ["msdos", "gpt"])
 | ||||||
|  | +        self.assertEqual(disklabel_class.get_platform_label_types(), ["gpt", "msdos"])
 | ||||||
|  |   | ||||||
|  |          arch.is_pmac.return_value = True | ||||||
|  |          self.assertEqual(disklabel_class.get_platform_label_types(), ["mac"]) | ||||||
|  | @@ -100,7 +100,7 @@ class DiskLabelTestCase(unittest.TestCase):
 | ||||||
|  |          arch.is_efi.return_value = False | ||||||
|  |   | ||||||
|  |          arch.is_s390.return_value = True | ||||||
|  | -        self.assertEqual(disklabel_class.get_platform_label_types(), ["msdos", "gpt", "dasd"])
 | ||||||
|  | +        self.assertEqual(disklabel_class.get_platform_label_types(), ["gpt", "msdos", "dasd"])
 | ||||||
|  |          arch.is_s390.return_value = False | ||||||
|  |   | ||||||
|  |      def test_label_type_size_check(self): | ||||||
|  | @@ -121,14 +121,14 @@ class DiskLabelTestCase(unittest.TestCase):
 | ||||||
|  |   | ||||||
|  |          with patch.object(blivet.formats.disklabel.DiskLabel, "parted_device", new=PropertyMock(return_value=None)): | ||||||
|  |              # no parted device -> no passing size check | ||||||
|  | -            self.assertEqual(dl._label_type_size_check("msdos"), False)
 | ||||||
|  | +            self.assertEqual(dl._label_type_size_check("gpt"), False)
 | ||||||
|  |   | ||||||
|  |      @patch("blivet.formats.disklabel.arch") | ||||||
|  |      def test_best_label_type(self, arch): | ||||||
|  |          """ | ||||||
|  |              1. is always in _disklabel_types | ||||||
|  |              2. is the default unless the device is too long for the default | ||||||
|  | -            3. is msdos for fba dasd on S390
 | ||||||
|  | +            3. is gpt for fba dasd on S390
 | ||||||
|  |              4. is dasd for non-fba dasd on S390 | ||||||
|  |          """ | ||||||
|  |          dl = blivet.formats.disklabel.DiskLabel() | ||||||
|  | @@ -144,17 +144,17 @@ class DiskLabelTestCase(unittest.TestCase):
 | ||||||
|  |          arch.is_x86.return_value = False | ||||||
|  |   | ||||||
|  |          with patch.object(dl, '_label_type_size_check') as size_check: | ||||||
|  | -            # size check passes for first type ("msdos")
 | ||||||
|  | +            # size check passes for first type ("gpt")
 | ||||||
|  |              size_check.return_value = True | ||||||
|  | -            self.assertEqual(dl._get_best_label_type(), "msdos")
 | ||||||
|  | +            self.assertEqual(dl._get_best_label_type(), "gpt")
 | ||||||
|  |   | ||||||
|  |              # size checks all fail -> label type is None | ||||||
|  |              size_check.return_value = False | ||||||
|  |              self.assertEqual(dl._get_best_label_type(), None) | ||||||
|  |   | ||||||
|  | -            # size check passes on second call -> label type is "gpt" (second in platform list)
 | ||||||
|  | +            # size check passes on second call -> label type is "msdos" (second in platform list)
 | ||||||
|  |              size_check.side_effect = [False, True] | ||||||
|  | -            self.assertEqual(dl._get_best_label_type(), "gpt")
 | ||||||
|  | +            self.assertEqual(dl._get_best_label_type(), "msdos")
 | ||||||
|  |   | ||||||
|  |          arch.is_pmac.return_value = True | ||||||
|  |          with patch.object(dl, '_label_type_size_check') as size_check: | ||||||
|  | @@ -175,10 +175,10 @@ class DiskLabelTestCase(unittest.TestCase):
 | ||||||
|  |                  size_check.return_value = True | ||||||
|  |                  with patch("blivet.formats.disklabel.blockdev.s390") as _s390: | ||||||
|  |                      _s390.dasd_is_fba.return_value = False | ||||||
|  | -                    self.assertEqual(dl._get_best_label_type(), "msdos")
 | ||||||
|  | +                    self.assertEqual(dl._get_best_label_type(), "gpt")
 | ||||||
|  |   | ||||||
|  |                      _s390.dasd_is_fba.return_value = True | ||||||
|  | -                    self.assertEqual(dl._get_best_label_type(), "msdos")
 | ||||||
|  | +                    self.assertEqual(dl._get_best_label_type(), "gpt")
 | ||||||
|  |   | ||||||
|  |                      _s390.dasd_is_fba.return_value = False | ||||||
|  |                      dl._parted_device.type = parted.DEVICE_DASD | ||||||
|  | -- 
 | ||||||
|  | 2.47.0 | ||||||
|  | 
 | ||||||
| @ -5,7 +5,7 @@ Version: 3.10.0 | |||||||
| 
 | 
 | ||||||
| #%%global prerelease .b2 | #%%global prerelease .b2 | ||||||
| # prerelease, if defined, should be something like .a1, .b1, .b2.dev1, or .c2 | # prerelease, if defined, should be something like .a1, .b1, .b2.dev1, or .c2 | ||||||
| Release: 12%{?prerelease}%{?dist} | Release: 13%{?prerelease}%{?dist} | ||||||
| Epoch: 1 | Epoch: 1 | ||||||
| License: LGPL-2.1-or-later | License: LGPL-2.1-or-later | ||||||
| %global realname blivet | %global realname blivet | ||||||
| @ -26,6 +26,7 @@ Patch6: 0007-Fix-checking-for-NVMe-plugin-availability.patch | |||||||
| Patch7: 0008-Align-sizes-up-for-growable-LVs.patch | Patch7: 0008-Align-sizes-up-for-growable-LVs.patch | ||||||
| Patch8: 0009-mod_pass_in_stratis_test.patch | Patch8: 0009-mod_pass_in_stratis_test.patch | ||||||
| Patch9: 0010-Fix_running_tests_in_FIPS_mode.patch | Patch9: 0010-Fix_running_tests_in_FIPS_mode.patch | ||||||
|  | Patch10: 0011-Make-GPT-default-label-type-on-all-architectures.patch | ||||||
| 
 | 
 | ||||||
| # Versions of required components (done so we make sure the buildrequires | # Versions of required components (done so we make sure the buildrequires | ||||||
| # match the requires versions of things). | # match the requires versions of things). | ||||||
| @ -120,6 +121,10 @@ make DESTDIR=%{buildroot} install | |||||||
| %{python3_sitelib}/* | %{python3_sitelib}/* | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Tue Nov 19 2024 Vojtech Trefny <vtrefny@redhat.com> - 3.10.0-13 | ||||||
|  | - Make GPT default label type on all architectures | ||||||
|  |   Resolves: RHEL-52200 | ||||||
|  | 
 | ||||||
| * Tue Nov 12 2024 Vojtech Trefny <vtrefny@redhat.com> - 3.10.0-12 | * Tue Nov 12 2024 Vojtech Trefny <vtrefny@redhat.com> - 3.10.0-12 | ||||||
| - Fix running tests in FIPS mode | - Fix running tests in FIPS mode | ||||||
|   Resolves: RHEL-45173 |   Resolves: RHEL-45173 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user