forked from pool/parted
Accepting request 232154 from home:puzel:branches:Base:System
- Support setting boot flag in pMBR (bnc#872054): - drop: revert-gpt-add-commands-to-manipulate-pMBR-boot-flag.patch - add: libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch - refresh patches OBS-URL: https://build.opensuse.org/request/show/232154 OBS-URL: https://build.opensuse.org/package/show/Base:System/parted?expand=0&rev=90
This commit is contained in:
parent
f8b73f8a67
commit
e98a6f8bc3
@ -1,7 +1,11 @@
|
||||
Index: parted-2.4/libparted/labels/dos.c
|
||||
---
|
||||
libparted/labels/dos.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
Index: parted-3.1/libparted/labels/dos.c
|
||||
===================================================================
|
||||
--- parted-2.4.orig/libparted/labels/dos.c
|
||||
+++ parted-2.4/libparted/labels/dos.c
|
||||
--- parted-3.1.orig/libparted/labels/dos.c
|
||||
+++ parted-3.1/libparted/labels/dos.c
|
||||
@@ -1260,6 +1260,12 @@ msdos_write (const PedDisk* disk)
|
||||
return 0;
|
||||
DosRawTable *table = (DosRawTable *) s0;
|
||||
|
22
libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
Normal file
22
libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From c261a9b340e2982a49e055ea6332fd0f49f3d531 Mon Sep 17 00:00:00 2001
|
||||
From: "Brian C. Lane" <bcl@redhat.com>
|
||||
Date: Wed, 11 Sep 2013 12:24:51 -0700
|
||||
Subject: [PATCH] libparted: copy pmbr_boot when duplicating GPT disk
|
||||
|
||||
* libparted/labels/gpt.c (gpt_duplicate): copy pmbr_boot flag
|
||||
---
|
||||
libparted/labels/gpt.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
Index: parted-3.1/libparted/labels/gpt.c
|
||||
===================================================================
|
||||
--- parted-3.1.orig/libparted/labels/gpt.c
|
||||
+++ parted-3.1/libparted/labels/gpt.c
|
||||
@@ -660,6 +660,7 @@ gpt_duplicate (const PedDisk *disk)
|
||||
old_disk_data->data_area.length);
|
||||
new_disk_data->entry_count = old_disk_data->entry_count;
|
||||
new_disk_data->uuid = old_disk_data->uuid;
|
||||
+ new_disk_data->pmbr_boot = old_disk_data->pmbr_boot;
|
||||
return new_disk;
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
===================================================================
|
||||
--- parted-3.1.orig/libparted/labels/gpt.c
|
||||
+++ parted-3.1/libparted/labels/gpt.c
|
||||
@@ -1181,6 +1181,9 @@ _part_to_ostype (PedPartition* part)
|
||||
@@ -1183,6 +1183,9 @@ _part_to_ostype (PedPartition* part)
|
||||
if (strncmp (part->fs_type->name, "hfs", 3) == 0) return 0xaf;
|
||||
if (strstr (part->fs_type->name, "swap")) return 0x82;
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ Index: parted-3.1/libparted/disk.c
|
||||
===================================================================
|
||||
--- parted-3.1.orig/libparted/disk.c
|
||||
+++ parted-3.1/libparted/disk.c
|
||||
@@ -2473,6 +2473,8 @@ ped_partition_flag_get_name (PedPartitio
|
||||
@@ -2474,6 +2474,8 @@ ped_partition_flag_get_name (PedPartitio
|
||||
return N_("diag");
|
||||
case PED_PARTITION_LEGACY_BOOT:
|
||||
return N_("legacy_boot");
|
||||
@ -176,7 +176,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
|
||||
struct __attribute__ ((packed)) _GuidPartitionTableHeader_t
|
||||
{
|
||||
@@ -282,6 +286,7 @@ typedef struct _GPTPartitionData
|
||||
@@ -283,6 +287,7 @@ typedef struct _GPTPartitionData
|
||||
int atvrecv;
|
||||
int msftrecv;
|
||||
int legacy_boot;
|
||||
@ -184,7 +184,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
} GPTPartitionData;
|
||||
|
||||
static PedDiskType gpt_disk_type;
|
||||
@@ -883,6 +888,7 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
||||
@@ -885,6 +890,7 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
||||
= gpt_part_data->hidden = gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
= gpt_part_data->legacy_boot
|
||||
@ -192,7 +192,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->bios_grub = gpt_part_data->atvrecv = 0;
|
||||
|
||||
if (pte->Attributes.RequiredToFunction & 0x1)
|
||||
@@ -906,6 +912,8 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
||||
@@ -908,6 +914,8 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
||||
gpt_part_data->msftrecv = 1;
|
||||
else if (!guid_cmp (gpt_part_data->type, PARTITION_APPLE_TV_RECOVERY_GUID))
|
||||
gpt_part_data->atvrecv = 1;
|
||||
@ -201,7 +201,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
|
||||
return part;
|
||||
}
|
||||
@@ -1518,6 +1526,7 @@ gpt_partition_new (const PedDisk *disk,
|
||||
@@ -1531,6 +1539,7 @@ gpt_partition_new (const PedDisk *disk,
|
||||
gpt_part_data->msftrecv = 0;
|
||||
gpt_part_data->atvrecv = 0;
|
||||
gpt_part_data->legacy_boot = 0;
|
||||
@ -209,7 +209,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
uuid_generate ((unsigned char *) &gpt_part_data->uuid);
|
||||
swap_uuid_and_efi_guid ((unsigned char *) (&gpt_part_data->uuid));
|
||||
memset (gpt_part_data->name, 0, sizeof gpt_part_data->name);
|
||||
@@ -1621,6 +1630,11 @@ gpt_partition_set_system (PedPartition *
|
||||
@@ -1634,6 +1643,11 @@ gpt_partition_set_system (PedPartition *
|
||||
gpt_part_data->type = PARTITION_APPLE_TV_RECOVERY_GUID;
|
||||
return 1;
|
||||
}
|
||||
@ -221,7 +221,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
|
||||
if (fs_type)
|
||||
{
|
||||
@@ -1721,6 +1735,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1774,6 +1788,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
@ -229,7 +229,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
case PED_PARTITION_BIOS_GRUB:
|
||||
@@ -1732,6 +1747,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1785,6 +1800,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
@ -237,7 +237,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
case PED_PARTITION_RAID:
|
||||
@@ -1743,6 +1759,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1796,6 +1812,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
@ -245,7 +245,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
case PED_PARTITION_LVM:
|
||||
@@ -1754,6 +1771,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1807,6 +1824,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
@ -253,7 +253,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
case PED_PARTITION_HPSERVICE:
|
||||
@@ -1765,6 +1783,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1818,6 +1836,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->bios_grub
|
||||
= gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
@ -261,7 +261,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
case PED_PARTITION_MSFT_RESERVED:
|
||||
@@ -1776,6 +1795,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1829,6 +1848,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->bios_grub
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftrecv
|
||||
@ -269,7 +269,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
case PED_PARTITION_DIAG:
|
||||
@@ -1787,6 +1807,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1840,6 +1860,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->bios_grub
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
@ -277,7 +277,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
case PED_PARTITION_APPLE_TV_RECOVERY:
|
||||
@@ -1798,8 +1819,21 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1851,8 +1872,21 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->bios_grub
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
@ -299,7 +299,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
case PED_PARTITION_HIDDEN:
|
||||
gpt_part_data->hidden = state;
|
||||
return 1;
|
||||
@@ -1844,6 +1878,8 @@ gpt_partition_get_flag (const PedPartiti
|
||||
@@ -1897,6 +1931,8 @@ gpt_partition_get_flag (const PedPartiti
|
||||
return gpt_part_data->hidden;
|
||||
case PED_PARTITION_LEGACY_BOOT:
|
||||
return gpt_part_data->legacy_boot;
|
||||
@ -308,7 +308,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
case PED_PARTITION_SWAP:
|
||||
case PED_PARTITION_LBA:
|
||||
case PED_PARTITION_ROOT:
|
||||
@@ -1869,6 +1905,7 @@ gpt_partition_is_flag_available (const P
|
||||
@@ -1922,6 +1958,7 @@ gpt_partition_is_flag_available (const P
|
||||
case PED_PARTITION_APPLE_TV_RECOVERY:
|
||||
case PED_PARTITION_HIDDEN:
|
||||
case PED_PARTITION_LEGACY_BOOT:
|
||||
|
@ -60,7 +60,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
#define PARTITION_IRST_GUID \
|
||||
((efi_guid_t) { PED_CPU_TO_LE32 (0xD3BFE2DE), PED_CPU_TO_LE16 (0x3DAF), \
|
||||
PED_CPU_TO_LE16 (0x11DF), 0xba, 0x40, \
|
||||
@@ -286,6 +290,7 @@ typedef struct _GPTPartitionData
|
||||
@@ -287,6 +291,7 @@ typedef struct _GPTPartitionData
|
||||
int atvrecv;
|
||||
int msftrecv;
|
||||
int legacy_boot;
|
||||
@ -68,7 +68,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
int irst;
|
||||
} GPTPartitionData;
|
||||
|
||||
@@ -888,6 +893,7 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
||||
@@ -890,6 +895,7 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
||||
= gpt_part_data->hidden = gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
= gpt_part_data->legacy_boot
|
||||
@ -76,7 +76,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->irst
|
||||
= gpt_part_data->bios_grub = gpt_part_data->atvrecv = 0;
|
||||
|
||||
@@ -912,6 +918,8 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
||||
@@ -914,6 +920,8 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
||||
gpt_part_data->msftrecv = 1;
|
||||
else if (!guid_cmp (gpt_part_data->type, PARTITION_APPLE_TV_RECOVERY_GUID))
|
||||
gpt_part_data->atvrecv = 1;
|
||||
@ -85,7 +85,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
else if (!guid_cmp (gpt_part_data->type, PARTITION_IRST_GUID))
|
||||
gpt_part_data->irst = 1;
|
||||
|
||||
@@ -1526,6 +1534,7 @@ gpt_partition_new (const PedDisk *disk,
|
||||
@@ -1539,6 +1547,7 @@ gpt_partition_new (const PedDisk *disk,
|
||||
gpt_part_data->msftrecv = 0;
|
||||
gpt_part_data->atvrecv = 0;
|
||||
gpt_part_data->legacy_boot = 0;
|
||||
@ -93,7 +93,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
gpt_part_data->irst = 0;
|
||||
uuid_generate ((unsigned char *) &gpt_part_data->uuid);
|
||||
swap_uuid_and_efi_guid ((unsigned char *) (&gpt_part_data->uuid));
|
||||
@@ -1600,6 +1609,11 @@ gpt_partition_set_system (PedPartition *
|
||||
@@ -1613,6 +1622,11 @@ gpt_partition_set_system (PedPartition *
|
||||
gpt_part_data->type = PARTITION_RAID_GUID;
|
||||
return 1;
|
||||
}
|
||||
@ -105,7 +105,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
if (gpt_part_data->boot)
|
||||
{
|
||||
gpt_part_data->type = PARTITION_SYSTEM_GUID;
|
||||
@@ -1735,6 +1749,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1788,6 +1802,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
@ -113,7 +113,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->irst
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
@@ -1747,6 +1762,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1800,6 +1815,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
@ -121,7 +121,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->irst
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
@@ -1759,6 +1775,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1812,6 +1828,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
@ -129,7 +129,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->irst
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
@@ -1771,6 +1788,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1824,6 +1841,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
@ -137,7 +137,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->irst
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
@@ -1783,6 +1801,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1836,6 +1854,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->bios_grub
|
||||
= gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
@ -145,7 +145,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->irst
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
@@ -1795,6 +1814,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1848,6 +1867,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->bios_grub
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftrecv
|
||||
@ -153,7 +153,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->irst
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
@@ -1807,6 +1827,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1860,6 +1880,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->bios_grub
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
@ -161,7 +161,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->irst
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
@@ -1819,9 +1840,22 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1872,9 +1893,22 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->bios_grub
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
@ -184,7 +184,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
case PED_PARTITION_IRST:
|
||||
gpt_part_data->irst = state;
|
||||
if (state)
|
||||
@@ -1832,6 +1866,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
@@ -1885,6 +1919,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||
= gpt_part_data->hp_service
|
||||
= gpt_part_data->msftres
|
||||
= gpt_part_data->msftrecv
|
||||
@ -192,7 +192,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
= gpt_part_data->atvrecv = 0;
|
||||
return gpt_partition_set_system (part, part->fs_type);
|
||||
case PED_PARTITION_HIDDEN:
|
||||
@@ -1878,6 +1913,8 @@ gpt_partition_get_flag (const PedPartiti
|
||||
@@ -1931,6 +1966,8 @@ gpt_partition_get_flag (const PedPartiti
|
||||
return gpt_part_data->hidden;
|
||||
case PED_PARTITION_LEGACY_BOOT:
|
||||
return gpt_part_data->legacy_boot;
|
||||
@ -201,7 +201,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
case PED_PARTITION_IRST:
|
||||
return gpt_part_data->irst;
|
||||
case PED_PARTITION_SWAP:
|
||||
@@ -1906,6 +1943,7 @@ gpt_partition_is_flag_available (const P
|
||||
@@ -1959,6 +1996,7 @@ gpt_partition_is_flag_available (const P
|
||||
case PED_PARTITION_HIDDEN:
|
||||
case PED_PARTITION_LEGACY_BOOT:
|
||||
case PED_PARTITION_IRST:
|
||||
|
@ -1,12 +1,12 @@
|
||||
---
|
||||
libparted/labels/gpt.c | 239 ++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 235 insertions(+), 4 deletions(-)
|
||||
libparted/labels/gpt.c | 240 ++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 236 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: parted-3.1/libparted/labels/gpt.c
|
||||
===================================================================
|
||||
--- parted-3.1.orig/libparted/labels/gpt.c
|
||||
+++ parted-3.1/libparted/labels/gpt.c
|
||||
@@ -285,6 +285,7 @@ typedef struct _GPTPartitionData
|
||||
@@ -286,6 +286,7 @@ typedef struct _GPTPartitionData
|
||||
} GPTPartitionData;
|
||||
|
||||
static PedDiskType gpt_disk_type;
|
||||
@ -14,7 +14,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
|
||||
static inline uint32_t
|
||||
pth_get_size (const PedDevice *dev)
|
||||
@@ -453,8 +454,50 @@ _pmbr_is_valid (const LegacyMBR_t *mbr)
|
||||
@@ -454,8 +455,50 @@ _pmbr_is_valid (const LegacyMBR_t *mbr)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
{
|
||||
GuidPartitionTableHeader_t *gpt = NULL;
|
||||
int gpt_sig_found = 0;
|
||||
@@ -507,6 +550,19 @@ gpt_probe (const PedDevice *dev)
|
||||
@@ -508,6 +551,19 @@ gpt_probe (const PedDevice *dev)
|
||||
return ok;
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
static PedDisk *
|
||||
gpt_alloc (const PedDevice *dev)
|
||||
{
|
||||
@@ -544,6 +600,36 @@ error:
|
||||
@@ -546,6 +602,36 @@ error:
|
||||
}
|
||||
|
||||
static PedDisk *
|
||||
@ -123,7 +123,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
gpt_duplicate (const PedDisk *disk)
|
||||
{
|
||||
PedDisk *new_disk;
|
||||
@@ -920,7 +1006,7 @@ gpt_read (PedDisk *disk)
|
||||
@@ -930,7 +1016,7 @@ gpt_read (PedDisk *disk)
|
||||
|
||||
/* motivation: let the user decide about the pmbr... during
|
||||
ped_disk_probe(), they probably didn't get a choice... */
|
||||
@ -132,7 +132,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
goto error;
|
||||
|
||||
GuidPartitionTableHeader_t *gpt = NULL;
|
||||
@@ -1077,11 +1163,59 @@ error:
|
||||
@@ -1087,11 +1173,59 @@ error:
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -179,21 +179,21 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
#ifndef DISCOVER_ONLY
|
||||
/* Write the protective MBR (to keep DOS happy) */
|
||||
static int
|
||||
-_write_pmbr (PedDevice *dev)
|
||||
+_write_pmbr (const PedDisk *disk)
|
||||
-_write_pmbr (PedDevice *dev, bool pmbr_boot)
|
||||
+_write_pmbr (const PedDisk *disk, bool pmbr_boot)
|
||||
{
|
||||
+ PedDevice * dev = disk->dev;
|
||||
+ PedDevice * dev = disk->dev;
|
||||
+
|
||||
+ /* need sync GPT -> hybrid pMBR ? */
|
||||
+ int sync_pmbr = !strcmp(disk->type->name, "gpt_sync_mbr") ? 1 : 0;
|
||||
+ /* need sync GPT -> hybrid pMBR ? */
|
||||
+ int sync_pmbr = !strcmp(disk->type->name, "gpt_sync_mbr") ? 1 : 0;
|
||||
+
|
||||
+ int i, pmbr_id, first_entry = 0, last_entry = 3;
|
||||
+ PedPartition *part = NULL, *esp;
|
||||
+ int i, pmbr_id, first_entry = 0, last_entry = 3;
|
||||
+ PedPartition *part = NULL, *esp;
|
||||
+
|
||||
/* The UEFI spec is not clear about what to do with the following
|
||||
elements of the Protective MBR (pmbr): BootCode (0-440B),
|
||||
UniqueMBRSignature (440B-444B) and Unknown (444B-446B).
|
||||
@@ -1095,6 +1229,8 @@ _write_pmbr (PedDevice *dev)
|
||||
@@ -1105,6 +1239,8 @@ _write_pmbr (PedDevice *dev, bool pmbr_b
|
||||
memset (pmbr->PartitionRecord, 0, sizeof pmbr->PartitionRecord);
|
||||
|
||||
pmbr->Signature = PED_CPU_TO_LE16 (MSDOS_MBR_SIGNATURE);
|
||||
@ -202,10 +202,10 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
pmbr->PartitionRecord[0].OSType = EFI_PMBR_OSTYPE_EFI;
|
||||
pmbr->PartitionRecord[0].StartSector = 1;
|
||||
pmbr->PartitionRecord[0].EndHead = 0xFE;
|
||||
@@ -1105,7 +1241,60 @@ _write_pmbr (PedDevice *dev)
|
||||
pmbr->PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32 (0xFFFFFFFF);
|
||||
else
|
||||
@@ -1117,6 +1253,60 @@ _write_pmbr (PedDevice *dev, bool pmbr_b
|
||||
pmbr->PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32 (dev->length - 1UL);
|
||||
if (pmbr_boot)
|
||||
pmbr->PartitionRecord[0].BootIndicator = 0x80;
|
||||
+ } else {
|
||||
+ /* Search for an EFI System Partition */
|
||||
+ esp = _find_first_part(disk);
|
||||
@ -246,7 +246,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
+ (part->geom.end - part->geom.start + 1) > 0xFFFFFFFF) {
|
||||
+ continue;
|
||||
+ }
|
||||
|
||||
+
|
||||
+ pmbr->PartitionRecord[i].OSType = _part_to_ostype(part);
|
||||
+ pmbr->PartitionRecord[i].StartHead = 0xFE;
|
||||
+ pmbr->PartitionRecord[i].StartSector = 0xFF;
|
||||
@ -260,19 +260,19 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
+ pmbr->PartitionRecord[i].SizeInLBA = PED_CPU_TO_LE32 (_part_32bitmax(part->geom.end - part->geom.start + 1));
|
||||
+ }
|
||||
+ }
|
||||
|
||||
int write_ok = ped_device_write (dev, pmbr, GPT_PMBR_LBA,
|
||||
GPT_PMBR_SECTORS);
|
||||
free (s0);
|
||||
@@ -1225,7 +1414,7 @@ gpt_write (const PedDisk *disk)
|
||||
@@ -1237,7 +1427,7 @@ gpt_write (const PedDisk *disk)
|
||||
ptes_crc = efi_crc32 (ptes, ptes_bytes);
|
||||
|
||||
/* Write protective MBR */
|
||||
- if (!_write_pmbr (disk->dev))
|
||||
+ if (!_write_pmbr (disk))
|
||||
- if (!_write_pmbr (disk->dev, gpt_disk_data->pmbr_boot))
|
||||
+ if (!_write_pmbr (disk, gpt_disk_data->pmbr_boot))
|
||||
goto error_free_ptes;
|
||||
|
||||
/* Write PTH and PTEs */
|
||||
@@ -1802,6 +1991,38 @@ static PedDiskOps gpt_disk_ops =
|
||||
@@ -1857,6 +2047,38 @@ static PedDiskOps gpt_disk_ops =
|
||||
PT_op_function_initializers (gpt)
|
||||
};
|
||||
|
||||
@ -311,7 +311,7 @@ Index: parted-3.1/libparted/labels/gpt.c
|
||||
static PedDiskType gpt_disk_type =
|
||||
{
|
||||
next: NULL,
|
||||
@@ -1810,16 +2031,26 @@ static PedDiskType gpt_disk_type =
|
||||
@@ -1865,16 +2087,26 @@ static PedDiskType gpt_disk_type =
|
||||
features: PED_DISK_TYPE_PARTITION_NAME
|
||||
};
|
||||
|
||||
|
@ -46,7 +46,7 @@ Index: parted-3.1/libparted/disk.c
|
||||
===================================================================
|
||||
--- parted-3.1.orig/libparted/disk.c
|
||||
+++ parted-3.1/libparted/disk.c
|
||||
@@ -1179,6 +1179,39 @@ _disk_pop_update_mode (PedDisk* disk)
|
||||
@@ -1180,6 +1180,39 @@ _disk_pop_update_mode (PedDisk* disk)
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
@ -105,7 +105,7 @@ Index: parted-3.1/parted/parted.c
|
||||
static int
|
||||
do_rm (PedDevice** dev)
|
||||
{
|
||||
@@ -1899,6 +1977,14 @@ NULL),
|
||||
@@ -1948,6 +2026,14 @@ NULL),
|
||||
str_list_create (_(start_end_msg), NULL), 1));
|
||||
|
||||
command_register (commands, command_create (
|
||||
|
@ -28,7 +28,7 @@ Index: parted-3.1/libparted/disk.c
|
||||
===================================================================
|
||||
--- parted-3.1.orig/libparted/disk.c
|
||||
+++ parted-3.1/libparted/disk.c
|
||||
@@ -2426,6 +2426,8 @@ ped_partition_flag_get_name (PedPartitio
|
||||
@@ -2427,6 +2427,8 @@ ped_partition_flag_get_name (PedPartitio
|
||||
return N_("lba");
|
||||
case PED_PARTITION_HPSERVICE:
|
||||
return N_("hp-service");
|
||||
@ -134,7 +134,7 @@ Index: parted-3.1/parted/parted.c
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -1623,12 +1635,19 @@ do_set (PedDevice** dev)
|
||||
@@ -1660,12 +1672,19 @@ do_set (PedDevice** dev)
|
||||
goto error_destroy_disk;
|
||||
if (!command_line_get_part_flag (_("Flag to Invert?"), part, &flag))
|
||||
goto error_destroy_disk;
|
||||
|
@ -1,9 +1,13 @@
|
||||
bnc#781688
|
||||
Index: parted-2.4/libparted/labels/gpt.c
|
||||
---
|
||||
libparted/labels/gpt.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: parted-3.1/libparted/labels/gpt.c
|
||||
===================================================================
|
||||
--- parted-2.4.orig/libparted/labels/gpt.c
|
||||
+++ parted-2.4/libparted/labels/gpt.c
|
||||
@@ -488,7 +488,7 @@ _has_hybrid_pmbr (const PedDevice *dev)
|
||||
--- parted-3.1.orig/libparted/labels/gpt.c
|
||||
+++ parted-3.1/libparted/labels/gpt.c
|
||||
@@ -489,7 +489,7 @@ _has_hybrid_pmbr (const PedDevice *dev)
|
||||
|
||||
if ((mbr.PartitionRecord[0].OSType == EFI_PMBR_OSTYPE_EFI) &&
|
||||
(mbr.PartitionRecord[0].StartingLBA == PED_CPU_TO_LE32(1)) &&
|
||||
|
@ -1,3 +1,11 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 29 13:06:09 UTC 2014 - puzel@suse.com
|
||||
|
||||
- Support setting boot flag in pMBR (bnc#872054):
|
||||
- drop: revert-gpt-add-commands-to-manipulate-pMBR-boot-flag.patch
|
||||
- add: libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
|
||||
- refresh patches
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 17 13:32:19 UTC 2014 - puzel@suse.com
|
||||
|
||||
@ -29,6 +37,7 @@ Fri Jan 24 13:17:34 UTC 2014 - puzel@suse.com
|
||||
- include new fatresize(8) utility
|
||||
- added patches:
|
||||
* parted-fatresize-autoconf.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 22 16:15:13 UTC 2014 - puzel@suse.com
|
||||
|
||||
|
@ -43,9 +43,6 @@ Patch15: libparted-fix-mmcblk-partition-name.patch
|
||||
Patch16: do-not-create-dm-nodes.patch
|
||||
#PATCH-FEATURE-SUSE more-reliable-informing-the-kernel.patch bnc#657360 petr.uzel@suse.cz
|
||||
Patch17: more-reliable-informing-the-kernel.patch
|
||||
#PATCH-FEATURE-SUSE revert-gpt-add-commands-to-manipulate-pMBR-boot-flag.patch
|
||||
# (clashes with our hybrid pMBR patches)
|
||||
Patch18: revert-gpt-add-commands-to-manipulate-pMBR-boot-flag.patch
|
||||
Patch19: parted-gpt-mbr-sync.patch
|
||||
Patch20: libparted-ppc-prepboot-in-syncmbr.patch
|
||||
Patch21: parted-workaround-windows7-gpt-implementation.patch
|
||||
@ -59,6 +56,7 @@ Patch28: parted-resize-command.patch
|
||||
Patch29: libparted-dasd-do-not-use-first-tracks.patch
|
||||
Patch30: libparted-initialize-dasd-part-type.patch
|
||||
Patch31: libparted-use-BLKRRPART-for-DASD.patch.patch
|
||||
Patch32: libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
|
||||
Patch100: parted-fatresize-autoconf.patch
|
||||
Requires: /sbin/udevadm
|
||||
BuildRequires: check-devel
|
||||
@ -124,7 +122,6 @@ to develop applications that require these.
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
@ -138,6 +135,7 @@ to develop applications that require these.
|
||||
%patch29 -p1
|
||||
%patch30 -p1
|
||||
%patch31 -p1
|
||||
%patch32 -p1
|
||||
%patch100 -p1
|
||||
|
||||
%build
|
||||
|
Loading…
x
Reference in New Issue
Block a user