From 07edf3bee78629ea80c070077007f7cde7139c2d Mon Sep 17 00:00:00 2001 From: wguanghao Date: Mon, 17 May 2021 16:19:53 +0800 Subject: [PATCH 1/2] fix end input usage in do_resizepart --- ...Fix-end_input-usage-in-do_resizepart.patch | 34 +++++++++++++++++++ parted.spec | 6 +++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 9002-Fix-end_input-usage-in-do_resizepart.patch diff --git a/9002-Fix-end_input-usage-in-do_resizepart.patch b/9002-Fix-end_input-usage-in-do_resizepart.patch new file mode 100644 index 0000000..4598ef9 --- /dev/null +++ b/9002-Fix-end_input-usage-in-do_resizepart.patch @@ -0,0 +1,34 @@ +From ca845aeeddb17343c9289816833ca352f7c0d87b Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +Date: Tue, 23 Apr 2019 13:52:25 -0700 +Subject: [PATCH] Fix end_input usage in do_resizepart + +It needs to be set to NULL, since it may not get set by the call to +command_line_get_sector +--- + parted/parted.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/parted/parted.c b/parted/parted.c +index 9dcdb05..df0c7ed 100644 +--- a/parted/parted.c ++++ b/parted/parted.c +@@ -1545,6 +1545,7 @@ do_resizepart (PedDevice** dev, PedDisk** diskp) + PedGeometry *range_end = NULL; + PedConstraint* constraint; + int rc = 0; ++ char* end_input = NULL; + + if (!disk) { + disk = ped_disk_new (*dev); +@@ -1565,7 +1566,6 @@ do_resizepart (PedDevice** dev, PedDisk** diskp) + + start = part->geom.start; + end = oldend = part->geom.end; +- char *end_input; + if (!command_line_get_sector (_("End?"), *dev, &end, &range_end, &end_input)) + goto error; + _adjust_end_if_iec(&start, &end, range_end, end_input); +-- +1.8.3.1 + diff --git a/parted.spec b/parted.spec index 0977f93..43bf03f 100644 --- a/parted.spec +++ b/parted.spec @@ -14,7 +14,7 @@ Summary: The GNU disk partition manipulation program Name: parted Version: 3.3 -Release: 4 +Release: 5 URL: https://www.gnu.org/software/parted/ Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source1: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig @@ -29,6 +29,7 @@ Patch0000: 0000-Switch-gpt-header-move-and-msdos-overlap-to-python3.patch Patch6000: 6000-add-support-of-gpt_sync_mbr.patch Patch9000: 9000-Add-extra-judgment-for-a-partition-created-success.patch Patch9001: 9001-bugfix-parted-fix-failure-of-mklabel-gpt_sync_mbr.patch +Patch9002: 9002-Fix-end_input-usage-in-do_resizepart.patch %description The GNU Parted program allows you to create, destroy, resize, move, @@ -113,6 +114,9 @@ fi %{_libdir}/pkgconfig/libparted*.pc %changelog +* Tue Feb 9 2021 Zhiqiang Liu - 3.3-5 +- fix end input usage in do_resizepart + * Tue Feb 9 2021 Zhiqiang Liu - 3.3-4 - set release num to 4 for CI -- Gitee From c7b955f603ce9225c12c885af74e07c49b95fab6 Mon Sep 17 00:00:00 2001 From: wguanghao Date: Tue, 18 May 2021 21:19:12 +0800 Subject: [PATCH 2/2] remove patch which modifid cyl size --- ...-remove-patch-which-modifid-cyl-size.patch | 88 +++++++++++++++++++ parted.spec | 6 +- 2 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 9003-parted-remove-patch-which-modifid-cyl-size.patch diff --git a/9003-parted-remove-patch-which-modifid-cyl-size.patch b/9003-parted-remove-patch-which-modifid-cyl-size.patch new file mode 100644 index 0000000..5888f1a --- /dev/null +++ b/9003-parted-remove-patch-which-modifid-cyl-size.patch @@ -0,0 +1,88 @@ +From bfce75fd13dd72c6300f0ac3d739e40df90f7dce Mon Sep 17 00:00:00 2001 +From: lixiaokeng +Date: Sun, 7 Jun 2020 15:18:00 +0000 +Subject: [PATCH] parted: remove patch which modified cyl size + +The cyl size was changed which leaded to "parted /dev/sdb -s mkpart primary 0cyl 128cyl" +could not perform as expected. Remove the patch "Use BLKSSZGET to get device sector size +in _device_probe_geometry()". + +Signed-off-by:lixiaokeng +--- + linux.c | 52 ++++++++++++++++++---------------------------------- + 1 file changed, 18 insertions(+), 34 deletions(-) + +diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c +index 37cf555..0d8149d 100644 +--- a/libparted/arch/linux.c ++++ b/libparted/arch/linux.c +@@ -868,7 +868,6 @@ _device_probe_geometry (PedDevice* dev) + struct stat dev_stat; + struct hd_geometry geometry; + int geometry_is_valid = 0; +- int sector_size = 0; + + if (!_device_stat (dev, &dev_stat)) + return 0; +@@ -880,41 +879,26 @@ _device_probe_geometry (PedDevice* dev) + if (!dev->length) + return 0; + +- /* initialize the bios_geom values to something */ +- dev->bios_geom.sectors = 0; +- dev->bios_geom.heads = 0; +- dev->bios_geom.cylinders = 0; +- +- geometry_is_valid = !ioctl (arch_specific->fd, HDIO_GETGEO, &geometry) +- && geometry.sectors && geometry.heads; +- +-#if defined __s390__ || defined __s390x__ +- if (geometry_is_valid) { +-#else +- if (!ioctl (arch_specific->fd, BLKSSZGET, §or_size)) { +- /* get the sector count first */ +- dev->bios_geom.sectors = 1 + (sector_size / PED_SECTOR_SIZE_DEFAULT); +- dev->bios_geom.heads = 255; +- } else if (geometry_is_valid) { +- /* if BLKSSZGET failed, use deprecated HDIO_GETGEO result */ +-#endif +- dev->bios_geom.sectors = geometry.sectors; +- dev->bios_geom.heads = geometry.heads; ++ /* The GETGEO ioctl is no longer useful (as of linux 2.6.x). We could ++ * still use it in 2.4.x, but this is contentious. Perhaps we should ++ * move to EDD. */ ++ dev->bios_geom.sectors = 63; ++ dev->bios_geom.heads = 255; ++ dev->bios_geom.cylinders ++ = dev->length / (63 * 255); ++ ++ /* FIXME: what should we put here? (TODO: discuss on linux-kernel) */ ++ if (!ioctl (arch_specific->fd, HDIO_GETGEO, &geometry) ++ && geometry.sectors && geometry.heads) { ++ dev->hw_geom.sectors = geometry.sectors; ++ dev->hw_geom.heads = geometry.heads; ++ dev->hw_geom.cylinders ++ = dev->length / (dev->hw_geom.heads ++ * dev->hw_geom.sectors); + } else { +- ped_exception_throw ( +- PED_EXCEPTION_WARNING, +- PED_EXCEPTION_OK, +- _("Could not determine sector size for %s: %s.\n" +- "Using the default sector size (%lld)."), +- dev->path, strerror (errno), PED_SECTOR_SIZE_DEFAULT); +- dev->bios_geom.sectors = 2; +- dev->bios_geom.heads = 255; ++ dev->hw_geom = dev->bios_geom; + } + +- dev->bios_geom.cylinders +- = dev->length / (dev->bios_geom.heads +- * dev->bios_geom.sectors); +- dev->hw_geom = dev->bios_geom; + return 1; + } + +-- +1.8.3.1 + diff --git a/parted.spec b/parted.spec index 43bf03f..84ed6c3 100644 --- a/parted.spec +++ b/parted.spec @@ -14,7 +14,7 @@ Summary: The GNU disk partition manipulation program Name: parted Version: 3.3 -Release: 5 +Release: 6 URL: https://www.gnu.org/software/parted/ Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source1: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig @@ -30,6 +30,7 @@ Patch6000: 6000-add-support-of-gpt_sync_mbr.patch Patch9000: 9000-Add-extra-judgment-for-a-partition-created-success.patch Patch9001: 9001-bugfix-parted-fix-failure-of-mklabel-gpt_sync_mbr.patch Patch9002: 9002-Fix-end_input-usage-in-do_resizepart.patch +Patch9003: 9003-parted-remove-patch-which-modifid-cyl-size.patch %description The GNU Parted program allows you to create, destroy, resize, move, @@ -114,6 +115,9 @@ fi %{_libdir}/pkgconfig/libparted*.pc %changelog +* Tue May 18 2021 wuguanghao - 3.3-6 +- remove patch which modifid cyl-size + * Tue Feb 9 2021 Zhiqiang Liu - 3.3-5 - fix end input usage in do_resizepart -- Gitee