1624f1
diff -up pyparted-3.12.0/src/parted/__init__.py.orig pyparted-3.12.0/src/parted/__init__.py
1624f1
--- pyparted-3.12.0/src/parted/__init__.py.orig	2022-03-07 12:38:56.000000000 -0500
1624f1
+++ pyparted-3.12.0/src/parted/__init__.py	2022-07-14 12:28:09.687155151 -0400
1624f1
@@ -217,6 +217,14 @@ from _ped import DISK_GPT_PMBR_BOOT
1624f1
 from _ped import DISK_TYPE_EXTENDED
1624f1
 from _ped import DISK_TYPE_PARTITION_NAME
1624f1
 
1624f1
+if hasattr(_ped, 'DISK_TYPE_PARTITION_TYPE_ID'):
1624f1
+    # pylint: disable=E0611
1624f1
+    from _ped import DISK_TYPE_PARTITION_TYPE_ID
1624f1
+
1624f1
+if hasattr(_ped, 'DISK_TYPE_PARTITION_TYPE_UUID'):
1624f1
+    # pylint: disable=E0611
1624f1
+    from _ped import DISK_TYPE_PARTITION_TYPE_UUID
1624f1
+
1624f1
 from _ped import EXCEPTION_TYPE_INFORMATION
1624f1
 from _ped import EXCEPTION_TYPE_WARNING
1624f1
 from _ped import EXCEPTION_TYPE_ERROR
