Accepting request 519106 from home:sparschauer:branches:Base:System
- Drop using deprecated configure option "--disable-Werror" - Drop (SUSE specific) support for hybrid pMBR (gpt_sync_mbr label) (fate#317849, bsc#1041322) - remove: parted-gpt-mbr-sync.patch - remove: libparted-ppc-prepboot-in-syncmbr.patch - remove: parted-workaround-windows7-gpt-implementation.patch - refresh patches - libparted: Fix starting CHS in protective MBR (bsc#969165) - add: libparted-fix-starting-CHS-in-protective-MBR.patch OBS-URL: https://build.opensuse.org/request/show/519106 OBS-URL: https://build.opensuse.org/package/show/Base:System/parted?expand=0&rev=132
This commit is contained in:
parent
d2638b4319
commit
528c9a93d2
30
libparted-fix-starting-CHS-in-protective-MBR.patch
Normal file
30
libparted-fix-starting-CHS-in-protective-MBR.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From: Petr Uzel <petr.uzel@suse.cz>
|
||||||
|
Date: Thu, 10 Mar 2016 14:18:52 +0100
|
||||||
|
Subject: libparted: Fix starting CHS in protective MBR
|
||||||
|
References: bsc#969165
|
||||||
|
Patch-mainline: v3.3
|
||||||
|
Git-commit: df6770d213b60320426a3ee0bed118d063b40fc5
|
||||||
|
|
||||||
|
The CHS address for protective partition start in protective MBR
|
||||||
|
should be 0/0/2, according to UEFI spec (v2.6, section 5.2.1).
|
||||||
|
|
||||||
|
* libparted/labels/gpt.c (_write_pmbr): Fix starting CHS address
|
||||||
|
|
||||||
|
Reported by Steffen Winterfeldt in https://bugzilla.suse.com/969165
|
||||||
|
|
||||||
|
Signed-off-by: Petr Uzel <petr.uzel@suse.cz>
|
||||||
|
---
|
||||||
|
libparted/labels/gpt.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/libparted/labels/gpt.c
|
||||||
|
+++ b/libparted/labels/gpt.c
|
||||||
|
@@ -1143,7 +1143,7 @@ _write_pmbr (PedDevice *dev, bool pmbr_b
|
||||||
|
|
||||||
|
pmbr->Signature = PED_CPU_TO_LE16 (MSDOS_MBR_SIGNATURE);
|
||||||
|
pmbr->PartitionRecord[0].OSType = EFI_PMBR_OSTYPE_EFI;
|
||||||
|
- pmbr->PartitionRecord[0].StartSector = 1;
|
||||||
|
+ pmbr->PartitionRecord[0].StartSector = 2;
|
||||||
|
pmbr->PartitionRecord[0].EndHead = 0xFE;
|
||||||
|
pmbr->PartitionRecord[0].EndSector = 0xFF;
|
||||||
|
pmbr->PartitionRecord[0].EndTrack = 0xFF;
|
@ -2,11 +2,9 @@
|
|||||||
libparted/arch/linux.c | 10 +++++++---
|
libparted/arch/linux.c | 10 +++++++---
|
||||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
Index: parted-3.1/libparted/arch/linux.c
|
--- a/libparted/arch/linux.c
|
||||||
===================================================================
|
+++ b/libparted/arch/linux.c
|
||||||
--- parted-3.1.orig/libparted/arch/linux.c
|
@@ -39,6 +39,7 @@
|
||||||
+++ parted-3.1/libparted/arch/linux.c
|
|
||||||
@@ -40,6 +40,7 @@
|
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/utsname.h> /* for uname() */
|
#include <sys/utsname.h> /* for uname() */
|
||||||
@ -14,7 +12,7 @@ Index: parted-3.1/libparted/arch/linux.c
|
|||||||
#include <scsi/scsi.h>
|
#include <scsi/scsi.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#ifdef ENABLE_DEVICE_MAPPER
|
#ifdef ENABLE_DEVICE_MAPPER
|
||||||
@@ -2901,14 +2902,15 @@ static int
|
@@ -3102,14 +3103,15 @@ static int
|
||||||
_kernel_reread_part_table (PedDevice* dev)
|
_kernel_reread_part_table (PedDevice* dev)
|
||||||
{
|
{
|
||||||
LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev);
|
LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev);
|
||||||
@ -33,7 +31,7 @@ Index: parted-3.1/libparted/arch/linux.c
|
|||||||
|
|
||||||
if (!retry_count) {
|
if (!retry_count) {
|
||||||
ped_exception_throw (
|
ped_exception_throw (
|
||||||
@@ -2918,10 +2920,12 @@ _kernel_reread_part_table (PedDevice* de
|
@@ -3119,10 +3121,12 @@ _kernel_reread_part_table (PedDevice* de
|
||||||
"table on %s (%s). As a result, it may not "
|
"table on %s (%s). As a result, it may not "
|
||||||
"reflect all of your changes until after reboot."),
|
"reflect all of your changes until after reboot."),
|
||||||
dev->path, strerror (errno));
|
dev->path, strerror (errno));
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
---
|
|
||||||
libparted/labels/gpt.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
Index: parted-3.2/libparted/labels/gpt.c
|
|
||||||
===================================================================
|
|
||||||
--- parted-3.2.orig/libparted/labels/gpt.c
|
|
||||||
+++ parted-3.2/libparted/labels/gpt.c
|
|
||||||
@@ -1216,6 +1216,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;
|
|
||||||
}
|
|
||||||
+#ifdef __PPC__
|
|
||||||
+ if (part->num == 1) return 0x41; /* PARTITION_PREP */
|
|
||||||
+#endif
|
|
||||||
return 0x83; // Everything else is Linux
|
|
||||||
}
|
|
||||||
|
|
@ -25,7 +25,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
int raid;
|
int raid;
|
||||||
int boot;
|
int boot;
|
||||||
int bios_grub;
|
int bios_grub;
|
||||||
@@ -918,7 +919,8 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
@@ -818,7 +819,8 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
||||||
gpt_part_data->name[i] = 0;
|
gpt_part_data->name[i] = 0;
|
||||||
gpt_part_data->translated_name = 0;
|
gpt_part_data->translated_name = 0;
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->boot = gpt_part_data->hp_service
|
= gpt_part_data->boot = gpt_part_data->hp_service
|
||||||
= gpt_part_data->hidden = gpt_part_data->msftres
|
= gpt_part_data->hidden = gpt_part_data->msftres
|
||||||
= gpt_part_data->msftdata
|
= gpt_part_data->msftdata
|
||||||
@@ -941,6 +943,8 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
@@ -841,6 +843,8 @@ _parse_part_entry (PedDisk *disk, GuidPa
|
||||||
gpt_part_data->raid = 1;
|
gpt_part_data->raid = 1;
|
||||||
else if (!guid_cmp (gpt_part_data->type, PARTITION_LVM_GUID))
|
else if (!guid_cmp (gpt_part_data->type, PARTITION_LVM_GUID))
|
||||||
gpt_part_data->lvm = 1;
|
gpt_part_data->lvm = 1;
|
||||||
@ -44,7 +44,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
else if (!guid_cmp (gpt_part_data->type, PARTITION_HPSERVICE_GUID))
|
else if (!guid_cmp (gpt_part_data->type, PARTITION_HPSERVICE_GUID))
|
||||||
gpt_part_data->hp_service = 1;
|
gpt_part_data->hp_service = 1;
|
||||||
else if (!guid_cmp (gpt_part_data->type, PARTITION_MSFT_RESERVED_GUID))
|
else if (!guid_cmp (gpt_part_data->type, PARTITION_MSFT_RESERVED_GUID))
|
||||||
@@ -1568,6 +1572,7 @@ gpt_partition_new (const PedDisk *disk,
|
@@ -1361,6 +1365,7 @@ gpt_partition_new (const PedDisk *disk,
|
||||||
|
|
||||||
gpt_part_data->type = PARTITION_LINUX_DATA_GUID;
|
gpt_part_data->type = PARTITION_LINUX_DATA_GUID;
|
||||||
gpt_part_data->lvm = 0;
|
gpt_part_data->lvm = 0;
|
||||||
@ -52,7 +52,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
gpt_part_data->raid = 0;
|
gpt_part_data->raid = 0;
|
||||||
gpt_part_data->boot = 0;
|
gpt_part_data->boot = 0;
|
||||||
gpt_part_data->bios_grub = 0;
|
gpt_part_data->bios_grub = 0;
|
||||||
@@ -1656,6 +1661,11 @@ gpt_partition_set_system (PedPartition *
|
@@ -1449,6 +1454,11 @@ gpt_partition_set_system (PedPartition *
|
||||||
gpt_part_data->type = PARTITION_LVM_GUID;
|
gpt_part_data->type = PARTITION_LVM_GUID;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -64,7 +64,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
if (gpt_part_data->raid)
|
if (gpt_part_data->raid)
|
||||||
{
|
{
|
||||||
gpt_part_data->type = PARTITION_RAID_GUID;
|
gpt_part_data->type = PARTITION_RAID_GUID;
|
||||||
@@ -1720,11 +1730,6 @@ gpt_partition_set_system (PedPartition *
|
@@ -1513,11 +1523,6 @@ gpt_partition_set_system (PedPartition *
|
||||||
gpt_part_data->type = PARTITION_APPLE_HFS_GUID;
|
gpt_part_data->type = PARTITION_APPLE_HFS_GUID;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -76,7 +76,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
}
|
}
|
||||||
|
|
||||||
gpt_part_data->type = PARTITION_LINUX_DATA_GUID;
|
gpt_part_data->type = PARTITION_LINUX_DATA_GUID;
|
||||||
@@ -1843,6 +1848,7 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1636,6 +1641,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
if (state)
|
if (state)
|
||||||
gpt_part_data->raid
|
gpt_part_data->raid
|
||||||
= gpt_part_data->lvm
|
= gpt_part_data->lvm
|
||||||
@ -84,7 +84,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->bios_grub
|
= gpt_part_data->bios_grub
|
||||||
= gpt_part_data->hp_service
|
= gpt_part_data->hp_service
|
||||||
= gpt_part_data->msftres
|
= gpt_part_data->msftres
|
||||||
@@ -1857,6 +1863,7 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1650,6 +1656,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
if (state)
|
if (state)
|
||||||
gpt_part_data->raid
|
gpt_part_data->raid
|
||||||
= gpt_part_data->lvm
|
= gpt_part_data->lvm
|
||||||
@ -92,7 +92,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->boot
|
= gpt_part_data->boot
|
||||||
= gpt_part_data->hp_service
|
= gpt_part_data->hp_service
|
||||||
= gpt_part_data->msftres
|
= gpt_part_data->msftres
|
||||||
@@ -1871,6 +1878,7 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1664,6 +1671,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
if (state)
|
if (state)
|
||||||
gpt_part_data->boot
|
gpt_part_data->boot
|
||||||
= gpt_part_data->lvm
|
= gpt_part_data->lvm
|
||||||
@ -100,7 +100,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->bios_grub
|
= gpt_part_data->bios_grub
|
||||||
= gpt_part_data->hp_service
|
= gpt_part_data->hp_service
|
||||||
= gpt_part_data->msftres
|
= gpt_part_data->msftres
|
||||||
@@ -1884,6 +1892,22 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1677,6 +1685,22 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
gpt_part_data->lvm = state;
|
gpt_part_data->lvm = state;
|
||||||
if (state)
|
if (state)
|
||||||
gpt_part_data->boot
|
gpt_part_data->boot
|
||||||
@ -123,7 +123,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->raid
|
= gpt_part_data->raid
|
||||||
= gpt_part_data->bios_grub
|
= gpt_part_data->bios_grub
|
||||||
= gpt_part_data->hp_service
|
= gpt_part_data->hp_service
|
||||||
@@ -1900,6 +1924,7 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1693,6 +1717,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
gpt_part_data->boot
|
gpt_part_data->boot
|
||||||
= gpt_part_data->raid
|
= gpt_part_data->raid
|
||||||
= gpt_part_data->lvm
|
= gpt_part_data->lvm
|
||||||
@ -131,7 +131,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->bios_grub
|
= gpt_part_data->bios_grub
|
||||||
= gpt_part_data->msftres
|
= gpt_part_data->msftres
|
||||||
= gpt_part_data->msftdata
|
= gpt_part_data->msftdata
|
||||||
@@ -1914,6 +1939,7 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1707,6 +1732,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
gpt_part_data->boot
|
gpt_part_data->boot
|
||||||
= gpt_part_data->raid
|
= gpt_part_data->raid
|
||||||
= gpt_part_data->lvm
|
= gpt_part_data->lvm
|
||||||
@ -139,7 +139,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->bios_grub
|
= gpt_part_data->bios_grub
|
||||||
= gpt_part_data->hp_service
|
= gpt_part_data->hp_service
|
||||||
= gpt_part_data->msftdata
|
= gpt_part_data->msftdata
|
||||||
@@ -1928,6 +1954,7 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1721,6 +1747,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
gpt_part_data->boot
|
gpt_part_data->boot
|
||||||
= gpt_part_data->raid
|
= gpt_part_data->raid
|
||||||
= gpt_part_data->lvm
|
= gpt_part_data->lvm
|
||||||
@ -147,7 +147,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->bios_grub
|
= gpt_part_data->bios_grub
|
||||||
= gpt_part_data->hp_service
|
= gpt_part_data->hp_service
|
||||||
= gpt_part_data->msftres
|
= gpt_part_data->msftres
|
||||||
@@ -1946,6 +1973,7 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1739,6 +1766,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
gpt_part_data->boot
|
gpt_part_data->boot
|
||||||
= gpt_part_data->raid
|
= gpt_part_data->raid
|
||||||
= gpt_part_data->lvm
|
= gpt_part_data->lvm
|
||||||
@ -155,7 +155,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->bios_grub
|
= gpt_part_data->bios_grub
|
||||||
= gpt_part_data->hp_service
|
= gpt_part_data->hp_service
|
||||||
= gpt_part_data->msftdata
|
= gpt_part_data->msftdata
|
||||||
@@ -1960,6 +1988,7 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1753,6 +1781,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
gpt_part_data->boot
|
gpt_part_data->boot
|
||||||
= gpt_part_data->raid
|
= gpt_part_data->raid
|
||||||
= gpt_part_data->lvm
|
= gpt_part_data->lvm
|
||||||
@ -163,7 +163,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->bios_grub
|
= gpt_part_data->bios_grub
|
||||||
= gpt_part_data->hp_service
|
= gpt_part_data->hp_service
|
||||||
= gpt_part_data->msftres
|
= gpt_part_data->msftres
|
||||||
@@ -1973,6 +2002,7 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1766,6 +1795,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
gpt_part_data->boot
|
gpt_part_data->boot
|
||||||
= gpt_part_data->raid
|
= gpt_part_data->raid
|
||||||
= gpt_part_data->lvm
|
= gpt_part_data->lvm
|
||||||
@ -171,7 +171,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->bios_grub
|
= gpt_part_data->bios_grub
|
||||||
= gpt_part_data->hp_service
|
= gpt_part_data->hp_service
|
||||||
= gpt_part_data->msftres
|
= gpt_part_data->msftres
|
||||||
@@ -1986,6 +2016,7 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1779,6 +1809,7 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
gpt_part_data->boot
|
gpt_part_data->boot
|
||||||
= gpt_part_data->raid
|
= gpt_part_data->raid
|
||||||
= gpt_part_data->lvm
|
= gpt_part_data->lvm
|
||||||
@ -179,7 +179,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
= gpt_part_data->bios_grub
|
= gpt_part_data->bios_grub
|
||||||
= gpt_part_data->hp_service
|
= gpt_part_data->hp_service
|
||||||
= gpt_part_data->msftres
|
= gpt_part_data->msftres
|
||||||
@@ -2000,7 +2031,6 @@ gpt_partition_set_flag (PedPartition *pa
|
@@ -1793,7 +1824,6 @@ gpt_partition_set_flag (PedPartition *pa
|
||||||
case PED_PARTITION_LEGACY_BOOT:
|
case PED_PARTITION_LEGACY_BOOT:
|
||||||
gpt_part_data->legacy_boot = state;
|
gpt_part_data->legacy_boot = state;
|
||||||
return 1;
|
return 1;
|
||||||
@ -187,7 +187,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
case PED_PARTITION_ROOT:
|
case PED_PARTITION_ROOT:
|
||||||
case PED_PARTITION_LBA:
|
case PED_PARTITION_LBA:
|
||||||
default:
|
default:
|
||||||
@@ -2046,6 +2076,7 @@ gpt_partition_get_flag (const PedPartiti
|
@@ -1839,6 +1869,7 @@ gpt_partition_get_flag (const PedPartiti
|
||||||
case PED_PARTITION_IRST:
|
case PED_PARTITION_IRST:
|
||||||
return gpt_part_data->irst;
|
return gpt_part_data->irst;
|
||||||
case PED_PARTITION_SWAP:
|
case PED_PARTITION_SWAP:
|
||||||
@ -195,7 +195,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
case PED_PARTITION_LBA:
|
case PED_PARTITION_LBA:
|
||||||
case PED_PARTITION_ROOT:
|
case PED_PARTITION_ROOT:
|
||||||
default:
|
default:
|
||||||
@@ -2062,6 +2093,7 @@ gpt_partition_is_flag_available (const P
|
@@ -1855,6 +1886,7 @@ gpt_partition_is_flag_available (const P
|
||||||
{
|
{
|
||||||
case PED_PARTITION_RAID:
|
case PED_PARTITION_RAID:
|
||||||
case PED_PARTITION_LVM:
|
case PED_PARTITION_LVM:
|
||||||
@ -203,7 +203,7 @@ Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
|
|||||||
case PED_PARTITION_BOOT:
|
case PED_PARTITION_BOOT:
|
||||||
case PED_PARTITION_BIOS_GRUB:
|
case PED_PARTITION_BIOS_GRUB:
|
||||||
case PED_PARTITION_HPSERVICE:
|
case PED_PARTITION_HPSERVICE:
|
||||||
@@ -2075,7 +2107,6 @@ gpt_partition_is_flag_available (const P
|
@@ -1868,7 +1900,6 @@ gpt_partition_is_flag_available (const P
|
||||||
case PED_PARTITION_IRST:
|
case PED_PARTITION_IRST:
|
||||||
case PED_PARTITION_ESP:
|
case PED_PARTITION_ESP:
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1,354 +0,0 @@
|
|||||||
---
|
|
||||||
libparted/labels/gpt.c | 240 ++++++++++++++++++++++++++++++++++++++++++++++++-
|
|
||||||
1 file changed, 236 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
Index: parted-3.2/libparted/labels/gpt.c
|
|
||||||
===================================================================
|
|
||||||
--- parted-3.2.orig/libparted/labels/gpt.c
|
|
||||||
+++ parted-3.2/libparted/labels/gpt.c
|
|
||||||
@@ -305,6 +305,7 @@ typedef struct _GPTPartitionData
|
|
||||||
} GPTPartitionData;
|
|
||||||
|
|
||||||
static PedDiskType gpt_disk_type;
|
|
||||||
+static PedDiskType gpt_sync_mbr_disk_type;
|
|
||||||
|
|
||||||
static inline uint32_t
|
|
||||||
pth_get_size (const PedDevice *dev)
|
|
||||||
@@ -473,8 +474,50 @@ _pmbr_is_valid (const LegacyMBR_t *mbr)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* checks if device has a hybrid protective MBR partition table
|
|
||||||
+ *
|
|
||||||
+ * If the 1st partition has type 0xEE that spans the entire
|
|
||||||
+ * size of the disk from sector 1 to the last sector
|
|
||||||
+ * (or 2 TiB, whichever is smaller), we consider it 'normal' GPT.
|
|
||||||
+ * Otherwise it is synced GPT with hybridized pMBR.
|
|
||||||
+ */
|
|
||||||
+static inline int
|
|
||||||
+_has_hybrid_pmbr (const PedDevice *dev)
|
|
||||||
+{
|
|
||||||
+ int has_hybrid_pmbr = 1;
|
|
||||||
+
|
|
||||||
+ PED_ASSERT (dev != NULL);
|
|
||||||
+
|
|
||||||
+ void *label;
|
|
||||||
+ if (!ptt_read_sector (dev, 0, &label))
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ LegacyMBR_t mbr;
|
|
||||||
+ memcpy(&mbr, label, sizeof(mbr));
|
|
||||||
+
|
|
||||||
+ if (mbr.Signature != PED_CPU_TO_LE16 (MSDOS_MBR_SIGNATURE)) {
|
|
||||||
+ free(label);
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ uint32_t efi_gpt_expected_size;
|
|
||||||
+ if ((dev->length - 1ULL) > 0xFFFFFFFFULL)
|
|
||||||
+ efi_gpt_expected_size = 0xFFFFFFFF;
|
|
||||||
+ else
|
|
||||||
+ efi_gpt_expected_size = dev->length - 1UL;
|
|
||||||
+
|
|
||||||
+ if ((mbr.PartitionRecord[0].OSType == EFI_PMBR_OSTYPE_EFI) &&
|
|
||||||
+ (mbr.PartitionRecord[0].StartingLBA == PED_CPU_TO_LE32(1)) &&
|
|
||||||
+ (mbr.PartitionRecord[0].SizeInLBA == PED_CPU_TO_LE32(efi_gpt_expected_size)))
|
|
||||||
+ /* pMBR is not hybrid */
|
|
||||||
+ has_hybrid_pmbr = 0;
|
|
||||||
+
|
|
||||||
+ free(label);
|
|
||||||
+ return has_hybrid_pmbr;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static int
|
|
||||||
-gpt_probe (const PedDevice *dev)
|
|
||||||
+_gpt_probe_generic(const PedDevice *dev)
|
|
||||||
{
|
|
||||||
int gpt_sig_found = 0;
|
|
||||||
|
|
||||||
@@ -508,6 +551,19 @@ gpt_probe (const PedDevice *dev)
|
|
||||||
return gpt_sig_found;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static int
|
|
||||||
+gpt_probe (const PedDevice *dev)
|
|
||||||
+{
|
|
||||||
+ return _gpt_probe_generic(dev) && !_has_hybrid_pmbr(dev);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
+gpt_sync_mbr_probe (const PedDevice *dev)
|
|
||||||
+{
|
|
||||||
+ return _gpt_probe_generic(dev) && _has_hybrid_pmbr(dev);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static PedDisk *
|
|
||||||
gpt_alloc (const PedDevice *dev)
|
|
||||||
{
|
|
||||||
@@ -553,6 +609,50 @@ error:
|
|
||||||
}
|
|
||||||
|
|
||||||
static PedDisk *
|
|
||||||
+gpt_sync_mbr_alloc (const PedDevice *dev)
|
|
||||||
+{
|
|
||||||
+ PedDisk *disk;
|
|
||||||
+ GPTDiskData *gpt_disk_data;
|
|
||||||
+ PedSector data_start, data_end;
|
|
||||||
+
|
|
||||||
+ disk = _ped_disk_alloc ((PedDevice *) dev, &gpt_sync_mbr_disk_type);
|
|
||||||
+ if (!disk)
|
|
||||||
+ goto error;
|
|
||||||
+
|
|
||||||
+ data_start = 2 + GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / dev->sector_size;
|
|
||||||
+ data_end = dev->length - 2
|
|
||||||
+ - GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / dev->sector_size;
|
|
||||||
+
|
|
||||||
+ /* If the device is too small to accommodate GPT headers and one data
|
|
||||||
+ sector, reject it. */
|
|
||||||
+ if (data_end < data_start)
|
|
||||||
+ {
|
|
||||||
+ ped_exception_throw (PED_EXCEPTION_ERROR,
|
|
||||||
+ PED_EXCEPTION_OK,
|
|
||||||
+ _("device is too small for GPT"));
|
|
||||||
+ goto error_free_disk;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ disk->disk_specific = gpt_disk_data = ped_malloc (sizeof (GPTDiskData));
|
|
||||||
+ if (!disk->disk_specific)
|
|
||||||
+ goto error_free_disk;
|
|
||||||
+
|
|
||||||
+ gpt_disk_data->AlternateLBA = dev->length - 1;
|
|
||||||
+ ped_geometry_init (&gpt_disk_data->data_area, dev, data_start,
|
|
||||||
+ data_end - data_start + 1);
|
|
||||||
+ gpt_disk_data->entry_count = GPT_DEFAULT_PARTITION_ENTRIES;
|
|
||||||
+ uuid_generate ((unsigned char *) &gpt_disk_data->uuid);
|
|
||||||
+ swap_uuid_and_efi_guid ((unsigned char *) (&gpt_disk_data->uuid));
|
|
||||||
+ gpt_disk_data->pmbr_boot = 0;
|
|
||||||
+ return disk;
|
|
||||||
+
|
|
||||||
+error_free_disk:
|
|
||||||
+ free (disk);
|
|
||||||
+error:
|
|
||||||
+ return NULL;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static PedDisk *
|
|
||||||
gpt_duplicate (const PedDisk *disk)
|
|
||||||
{
|
|
||||||
PedDisk *new_disk;
|
|
||||||
@@ -963,7 +1063,7 @@ gpt_read (PedDisk *disk)
|
|
||||||
|
|
||||||
/* motivation: let the user decide about the pmbr... during
|
|
||||||
ped_disk_probe(), they probably didn't get a choice... */
|
|
||||||
- if (!gpt_probe (disk->dev))
|
|
||||||
+ if (!gpt_probe (disk->dev) && !gpt_sync_mbr_probe(disk->dev))
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
GuidPartitionTableHeader_t *gpt = NULL;
|
|
||||||
@@ -1120,11 +1220,59 @@ error:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+
|
|
||||||
+static inline unsigned char
|
|
||||||
+_part_to_ostype (PedPartition* part)
|
|
||||||
+{
|
|
||||||
+ if (part->fs_type) {
|
|
||||||
+ if (strncmp (part->fs_type->name, "fat", 3) == 0) return 0xc;
|
|
||||||
+ if (strncmp (part->fs_type->name, "ntfs", 4) == 0) return 0x7;
|
|
||||||
+ if (strncmp (part->fs_type->name, "hfs", 3) == 0) return 0xaf;
|
|
||||||
+ if (strstr (part->fs_type->name, "swap")) return 0x82;
|
|
||||||
+ }
|
|
||||||
+ return 0x83; // Everything else is Linux
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline PedPartition*
|
|
||||||
+_find_first_part (const PedDisk* disk)
|
|
||||||
+{
|
|
||||||
+ PedPartition *retval = NULL, *part = NULL;
|
|
||||||
+ uint64_t lowest_end = 0xffffffffffffffff;
|
|
||||||
+ while (part = ped_disk_next_partition (disk, part)) {
|
|
||||||
+ if (part->geom.start == 0 || part->type == PED_PARTITION_METADATA
|
|
||||||
+ || part->type == PED_PARTITION_FREESPACE)
|
|
||||||
+ continue;
|
|
||||||
+ if (part->geom.end < lowest_end) {
|
|
||||||
+ retval = part;
|
|
||||||
+ lowest_end = part->geom.end;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ return retval;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline uint32_t
|
|
||||||
+_part_32bitmax (uint64_t in)
|
|
||||||
+{
|
|
||||||
+ if (in > 0xFFFFFFFFULL)
|
|
||||||
+ return 0xFFFFFFFF;
|
|
||||||
+ else
|
|
||||||
+ return (uint32_t)in;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
#ifndef DISCOVER_ONLY
|
|
||||||
/* Write the protective MBR (to keep DOS happy) */
|
|
||||||
static int
|
|
||||||
-_write_pmbr (PedDevice *dev, bool pmbr_boot)
|
|
||||||
+_write_pmbr (const PedDisk *disk, bool pmbr_boot)
|
|
||||||
{
|
|
||||||
+ PedDevice * dev = disk->dev;
|
|
||||||
+
|
|
||||||
+ /* 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;
|
|
||||||
+
|
|
||||||
/* 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).
|
|
||||||
@@ -1138,6 +1286,8 @@ _write_pmbr (PedDevice *dev, bool pmbr_b
|
|
||||||
memset (pmbr->PartitionRecord, 0, sizeof pmbr->PartitionRecord);
|
|
||||||
|
|
||||||
pmbr->Signature = PED_CPU_TO_LE16 (MSDOS_MBR_SIGNATURE);
|
|
||||||
+
|
|
||||||
+ if (!sync_pmbr) {
|
|
||||||
pmbr->PartitionRecord[0].OSType = EFI_PMBR_OSTYPE_EFI;
|
|
||||||
pmbr->PartitionRecord[0].StartSector = 1;
|
|
||||||
pmbr->PartitionRecord[0].EndHead = 0xFE;
|
|
||||||
@@ -1150,6 +1300,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);
|
|
||||||
+ if (!esp || !esp->fs_type || strncmp (esp->fs_type->name, "fat", 3) != 0)
|
|
||||||
+ esp = NULL;
|
|
||||||
+
|
|
||||||
+ pmbr_id = 3;
|
|
||||||
+ if (esp) {
|
|
||||||
+ pmbr_id = 0;
|
|
||||||
+ first_entry = 1;
|
|
||||||
+ last_entry = 4;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Write a pseudo-PMBR so Linux is happy */
|
|
||||||
+ pmbr->PartitionRecord[pmbr_id].OSType = EFI_PMBR_OSTYPE_EFI;
|
|
||||||
+ pmbr->PartitionRecord[pmbr_id].StartSector = 1;
|
|
||||||
+ pmbr->PartitionRecord[pmbr_id].EndHead = 0xFE;
|
|
||||||
+ pmbr->PartitionRecord[pmbr_id].EndSector = 0xFF;
|
|
||||||
+ pmbr->PartitionRecord[pmbr_id].EndTrack = 0xFF;
|
|
||||||
+ pmbr->PartitionRecord[pmbr_id].StartingLBA = PED_CPU_TO_LE32(1);
|
|
||||||
+ pmbr->PartitionRecord[pmbr_id].SizeInLBA = PED_CPU_TO_LE32 (1);
|
|
||||||
+ if (esp)
|
|
||||||
+ pmbr->PartitionRecord[pmbr_id].SizeInLBA = PED_CPU_TO_LE32 (esp->geom.end - 1);
|
|
||||||
+
|
|
||||||
+ /* sync the first 3 GPT entries to MBR primary partitions */
|
|
||||||
+ for (i=first_entry; i < last_entry; i++) {
|
|
||||||
+ part = ped_disk_next_partition (disk, part);
|
|
||||||
+ if (part == NULL)
|
|
||||||
+ break;
|
|
||||||
+ /* we might get a starting garbage partition */
|
|
||||||
+ if (part->geom.start == 0 || part->type == PED_PARTITION_METADATA || part->type == PED_PARTITION_FREESPACE || part == esp) {
|
|
||||||
+ i--;
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* partition can not be represented by dos label - don't sync it */
|
|
||||||
+ if (part->geom.start > 0xFFFFFFFF ||
|
|
||||||
+ (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;
|
|
||||||
+ pmbr->PartitionRecord[i].StartTrack = 0xFF;
|
|
||||||
+ pmbr->PartitionRecord[i].EndHead = 0xFE;
|
|
||||||
+ pmbr->PartitionRecord[i].EndSector = 0xFF;
|
|
||||||
+ pmbr->PartitionRecord[i].EndTrack = 0xFF;
|
|
||||||
+ pmbr->PartitionRecord[i].StartingLBA = PED_CPU_TO_LE32 (_part_32bitmax(part->geom.start));
|
|
||||||
+ if(((GPTPartitionData*)part->disk_specific)->boot)
|
|
||||||
+ pmbr->PartitionRecord[i].BootIndicator = 0x80;
|
|
||||||
+ 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);
|
|
||||||
@@ -1269,7 +1473,7 @@ gpt_write (const PedDisk *disk)
|
|
||||||
ptes_crc = efi_crc32 (ptes, ptes_bytes);
|
|
||||||
|
|
||||||
/* Write protective MBR */
|
|
||||||
- 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 */
|
|
||||||
@@ -2034,6 +2238,38 @@ static PedDiskOps gpt_disk_ops =
|
|
||||||
PT_op_function_initializers (gpt)
|
|
||||||
};
|
|
||||||
|
|
||||||
+static PedDiskOps gpt_sync_mbr_disk_ops =
|
|
||||||
+{
|
|
||||||
+ clobber: NULL,
|
|
||||||
+ write: NULL_IF_DISCOVER_ONLY (gpt_write),
|
|
||||||
+
|
|
||||||
+ partition_set_name: gpt_partition_set_name,
|
|
||||||
+ partition_get_name: gpt_partition_get_name,
|
|
||||||
+
|
|
||||||
+ /* probe function redefined */
|
|
||||||
+ probe: gpt_sync_mbr_probe,
|
|
||||||
+ /* alloc function redefined */
|
|
||||||
+ alloc: gpt_sync_mbr_alloc,
|
|
||||||
+ duplicate: gpt_duplicate,
|
|
||||||
+ free: gpt_free,
|
|
||||||
+ read: gpt_read,
|
|
||||||
+ partition_new: gpt_partition_new,
|
|
||||||
+ partition_duplicate: gpt_partition_duplicate,
|
|
||||||
+ partition_set_flag: gpt_partition_set_flag,
|
|
||||||
+ partition_get_flag: gpt_partition_get_flag,
|
|
||||||
+ partition_set_system: gpt_partition_set_system,
|
|
||||||
+ partition_is_flag_available: gpt_partition_is_flag_available,
|
|
||||||
+ partition_align: gpt_partition_align,
|
|
||||||
+ partition_destroy: gpt_partition_destroy,
|
|
||||||
+ partition_enumerate: gpt_partition_enumerate,
|
|
||||||
+ alloc_metadata: gpt_alloc_metadata,
|
|
||||||
+ get_max_primary_partition_count: gpt_get_max_primary_partition_count,
|
|
||||||
+ get_max_supported_partition_count: gpt_get_max_supported_partition_count,
|
|
||||||
+ partition_check: gpt_partition_check,
|
|
||||||
+ max_length: gpt_partition_max_length,
|
|
||||||
+ max_start_sector: gpt_partition_max_start_sector
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static PedDiskType gpt_disk_type =
|
|
||||||
{
|
|
||||||
next: NULL,
|
|
||||||
@@ -2042,16 +2278,26 @@ static PedDiskType gpt_disk_type =
|
|
||||||
features: PED_DISK_TYPE_PARTITION_NAME
|
|
||||||
};
|
|
||||||
|
|
||||||
+static PedDiskType gpt_sync_mbr_disk_type =
|
|
||||||
+{
|
|
||||||
+ next: NULL,
|
|
||||||
+ name: "gpt_sync_mbr",
|
|
||||||
+ ops: &gpt_sync_mbr_disk_ops,
|
|
||||||
+ features: PED_DISK_TYPE_PARTITION_NAME
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
void
|
|
||||||
ped_disk_gpt_init ()
|
|
||||||
{
|
|
||||||
ped_disk_type_register (&gpt_disk_type);
|
|
||||||
+ ped_disk_type_register (&gpt_sync_mbr_disk_type);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
ped_disk_gpt_done ()
|
|
||||||
{
|
|
||||||
ped_disk_type_unregister (&gpt_disk_type);
|
|
||||||
+ ped_disk_type_unregister (&gpt_sync_mbr_disk_type);
|
|
||||||
}
|
|
||||||
|
|
||||||
verify (sizeof (GuidPartitionEntryAttributes_t) == 8);
|
|
@ -1,18 +0,0 @@
|
|||||||
bnc#781688
|
|
||||||
---
|
|
||||||
libparted/labels/gpt.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
Index: parted-3.2/libparted/labels/gpt.c
|
|
||||||
===================================================================
|
|
||||||
--- parted-3.2.orig/libparted/labels/gpt.c
|
|
||||||
+++ parted-3.2/libparted/labels/gpt.c
|
|
||||||
@@ -508,7 +508,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)) &&
|
|
||||||
- (mbr.PartitionRecord[0].SizeInLBA == PED_CPU_TO_LE32(efi_gpt_expected_size)))
|
|
||||||
+ ((mbr.PartitionRecord[0].SizeInLBA == PED_CPU_TO_LE32(efi_gpt_expected_size)) || (mbr.PartitionRecord[0].SizeInLBA == PED_CPU_TO_LE32(0xFFFFFFFF))))
|
|
||||||
/* pMBR is not hybrid */
|
|
||||||
has_hybrid_pmbr = 0;
|
|
||||||
|
|
@ -1,3 +1,16 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Aug 24 16:51:37 CEST 2017 - sparschauer@suse.de
|
||||||
|
|
||||||
|
- Drop using deprecated configure option "--disable-Werror"
|
||||||
|
- Drop (SUSE specific) support for hybrid pMBR (gpt_sync_mbr
|
||||||
|
label) (fate#317849, bsc#1041322)
|
||||||
|
- remove: parted-gpt-mbr-sync.patch
|
||||||
|
- remove: libparted-ppc-prepboot-in-syncmbr.patch
|
||||||
|
- remove: parted-workaround-windows7-gpt-implementation.patch
|
||||||
|
- refresh patches
|
||||||
|
- libparted: Fix starting CHS in protective MBR (bsc#969165)
|
||||||
|
- add: libparted-fix-starting-CHS-in-protective-MBR.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Aug 15 17:21:02 CEST 2017 - sparschauer@suse.de
|
Tue Aug 15 17:21:02 CEST 2017 - sparschauer@suse.de
|
||||||
|
|
||||||
|
@ -37,9 +37,6 @@ Patch11: parted-wipeaix.patch
|
|||||||
Patch12: libparted-partition-naming.patch
|
Patch12: libparted-partition-naming.patch
|
||||||
#PATCH-FEATURE-SUSE more-reliable-informing-the-kernel.patch bnc#657360 petr.uzel@suse.cz
|
#PATCH-FEATURE-SUSE more-reliable-informing-the-kernel.patch bnc#657360 petr.uzel@suse.cz
|
||||||
Patch13: more-reliable-informing-the-kernel.patch
|
Patch13: more-reliable-informing-the-kernel.patch
|
||||||
Patch14: parted-gpt-mbr-sync.patch
|
|
||||||
Patch15: libparted-ppc-prepboot-in-syncmbr.patch
|
|
||||||
Patch16: parted-workaround-windows7-gpt-implementation.patch
|
|
||||||
Patch17: dummy-bootcode-only-for-x86.patch
|
Patch17: dummy-bootcode-only-for-x86.patch
|
||||||
Patch18: parted-type.patch
|
Patch18: parted-type.patch
|
||||||
Patch19: parted-mac.patch
|
Patch19: parted-mac.patch
|
||||||
@ -80,6 +77,7 @@ Patch48: parted-mkpart-set-a-swap-flag-if-available.patch
|
|||||||
Patch49: libparted-set-swap-flag-on-GPT-partitions.patch
|
Patch49: libparted-set-swap-flag-on-GPT-partitions.patch
|
||||||
Patch50: libparted-dasd-add-swap-flag-handling-for-DASD-CDL.patch
|
Patch50: libparted-dasd-add-swap-flag-handling-for-DASD-CDL.patch
|
||||||
Patch51: parted-mkpart-allow-empty-gpt-part-name.patch
|
Patch51: parted-mkpart-allow-empty-gpt-part-name.patch
|
||||||
|
Patch52: libparted-fix-starting-CHS-in-protective-MBR.patch
|
||||||
Patch100: parted-fatresize-autoconf.patch
|
Patch100: parted-fatresize-autoconf.patch
|
||||||
BuildRequires: check-devel
|
BuildRequires: check-devel
|
||||||
BuildRequires: device-mapper-devel >= 1.02.33
|
BuildRequires: device-mapper-devel >= 1.02.33
|
||||||
@ -136,9 +134,6 @@ to develop applications that require these.
|
|||||||
%patch11 -p1
|
%patch11 -p1
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
%patch13 -p1
|
%patch13 -p1
|
||||||
%patch14 -p1
|
|
||||||
%patch15 -p1
|
|
||||||
%patch16 -p1
|
|
||||||
%patch17 -p1
|
%patch17 -p1
|
||||||
%patch18 -p1
|
%patch18 -p1
|
||||||
%patch19 -p1
|
%patch19 -p1
|
||||||
@ -174,6 +169,7 @@ to develop applications that require these.
|
|||||||
%patch49 -p1
|
%patch49 -p1
|
||||||
%patch50 -p1
|
%patch50 -p1
|
||||||
%patch51 -p1
|
%patch51 -p1
|
||||||
|
%patch52 -p1
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -184,7 +180,6 @@ AUTOPOINT=true autoreconf --force --install
|
|||||||
--enable-device-mapper=yes \
|
--enable-device-mapper=yes \
|
||||||
--enable-dynamic-loading=no \
|
--enable-dynamic-loading=no \
|
||||||
--enable-selinux \
|
--enable-selinux \
|
||||||
--disable-Werror \
|
|
||||||
--disable-silent-rules
|
--disable-silent-rules
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user