parted: add metafile support, cleanups

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2010-11-14 12:38:13 +01:00
parent 32a4f72f47
commit f002cb2c3e
7 changed files with 14 additions and 171 deletions

View File

@ -2,9 +2,6 @@
. config/options $1
$SCRIPTS/build toolchain
$SCRIPTS/build util-linux-ng
cd $PKG_BUILD
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \

View File

@ -2,8 +2,6 @@
. config/options $1
$SCRIPTS/install util-linux-ng
mkdir -p $INSTALL/usr/bin
cp $PKG_BUILD/parted/.libs/parted $INSTALL/usr/bin
cp $PKG_BUILD/partprobe/.libs/partprobe $INSTALL/usr/bin

View File

@ -0,0 +1,14 @@
PKG_NAME="parted"
PKG_VERSION="2.3"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.gnu.org/software/parted/"
PKG_URL="http://ftp.gnu.org/gnu/parted/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS="util-linux-ng"
PKG_BUILD_DEPENDS="toolchain util-linux-ng"
PKG_PRIORITY="optional"
PKG_SECTION="system"
PKG_SHORTDESC="parted: GNU partition editor"
PKG_LONGDESC="GNU Parted is a program for creating, destroying, resizing, checking and copying partitions, and the file systems on them. This is useful for creating space for new operating systems, reorganising disk usage, copying data between hard disks and disk imaging."
PKG_IS_ADDON="no"

View File