1624f1
diff -up pyparted-3.12.0/src/_pedmodule.c.orig pyparted-3.12.0/src/_pedmodule.c
1624f1
--- pyparted-3.12.0/src/_pedmodule.c.orig	2022-03-07 12:49:11.000000000 -0500
1624f1
+++ pyparted-3.12.0/src/_pedmodule.c	2022-07-14 12:59:46.270416021 -0400
1624f1
@@ -648,42 +648,20 @@ MOD_INIT(_ped) {
1624f1
     PyModule_AddIntConstant(m, "PARTITION_BIOS_GRUB", PED_PARTITION_BIOS_GRUB);
1624f1
     PyModule_AddIntConstant(m, "PARTITION_DIAG", PED_PARTITION_DIAG);
1624f1
     PyModule_AddIntConstant(m, "PARTITION_LEGACY_BOOT", PED_PARTITION_LEGACY_BOOT);
1624f1
-
1624f1
-    /* NOTE: You cannot evaluate the enum PED_PARTITION_* values using the
1624f1
-     * preprocessor. DO NOT use #if or #ifdef with them.
1624f1
-     *
1624f1
-     * Conditionally add constants, based on PED_PARTITION_LAST_FLAG, and what
1624f1
-     * we know about parted/disk.h
1624f1
-     */
1624f1
-#if PED_PARTITION_LAST_FLAG > 15
1624f1
     PyModule_AddIntConstant(m, "PARTITION_MSFT_DATA", PED_PARTITION_MSFT_DATA);
1624f1
-#endif
1624f1
-
1624f1
-#if PED_PARTITION_LAST_FLAG > 16
1624f1
     PyModule_AddIntConstant(m, "PARTITION_IRST", PED_PARTITION_IRST);
1624f1
-#endif
1624f1
-
1624f1
-#if PED_PARTITION_LAST_FLAG > 17
1624f1
     PyModule_AddIntConstant(m, "PARTITION_ESP", PED_PARTITION_ESP);
1624f1
-#endif
1624f1
-
1624f1
-#if PED_PARTITION_LAST_FLAG > 18
1624f1
     PyModule_AddIntConstant(m, "PARTITION_CHROMEOS_KERNEL", PED_PARTITION_CHROMEOS_KERNEL);
1624f1
-#endif
1624f1
-
1624f1
-#if PED_PARTITION_LAST_FLAG > 19
1624f1
     PyModule_AddIntConstant(m, "PARTITION_BLS_BOOT", PED_PARTITION_BLS_BOOT);
1624f1
-#endif
1624f1
-
1624f1
-#if PED_PARTITION_LAST_FLAG > 20
1624f1
     PyModule_AddIntConstant(m, "PARTITION_LINUX_HOME", PED_PARTITION_LINUX_HOME);
1624f1
-#endif
1624f1
 
1624f1
     PyModule_AddIntConstant(m, "DISK_CYLINDER_ALIGNMENT", PED_DISK_CYLINDER_ALIGNMENT);
1624f1
     PyModule_AddIntConstant(m, "DISK_GPT_PMBR_BOOT", PED_DISK_GPT_PMBR_BOOT);
1624f1
 
1624f1
     PyModule_AddIntConstant(m, "DISK_TYPE_EXTENDED", PED_DISK_TYPE_EXTENDED);
1624f1
     PyModule_AddIntConstant(m, "DISK_TYPE_PARTITION_NAME", PED_DISK_TYPE_PARTITION_NAME);
1624f1
+    PyModule_AddIntConstant(m, "DISK_TYPE_PARTITION_TYPE_ID", PED_DISK_TYPE_PARTITION_TYPE_ID);
1624f1
+    PyModule_AddIntConstant(m, "DISK_TYPE_PARTITION_TYPE_UUID", PED_DISK_TYPE_PARTITION_TYPE_UUID);
1624f1
 
1624f1
     /* add PedFileSystemType as _ped.FileSystemType */
1624f1
     if (PyType_Ready(&_ped_FileSystemType_Type_obj) < 0)
1624f1
diff -up pyparted-3.12.0/tests/test__ped_disktype.py.orig pyparted-3.12.0/tests/test__ped_disktype.py
1624f1
--- pyparted-3.12.0/tests/test__ped_disktype.py.orig	2018-01-12 13:31:40.000000000 -0500
1624f1
+++ pyparted-3.12.0/tests/test__ped_disktype.py	2022-07-14 12:28:09.687155151 -0400
1624f1
@@ -63,11 +63,22 @@ class DiskTypeCheckFeatureTestCase(Requi
1624f1
             self.assertTrue(self.disktype[name].check_feature(_ped.DISK_TYPE_EXTENDED))
1624f1
             self.assertFalse(self.disktype[name].check_feature(_ped.DISK_TYPE_PARTITION_NAME))
1624f1
 
1624f1
+            if hasattr(_ped, "DISK_TYPE_PARTITION_TYPE_ID"):
1624f1
+                self.assertTrue(self.disktype[name].check_feature(_ped.DISK_TYPE_PARTITION_TYPE_ID))
1624f1
+
1624f1
+            if hasattr(_ped, "DISK_TYPE_PARTITION_TYPE_UUID"):
1624f1
+                self.assertFalse(self.disktype[name].check_feature(_ped.DISK_TYPE_PARTITION_TYPE_UUID))
1624f1
+
1624f1
         # The following types support DISK_TYPE_PARTITION_NAME
1624f1
         for name in ['amiga', 'gpt', 'mac', 'pc98']:
1624f1
             self.assertFalse(self.disktype[name].check_feature(_ped.DISK_TYPE_EXTENDED))
1624f1
             self.assertTrue(self.disktype[name].check_feature(_ped.DISK_TYPE_PARTITION_NAME))
1624f1
 
1624f1
+        # The following types support DISK_TYPE_PARTITION_TYPE_UUID
1624f1
+        for name in ['gpt']:
1624f1
+            if hasattr(_ped, "DISK_TYPE_PARTITION_TYPE_UUID"):
1624f1
+                self.assertTrue(self.disktype[name].check_feature(_ped.DISK_TYPE_PARTITION_TYPE_UUID))
1624f1
+
1624f1
         # The following types support all features
1624f1
         for name in ['dvh']:
1624f1
             self.assertTrue(self.disktype[name].check_feature(_ped.DISK_TYPE_EXTENDED))
1624f1
@@ -75,11 +86,20 @@ class DiskTypeCheckFeatureTestCase(Requi
1624f1
 
1624f1
 class DiskTypeStrTestCase(RequiresDiskTypes):
1624f1
     def runTest(self):
1624f1
-        self.assertEqual(str(self.disktype['msdos']), '_ped.DiskType instance --\n  name: msdos  features: 1')
1624f1
+        if hasattr(_ped, "DISK_TYPE_PARTITION_TYPE_ID"):
1624f1
+            self.assertEqual(str(self.disktype['msdos']), '_ped.DiskType instance --\n  name: msdos  features: 5')
1624f1
+        else:
1624f1
+            self.assertEqual(str(self.disktype['msdos']), '_ped.DiskType instance --\n  name: msdos  features: 1')
1624f1
+
1624f1
         self.assertEqual(str(self.disktype['aix']), '_ped.DiskType instance --\n  name: aix  features: 0')
1624f1
         self.assertEqual(str(self.disktype['sun']), '_ped.DiskType instance --\n  name: sun  features: 0')
1624f1
         self.assertEqual(str(self.disktype['amiga']), '_ped.DiskType instance --\n  name: amiga  features: 2')
1624f1
-        self.assertEqual(str(self.disktype['gpt']), '_ped.DiskType instance --\n  name: gpt  features: 2')
1624f1
+
1624f1
+        if hasattr(_ped, "DISK_TYPE_PARTITION_TYPE_UUID"):
1624f1
+            self.assertEqual(str(self.disktype['gpt']), '_ped.DiskType instance --\n  name: gpt  features: 10')
1624f1
+        else:
1624f1
+            self.assertEqual(str(self.disktype['gpt']), '_ped.DiskType instance --\n  name: gpt  features: 2')
1624f1
+
1624f1
         self.assertEqual(str(self.disktype['mac']), '_ped.DiskType instance --\n  name: mac  features: 2')
1624f1
         self.assertEqual(str(self.disktype['bsd']), '_ped.DiskType instance --\n  name: bsd  features: 0')
1624f1
         self.assertEqual(str(self.disktype['pc98']), '_ped.DiskType instance --\n  name: pc98  features: 2')