diff --git a/always_print_geom.diff b/always_print_geom.diff deleted file mode 100644 index 6206c81..0000000 --- a/always_print_geom.diff +++ /dev/null @@ -1,28 +0,0 @@ -Index: parted/parted.c -=================================================================== ---- parted/parted.c.orig 2010-07-08 13:29:24.000000000 +0200 -+++ parted/parted.c 2010-07-08 13:29:28.000000000 +0200 -@@ -1437,8 +1437,22 @@ do_print (PedDevice** dev) - wchar_t* table_rendered; - - disk = ped_disk_new (*dev); -- if (!disk) -+ if (!disk) { -+ printf (_("Sector size (logical/physical): %lldB/%lldB\n"), -+ (*dev)->sector_size, (*dev)->phys_sector_size); -+ if (ped_unit_get_default () == PED_UNIT_CHS || -+ ped_unit_get_default () == PED_UNIT_CYLINDER) { -+ PedCHSGeometry* chs = &(*dev)->bios_geom; -+ char* cyl_size = ped_unit_format_custom (*dev, -+ chs->heads * chs->sectors, -+ PED_UNIT_KILOBYTE); -+ printf (_("BIOS cylinder,head,sector geometry: %d,%d,%d. " -+ "Each cylinder is %s.\n"), -+ chs->cylinders, chs->heads, chs->sectors, cyl_size); -+ free (cyl_size); -+ } - goto error; -+ } - - if (ped_disk_is_flag_available(disk, PED_DISK_CYLINDER_ALIGNMENT)) - if (!ped_disk_set_flag(disk, PED_DISK_CYLINDER_ALIGNMENT, diff --git a/fix-dm-partition-name.patch b/fix-dm-partition-name.patch index 005b56f..8f29361 100644 --- a/fix-dm-partition-name.patch +++ b/fix-dm-partition-name.patch @@ -1,13 +1,13 @@ -Index: parted-2.3/libparted/arch/linux.c +Index: parted-2.4/libparted/arch/linux.c =================================================================== ---- parted-2.3.orig/libparted/arch/linux.c 2010-07-08 13:33:05.000000000 +0200 -+++ parted-2.3/libparted/arch/linux.c 2010-07-08 13:33:13.000000000 +0200 -@@ -2194,7 +2194,7 @@ _device_get_part_path (PedDevice* dev, i - || dev->type == PED_DEVICE_ATARAID - || dev->type == PED_DEVICE_DM - || isdigit (dev->path[path_len - 1])) -- snprintf (result, result_len, "%sp%d", dev->path, num); -+ snprintf (result, result_len, "%s_part%d", dev->path, num); - else - snprintf (result, result_len, "%s%d", dev->path, num); +--- parted-2.4.orig/libparted/arch/linux.c ++++ parted-2.4/libparted/arch/linux.c +@@ -2225,7 +2225,7 @@ _device_get_part_path (PedDevice *dev, i + || dev->type == PED_DEVICE_ATARAID + || dev->type == PED_DEVICE_DM + || isdigit (dev->path[path_len - 1]) +- ? "p" : ""); ++ ? "_part" : ""); + result = zasprintf ("%s%s%d", dev->path, p, num); + } diff --git a/parted-2.3.tar.bz2 b/parted-2.3.tar.bz2 deleted file mode 100644 index acbc31f..0000000 --- a/parted-2.3.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f872728d228cfa5bdc25e694f161c282e8e7551ad1fdad673898b5216a81cc95 -size 2034059 diff --git a/parted-2.4.tar.bz2 b/parted-2.4.tar.bz2 new file mode 100644 index 0000000..a450311 --- /dev/null +++ b/parted-2.4.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:497d23615a8a60ead6d75273b6595d5a3f73bd73a46bbf45b8edb2890c7cb2f4 +size 2177039 diff --git a/parted-mac.patch b/parted-mac.patch index a14a534..a2f29a9 100644 --- a/parted-mac.patch +++ b/parted-mac.patch @@ -1,41 +1,39 @@ -Index: parted-2.3/libparted/disk.c +Index: parted-2.4/libparted/disk.c =================================================================== ---- parted-2.3.orig/libparted/disk.c 2010-07-08 13:28:03.000000000 +0200 -+++ parted-2.3/libparted/disk.c 2010-07-08 13:28:04.000000000 +0200 -@@ -1182,6 +1182,41 @@ _disk_pop_update_mode (PedDisk* disk) +--- parted-2.4.orig/libparted/disk.c ++++ parted-2.4/libparted/disk.c +@@ -1179,6 +1179,39 @@ _disk_pop_update_mode (PedDisk* disk) * @{ */ +const char* +ped_partition_get_system_name (const PedPartition* part) +{ -+ PED_ASSERT (part != NULL, return NULL); -+ PED_ASSERT (part->disk != NULL, return 0); -+ PED_ASSERT (ped_partition_is_active (part), return 0); ++ PED_ASSERT (part != NULL); ++ PED_ASSERT (part->disk != NULL); ++ PED_ASSERT (ped_partition_is_active (part)); + + if (!ped_disk_type_check_feature ( + part->disk->type, PED_DISK_TYPE_SYSTEM_NAME)) + return NULL; /* silent skip */ + -+ PED_ASSERT (part->disk->type->ops->partition_get_system_name != NULL, -+ return NULL); ++ PED_ASSERT (part->disk->type->ops->partition_get_system_name != NULL); + return part->disk->type->ops->partition_get_system_name (part); +} + +int +ped_partition_set_system_name (PedPartition* part, const char* name) +{ -+ PED_ASSERT (part != NULL, return 0); -+ PED_ASSERT (part->disk != NULL, return 0); -+ PED_ASSERT (ped_partition_is_active (part), return 0); -+ PED_ASSERT (name != NULL, return 0); ++ PED_ASSERT (part != NULL); ++ PED_ASSERT (part->disk != NULL); ++ PED_ASSERT (ped_partition_is_active (part)); ++ PED_ASSERT (name != NULL); + + if (!ped_disk_type_check_feature ( + part->disk->type, PED_DISK_TYPE_SYSTEM_NAME)) + return 0; /* silent skip */ + -+ PED_ASSERT (part->disk->type->ops->partition_set_system_name != NULL, -+ return 0); ++ PED_ASSERT (part->disk->type->ops->partition_set_system_name != NULL); + part->disk->type->ops->partition_set_system_name (part, name); + return 1; +} @@ -44,11 +42,11 @@ Index: parted-2.3/libparted/disk.c PedPartition* _ped_partition_alloc (const PedDisk* disk, PedPartitionType type, const PedFileSystemType* fs_type, -Index: parted-2.3/libparted/labels/mac.c +Index: parted-2.4/libparted/labels/mac.c =================================================================== ---- parted-2.3.orig/libparted/labels/mac.c 2010-02-20 12:37:24.000000000 +0100 -+++ parted-2.3/libparted/labels/mac.c 2010-07-08 13:28:04.000000000 +0200 -@@ -1387,6 +1387,36 @@ mac_get_partition_alignment(const PedDis +--- parted-2.4.orig/libparted/labels/mac.c ++++ parted-2.4/libparted/labels/mac.c +@@ -1386,6 +1386,36 @@ mac_get_partition_alignment(const PedDis return ped_alignment_new(0, sector_size); } @@ -59,8 +57,8 @@ Index: parted-2.3/libparted/labels/mac.c + MacPartitionData* mac_data; + int i; + -+ PED_ASSERT (part != NULL, return); -+ PED_ASSERT (part->disk_specific != NULL, return); ++ PED_ASSERT (part != NULL); ++ PED_ASSERT (part->disk_specific != NULL); + mac_data = part->disk_specific; + + strncpy (mac_data->system_name, name, 32); @@ -75,8 +73,8 @@ Index: parted-2.3/libparted/labels/mac.c +{ + MacPartitionData* mac_data; + -+ PED_ASSERT (part != NULL, return NULL); -+ PED_ASSERT (part->disk_specific != NULL, return NULL); ++ PED_ASSERT (part != NULL); ++ PED_ASSERT (part->disk_specific != NULL); + mac_data = part->disk_specific; + + return mac_data->system_name; @@ -85,7 +83,7 @@ Index: parted-2.3/libparted/labels/mac.c static PedConstraint* _primary_constraint (PedDisk* disk) { -@@ -1590,6 +1620,8 @@ static PedDiskOps mac_disk_ops = { +@@ -1589,6 +1619,8 @@ static PedDiskOps mac_disk_ops = { partition_set_name: mac_partition_set_name, partition_get_name: mac_partition_get_name, @@ -94,7 +92,7 @@ Index: parted-2.3/libparted/labels/mac.c get_partition_alignment: mac_get_partition_alignment, -@@ -1600,7 +1632,7 @@ static PedDiskType mac_disk_type = { +@@ -1599,7 +1631,7 @@ static PedDiskType mac_disk_type = { next: NULL, name: "mac", ops: &mac_disk_ops, @@ -103,11 +101,11 @@ Index: parted-2.3/libparted/labels/mac.c }; void -Index: parted-2.3/include/parted/disk.h +Index: parted-2.4/include/parted/disk.h =================================================================== ---- parted-2.3.orig/include/parted/disk.h 2010-07-08 13:28:03.000000000 +0200 -+++ parted-2.3/include/parted/disk.h 2010-07-08 13:28:04.000000000 +0200 -@@ -77,10 +77,11 @@ enum _PedPartitionFlag { +--- parted-2.4.orig/include/parted/disk.h ++++ parted-2.4/include/parted/disk.h +@@ -78,10 +78,11 @@ enum _PedPartitionFlag { enum _PedDiskTypeFeature { PED_DISK_TYPE_EXTENDED=1, /**< supports extended partitions */ @@ -121,7 +119,7 @@ Index: parted-2.3/include/parted/disk.h struct _PedDisk; struct _PedPartition; -@@ -240,6 +241,8 @@ struct _PedDiskOps { +@@ -241,6 +242,8 @@ struct _PedDiskOps { /* other */ int (*alloc_metadata) (PedDisk* disk); int (*get_max_primary_partition_count) (const PedDisk* disk); @@ -130,7 +128,7 @@ Index: parted-2.3/include/parted/disk.h bool (*get_max_supported_partition_count) (const PedDisk* disk, int* supported); PedAlignment *(*get_partition_alignment)(const PedDisk *disk); -@@ -326,7 +329,9 @@ extern int ped_partition_is_flag_availab +@@ -327,7 +330,9 @@ extern int ped_partition_is_flag_availab extern int ped_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type); extern int ped_partition_set_name (PedPartition* part, const char* name); @@ -140,11 +138,11 @@ Index: parted-2.3/include/parted/disk.h extern int ped_partition_is_busy (const PedPartition* part); extern char* ped_partition_get_path (const PedPartition* part); -Index: parted-2.3/parted/parted.c +Index: parted-2.4/parted/parted.c =================================================================== ---- parted-2.3.orig/parted/parted.c 2010-07-08 13:28:03.000000000 +0200 -+++ parted-2.3/parted/parted.c 2010-07-08 13:28:04.000000000 +0200 -@@ -1293,6 +1293,7 @@ partition_print_flags (PedPartition* par +--- parted-2.4.orig/parted/parted.c ++++ parted-2.4/parted/parted.c +@@ -1292,6 +1292,7 @@ partition_print_flags (PedPartition* par char* res = ped_malloc(1); void* _res = res; int xtype; @@ -152,7 +150,7 @@ Index: parted-2.3/parted/parted.c *res = '\0'; -@@ -1327,6 +1328,23 @@ partition_print_flags (PedPartition* par +@@ -1326,6 +1327,23 @@ partition_print_flags (PedPartition* par } } diff --git a/parted-type.patch b/parted-type.patch index f6f3c6d..acedc6d 100644 --- a/parted-type.patch +++ b/parted-type.patch @@ -6,11 +6,11 @@ parted/ui.c | 3 +++ 5 files changed, 39 insertions(+), 7 deletions(-) -Index: parted-2.3/libparted/disk.c +Index: parted-2.4/libparted/disk.c =================================================================== ---- parted-2.3.orig/libparted/disk.c 2010-05-05 18:08:38.000000000 +0200 -+++ parted-2.3/libparted/disk.c 2010-08-11 10:45:19.000000000 +0200 -@@ -2433,6 +2433,8 @@ ped_partition_flag_get_name (PedPartitio +--- parted-2.4.orig/libparted/disk.c ++++ parted-2.4/libparted/disk.c +@@ -2425,6 +2425,8 @@ ped_partition_flag_get_name (PedPartitio return N_("lba"); case PED_PARTITION_HPSERVICE: return N_("hp-service"); @@ -19,11 +19,11 @@ Index: parted-2.3/libparted/disk.c case PED_PARTITION_PALO: return N_("palo"); case PED_PARTITION_PREP: -Index: parted-2.3/libparted/labels/dos.c +Index: parted-2.4/libparted/labels/dos.c =================================================================== ---- parted-2.3.orig/libparted/labels/dos.c 2010-05-25 15:42:21.000000000 +0200 -+++ parted-2.3/libparted/labels/dos.c 2010-08-11 10:45:19.000000000 +0200 -@@ -1412,6 +1412,10 @@ msdos_partition_set_flag (PedPartition* +--- parted-2.4.orig/libparted/labels/dos.c ++++ parted-2.4/libparted/labels/dos.c +@@ -1496,6 +1496,10 @@ msdos_partition_set_flag (PedPartition* disk = part->disk; switch (flag) { @@ -34,7 +34,7 @@ Index: parted-2.3/libparted/labels/dos.c case PED_PARTITION_HIDDEN: if (part->type == PED_PARTITION_EXTENDED) { ped_exception_throw ( -@@ -1507,6 +1511,9 @@ msdos_partition_get_flag (const PedParti +@@ -1591,6 +1595,9 @@ msdos_partition_get_flag (const PedParti case PED_PARTITION_LBA: return dos_data->lba; @@ -44,7 +44,7 @@ Index: parted-2.3/libparted/labels/dos.c case PED_PARTITION_PALO: return dos_data->palo; -@@ -1533,6 +1540,7 @@ msdos_partition_is_flag_available (const +@@ -1617,6 +1624,7 @@ msdos_partition_is_flag_available (const case PED_PARTITION_RAID: case PED_PARTITION_LVM: case PED_PARTITION_LBA: @@ -52,11 +52,11 @@ Index: parted-2.3/libparted/labels/dos.c case PED_PARTITION_PALO: case PED_PARTITION_PREP: case PED_PARTITION_DIAG: -Index: parted-2.3/parted/ui.c +Index: parted-2.4/parted/ui.c =================================================================== ---- parted-2.3.orig/parted/ui.c 2010-05-05 18:08:38.000000000 +0200 -+++ parted-2.3/parted/ui.c 2010-08-11 10:45:19.000000000 +0200 -@@ -918,6 +918,9 @@ command_line_get_integer (const char* pr +--- parted-2.4.orig/parted/ui.c ++++ parted-2.4/parted/ui.c +@@ -917,6 +917,9 @@ command_line_get_integer (const char* pr NULL, 1); if (!input) return 0; @@ -66,29 +66,29 @@ Index: parted-2.3/parted/ui.c valid = sscanf (input, "%d", value); free (input); return valid; -Index: parted-2.3/include/parted/disk.h +Index: parted-2.4/include/parted/disk.h =================================================================== ---- parted-2.3.orig/include/parted/disk.h 2010-05-05 18:08:38.000000000 +0200 -+++ parted-2.3/include/parted/disk.h 2010-08-11 10:45:38.000000000 +0200 -@@ -69,10 +69,11 @@ enum _PedPartitionFlag { - PED_PARTITION_MSFT_RESERVED=11, +--- parted-2.4.orig/include/parted/disk.h ++++ parted-2.4/include/parted/disk.h +@@ -70,10 +70,11 @@ enum _PedPartitionFlag { PED_PARTITION_BIOS_GRUB=12, PED_PARTITION_APPLE_TV_RECOVERY=13, -- PED_PARTITION_DIAG=14 -+ PED_PARTITION_DIAG=14, -+ PED_PARTITION_TYPE=15 + PED_PARTITION_DIAG=14, +- PED_PARTITION_LEGACY_BOOT=15 ++ PED_PARTITION_LEGACY_BOOT=15, ++ PED_PARTITION_TYPE=16 }; #define PED_PARTITION_FIRST_FLAG PED_PARTITION_BOOT --#define PED_PARTITION_LAST_FLAG PED_PARTITION_DIAG +-#define PED_PARTITION_LAST_FLAG PED_PARTITION_LEGACY_BOOT +#define PED_PARTITION_LAST_FLAG PED_PARTITION_TYPE enum _PedDiskTypeFeature { PED_DISK_TYPE_EXTENDED=1, /**< supports extended partitions */ -Index: parted-2.3/parted/parted.c +Index: parted-2.4/parted/parted.c =================================================================== ---- parted-2.3.orig/parted/parted.c 2010-08-11 10:45:18.000000000 +0200 -+++ parted-2.3/parted/parted.c 2010-08-11 10:45:19.000000000 +0200 -@@ -1292,13 +1292,14 @@ partition_print_flags (PedPartition* par +--- parted-2.4.orig/parted/parted.c ++++ parted-2.4/parted/parted.c +@@ -1291,13 +1291,14 @@ partition_print_flags (PedPartition* par const char* name; char* res = ped_malloc(1); void* _res = res; @@ -104,7 +104,7 @@ Index: parted-2.3/parted/parted.c if (first_flag) first_flag = 0; else { -@@ -1307,7 +1308,16 @@ partition_print_flags (PedPartition* par +@@ -1306,7 +1307,16 @@ partition_print_flags (PedPartition* par res = _res; strncat (res, ", ", 2); } @@ -122,7 +122,7 @@ Index: parted-2.3/parted/parted.c name = _(ped_partition_flag_get_name (flag)); _res = res; ped_realloc (&_res, strlen (res) + 1 + strlen (name)); -@@ -1315,6 +1325,7 @@ partition_print_flags (PedPartition* par +@@ -1314,6 +1324,7 @@ partition_print_flags (PedPartition* par strcat(res, name); } } @@ -130,7 +130,7 @@ Index: parted-2.3/parted/parted.c return res; } -@@ -2141,12 +2152,19 @@ do_set (PedDevice** dev) +@@ -2156,12 +2167,19 @@ do_set (PedDevice** dev) goto error_destroy_disk; if (!command_line_get_part_flag (_("Flag to Invert?"), part, &flag)) goto error_destroy_disk; diff --git a/parted.changes b/parted.changes index a23d3b2..6e1add1 100644 --- a/parted.changes +++ b/parted.changes @@ -1,3 +1,58 @@ +------------------------------------------------------------------- +Thu May 19 13:05:08 UTC 2011 - puzel@novell.com + +- update to parted-2.4 + * Bug fixes + - parted no longer allows the modification of certain in-use + partitions. In particular, before this fix, parted would + permit removal or modification of any in-use partition on a + dmraid and any in-use partition beyond the 15th on a regular + scsi disk. + - Improve support of DASD devices on the s390 architecture. + Parted now supports all DASD types (CKD and FBA), DASD formats + (CDL, LDL, CMS non-reserved, and CMS reserved), and DASD + drivers (ECKD, FBA, and DIAG) in all combinations supported by + the Linux kernel. As before, only CDL format on CKD DASD using + the ECKD driver is supported for read-write operations (create, + delete, move, re-size, etc.). However, the implicit partition + present on LDL- and CMS-formatted disks is now correctly + recognized for read-only operations. In detail: + - parted now correctly handles LDL-format disks with a block + size other than 4096 (bug fix) + - parted now recognizes the CMS disk format, both reserved and + non-reserved (enhancement) + - parted now supports FBA DASD devices (enhancement) + - parted now supports the DIAG driver when running in a virtual + machine under z/VM (enhancement) + - libparted: raise the limit on the maximum start sector and the + maximum number of sectors in a "loop" partition table from 2^32 + to 2^64. + - libparted once again recognizes a whole-disk FAT partition + - libparted now recognizes scsi disks with a high major (128-135) + as scsi disks + - an msdos partition table on a very small device (smaller than + one cylinder) is now recognized. + - libparted: zero-length devices (other than files) are ignored + rather than throwing an exception. + - libparted: gpt label creation can no longer divide by zero with + a defective device or when a concurrent writer modifies the + PE-size bytes in the small interval between the write and + subsequent read of the primary GPT header. + * Changes in behavior + - "parted $dev print" now prints information about the device + (model, size, transport, sector size) even when it fails to + recognize the disk label. + - specifying partition start or end values using MiB, GiB, etc. + suffixes now makes parted do what I want, i.e., use that + precise value, and not some other that is up to 500KiB or + 500MiB away from what I specified. Before, to get that + behavior, you would have had to use carefully chosen values + with units of bytes ("B") or sectors ("s") to obtain the same + result, and with sectors, your usage would not be portable + between devices with varying sector sizes. This change does + not affect how parted handles suffixes like KB, MB, GB, etc. +- drop always_print_geom.diff (merged upstream) + ------------------------------------------------------------------- Thu Dec 9 09:44:33 UTC 2010 - puzel@novell.com diff --git a/parted.spec b/parted.spec index 711f334..decfcbc 100644 --- a/parted.spec +++ b/parted.spec @@ -1,5 +1,5 @@ # -# spec file for package parted (Version 2.3) +# spec file for package parted (Version 2.4) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -18,7 +18,7 @@ Name: parted -Version: 2.3 +Version: 2.4 Release: 5 License: GPLv3+ Summary: GNU partitioner @@ -31,7 +31,6 @@ Patch1: parted-type.patch Patch2: parted-mac.patch Patch3: parted-wipeaix.patch Patch5: hfs_fix.dif -Patch6: always_print_geom.diff Patch7: fix-function-def.patch Patch8: parted-gpt-mbr-sync.patch #PATCH-FEATURE-OPENSUSE fix-dm-partition-name.patch bnc471440,447591 petr.uzel@suse.cz @@ -98,7 +97,6 @@ to develop applications that require these. %patch2 -p1 %patch3 -p1 %patch5 -p1 -%patch6 %patch7 %patch8 %patch10 -p1