Package: parted Version: 2.3 Severity: normal Tags: patch User: debian-powe...@lists.debian.org Usertags: ppc64el
Dear Maintainer, here is a patch from Daniel Battaiola Kreling that is needed so that parted can deal with PReP partitions which are used in the ppc64el debian install process. F. -- System Information: Debian Release: jessie/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: ppc64el (ppc64le) Kernel: Linux 3.14-1-powerpc64le (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/dash
diff -Nru parted-2.3/debian/patches/gpt-prep.patch parted-2.3/debian/patches/gpt-prep.patch --- parted-2.3/debian/patches/gpt-prep.patch 1970-01-01 00:00:00.000000000 +0000 +++ parted-2.3/debian/patches/gpt-prep.patch 2014-05-20 14:48:05.000000000 +0000 @@ -0,0 +1,197 @@ +From 7d1b73fd4ef6ebd0aae480d342480d4d06119419 Mon Sep 17 00:00:00 2001 +From: Daniel Battaiola Kreling <dbkrel...@br.ibm.com> +Date: Mon, 7 Oct 2013 11:51:50 +0530 +Subject: GPT: add support for PReP GUID + +PReP (PowerPC Reference Platform) boot partition is the first partition used in +PowerPC platform for containing the bootable kernel or bootloader. The firmware +searches for this partition and jumps to it for booting. So far no GUID was +specified for this partition type and hence booting from GPT disk was not +supported on this platform. A new GUID 9e1a2d38-c612-4316-aa26-8b49521e5a8b for +PReP partition is proposed to be included in GPT. + +Origin: backport, http://git.savannah.gnu.org/cgit/parted.git/commit/?id=d151cc20af79c89383ffacc89c1f646f831fc3e6 +Last-Update: 2014-01-31 + +Patch-Name: gpt-prep.patch +--- + doc/parted.texi | 2 +- + libparted/labels/gpt.c | 38 ++++++++++++++++++++++++++++++++++++++ + 2 files changed, 39 insertions(+), 1 deletion(-) + +diff --git a/doc/parted.texi b/doc/parted.texi +index fe8338a..906076a 100644 +--- a/doc/parted.texi ++++ b/doc/parted.texi +@@ -1104,7 +1104,7 @@ physical volume. + by the Linux/PA-RISC boot loader, palo. + + @item PREP +-(MS-DOS) - this flag can be enabled so that the partition can be used ++(MS-DOS, GPT) - this flag can be enabled so that the partition can be used + as a PReP boot partition on PowerPC PReP or IBM RS6K/CHRP hardware. + + @item DIAG +diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c +index 168a6eb..267d49e 100644 +--- a/libparted/labels/gpt.c ++++ b/libparted/labels/gpt.c +@@ -154,6 +154,10 @@ typedef struct + ((efi_guid_t) { PED_CPU_TO_LE32 (0x516e7cb6), PED_CPU_TO_LE16 (0x6ecf), \ + PED_CPU_TO_LE16 (0x11d6), 0x8f, 0xf8, \ + { 0x00, 0x02, 0x2d, 0x09, 0x71, 0x2b }}) ++#define PARTITION_PREP_GUID \ ++ ((efi_guid_t) { PED_CPU_TO_LE32 (0x9e1a2d38), PED_CPU_TO_LE16 (0xc612), \ ++ PED_CPU_TO_LE16 (0x4316), 0xaa, 0x26, \ ++ { 0x8b, 0x49, 0x52, 0x1e, 0x5a, 0x8b }}) + + struct __attribute__ ((packed)) _GuidPartitionTableHeader_t + { +@@ -295,6 +299,7 @@ typedef struct _GPTPartitionData + int atvrecv; + int msftrecv; + int legacy_boot; ++ int prep; + } GPTPartitionData; + + static PedDiskType gpt_disk_type; +@@ -1056,6 +1061,7 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte) + = gpt_part_data->msftdata + = gpt_part_data->msftrecv + = gpt_part_data->legacy_boot ++ = gpt_part_data->prep + = gpt_part_data->bios_grub = gpt_part_data->atvrecv = 0; + + if (pte->Attributes.RequiredToFunction & 0x1) +@@ -1081,6 +1087,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte) + gpt_part_data->msftrecv = 1; + else if (!guid_cmp (gpt_part_data->type, PARTITION_APPLE_TV_RECOVERY_GUID)) + gpt_part_data->atvrecv = 1; ++ else if (!guid_cmp (gpt_part_data->type, PARTITION_PREP_GUID)) ++ gpt_part_data->prep = 1; + + return part; + } +@@ -1719,6 +1727,7 @@ gpt_partition_new (const PedDisk *disk, + gpt_part_data->msftrecv = 0; + gpt_part_data->atvrecv = 0; + gpt_part_data->legacy_boot = 0; ++ gpt_part_data->prep = 0; + 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); +@@ -1792,6 +1801,11 @@ gpt_partition_set_system (PedPartition *part, + gpt_part_data->type = PARTITION_RAID_GUID; + return 1; + } ++ if (gpt_part_data->prep) ++ { ++ gpt_part_data->type = PARTITION_PREP_GUID; ++ return 1; ++ } + if (gpt_part_data->boot) + { + gpt_part_data->type = PARTITION_SYSTEM_GUID; +@@ -1933,6 +1947,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state) + = gpt_part_data->msftres + = gpt_part_data->msftdata + = gpt_part_data->msftrecv ++ = gpt_part_data->prep + = gpt_part_data->atvrecv = 0; + return gpt_partition_set_system (part, part->fs_type); + case PED_PARTITION_BIOS_GRUB: +@@ -1945,6 +1960,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state) + = gpt_part_data->msftres + = gpt_part_data->msftdata + = gpt_part_data->msftrecv ++ = gpt_part_data->prep + = gpt_part_data->atvrecv = 0; + return gpt_partition_set_system (part, part->fs_type); + case PED_PARTITION_RAID: +@@ -1957,6 +1973,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state) + = gpt_part_data->msftres + = gpt_part_data->msftdata + = gpt_part_data->msftrecv ++ = gpt_part_data->prep + = gpt_part_data->atvrecv = 0; + return gpt_partition_set_system (part, part->fs_type); + case PED_PARTITION_LVM: +@@ -1969,6 +1986,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state) + = gpt_part_data->msftres + = gpt_part_data->msftdata + = gpt_part_data->msftrecv ++ = gpt_part_data->prep + = gpt_part_data->atvrecv = 0; + return gpt_partition_set_system (part, part->fs_type); + case PED_PARTITION_HPSERVICE: +@@ -1981,6 +1999,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state) + = gpt_part_data->msftres + = gpt_part_data->msftdata + = gpt_part_data->msftrecv ++ = gpt_part_data->prep + = gpt_part_data->atvrecv = 0; + return gpt_partition_set_system (part, part->fs_type); + case PED_PARTITION_MSFT_RESERVED: +@@ -1993,6 +2012,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state) + = gpt_part_data->hp_service + = gpt_part_data->msftdata + = gpt_part_data->msftrecv ++ = gpt_part_data->prep + = gpt_part_data->atvrecv = 0; + return gpt_partition_set_system (part, part->fs_type); + case PED_PARTITION_MSFT_DATA: +@@ -2006,6 +2026,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state) + = gpt_part_data->msftres + = gpt_part_data->msftdata + = gpt_part_data->msftrecv ++ = gpt_part_data->prep + = gpt_part_data->atvrecv = 0; + gpt_part_data->msftdata = 1; + } else { +@@ -2022,6 +2043,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state) + = gpt_part_data->hp_service + = gpt_part_data->msftdata + = gpt_part_data->msftres ++ = gpt_part_data->prep + = gpt_part_data->atvrecv = 0; + return gpt_partition_set_system (part, part->fs_type); + case PED_PARTITION_APPLE_TV_RECOVERY: +@@ -2034,8 +2056,21 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state) + = gpt_part_data->hp_service + = gpt_part_data->msftres + = gpt_part_data->msftdata ++ = gpt_part_data->prep + = gpt_part_data->msftrecv = 0; + return gpt_partition_set_system (part, part->fs_type); ++ case PED_PARTITION_PREP: ++ gpt_part_data->prep = state; ++ if (state) ++ gpt_part_data->boot ++ = gpt_part_data->raid ++ = gpt_part_data->lvm ++ = gpt_part_data->bios_grub ++ = gpt_part_data->hp_service ++ = gpt_part_data->msftres ++ = gpt_part_data->msftrecv ++ = gpt_part_data->atvrecv = 0; ++ return gpt_partition_set_system (part, part->fs_type); + case PED_PARTITION_HIDDEN: + gpt_part_data->hidden = state; + return 1; +@@ -2082,6 +2117,8 @@ gpt_partition_get_flag (const PedPartition *part, PedPartitionFlag flag) + return gpt_part_data->hidden; + case PED_PARTITION_LEGACY_BOOT: + return gpt_part_data->legacy_boot; ++ case PED_PARTITION_PREP: ++ return gpt_part_data->prep; + case PED_PARTITION_SWAP: + case PED_PARTITION_LBA: + case PED_PARTITION_ROOT: +@@ -2108,6 +2145,7 @@ gpt_partition_is_flag_available (const PedPartition *part, + case PED_PARTITION_APPLE_TV_RECOVERY: + case PED_PARTITION_HIDDEN: + case PED_PARTITION_LEGACY_BOOT: ++ case PED_PARTITION_PREP: + return 1; + case PED_PARTITION_SWAP: + case PED_PARTITION_ROOT: diff -Nru parted-2.3/debian/patches/series parted-2.3/debian/patches/series --- parted-2.3/debian/patches/series 2014-05-20 14:48:04.000000000 +0000 +++ parted-2.3/debian/patches/series 2014-05-20 14:48:05.000000000 +0000 @@ -50,4 +50,4 @@ # Symbols for this ABI (amd64 as reference) update-abi-symbols.patch - +gpt-prep.patch