import parted-3.2-39.el8
This commit is contained in:
parent
1f7c0074d4
commit
3fbed7f5d2
31
SOURCES/0091-libparted-Fix-endian-bug-in-bsd.c.patch
Normal file
31
SOURCES/0091-libparted-Fix-endian-bug-in-bsd.c.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From da8572e6696c2593150af4ba6917dcfc142eebab Mon Sep 17 00:00:00 2001
|
||||||
|
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
|
||||||
|
Date: Mon, 5 Aug 2019 09:05:00 -0700
|
||||||
|
Subject: [PATCH 91/97] libparted: Fix endian bug in bsd.c
|
||||||
|
|
||||||
|
You have to add 1 *before* doing the endian conversion, not after.
|
||||||
|
|
||||||
|
Signed-off-by: Brian C. Lane <bcl@redhat.com>
|
||||||
|
(cherry picked from commit d5827cf0606680b4c4e6bf25ac1a4af6e1092f3f)
|
||||||
|
|
||||||
|
Resolves: rhbz#1980105
|
||||||
|
---
|
||||||
|
libparted/labels/bsd.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/libparted/labels/bsd.c b/libparted/labels/bsd.c
|
||||||
|
index f253a32..1e79408 100644
|
||||||
|
--- a/libparted/labels/bsd.c
|
||||||
|
+++ b/libparted/labels/bsd.c
|
||||||
|
@@ -364,7 +364,7 @@ bsd_write (const PedDisk* disk)
|
||||||
|
max_part = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
- label->d_npartitions = PED_CPU_TO_LE16 (max_part) + 1;
|
||||||
|
+ label->d_npartitions = PED_CPU_TO_LE16 (max_part + 1);
|
||||||
|
label->d_checksum = xbsd_dkcksum (label);
|
||||||
|
|
||||||
|
alpha_bootblock_checksum (bsd_specific->boot_code);
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
36
SOURCES/0092-Fix-resizepart-iec-unit-end-sector.patch
Normal file
36
SOURCES/0092-Fix-resizepart-iec-unit-end-sector.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
From 937325555fcbf1a8a23934171ea86251700de0fd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Phillip Susi <psusi@ubuntu.com>
|
||||||
|
Date: Thu, 12 May 2016 21:38:51 -0400
|
||||||
|
Subject: [PATCH 92/97] Fix resizepart iec unit end sector
|
||||||
|
|
||||||
|
Fix resizepart to adjust the end to be -1 sector when using iec
|
||||||
|
power of 2 units so that the next partition can start immediately
|
||||||
|
following the new end, just like mkpart does.
|
||||||
|
|
||||||
|
(cherry picked from commit 247e3fc6cd8bca79b7c0362886ae9b5b06ba6f8c)
|
||||||
|
|
||||||
|
Related: rhbz#1861804
|
||||||
|
---
|
||||||
|
parted/parted.c | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/parted/parted.c b/parted/parted.c
|
||||||
|
index c95fbbf..1733131 100644
|
||||||
|
--- a/parted/parted.c
|
||||||
|
+++ b/parted/parted.c
|
||||||
|
@@ -1561,8 +1561,11 @@ do_resizepart (PedDevice** dev, PedDisk** diskp)
|
||||||
|
|
||||||
|
start = part->geom.start;
|
||||||
|
end = oldend = part->geom.end;
|
||||||
|
- if (!command_line_get_sector (_("End?"), *dev, &end, &range_end, NULL))
|
||||||
|
+ 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);
|
||||||
|
+ free(end_input);
|
||||||
|
/* Do not move start of the partition */
|
||||||
|
constraint = constraint_from_start_end_fixed_start (*dev, start, range_end);
|
||||||
|
if (!ped_disk_set_partition_geom (disk, part, constraint,
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
28
SOURCES/0093-tests-Test-incomplete-resizepart-command.patch
Normal file
28
SOURCES/0093-tests-Test-incomplete-resizepart-command.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
From 929a3bdd7a60912dd977ea79548b163a39b20568 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
|
Date: Tue, 23 Apr 2019 10:25:20 -0700
|
||||||
|
Subject: [PATCH 93/97] tests: Test incomplete resizepart command
|
||||||
|
|
||||||
|
(cherry picked from commit 679da92c54c75d7fca1fd825f1d42a750d115f2d)
|
||||||
|
|
||||||
|
Related: rhbz#1861804
|
||||||
|
---
|
||||||
|
tests/t3200-resize-partition.sh | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tests/t3200-resize-partition.sh b/tests/t3200-resize-partition.sh
|
||||||
|
index 251b545..dcf1775 100755
|
||||||
|
--- a/tests/t3200-resize-partition.sh
|
||||||
|
+++ b/tests/t3200-resize-partition.sh
|
||||||
|
@@ -63,6 +63,8 @@ parted -m -s $dev u s p > out 2>&1 || fail=1
|
||||||
|
wait_for_dev_to_appear_ ${dev}1 || { warn_ "${dev}1 did not appear" fail=1; }
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
+# Running it without end should not core-dump or prompt
|
||||||
|
+parted -s $dev resizepart 1 > out 2> err || fail=1
|
||||||
|
|
||||||
|
# extend the filesystem to end on sector 4096
|
||||||
|
new_end=4096s
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
38
SOURCES/0094-Fix-end_input-usage-in-do_resizepart.patch
Normal file
38
SOURCES/0094-Fix-end_input-usage-in-do_resizepart.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
From 477968f0e73f2ec6b4427ab7c76fb6098699ec4e Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
|
Date: Tue, 23 Apr 2019 13:52:25 -0700
|
||||||
|
Subject: [PATCH 94/97] 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
|
||||||
|
|
||||||
|
(cherry picked from commit ca845aeeddb17343c9289816833ca352f7c0d87b)
|
||||||
|
|
||||||
|
Related: rhbz#1861804
|
||||||
|
---
|
||||||
|
parted/parted.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/parted/parted.c b/parted/parted.c
|
||||||
|
index 1733131..4552741 100644
|
||||||
|
--- a/parted/parted.c
|
||||||
|
+++ b/parted/parted.c
|
||||||
|
@@ -1541,6 +1541,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);
|
||||||
|
@@ -1561,7 +1562,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);
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
@ -0,0 +1,57 @@
|
|||||||
|
From b764430104af815296a5919888e397373746a21d Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
|
Date: Mon, 31 Aug 2020 16:40:07 -0700
|
||||||
|
Subject: [PATCH 95/97] parted: Preserve resizepart End when prompted for busy
|
||||||
|
partition
|
||||||
|
|
||||||
|
Resizing busy partitions is allowed, but the user is prompted, which
|
||||||
|
erases the cmdline. It is annoying to have to re-end the ending location
|
||||||
|
after answering Yes. This saves the word and pushes it back onto the
|
||||||
|
cmdline after the user agrees to resize the busy partition.
|
||||||
|
|
||||||
|
(cherry picked from commit 691dabc930a6d544dfd8da787cddd159bab34b1e)
|
||||||
|
|
||||||
|
Resolves: rhbz#1861804
|
||||||
|
---
|
||||||
|
parted/parted.c | 15 +++++++++++++++
|
||||||
|
1 file changed, 15 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/parted/parted.c b/parted/parted.c
|
||||||
|
index 4552741..64fdd54 100644
|
||||||
|
--- a/parted/parted.c
|
||||||
|
+++ b/parted/parted.c
|
||||||
|
@@ -1542,6 +1542,7 @@ do_resizepart (PedDevice** dev, PedDisk** diskp)
|
||||||
|
PedConstraint* constraint;
|
||||||
|
int rc = 0;
|
||||||
|
char* end_input = NULL;
|
||||||
|
+ char* end_size = NULL;
|
||||||
|
|
||||||
|
if (!disk) {
|
||||||
|
disk = ped_disk_new (*dev);
|
||||||
|
@@ -1557,9 +1558,23 @@ do_resizepart (PedDevice** dev, PedDisk** diskp)
|
||||||
|
|
||||||
|
if (!command_line_get_partition (_("Partition number?"), disk, &part))
|
||||||
|
goto error;
|
||||||
|
+
|
||||||
|
+ /* Save the optional End value if the partition is busy. */
|
||||||
|
+ if (ped_partition_is_busy(part)) {
|
||||||
|
+ if (command_line_get_word_count())
|
||||||
|
+ end_size = command_line_pop_word();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* If the partition is busy this may clear the command_line and prompt the user */
|
||||||
|
if (!_partition_warn_busy (part))
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
+ /* Push the End value back onto the command_line, if it exists */
|
||||||
|
+ if (end_size) {
|
||||||
|
+ command_line_push_word(end_size);
|
||||||
|
+ free(end_size);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
start = part->geom.start;
|
||||||
|
end = oldend = part->geom.end;
|
||||||
|
if (!command_line_get_sector (_("End?"), *dev, &end, &range_end, &end_input))
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
@ -0,0 +1,89 @@
|
|||||||
|
From 97113adc42f15ba04630c2808f14cd01aff22ed9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
|
Date: Tue, 1 Sep 2020 14:51:54 -0700
|
||||||
|
Subject: [PATCH 96/97] tests: Add a test for resizepart on a busy partition
|
||||||
|
|
||||||
|
This makes sure that the resizepart on a busy partition with the size on
|
||||||
|
the cmdline will work.
|
||||||
|
|
||||||
|
(cherry picked from commit dfc611bd5126840d68493ad0e761511a71325af7)
|
||||||
|
|
||||||
|
Related: rhbz#1861804
|
||||||
|
---
|
||||||
|
tests/t3200-resize-partition.sh | 44 ++++++++++++++++++++++++++++++---
|
||||||
|
1 file changed, 40 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/t3200-resize-partition.sh b/tests/t3200-resize-partition.sh
|
||||||
|
index dcf1775..2200977 100755
|
||||||
|
--- a/tests/t3200-resize-partition.sh
|
||||||
|
+++ b/tests/t3200-resize-partition.sh
|
||||||
|
@@ -2,7 +2,7 @@
|
||||||
|
# exercise the resize sub-command
|
||||||
|
# based on t3000-resize-fs.sh test
|
||||||
|
|
||||||
|
-# Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
||||||
|
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@@ -66,8 +66,8 @@ sleep 1
|
||||||
|
# Running it without end should not core-dump or prompt
|
||||||
|
parted -s $dev resizepart 1 > out 2> err || fail=1
|
||||||
|
|
||||||
|
-# extend the filesystem to end on sector 4096
|
||||||
|
-new_end=4096s
|
||||||
|
+# extend the filesystem to end on sector 2048
|
||||||
|
+new_end=2048s
|
||||||
|
parted -s $dev resizepart 1 $new_end > out 2> err || fail=1
|
||||||
|
# expect no output
|
||||||
|
compare /dev/null out || fail=1
|
||||||
|
@@ -77,9 +77,45 @@ compare /dev/null err || fail=1
|
||||||
|
parted -m -s $dev u s p > out 2>&1 || fail=1
|
||||||
|
|
||||||
|
sed -n 3p out > k && mv k out || fail=1
|
||||||
|
-printf "1:$default_start:$new_end:3073s:::$ms;\n" > exp || fail=1
|
||||||
|
+printf "1:$default_start:$new_end:1025s:::$ms;\n" > exp || fail=1
|
||||||
|
compare exp out || fail=1
|
||||||
|
|
||||||
|
+## Make sure resizing a busy partition works when user answers 'yes'
|
||||||
|
+# Format the partition and mount it for the busy check
|
||||||
|
+mkfs.ext4 "${dev}1" || skip_ mkfs.ext4 failed
|
||||||
|
+
|
||||||
|
+# be sure to unmount upon interrupt, failure, etc.
|
||||||
|
+cleanup_fn_() { umount "${dev}1" > /dev/null 2>&1; }
|
||||||
|
+
|
||||||
|
+mount_point=$(pwd)/mnt
|
||||||
|
+
|
||||||
|
+mkdir $mount_point || fail=1
|
||||||
|
+mount "${dev}1" "$mount_point" || fail=1
|
||||||
|
+
|
||||||
|
+# extend the filesystem to end on sector 4096
|
||||||
|
+new_end=4096s
|
||||||
|
+echo yes | parted ---pretend-input-tty $dev resizepart 1 $new_end > out 2>&1
|
||||||
|
+cat > exp <<EOF
|
||||||
|
+Warning: Partition ${dev}1 is being used. Are you sure you want to continue?
|
||||||
|
+Yes/No? yes
|
||||||
|
+Information: You may need to update /etc/fstab.
|
||||||
|
+
|
||||||
|
+EOF
|
||||||
|
+# Transform the actual output, to avoid spurious differences when
|
||||||
|
+# $PWD contains a symlink-to-dir. Also, remove the ^M ...^M bogosity.
|
||||||
|
+# normalize the actual output
|
||||||
|
+mv out o2 && sed -e "s,
*
,,g;s, $,," o2 > out
|
||||||
|
+compare exp out || fail=1
|
||||||
|
+
|
||||||
|
+# print partition table
|
||||||
|
+parted -m -s $dev u s p > out 2>&1 || fail=1
|
||||||
|
+
|
||||||
|
+sed -n 3p out > k && mv k out || fail=1
|
||||||
|
+printf "1:$default_start:$new_end:3073s:ext2::$ms;\n" > exp || fail=1
|
||||||
|
+compare exp out || fail=1
|
||||||
|
+
|
||||||
|
+umount "${dev}1" || fail=1
|
||||||
|
+
|
||||||
|
# Remove the partition explicitly, so that mklabel doesn't evoke a warning.
|
||||||
|
parted -s $dev rm 1 || fail=1
|
||||||
|
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
46
SOURCES/0097-parted-Fix-memory-leaks-in-do_resizepart.patch
Normal file
46
SOURCES/0097-parted-Fix-memory-leaks-in-do_resizepart.patch
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
From 9acf1c61938c83cf8f68613bacdf872a5f4db632 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
|
Date: Thu, 10 Jun 2021 15:55:59 -0700
|
||||||
|
Subject: [PATCH 97/97] parted: Fix memory leaks in do_resizepart
|
||||||
|
|
||||||
|
(cherry picked from commit 6c4050af2c6c0abdbe1d553fdf2f19a6b600e9d1)
|
||||||
|
|
||||||
|
Related: rhbz#1861804
|
||||||
|
---
|
||||||
|
parted/parted.c | 6 ++++--
|
||||||
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/parted/parted.c b/parted/parted.c
|
||||||
|
index 64fdd54..d4db2b5 100644
|
||||||
|
--- a/parted/parted.c
|
||||||
|
+++ b/parted/parted.c
|
||||||
|
@@ -1572,7 +1572,6 @@ do_resizepart (PedDevice** dev, PedDisk** diskp)
|
||||||
|
/* Push the End value back onto the command_line, if it exists */
|
||||||
|
if (end_size) {
|
||||||
|
command_line_push_word(end_size);
|
||||||
|
- free(end_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
start = part->geom.start;
|
||||||
|
@@ -1580,7 +1579,7 @@ do_resizepart (PedDevice** dev, PedDisk** diskp)
|
||||||
|
if (!command_line_get_sector (_("End?"), *dev, &end, &range_end, &end_input))
|
||||||
|
goto error;
|
||||||
|
_adjust_end_if_iec(&start, &end, range_end, end_input);
|
||||||
|
- free(end_input);
|
||||||
|
+
|
||||||
|
/* Do not move start of the partition */
|
||||||
|
constraint = constraint_from_start_end_fixed_start (*dev, start, range_end);
|
||||||
|
if (!ped_disk_set_partition_geom (disk, part, constraint,
|
||||||
|
@@ -1606,6 +1605,9 @@ error_destroy_constraint:
|
||||||
|
error:
|
||||||
|
if (range_end != NULL)
|
||||||
|
ped_geometry_destroy (range_end);
|
||||||
|
+ free(end_input);
|
||||||
|
+ free(end_size);
|
||||||
|
+
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
@ -4,7 +4,7 @@
|
|||||||
Summary: The GNU disk partition manipulation program
|
Summary: The GNU disk partition manipulation program
|
||||||
Name: parted
|
Name: parted
|
||||||
Version: 3.2
|
Version: 3.2
|
||||||
Release: 38%{?dist}
|
Release: 39%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
Group: Applications/System
|
Group: Applications/System
|
||||||
URL: http://www.gnu.org/software/parted
|
URL: http://www.gnu.org/software/parted
|
||||||
@ -112,6 +112,15 @@ Patch0088: 0088-linux.c-Use-sys-sysmacros.h-for-major-minor.patch
|
|||||||
Patch0089: 0089-t6000-dm-Stop-using-private-lvm-root.patch
|
Patch0089: 0089-t6000-dm-Stop-using-private-lvm-root.patch
|
||||||
Patch0090: 0090-libparted-s390-Re-enabled-virtio-attached-DASD-heuri.patch
|
Patch0090: 0090-libparted-s390-Re-enabled-virtio-attached-DASD-heuri.patch
|
||||||
|
|
||||||
|
# Fix resizepart command
|
||||||
|
Patch0091: 0091-libparted-Fix-endian-bug-in-bsd.c.patch
|
||||||
|
Patch0092: 0092-Fix-resizepart-iec-unit-end-sector.patch
|
||||||
|
Patch0093: 0093-tests-Test-incomplete-resizepart-command.patch
|
||||||
|
Patch0094: 0094-Fix-end_input-usage-in-do_resizepart.patch
|
||||||
|
Patch0095: 0095-parted-Preserve-resizepart-End-when-prompted-for-bus.patch
|
||||||
|
Patch0096: 0096-tests-Add-a-test-for-resizepart-on-a-busy-partition.patch
|
||||||
|
Patch0097: 0097-parted-Fix-memory-leaks-in-do_resizepart.patch
|
||||||
|
|
||||||
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: e2fsprogs-devel
|
BuildRequires: e2fsprogs-devel
|
||||||
@ -247,6 +256,20 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jul 07 2021 Brian C. Lane <bcl@redhat.com> - 3.2-39
|
||||||
|
- tests: Add a test for resizepart on a busy partition (bcl)
|
||||||
|
Related: rhbz#1861804
|
||||||
|
- parted: Preserve resizepart End when prompted for busy partition (bcl)
|
||||||
|
Resolves: rhbz#1861804
|
||||||
|
- Fix end_input usage in do_resizepart (bcl)
|
||||||
|
Related: rhbz#1861804
|
||||||
|
- tests: Test incomplete resizepart command (bcl)
|
||||||
|
Related: rhbz#1861804
|
||||||
|
- Fix resizepart iec unit end sector (psusi)
|
||||||
|
Related: rhbz#1861804
|
||||||
|
- libparted: Fix endian bug in bsd.c (AWilcox)
|
||||||
|
Resolves: rhbz#1980105
|
||||||
|
|
||||||
* Thu Sep 26 2019 Brian C. Lane <bcl@redhat.com> - 3.2-38
|
* Thu Sep 26 2019 Brian C. Lane <bcl@redhat.com> - 3.2-38
|
||||||
- libparted: Re-enabled virtio-attached DASD heuristics on s390
|
- libparted: Re-enabled virtio-attached DASD heuristics on s390
|
||||||
Resolves: rhbz#1750663
|
Resolves: rhbz#1750663
|
||||||
|
Loading…
Reference in New Issue
Block a user