@ -1,165 +0,0 @@
diff -rup parted-1.8.8/include/parted/disk.h parted-1.8.8_atv/include/parted/disk.h
--- parted-1.8.8/include/parted/disk.h 2007-08-09 11:20:33.000000000 -0400
+++ parted-1.8.8_atv/include/parted/disk.h 2008-01-11 23:28:45.000000000 -0500
@@ -52,10 +52,11 @@ enum _PedPartitionFlag {
PED_PARTITION_HPSERVICE=8,
PED_PARTITION_PALO=9,
PED_PARTITION_PREP=10,
- PED_PARTITION_MSFT_RESERVED=11
+ PED_PARTITION_MSFT_RESERVED=11,
+ PED_PARTITION_APPLE_TV_RECOVERY=12
};
#define PED_PARTITION_FIRST_FLAG PED_PARTITION_BOOT
-#define PED_PARTITION_LAST_FLAG PED_PARTITION_MSFT_RESERVED
+#define PED_PARTITION_LAST_FLAG PED_PARTITION_APPLE_TV_RECOVERY
enum _PedDiskTypeFeature {
PED_DISK_TYPE_EXTENDED=1, /**< supports extended partitions */
diff -rup parted-1.8.8/libparted/disk.c parted-1.8.8_atv/libparted/disk.c
--- parted-1.8.8/libparted/disk.c 2007-08-09 14:47:57.000000000 -0400
+++ parted-1.8.8_atv/libparted/disk.c 2008-01-11 23:28:45.000000000 -0500
@@ -2181,6 +2181,8 @@ ped_partition_flag_get_name (PedPartitio
return N_("prep");
case PED_PARTITION_MSFT_RESERVED:
return N_("msftres");
+ case PED_PARTITION_APPLE_TV_RECOVERY:
+ return N_("atvrecv");
default:
ped_exception_throw (
diff -rup parted-1.8.8/libparted/labels/gpt.c parted-1.8.8_atv/libparted/labels/gpt.c
--- parted-1.8.8/libparted/labels/gpt.c 2007-07-31 13:36:57.000000000 -0400
+++ parted-1.8.8_atv/libparted/labels/gpt.c 2008-01-11 23:28:45.000000000 -0500
@@ -122,6 +122,10 @@ typedef struct {
((efi_guid_t) { PED_CPU_TO_LE32 (0x48465300), PED_CPU_TO_LE16 (0x0000), \
PED_CPU_TO_LE16 (0x11AA), 0xaa, 0x11, \
{ 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC }})
+#define PARTITION_APPLE_TV_RECOVERY_GUID \
+ ((efi_guid_t) { PED_CPU_TO_LE32 (0x5265636F), PED_CPU_TO_LE16 (0x7665), \
+ PED_CPU_TO_LE16 (0x11AA), 0xaa, 0x11, \
+ { 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC }})
struct __attribute__ ((packed)) _GuidPartitionTableHeader_t {
uint64_t Signature;
@@ -248,6 +252,7 @@ typedef struct _GPTPartitionData {
int hp_service;
int hidden;
int msftres;
+ int atvrecv;
} GPTPartitionData;
static PedDiskType gpt_disk_type;
@@ -753,7 +758,8 @@ _parse_part_entry (PedDisk* disk, GuidPa
gpt_part_data->lvm = gpt_part_data->raid
= gpt_part_data->boot = gpt_part_data->hp_service
- = gpt_part_data->hidden = gpt_part_data->msftres = 0;
+ = gpt_part_data->hidden = gpt_part_data->msftres
+ = gpt_part_data->atvrecv = 0;
if (pte->Attributes.RequiredToFunction & 0x1)
gpt_part_data->hidden = 1;
@@ -768,6 +774,8 @@ _parse_part_entry (PedDisk* disk, GuidPa
gpt_part_data->hp_service = 1;
else if (!guid_cmp (gpt_part_data->type, PARTITION_MSFT_RESERVED_GUID))
gpt_part_data->msftres = 1;
+ else if (!guid_cmp (gpt_part_data->type, PARTITION_APPLE_TV_RECOVERY_GUID))
+ gpt_part_data->atvrecv = 1;
return part;
}
@@ -1133,6 +1141,7 @@ gpt_partition_new (const PedDisk* disk,
gpt_part_data->hp_service = 0;
gpt_part_data->hidden = 0;
gpt_part_data->msftres = 0;
+ gpt_part_data->atvrecv = 0;
uuid_generate ((unsigned char*) &gpt_part_data->uuid);
swap_uuid_and_efi_guid((unsigned char*)(&gpt_part_data->uuid));
strcpy (gpt_part_data->name, "");
@@ -1232,6 +1241,10 @@ gpt_partition_set_system (PedPartition*
return 1;
}
}
+ if (gpt_part_data->atvrecv) {
+ gpt_part_data->type = PARTITION_APPLE_TV_RECOVERY_GUID;
+ return 1;
+ }
gpt_part_data->type = PARTITION_BASIC_DATA_GUID;
return 1;
@@ -1307,7 +1320,8 @@ gpt_partition_set_flag(PedPartition *par
gpt_part_data->raid
= gpt_part_data->lvm
= gpt_part_data->hp_service
- = gpt_part_data->msftres = 0;
+ = gpt_part_data->msftres
+ = gpt_part_data->atvrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_RAID:
gpt_part_data->raid = state;
@@ -1315,7 +1329,8 @@ gpt_partition_set_flag(PedPartition *par
gpt_part_data->boot
= gpt_part_data->lvm
= gpt_part_data->hp_service
- = gpt_part_data->msftres = 0;
+ = gpt_part_data->msftres
+ = gpt_part_data->atvrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_LVM:
gpt_part_data->lvm = state;
@@ -1323,7 +1338,8 @@ gpt_partition_set_flag(PedPartition *par
gpt_part_data->boot
= gpt_part_data->raid
= gpt_part_data->hp_service
- = gpt_part_data->msftres = 0;
+ = gpt_part_data->msftres
+ = gpt_part_data->atvrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_HPSERVICE:
gpt_part_data->hp_service = state;
@@ -1331,7 +1347,8 @@ gpt_partition_set_flag(PedPartition *par
gpt_part_data->boot
= gpt_part_data->raid
= gpt_part_data->lvm
- = gpt_part_data->msftres = 0;
+ = gpt_part_data->msftres
+ = gpt_part_data->atvrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_MSFT_RESERVED:
gpt_part_data->msftres = state;
@@ -1339,7 +1356,17 @@ gpt_partition_set_flag(PedPartition *par
gpt_part_data->boot
= gpt_part_data->raid
= gpt_part_data->lvm
- = gpt_part_data->hp_service = 0;
+ = gpt_part_data->hp_service
+ = gpt_part_data->atvrecv = 0;
+ return gpt_partition_set_system (part, part->fs_type);
+ case PED_PARTITION_APPLE_TV_RECOVERY:
+ gpt_part_data->atvrecv = state;
+ if (state)
+ gpt_part_data->boot
+ = gpt_part_data->raid
+ = gpt_part_data->lvm
+ = gpt_part_data->hp_service
+ = gpt_part_data->msftres = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_HIDDEN:
gpt_part_data->hidden = state;
@@ -1371,6 +1398,8 @@ gpt_partition_get_flag(const PedPartitio
return gpt_part_data->hp_service;
case PED_PARTITION_MSFT_RESERVED:
return gpt_part_data->msftres;
+ case PED_PARTITION_APPLE_TV_RECOVERY:
+ return gpt_part_data->atvrecv;
case PED_PARTITION_HIDDEN:
return gpt_part_data->hidden;
case PED_PARTITION_SWAP:
@@ -1392,6 +1421,7 @@ gpt_partition_is_flag_available(const Pe
case PED_PARTITION_BOOT:
case PED_PARTITION_HPSERVICE:
case PED_PARTITION_MSFT_RESERVED:
+ case PED_PARTITION_APPLE_TV_RECOVERY:
case PED_PARTITION_HIDDEN:
return 1;
case PED_PARTITION_SWAP:

View File

@ -1 +0,0 @@
http://ftp.gnu.org/gnu/parted/parted-2.3.tar.gz