- libparted: Fix handling of msdos partition types
- tests: Add a libparted test for ped_partition_set_system on msdos - parted: Add display of GPT UUIDs in JSON output - Add no_automount flag support - increase xfs size to 300M
This commit is contained in:
parent
8298c363a4
commit
7fc0182f62
@ -1,7 +1,7 @@
|
|||||||
From cec533a00a2cd0b64a7a0f5debc26554f6025831 Mon Sep 17 00:00:00 2001
|
From cec533a00a2cd0b64a7a0f5debc26554f6025831 Mon Sep 17 00:00:00 2001
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
Date: Mon, 18 Apr 2022 15:10:06 -0400
|
Date: Mon, 18 Apr 2022 15:10:06 -0400
|
||||||
Subject: [PATCH 1/5] maint: post-release administrivia
|
Subject: [PATCH 01/13] maint: post-release administrivia
|
||||||
|
|
||||||
* NEWS: Add header line for next release.
|
* NEWS: Add header line for next release.
|
||||||
* .prev-version: Record previous version.
|
* .prev-version: Record previous version.
|
||||||
@ -46,5 +46,5 @@ index d5fdd80..11fa51b 100644
|
|||||||
include $(srcdir)/dist-check.mk
|
include $(srcdir)/dist-check.mk
|
||||||
|
|
||||||
--
|
--
|
||||||
2.35.3
|
2.37.3
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 61b3a9733c0e0a79ccc43096642d378c8706add6 Mon Sep 17 00:00:00 2001
|
From 61b3a9733c0e0a79ccc43096642d378c8706add6 Mon Sep 17 00:00:00 2001
|
||||||
From: Arvin Schnell <aschnell@suse.com>
|
From: Arvin Schnell <aschnell@suse.com>
|
||||||
Date: Wed, 11 May 2022 14:02:21 +0000
|
Date: Wed, 11 May 2022 14:02:21 +0000
|
||||||
Subject: [PATCH 2/5] parted: add type command
|
Subject: [PATCH 02/13] parted: add type command
|
||||||
|
|
||||||
Include the partition type-id and type-uuid in the JSON
|
Include the partition type-id and type-uuid in the JSON
|
||||||
output. Also add the the command 'type' to set them. Remove
|
output. Also add the the command 'type' to set them. Remove
|
||||||
@ -1632,5 +1632,5 @@ index f2001c5..b35d443 100644
|
|||||||
|
|
||||||
for mode in on_only on_and_off ; do
|
for mode in on_only on_and_off ; do
|
||||||
--
|
--
|
||||||
2.35.3
|
2.37.3
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 29ffc6a1f285f48ac0b9efa7299373e486c486e8 Mon Sep 17 00:00:00 2001
|
From 29ffc6a1f285f48ac0b9efa7299373e486c486e8 Mon Sep 17 00:00:00 2001
|
||||||
From: Arvin Schnell <aschnell@suse.com>
|
From: Arvin Schnell <aschnell@suse.com>
|
||||||
Date: Fri, 8 Oct 2021 10:06:24 +0000
|
Date: Fri, 8 Oct 2021 10:06:24 +0000
|
||||||
Subject: [PATCH 3/5] libparted: add swap flag for DASD label
|
Subject: [PATCH 03/13] libparted: add swap flag for DASD label
|
||||||
|
|
||||||
Support the swap flag and fix reading flags from disk. Also
|
Support the swap flag and fix reading flags from disk. Also
|
||||||
cleanup code by dropping the 2 flags "raid" and "lvm" from
|
cleanup code by dropping the 2 flags "raid" and "lvm" from
|
||||||
@ -224,5 +224,5 @@ index 0c00c4f..27baad0 100644
|
|||||||
dasd_data->system = PARTITION_LINUX;
|
dasd_data->system = PARTITION_LINUX;
|
||||||
PDEBUG;
|
PDEBUG;
|
||||||
--
|
--
|
||||||
2.35.3
|
2.37.3
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 9b0a83a747b28bd1b778bdd32616e6f7ea88c84d Mon Sep 17 00:00:00 2001
|
From 9b0a83a747b28bd1b778bdd32616e6f7ea88c84d Mon Sep 17 00:00:00 2001
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
Date: Fri, 13 May 2022 10:02:06 -0700
|
Date: Fri, 13 May 2022 10:02:06 -0700
|
||||||
Subject: [PATCH 4/5] parted: Reset the filesystem type when changing the
|
Subject: [PATCH 04/13] parted: Reset the filesystem type when changing the
|
||||||
id/uuid
|
id/uuid
|
||||||
|
|
||||||
Without this the print command keeps showing the type selected with
|
Without this the print command keeps showing the type selected with
|
||||||
@ -26,5 +26,5 @@ index b8a4acf..96da30d 100644
|
|||||||
goto error;
|
goto error;
|
||||||
return 1;
|
return 1;
|
||||||
--
|
--
|
||||||
2.35.3
|
2.37.3
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From ac2a35c2214ef42352d0ddb4f7f4cb77d116e92e Mon Sep 17 00:00:00 2001
|
From ac2a35c2214ef42352d0ddb4f7f4cb77d116e92e Mon Sep 17 00:00:00 2001
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
Date: Fri, 13 May 2022 10:15:41 -0700
|
Date: Fri, 13 May 2022 10:15:41 -0700
|
||||||
Subject: [PATCH 5/5] tests: t3200-type-change now passes
|
Subject: [PATCH 05/13] tests: t3200-type-change now passes
|
||||||
|
|
||||||
---
|
---
|
||||||
tests/Makefile.am | 3 ---
|
tests/Makefile.am | 3 ---
|
||||||
@ -19,5 +19,5 @@ index 2da653b..1d109d7 100644
|
|||||||
SH_LOG_COMPILER = $(SHELL)
|
SH_LOG_COMPILER = $(SHELL)
|
||||||
|
|
||||||
--
|
--
|
||||||
2.35.3
|
2.37.3
|
||||||
|
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
From bafa84b25a265ef9eed3872790d52bf56ac42998 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Arvin Schnell <aschnell@suse.com>
|
||||||
|
Date: Wed, 27 Jul 2022 09:36:54 +0000
|
||||||
|
Subject: [PATCH 06/13] libparted: Fix check for availability of _type_id
|
||||||
|
functions
|
||||||
|
|
||||||
|
Fix a copy/paste error. In practice this didn't cause any problems
|
||||||
|
because the *_set_type_id and *_get_type_id are either both NULL or both
|
||||||
|
set to the function.
|
||||||
|
|
||||||
|
Signed-off-by: Brian C. Lane <bcl@redhat.com>
|
||||||
|
---
|
||||||
|
libparted/disk.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libparted/disk.c b/libparted/disk.c
|
||||||
|
index 22dff36..a961d65 100644
|
||||||
|
--- a/libparted/disk.c
|
||||||
|
+++ b/libparted/disk.c
|
||||||
|
@@ -1572,7 +1572,7 @@ ped_partition_get_type_id (const PedPartition *part)
|
||||||
|
if (!_assert_partition_type_id_feature (part->disk->type))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
- PED_ASSERT (part->disk->type->ops->partition_set_type_id != NULL);
|
||||||
|
+ PED_ASSERT (part->disk->type->ops->partition_get_type_id != NULL);
|
||||||
|
return part->disk->type->ops->partition_get_type_id (part);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1608,7 +1608,7 @@ ped_partition_get_type_uuid (const PedPartition *part)
|
||||||
|
if (!_assert_partition_type_uuid_feature (part->disk->type))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
- PED_ASSERT (part->disk->type->ops->partition_set_type_uuid != NULL);
|
||||||
|
+ PED_ASSERT (part->disk->type->ops->partition_get_type_uuid != NULL);
|
||||||
|
return part->disk->type->ops->partition_get_type_uuid (part);
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.37.3
|
||||||
|
|
34
0007-parted-Simplify-code-for-json-output.patch
Normal file
34
0007-parted-Simplify-code-for-json-output.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From b16be5ffc8e700df2b6b2545c4b6794cea71b8e7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Arvin Schnell <aschnell@suse.com>
|
||||||
|
Date: Wed, 27 Jul 2022 13:36:08 +0000
|
||||||
|
Subject: [PATCH 07/13] parted: Simplify code for json output
|
||||||
|
|
||||||
|
_PedDiskOps::get_max_primary_partition_count is always available, the
|
||||||
|
macro PT_op_function_initializers ensures it. So use
|
||||||
|
ped_disk_get_max_primary_partition_count instead of
|
||||||
|
_PedDiskOps::get_max_primary_partition_count directly.
|
||||||
|
|
||||||
|
Signed-off-by: Brian C. Lane <bcl@redhat.com>
|
||||||
|
---
|
||||||
|
parted/parted.c | 5 ++---
|
||||||
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/parted/parted.c b/parted/parted.c
|
||||||
|
index 96da30d..36c39c7 100644
|
||||||
|
--- a/parted/parted.c
|
||||||
|
+++ b/parted/parted.c
|
||||||
|
@@ -1215,9 +1215,8 @@ _print_disk_info (const PedDevice *dev, const PedDisk *diskp)
|
||||||
|
ul_jsonwrt_value_u64 (&json, "physical-sector-size", dev->phys_sector_size);
|
||||||
|
ul_jsonwrt_value_s (&json, "label", pt_name);
|
||||||
|
if (diskp) {
|
||||||
|
- if (diskp->type->ops->get_max_primary_partition_count)
|
||||||
|
- ul_jsonwrt_value_u64 (&json, "max-partitions",
|
||||||
|
- diskp->type->ops->get_max_primary_partition_count(diskp));
|
||||||
|
+ ul_jsonwrt_value_u64 (&json, "max-partitions",
|
||||||
|
+ ped_disk_get_max_primary_partition_count(diskp));
|
||||||
|
disk_print_flags_json (diskp);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
--
|
||||||
|
2.37.3
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From aa690ee275db86d1edb2468bcf31c3d7cf81228e Mon Sep 17 00:00:00 2001
|
From aa690ee275db86d1edb2468bcf31c3d7cf81228e Mon Sep 17 00:00:00 2001
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
Date: Thu, 4 Aug 2022 11:39:09 -0700
|
Date: Thu, 4 Aug 2022 11:39:09 -0700
|
||||||
Subject: [PATCH] disk.in.h: Remove use of enums with #define
|
Subject: [PATCH 08/13] disk.in.h: Remove use of enums with #define
|
||||||
|
|
||||||
The preprocessor doesn't evaluate the enum, so it ends up being 0, which
|
The preprocessor doesn't evaluate the enum, so it ends up being 0, which
|
||||||
causes problems for library users like pyparted which try to use the _LAST
|
causes problems for library users like pyparted which try to use the _LAST
|
||||||
@ -55,5 +55,5 @@ index 672c4ee..715637d 100644
|
|||||||
struct _PedDisk;
|
struct _PedDisk;
|
||||||
struct _PedPartition;
|
struct _PedPartition;
|
||||||
--
|
--
|
||||||
2.37.1
|
2.37.3
|
||||||
|
|
@ -1,160 +0,0 @@
|
|||||||
From 14cf5be3d322d7e3e81c21a3542ae046a5fe1fda Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
|
||||||
Date: Mon, 8 Aug 2022 13:49:09 -0700
|
|
||||||
Subject: [PATCH 08/10] tests: Add a libparted test for
|
|
||||||
ped_partition_set_system on gpt
|
|
||||||
|
|
||||||
Test the libparted API to make sure the flag is not cleared by calling
|
|
||||||
ped_partition_set_system.
|
|
||||||
---
|
|
||||||
libparted/tests/Makefile.am | 6 ++-
|
|
||||||
libparted/tests/flags.c | 81 ++++++++++++++++++++++++++++++++++
|
|
||||||
libparted/tests/t1001-flags.sh | 23 ++++++++++
|
|
||||||
3 files changed, 108 insertions(+), 2 deletions(-)
|
|
||||||
create mode 100644 libparted/tests/flags.c
|
|
||||||
create mode 100755 libparted/tests/t1001-flags.sh
|
|
||||||
|
|
||||||
diff --git a/libparted/tests/Makefile.am b/libparted/tests/Makefile.am
|
|
||||||
index fd5cba5..260b692 100644
|
|
||||||
--- a/libparted/tests/Makefile.am
|
|
||||||
+++ b/libparted/tests/Makefile.am
|
|
||||||
@@ -3,9 +3,10 @@
|
|
||||||
#
|
|
||||||
# This file may be modified and/or distributed without restriction.
|
|
||||||
|
|
||||||
-TESTS = t1000-label.sh t2000-disk.sh t2100-zerolen.sh t3000-symlink.sh t4000-volser.sh
|
|
||||||
+TESTS = t1000-label.sh t1001-flags.sh t2000-disk.sh t2100-zerolen.sh \
|
|
||||||
+ t3000-symlink.sh t4000-volser.sh
|
|
||||||
EXTRA_DIST = $(TESTS)
|
|
||||||
-check_PROGRAMS = label disk zerolen symlink volser
|
|
||||||
+check_PROGRAMS = label disk zerolen symlink volser flags
|
|
||||||
AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
|
|
||||||
|
|
||||||
LDADD = \
|
|
||||||
@@ -24,6 +25,7 @@ disk_SOURCES = common.h common.c disk.c
|
|
||||||
zerolen_SOURCES = common.h common.c zerolen.c
|
|
||||||
symlink_SOURCES = common.h common.c symlink.c
|
|
||||||
volser_SOURCES = common.h common.c volser.c
|
|
||||||
+flags_SOURCES = common.h common.c flags.c
|
|
||||||
|
|
||||||
# Arrange to symlink to tests/init.sh.
|
|
||||||
CLEANFILES = init.sh
|
|
||||||
diff --git a/libparted/tests/flags.c b/libparted/tests/flags.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..c83a361
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/libparted/tests/flags.c
|
|
||||||
@@ -0,0 +1,81 @@
|
|
||||||
+#include <config.h>
|
|
||||||
+#include <unistd.h>
|
|
||||||
+
|
|
||||||
+#include <check.h>
|
|
||||||
+
|
|
||||||
+#include <parted/parted.h>
|
|
||||||
+
|
|
||||||
+#include "common.h"
|
|
||||||
+#include "progname.h"
|
|
||||||
+
|
|
||||||
+#define STREQ(a, b) (strcmp (a, b) == 0)
|
|
||||||
+
|
|
||||||
+static char* temporary_disk;
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+create_disk (void)
|
|
||||||
+{
|
|
||||||
+ temporary_disk = _create_disk (80 * 1024 * 1024);
|
|
||||||
+ fail_if (temporary_disk == NULL, "Failed to create temporary disk");
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+destroy_disk (void)
|
|
||||||
+{
|
|
||||||
+ unlink (temporary_disk);
|
|
||||||
+ free (temporary_disk);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* TEST: Test partition type flag on gpt disklabel */
|
|
||||||
+START_TEST (test_gpt_flag)
|
|
||||||
+{
|
|
||||||
+ PedDevice* dev = ped_device_get (temporary_disk);
|
|
||||||
+ if (dev == NULL)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ PedDisk* disk = ped_disk_new_fresh (dev, ped_disk_type_get ("gpt"));
|
|
||||||
+ PedConstraint *constraint = ped_constraint_any (dev);
|
|
||||||
+ PedPartition *part = ped_partition_new (disk, PED_PARTITION_NORMAL,
|
|
||||||
+ ped_file_system_type_get("ext4"), 2048, 4096);
|
|
||||||
+ ped_partition_set_flag(part, PED_PARTITION_BIOS_GRUB, 1);
|
|
||||||
+ // Type should remain set to BIOS_GRUB
|
|
||||||
+ ped_partition_set_system(part, ped_file_system_type_get("ext4"));
|
|
||||||
+
|
|
||||||
+ ped_disk_add_partition (disk, part, constraint);
|
|
||||||
+ ped_disk_commit (disk);
|
|
||||||
+ ped_constraint_destroy (constraint);
|
|
||||||
+
|
|
||||||
+ // Check flag to confirm it is still set
|
|
||||||
+ part = ped_disk_get_partition (disk, 1);
|
|
||||||
+ fail_if (ped_partition_get_flag(part, PED_PARTITION_BIOS_GRUB) != 1, "BIOS_GRUB flag not set");
|
|
||||||
+
|
|
||||||
+ ped_disk_destroy (disk);
|
|
||||||
+ ped_device_destroy (dev);
|
|
||||||
+}
|
|
||||||
+END_TEST
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main (int argc, char **argv)
|
|
||||||
+{
|
|
||||||
+ set_program_name (argv[0]);
|
|
||||||
+ int number_failed;
|
|
||||||
+ Suite* suite = suite_create ("Partition Flags");
|
|
||||||
+ TCase* tcase_gpt = tcase_create ("GPT");
|
|
||||||
+
|
|
||||||
+ /* Fail when an exception is raised */
|
|
||||||
+ ped_exception_set_handler (_test_exception_handler);
|
|
||||||
+
|
|
||||||
+ tcase_add_checked_fixture (tcase_gpt, create_disk, destroy_disk);
|
|
||||||
+ tcase_add_test (tcase_gpt, test_gpt_flag);
|
|
||||||
+ /* Disable timeout for this test */
|
|
||||||
+ tcase_set_timeout (tcase_gpt, 0);
|
|
||||||
+ suite_add_tcase (suite, tcase_gpt);
|
|
||||||
+
|
|
||||||
+ SRunner* srunner = srunner_create (suite);
|
|
||||||
+ srunner_run_all (srunner, CK_VERBOSE);
|
|
||||||
+
|
|
||||||
+ number_failed = srunner_ntests_failed (srunner);
|
|
||||||
+ srunner_free (srunner);
|
|
||||||
+
|
|
||||||
+ return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
|
|
||||||
+}
|
|
||||||
diff --git a/libparted/tests/t1001-flags.sh b/libparted/tests/t1001-flags.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..60a6248
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/libparted/tests/t1001-flags.sh
|
|
||||||
@@ -0,0 +1,23 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# run the flags unittest
|
|
||||||
+
|
|
||||||
+# Copyright (C) 2007-2014, 2019-2022 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
|
|
||||||
+# the Free Software Foundation; either version 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+
|
|
||||||
+# This program is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+. "${top_srcdir=../..}/tests/init.sh"; path_prepend_ .
|
|
||||||
+
|
|
||||||
+flags || fail=1
|
|
||||||
+
|
|
||||||
+Exit $fail
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 717d39a0a16b6fddfac65cf355a895d04995cdff Mon Sep 17 00:00:00 2001
|
From 8957382b98fd79bc06dad132ef28a0be8b46ea16 Mon Sep 17 00:00:00 2001
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
Date: Mon, 8 Aug 2022 12:04:32 -0700
|
Date: Mon, 8 Aug 2022 12:04:32 -0700
|
||||||
Subject: [PATCH 07/10] libparted: Fix handling of gpt partition types
|
Subject: [PATCH 09/13] libparted: Fix handling of gpt partition types
|
||||||
|
|
||||||
This restores the previous behavior by testing the GUID against the list
|
This restores the previous behavior by testing the GUID against the list
|
||||||
of known types and skipping the filesystem GUID reset. Now the sequence
|
of known types and skipping the filesystem GUID reset. Now the sequence
|
||||||
@ -97,5 +97,5 @@ index 0e9e060..8e6a37d 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.37.1
|
2.37.3
|
||||||
|
|
@ -1,35 +1,90 @@
|
|||||||
From 7830678dbe832ea6815d9a31be8cbe3a67f3ed7e Mon Sep 17 00:00:00 2001
|
From d50b7bf2b66b7b67ee332c1af63bc1f5fdfba7ad Mon Sep 17 00:00:00 2001
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
Date: Mon, 8 Aug 2022 15:06:03 -0700
|
Date: Mon, 8 Aug 2022 13:49:09 -0700
|
||||||
Subject: [PATCH 10/10] tests: Add a libparted test for
|
Subject: [PATCH 10/13] tests: Add a libparted test for
|
||||||
ped_partition_set_system on msdos
|
ped_partition_set_system on gpt
|
||||||
|
|
||||||
Test the libparted API to make sure the flag is not cleared by calling
|
Test the libparted API to make sure the flag is not cleared by calling
|
||||||
ped_partition_set_system.
|
ped_partition_set_system.
|
||||||
---
|
---
|
||||||
libparted/tests/flags.c | 35 +++++++++++++++++++++++++++++++++++
|
libparted/tests/Makefile.am | 6 ++-
|
||||||
1 file changed, 35 insertions(+)
|
libparted/tests/flags.c | 81 ++++++++++++++++++++++++++++++++++
|
||||||
|
libparted/tests/t1001-flags.sh | 23 ++++++++++
|
||||||
|
3 files changed, 108 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 libparted/tests/flags.c
|
||||||
|
create mode 100755 libparted/tests/t1001-flags.sh
|
||||||
|
|
||||||
diff --git a/libparted/tests/flags.c b/libparted/tests/flags.c
|
diff --git a/libparted/tests/Makefile.am b/libparted/tests/Makefile.am
|
||||||
index c83a361..c4b290b 100644
|
index fd5cba5..260b692 100644
|
||||||
--- a/libparted/tests/flags.c
|
--- a/libparted/tests/Makefile.am
|
||||||
+++ b/libparted/tests/flags.c
|
+++ b/libparted/tests/Makefile.am
|
||||||
@@ -54,6 +54,34 @@ START_TEST (test_gpt_flag)
|
@@ -3,9 +3,10 @@
|
||||||
}
|
#
|
||||||
END_TEST
|
# This file may be modified and/or distributed without restriction.
|
||||||
|
|
||||||
+/* TEST: Test partition type flag on msdos disklabel */
|
-TESTS = t1000-label.sh t2000-disk.sh t2100-zerolen.sh t3000-symlink.sh t4000-volser.sh
|
||||||
+START_TEST (test_msdos_flag)
|
+TESTS = t1000-label.sh t1001-flags.sh t2000-disk.sh t2100-zerolen.sh \
|
||||||
|
+ t3000-symlink.sh t4000-volser.sh
|
||||||
|
EXTRA_DIST = $(TESTS)
|
||||||
|
-check_PROGRAMS = label disk zerolen symlink volser
|
||||||
|
+check_PROGRAMS = label disk zerolen symlink volser flags
|
||||||
|
AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
|
||||||
|
|
||||||
|
LDADD = \
|
||||||
|
@@ -24,6 +25,7 @@ disk_SOURCES = common.h common.c disk.c
|
||||||
|
zerolen_SOURCES = common.h common.c zerolen.c
|
||||||
|
symlink_SOURCES = common.h common.c symlink.c
|
||||||
|
volser_SOURCES = common.h common.c volser.c
|
||||||
|
+flags_SOURCES = common.h common.c flags.c
|
||||||
|
|
||||||
|
# Arrange to symlink to tests/init.sh.
|
||||||
|
CLEANFILES = init.sh
|
||||||
|
diff --git a/libparted/tests/flags.c b/libparted/tests/flags.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..c83a361
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/libparted/tests/flags.c
|
||||||
|
@@ -0,0 +1,81 @@
|
||||||
|
+#include <config.h>
|
||||||
|
+#include <unistd.h>
|
||||||
|
+
|
||||||
|
+#include <check.h>
|
||||||
|
+
|
||||||
|
+#include <parted/parted.h>
|
||||||
|
+
|
||||||
|
+#include "common.h"
|
||||||
|
+#include "progname.h"
|
||||||
|
+
|
||||||
|
+#define STREQ(a, b) (strcmp (a, b) == 0)
|
||||||
|
+
|
||||||
|
+static char* temporary_disk;
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+create_disk (void)
|
||||||
|
+{
|
||||||
|
+ temporary_disk = _create_disk (80 * 1024 * 1024);
|
||||||
|
+ fail_if (temporary_disk == NULL, "Failed to create temporary disk");
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+destroy_disk (void)
|
||||||
|
+{
|
||||||
|
+ unlink (temporary_disk);
|
||||||
|
+ free (temporary_disk);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/* TEST: Test partition type flag on gpt disklabel */
|
||||||
|
+START_TEST (test_gpt_flag)
|
||||||
+{
|
+{
|
||||||
+ PedDevice* dev = ped_device_get (temporary_disk);
|
+ PedDevice* dev = ped_device_get (temporary_disk);
|
||||||
+ if (dev == NULL)
|
+ if (dev == NULL)
|
||||||
+ return;
|
+ return;
|
||||||
+
|
+
|
||||||
+ PedDisk* disk = ped_disk_new_fresh (dev, ped_disk_type_get ("msdos"));
|
+ PedDisk* disk = ped_disk_new_fresh (dev, ped_disk_type_get ("gpt"));
|
||||||
+ PedConstraint *constraint = ped_constraint_any (dev);
|
+ PedConstraint *constraint = ped_constraint_any (dev);
|
||||||
+ PedPartition *part = ped_partition_new (disk, PED_PARTITION_NORMAL,
|
+ PedPartition *part = ped_partition_new (disk, PED_PARTITION_NORMAL,
|
||||||
+ ped_file_system_type_get("ext4"), 2048, 4096);
|
+ ped_file_system_type_get("ext4"), 2048, 4096);
|
||||||
+ ped_partition_set_flag(part, PED_PARTITION_BLS_BOOT, 1);
|
+ ped_partition_set_flag(part, PED_PARTITION_BIOS_GRUB, 1);
|
||||||
+ // Type should remain set to BIOS_GRUB
|
+ // Type should remain set to BIOS_GRUB
|
||||||
+ ped_partition_set_system(part, ped_file_system_type_get("ext4"));
|
+ ped_partition_set_system(part, ped_file_system_type_get("ext4"));
|
||||||
+
|
+
|
||||||
@ -39,37 +94,67 @@ index c83a361..c4b290b 100644
|
|||||||
+
|
+
|
||||||
+ // Check flag to confirm it is still set
|
+ // Check flag to confirm it is still set
|
||||||
+ part = ped_disk_get_partition (disk, 1);
|
+ part = ped_disk_get_partition (disk, 1);
|
||||||
+ fail_if (ped_partition_get_flag(part, PED_PARTITION_BLS_BOOT) != 1, "BLS_BOOT flag not set");
|
+ fail_if (ped_partition_get_flag(part, PED_PARTITION_BIOS_GRUB) != 1, "BIOS_GRUB flag not set");
|
||||||
+
|
+
|
||||||
+ ped_disk_destroy (disk);
|
+ ped_disk_destroy (disk);
|
||||||
+ ped_device_destroy (dev);
|
+ ped_device_destroy (dev);
|
||||||
+}
|
+}
|
||||||
+END_TEST
|
+END_TEST
|
||||||
+
|
+
|
||||||
int
|
+int
|
||||||
main (int argc, char **argv)
|
+main (int argc, char **argv)
|
||||||
{
|
+{
|
||||||
@@ -61,6 +89,7 @@ main (int argc, char **argv)
|
+ set_program_name (argv[0]);
|
||||||
int number_failed;
|
+ int number_failed;
|
||||||
Suite* suite = suite_create ("Partition Flags");
|
+ Suite* suite = suite_create ("Partition Flags");
|
||||||
TCase* tcase_gpt = tcase_create ("GPT");
|
+ TCase* tcase_gpt = tcase_create ("GPT");
|
||||||
+ TCase* tcase_msdos = tcase_create ("MSDOS");
|
|
||||||
|
|
||||||
/* Fail when an exception is raised */
|
|
||||||
ped_exception_set_handler (_test_exception_handler);
|
|
||||||
@@ -71,6 +100,12 @@ main (int argc, char **argv)
|
|
||||||
tcase_set_timeout (tcase_gpt, 0);
|
|
||||||
suite_add_tcase (suite, tcase_gpt);
|
|
||||||
|
|
||||||
+ tcase_add_checked_fixture (tcase_msdos, create_disk, destroy_disk);
|
|
||||||
+ tcase_add_test (tcase_msdos, test_msdos_flag);
|
|
||||||
+ /* Disable timeout for this test */
|
|
||||||
+ tcase_set_timeout (tcase_msdos, 0);
|
|
||||||
+ suite_add_tcase (suite, tcase_msdos);
|
|
||||||
+
|
+
|
||||||
SRunner* srunner = srunner_create (suite);
|
+ /* Fail when an exception is raised */
|
||||||
srunner_run_all (srunner, CK_VERBOSE);
|
+ ped_exception_set_handler (_test_exception_handler);
|
||||||
|
+
|
||||||
|
+ tcase_add_checked_fixture (tcase_gpt, create_disk, destroy_disk);
|
||||||
|
+ tcase_add_test (tcase_gpt, test_gpt_flag);
|
||||||
|
+ /* Disable timeout for this test */
|
||||||
|
+ tcase_set_timeout (tcase_gpt, 0);
|
||||||
|
+ suite_add_tcase (suite, tcase_gpt);
|
||||||
|
+
|
||||||
|
+ SRunner* srunner = srunner_create (suite);
|
||||||
|
+ srunner_run_all (srunner, CK_VERBOSE);
|
||||||
|
+
|
||||||
|
+ number_failed = srunner_ntests_failed (srunner);
|
||||||
|
+ srunner_free (srunner);
|
||||||
|
+
|
||||||
|
+ return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||||
|
+}
|
||||||
|
diff --git a/libparted/tests/t1001-flags.sh b/libparted/tests/t1001-flags.sh
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..60a6248
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/libparted/tests/t1001-flags.sh
|
||||||
|
@@ -0,0 +1,23 @@
|
||||||
|
+#!/bin/sh
|
||||||
|
+# run the flags unittest
|
||||||
|
+
|
||||||
|
+# Copyright (C) 2007-2014, 2019-2022 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
|
||||||
|
+# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
+# (at your option) any later version.
|
||||||
|
+
|
||||||
|
+# This program is distributed in the hope that it will be useful,
|
||||||
|
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+# GNU General Public License for more details.
|
||||||
|
+
|
||||||
|
+# You should have received a copy of the GNU General Public License
|
||||||
|
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
+
|
||||||
|
+. "${top_srcdir=../..}/tests/init.sh"; path_prepend_ .
|
||||||
|
+
|
||||||
|
+flags || fail=1
|
||||||
|
+
|
||||||
|
+Exit $fail
|
||||||
--
|
--
|
||||||
2.37.1
|
2.37.3
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 9be9067bc5a3641fc890b0d4ba994000941109bf Mon Sep 17 00:00:00 2001
|
From 4a0e468ed63fff85a1f9b923189f20945b32f4f1 Mon Sep 17 00:00:00 2001
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
Date: Mon, 8 Aug 2022 15:02:30 -0700
|
Date: Mon, 8 Aug 2022 15:02:30 -0700
|
||||||
Subject: [PATCH 09/10] libparted: Fix handling of msdos partition types
|
Subject: [PATCH 11/13] libparted: Fix handling of msdos partition types
|
||||||
|
|
||||||
This restores the previous behavior by testing the partition type
|
This restores the previous behavior by testing the partition type
|
||||||
against the list of known types and skipping the filesystem type reset.
|
against the list of known types and skipping the filesystem type reset.
|
||||||
@ -105,5 +105,5 @@ index bd7465d..4359276 100644
|
|||||||
|
|
||||||
switch (flag) {
|
switch (flag) {
|
||||||
--
|
--
|
||||||
2.37.1
|
2.37.3
|
||||||
|
|
@ -0,0 +1,75 @@
|
|||||||
|
From 8f37b28825933af9bbbac7f00cc7e23f916c7018 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
|
Date: Mon, 8 Aug 2022 15:06:03 -0700
|
||||||
|
Subject: [PATCH 12/13] tests: Add a libparted test for
|
||||||
|
ped_partition_set_system on msdos
|
||||||
|
|
||||||
|
Test the libparted API to make sure the flag is not cleared by calling
|
||||||
|
ped_partition_set_system.
|
||||||
|
---
|
||||||
|
libparted/tests/flags.c | 35 +++++++++++++++++++++++++++++++++++
|
||||||
|
1 file changed, 35 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/libparted/tests/flags.c b/libparted/tests/flags.c
|
||||||
|
index c83a361..c4b290b 100644
|
||||||
|
--- a/libparted/tests/flags.c
|
||||||
|
+++ b/libparted/tests/flags.c
|
||||||
|
@@ -54,6 +54,34 @@ START_TEST (test_gpt_flag)
|
||||||
|
}
|
||||||
|
END_TEST
|
||||||
|
|
||||||
|
+/* TEST: Test partition type flag on msdos disklabel */
|
||||||
|
+START_TEST (test_msdos_flag)
|
||||||
|
+{
|
||||||
|
+ PedDevice* dev = ped_device_get (temporary_disk);
|
||||||
|
+ if (dev == NULL)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ PedDisk* disk = ped_disk_new_fresh (dev, ped_disk_type_get ("msdos"));
|
||||||
|
+ PedConstraint *constraint = ped_constraint_any (dev);
|
||||||
|
+ PedPartition *part = ped_partition_new (disk, PED_PARTITION_NORMAL,
|
||||||
|
+ ped_file_system_type_get("ext4"), 2048, 4096);
|
||||||
|
+ ped_partition_set_flag(part, PED_PARTITION_BLS_BOOT, 1);
|
||||||
|
+ // Type should remain set to BIOS_GRUB
|
||||||
|
+ ped_partition_set_system(part, ped_file_system_type_get("ext4"));
|
||||||
|
+
|
||||||
|
+ ped_disk_add_partition (disk, part, constraint);
|
||||||
|
+ ped_disk_commit (disk);
|
||||||
|
+ ped_constraint_destroy (constraint);
|
||||||
|
+
|
||||||
|
+ // Check flag to confirm it is still set
|
||||||
|
+ part = ped_disk_get_partition (disk, 1);
|
||||||
|
+ fail_if (ped_partition_get_flag(part, PED_PARTITION_BLS_BOOT) != 1, "BLS_BOOT flag not set");
|
||||||
|
+
|
||||||
|
+ ped_disk_destroy (disk);
|
||||||
|
+ ped_device_destroy (dev);
|
||||||
|
+}
|
||||||
|
+END_TEST
|
||||||
|
+
|
||||||
|
int
|
||||||
|
main (int argc, char **argv)
|
||||||
|
{
|
||||||
|
@@ -61,6 +89,7 @@ main (int argc, char **argv)
|
||||||
|
int number_failed;
|
||||||
|
Suite* suite = suite_create ("Partition Flags");
|
||||||
|
TCase* tcase_gpt = tcase_create ("GPT");
|
||||||
|
+ TCase* tcase_msdos = tcase_create ("MSDOS");
|
||||||
|
|
||||||
|
/* Fail when an exception is raised */
|
||||||
|
ped_exception_set_handler (_test_exception_handler);
|
||||||
|
@@ -71,6 +100,12 @@ main (int argc, char **argv)
|
||||||
|
tcase_set_timeout (tcase_gpt, 0);
|
||||||
|
suite_add_tcase (suite, tcase_gpt);
|
||||||
|
|
||||||
|
+ tcase_add_checked_fixture (tcase_msdos, create_disk, destroy_disk);
|
||||||
|
+ tcase_add_test (tcase_msdos, test_msdos_flag);
|
||||||
|
+ /* Disable timeout for this test */
|
||||||
|
+ tcase_set_timeout (tcase_msdos, 0);
|
||||||
|
+ suite_add_tcase (suite, tcase_msdos);
|
||||||
|
+
|
||||||
|
SRunner* srunner = srunner_create (suite);
|
||||||
|
srunner_run_all (srunner, CK_VERBOSE);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.37.3
|
||||||
|
|
351
0013-show-GPT-UUIDs-in-JSON-output.patch
Normal file
351
0013-show-GPT-UUIDs-in-JSON-output.patch
Normal file
@ -0,0 +1,351 @@
|
|||||||
|
From 2194035fc0fe678472d279676a13511769f7ef20 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Arvin Schnell <aschnell@suse.com>
|
||||||
|
Date: Thu, 28 Jul 2022 09:20:09 +0000
|
||||||
|
Subject: [PATCH 13/13] show GPT UUIDs in JSON output
|
||||||
|
|
||||||
|
Include GPT UUIDs in JSON output.
|
||||||
|
---
|
||||||
|
include/parted/disk.in.h | 13 ++++++--
|
||||||
|
libparted/disk.c | 64 ++++++++++++++++++++++++++++++++++++++++
|
||||||
|
libparted/labels/gpt.c | 40 ++++++++++++++++++++++++-
|
||||||
|
parted/parted.c | 18 +++++++++++
|
||||||
|
tests/t0800-json-gpt.sh | 7 +++--
|
||||||
|
tests/t0900-type-gpt.sh | 8 +++--
|
||||||
|
6 files changed, 142 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/include/parted/disk.in.h b/include/parted/disk.in.h
|
||||||
|
index 715637d..f649bcc 100644
|
||||||
|
--- a/include/parted/disk.in.h
|
||||||
|
+++ b/include/parted/disk.in.h
|
||||||
|
@@ -98,10 +98,12 @@ enum _PedDiskTypeFeature {
|
||||||
|
PED_DISK_TYPE_PARTITION_NAME=2, /**< supports partition names */
|
||||||
|
PED_DISK_TYPE_PARTITION_TYPE_ID=4, /**< supports partition type-ids */
|
||||||
|
PED_DISK_TYPE_PARTITION_TYPE_UUID=8, /**< supports partition type-uuids */
|
||||||
|
+ PED_DISK_TYPE_DISK_UUID=16, /**< supports disk uuids */
|
||||||
|
+ PED_DISK_TYPE_PARTITION_UUID=32, /**< supports partition uuids */
|
||||||
|
};
|
||||||
|
// NOTE: DO NOT define using enums
|
||||||
|
-#define PED_DISK_TYPE_FIRST_FEATURE 1 // PED_DISK_TYPE_EXTENDED
|
||||||
|
-#define PED_DISK_TYPE_LAST_FEATURE 8 // PED_DISK_TYPE_PARTITION_TYPE_UUID
|
||||||
|
+#define PED_DISK_TYPE_FIRST_FEATURE 1 // PED_DISK_TYPE_EXTENDED
|
||||||
|
+#define PED_DISK_TYPE_LAST_FEATURE 32 // PED_DISK_TYPE_PARTITION_UUID
|
||||||
|
|
||||||
|
struct _PedDisk;
|
||||||
|
struct _PedPartition;
|
||||||
|
@@ -228,6 +230,7 @@ struct _PedDiskOps {
|
||||||
|
int (*disk_is_flag_available) (
|
||||||
|
const PedDisk *disk,
|
||||||
|
PedDiskFlag flag);
|
||||||
|
+ uint8_t* (*disk_get_uuid) (const PedDisk* disk);
|
||||||
|
/** \todo add label guessing op here */
|
||||||
|
|
||||||
|
/* partition operations */
|
||||||
|
@@ -260,6 +263,8 @@ struct _PedDiskOps {
|
||||||
|
int (*partition_set_type_uuid) (PedPartition* part, const uint8_t* uuid);
|
||||||
|
uint8_t* (*partition_get_type_uuid) (const PedPartition* part);
|
||||||
|
|
||||||
|
+ uint8_t* (*partition_get_uuid) (const PedPartition* part);
|
||||||
|
+
|
||||||
|
int (*partition_align) (PedPartition* part,
|
||||||
|
const PedConstraint* constraint);
|
||||||
|
int (*partition_enumerate) (PedPartition* part);
|
||||||
|
@@ -331,6 +336,8 @@ extern int ped_disk_set_flag(PedDisk *disk, PedDiskFlag flag, int state);
|
||||||
|
extern int ped_disk_get_flag(const PedDisk *disk, PedDiskFlag flag);
|
||||||
|
extern int ped_disk_is_flag_available(const PedDisk *disk, PedDiskFlag flag);
|
||||||
|
|
||||||
|
+extern uint8_t* ped_disk_get_uuid (const PedDisk* disk);
|
||||||
|
+
|
||||||
|
extern const char *ped_disk_flag_get_name(PedDiskFlag flag);
|
||||||
|
extern PedDiskFlag ped_disk_flag_get_by_name(const char *name);
|
||||||
|
extern PedDiskFlag ped_disk_flag_next(PedDiskFlag flag) _GL_ATTRIBUTE_CONST;
|
||||||
|
@@ -367,6 +374,8 @@ extern uint8_t ped_partition_get_type_id (const PedPartition* part);
|
||||||
|
extern int ped_partition_set_type_uuid (PedPartition* part, const uint8_t* uuid);
|
||||||
|
extern uint8_t* ped_partition_get_type_uuid (const PedPartition* part);
|
||||||
|
|
||||||
|
+extern uint8_t* ped_partition_get_uuid (const PedPartition* part);
|
||||||
|
+
|
||||||
|
extern int ped_partition_is_busy (const PedPartition* part);
|
||||||
|
extern char* ped_partition_get_path (const PedPartition* part);
|
||||||
|
|
||||||
|
diff --git a/libparted/disk.c b/libparted/disk.c
|
||||||
|
index a961d65..0ed3d91 100644
|
||||||
|
--- a/libparted/disk.c
|
||||||
|
+++ b/libparted/disk.c
|
||||||
|
@@ -886,6 +886,37 @@ ped_disk_flag_next(PedDiskFlag flag)
|
||||||
|
return (flag + 1) % (PED_DISK_LAST_FLAG + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int
|
||||||
|
+_assert_disk_uuid_feature (const PedDiskType* disk_type)
|
||||||
|
+{
|
||||||
|
+ if (!ped_disk_type_check_feature (
|
||||||
|
+ disk_type, PED_DISK_TYPE_DISK_UUID)) {
|
||||||
|
+ ped_exception_throw (
|
||||||
|
+ PED_EXCEPTION_ERROR,
|
||||||
|
+ PED_EXCEPTION_CANCEL,
|
||||||
|
+ "%s disk labels do not support disk uuids.",
|
||||||
|
+ disk_type->name);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * Get the uuid of the disk \p disk. This will only work if the disk label
|
||||||
|
+ * supports it.
|
||||||
|
+ */
|
||||||
|
+uint8_t*
|
||||||
|
+ped_disk_get_uuid (const PedDisk *disk)
|
||||||
|
+{
|
||||||
|
+ PED_ASSERT (disk != NULL);
|
||||||
|
+
|
||||||
|
+ if (!_assert_disk_uuid_feature (disk->type))
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
+ PED_ASSERT (disk->type->ops->disk_get_uuid != NULL);
|
||||||
|
+ return disk->type->ops->disk_get_uuid (disk);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* \internal We turned a really nasty bureaucracy problem into an elegant maths
|
||||||
|
* problem :-) Basically, there are some constraints to a partition's
|
||||||
|
@@ -1488,6 +1519,21 @@ _assert_partition_type_uuid_feature (const PedDiskType* disk_type)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int
|
||||||
|
+_assert_partition_uuid_feature (const PedDiskType* disk_type)
|
||||||
|
+{
|
||||||
|
+ if (!ped_disk_type_check_feature (
|
||||||
|
+ disk_type, PED_DISK_TYPE_PARTITION_UUID)) {
|
||||||
|
+ ped_exception_throw (
|
||||||
|
+ PED_EXCEPTION_ERROR,
|
||||||
|
+ PED_EXCEPTION_CANCEL,
|
||||||
|
+ "%s disk labels do not support partition uuids.",
|
||||||
|
+ disk_type->name);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* Sets the name of a partition.
|
||||||
|
*
|
||||||
|
@@ -1612,6 +1658,24 @@ ped_partition_get_type_uuid (const PedPartition *part)
|
||||||
|
return part->disk->type->ops->partition_get_type_uuid (part);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ * Get the uuid of the partition \p part. This will only work if the disk label
|
||||||
|
+ * supports it.
|
||||||
|
+ */
|
||||||
|
+uint8_t*
|
||||||
|
+ped_partition_get_uuid (const PedPartition *part)
|
||||||
|
+{
|
||||||
|
+ PED_ASSERT (part != NULL);
|
||||||
|
+ PED_ASSERT (part->disk != NULL);
|
||||||
|
+ PED_ASSERT (ped_partition_is_active (part));
|
||||||
|
+
|
||||||
|
+ if (!_assert_partition_uuid_feature (part->disk->type))
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
+ PED_ASSERT (part->disk->type->ops->partition_get_uuid != NULL);
|
||||||
|
+ return part->disk->type->ops->partition_get_uuid (part);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
|
||||||
|
index 8e6a37d..1993863 100644
|
||||||
|
--- a/libparted/labels/gpt.c
|
||||||
|
+++ b/libparted/labels/gpt.c
|
||||||
|
@@ -1576,6 +1576,24 @@ gpt_disk_is_flag_available(const PedDisk *disk, PedDiskFlag flag)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+static uint8_t*
|
||||||
|
+gpt_disk_get_uuid (const PedDisk *disk)
|
||||||
|
+{
|
||||||
|
+ GPTDiskData *gpt_disk_data = disk->disk_specific;
|
||||||
|
+
|
||||||
|
+ efi_guid_t uuid = gpt_disk_data->uuid;
|
||||||
|
+
|
||||||
|
+ /* uuid is always LE, while uint8_t is always kind of BE */
|
||||||
|
+
|
||||||
|
+ uuid.time_low = PED_SWAP32(uuid.time_low);
|
||||||
|
+ uuid.time_mid = PED_SWAP16(uuid.time_mid);
|
||||||
|
+ uuid.time_hi_and_version = PED_SWAP16(uuid.time_hi_and_version);
|
||||||
|
+
|
||||||
|
+ uint8_t *buf = ped_malloc(sizeof (uuid_t));
|
||||||
|
+ memcpy(buf, &uuid, sizeof (uuid_t));
|
||||||
|
+ return buf;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int
|
||||||
|
gpt_disk_get_flag (const PedDisk *disk, PedDiskFlag flag)
|
||||||
|
{
|
||||||
|
@@ -1764,6 +1782,23 @@ gpt_partition_get_type_uuid (const PedPartition *part)
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static uint8_t*
|
||||||
|
+gpt_partition_get_uuid (const PedPartition *part)
|
||||||
|
+{
|
||||||
|
+ const GPTPartitionData *gpt_part_data = part->disk_specific;
|
||||||
|
+
|
||||||
|
+ efi_guid_t uuid = gpt_part_data->uuid;
|
||||||
|
+
|
||||||
|
+ /* uuid is always LE, while uint8_t is always kind of BE */
|
||||||
|
+
|
||||||
|
+ uuid.time_low = PED_SWAP32(uuid.time_low);
|
||||||
|
+ uuid.time_mid = PED_SWAP16(uuid.time_mid);
|
||||||
|
+ uuid.time_hi_and_version = PED_SWAP16(uuid.time_hi_and_version);
|
||||||
|
+
|
||||||
|
+ uint8_t *buf = ped_malloc(sizeof (uuid_t));
|
||||||
|
+ memcpy(buf, &uuid, sizeof (uuid_t));
|
||||||
|
+ return buf;
|
||||||
|
+}
|
||||||
|
|
||||||
|
static int
|
||||||
|
gpt_get_max_primary_partition_count (const PedDisk *disk)
|
||||||
|
@@ -1864,9 +1899,11 @@ static PedDiskOps gpt_disk_ops =
|
||||||
|
partition_get_type_id: NULL,
|
||||||
|
partition_set_type_uuid: gpt_partition_set_type_uuid,
|
||||||
|
partition_get_type_uuid: gpt_partition_get_type_uuid,
|
||||||
|
+ partition_get_uuid: gpt_partition_get_uuid,
|
||||||
|
disk_set_flag: gpt_disk_set_flag,
|
||||||
|
disk_get_flag: gpt_disk_get_flag,
|
||||||
|
disk_is_flag_available: gpt_disk_is_flag_available,
|
||||||
|
+ disk_get_uuid: gpt_disk_get_uuid,
|
||||||
|
|
||||||
|
PT_op_function_initializers (gpt)
|
||||||
|
};
|
||||||
|
@@ -1876,7 +1913,8 @@ static PedDiskType gpt_disk_type =
|
||||||
|
next: NULL,
|
||||||
|
name: "gpt",
|
||||||
|
ops: &gpt_disk_ops,
|
||||||
|
- features: PED_DISK_TYPE_PARTITION_NAME | PED_DISK_TYPE_PARTITION_TYPE_UUID
|
||||||
|
+ features: PED_DISK_TYPE_PARTITION_NAME | PED_DISK_TYPE_PARTITION_TYPE_UUID |
|
||||||
|
+ PED_DISK_TYPE_DISK_UUID | PED_DISK_TYPE_PARTITION_UUID
|
||||||
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
diff --git a/parted/parted.c b/parted/parted.c
|
||||||
|
index 36c39c7..84187b7 100644
|
||||||
|
--- a/parted/parted.c
|
||||||
|
+++ b/parted/parted.c
|
||||||
|
@@ -1215,6 +1215,14 @@ _print_disk_info (const PedDevice *dev, const PedDisk *diskp)
|
||||||
|
ul_jsonwrt_value_u64 (&json, "physical-sector-size", dev->phys_sector_size);
|
||||||
|
ul_jsonwrt_value_s (&json, "label", pt_name);
|
||||||
|
if (diskp) {
|
||||||
|
+ bool has_disk_uuid = ped_disk_type_check_feature (diskp->type, PED_DISK_TYPE_DISK_UUID);
|
||||||
|
+ if (has_disk_uuid) {
|
||||||
|
+ uint8_t* uuid = ped_disk_get_uuid (diskp);
|
||||||
|
+ static char buf[UUID_STR_LEN];
|
||||||
|
+ uuid_unparse_lower (uuid, buf);
|
||||||
|
+ ul_jsonwrt_value_s (&json, "uuid", buf);
|
||||||
|
+ free (uuid);
|
||||||
|
+ }
|
||||||
|
ul_jsonwrt_value_u64 (&json, "max-partitions",
|
||||||
|
ped_disk_get_max_primary_partition_count(diskp));
|
||||||
|
disk_print_flags_json (diskp);
|
||||||
|
@@ -1360,6 +1368,8 @@ do_print (PedDevice** dev, PedDisk** diskp)
|
||||||
|
PED_DISK_TYPE_PARTITION_TYPE_ID);
|
||||||
|
bool has_type_uuid = ped_disk_type_check_feature ((*diskp)->type,
|
||||||
|
PED_DISK_TYPE_PARTITION_TYPE_UUID);
|
||||||
|
+ bool has_part_uuid = ped_disk_type_check_feature ((*diskp)->type,
|
||||||
|
+ PED_DISK_TYPE_PARTITION_UUID);
|
||||||
|
|
||||||
|
PedPartition* part;
|
||||||
|
if (opt_output_mode == HUMAN) {
|
||||||
|
@@ -1512,6 +1522,14 @@ do_print (PedDevice** dev, PedDisk** diskp)
|
||||||
|
free (type_uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (has_part_uuid) {
|
||||||
|
+ uint8_t* uuid = ped_partition_get_uuid (part);
|
||||||
|
+ static char buf[UUID_STR_LEN];
|
||||||
|
+ uuid_unparse_lower (uuid, buf);
|
||||||
|
+ ul_jsonwrt_value_s (&json, "uuid", buf);
|
||||||
|
+ free (uuid);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (has_name) {
|
||||||
|
name = ped_partition_get_name (part);
|
||||||
|
if (strcmp (name, "") != 0)
|
||||||
|
diff --git a/tests/t0800-json-gpt.sh b/tests/t0800-json-gpt.sh
|
||||||
|
index 354c0bd..f6a3fb9 100755
|
||||||
|
--- a/tests/t0800-json-gpt.sh
|
||||||
|
+++ b/tests/t0800-json-gpt.sh
|
||||||
|
@@ -32,8 +32,8 @@ parted --script "$dev" mkpart "test1" ext4 10% 20% > out 2>&1 || fail=1
|
||||||
|
parted --script "$dev" mkpart "test2" xfs 20% 60% > out 2>&1 || fail=1
|
||||||
|
parted --script "$dev" set 2 raid on > out 2>&1 || fail=1
|
||||||
|
|
||||||
|
-# print with json format
|
||||||
|
-parted --script --json "$dev" unit s print free > out 2>&1 || fail=1
|
||||||
|
+# print with json format, replace non-deterministic uuids
|
||||||
|
+parted --script --json "$dev" unit s print free | sed -E 's/"uuid": "[0-9a-f-]{36}"/"uuid": "<uuid>"/' > out 2>&1 || fail=1
|
||||||
|
|
||||||
|
cat <<EOF > exp || fail=1
|
||||||
|
{
|
||||||
|
@@ -45,6 +45,7 @@ cat <<EOF > exp || fail=1
|
||||||
|
"logical-sector-size": 512,
|
||||||
|
"physical-sector-size": 512,
|
||||||
|
"label": "gpt",
|
||||||
|
+ "uuid": "<uuid>",
|
||||||
|
"max-partitions": 128,
|
||||||
|
"flags": [
|
||||||
|
"pmbr_boot"
|
||||||
|
@@ -63,6 +64,7 @@ cat <<EOF > exp || fail=1
|
||||||
|
"size": "10240s",
|
||||||
|
"type": "primary",
|
||||||
|
"type-uuid": "0fc63daf-8483-4772-8e79-3d69d8477de4",
|
||||||
|
+ "uuid": "<uuid>",
|
||||||
|
"name": "test1"
|
||||||
|
},{
|
||||||
|
"number": 2,
|
||||||
|
@@ -71,6 +73,7 @@ cat <<EOF > exp || fail=1
|
||||||
|
"size": "40960s",
|
||||||
|
"type": "primary",
|
||||||
|
"type-uuid": "a19d880f-05fc-4d3b-a006-743f0f84911e",
|
||||||
|
+ "uuid": "<uuid>",
|
||||||
|
"name": "test2",
|
||||||
|
"flags": [
|
||||||
|
"raid"
|
||||||
|
diff --git a/tests/t0900-type-gpt.sh b/tests/t0900-type-gpt.sh
|
||||||
|
index 2014820..03febba 100755
|
||||||
|
--- a/tests/t0900-type-gpt.sh
|
||||||
|
+++ b/tests/t0900-type-gpt.sh
|
||||||
|
@@ -32,8 +32,8 @@ parted --script "$dev" mkpart "''" "linux-swap" 10% 20% > out 2>&1 || fail=1
|
||||||
|
# set type-uuid
|
||||||
|
parted --script "$dev" type 1 "deadfd6d-a4ab-43c4-84e5-0933c84b4f4f" || fail=1
|
||||||
|
|
||||||
|
-# print with json format
|
||||||
|
-parted --script --json "$dev" unit s print > out 2>&1 || fail=1
|
||||||
|
+# print with json format, replace non-deterministic uuids
|
||||||
|
+parted --script --json "$dev" unit s print | sed -E 's/"uuid": "[0-9a-f-]{36}"/"uuid": "<uuid>"/' > out 2>&1 || fail=1
|
||||||
|
|
||||||
|
cat <<EOF > exp || fail=1
|
||||||
|
{
|
||||||
|
@@ -45,6 +45,7 @@ cat <<EOF > exp || fail=1
|
||||||
|
"logical-sector-size": 512,
|
||||||
|
"physical-sector-size": 512,
|
||||||
|
"label": "gpt",
|
||||||
|
+ "uuid": "<uuid>",
|
||||||
|
"max-partitions": 128,
|
||||||
|
"partitions": [
|
||||||
|
{
|
||||||
|
@@ -53,7 +54,8 @@ cat <<EOF > exp || fail=1
|
||||||
|
"end": "20479s",
|
||||||
|
"size": "10240s",
|
||||||
|
"type": "primary",
|
||||||
|
- "type-uuid": "deadfd6d-a4ab-43c4-84e5-0933c84b4f4f"
|
||||||
|
+ "type-uuid": "deadfd6d-a4ab-43c4-84e5-0933c84b4f4f",
|
||||||
|
+ "uuid": "<uuid>"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.37.3
|
||||||
|
|
145
0014-gpt-Add-no_automount-partition-flag.patch
Normal file
145
0014-gpt-Add-no_automount-partition-flag.patch
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
From 55e4775c989af42d629401b9aa22c60ba2993e7d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mike Fleetwood <mike.fleetwood@googlemail.com>
|
||||||
|
Date: Tue, 13 Dec 2022 12:53:07 +0000
|
||||||
|
Subject: [PATCH] gpt: Add no_automount partition flag
|
||||||
|
|
||||||
|
Add user requested support for GPT partition type attribute bit 63 [1]
|
||||||
|
so the no-auto flag in the systemd originated Discoverable Partitions
|
||||||
|
Specification [2] can be manipulated. The UEFI specification [3] says
|
||||||
|
partition attribute bits 48 to 63 are partition type specific, however
|
||||||
|
the DPS [2] and Microsoft [4] use the bit 63 to mean no automounting /
|
||||||
|
assign no drive letter and apply it to multiple partition types so don't
|
||||||
|
restrict its application.
|
||||||
|
|
||||||
|
[1] Request for GPT partition attribute bit 63 "no automount" editing
|
||||||
|
support
|
||||||
|
https://gitlab.gnome.org/GNOME/gparted/-/issues/214
|
||||||
|
[2] The Discoverable Partitions Specification (DPS),
|
||||||
|
Partition Attribute Flags
|
||||||
|
https://uapi-group.org/specifications/specs/discoverable_partitions_specification/
|
||||||
|
[3] UEFI Specification, version 2.8,
|
||||||
|
Table 24. Defined GPT Partition Entry - Attributes
|
||||||
|
https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf
|
||||||
|
[4] CREATE_PARTITION_PARAMETERS structure (vds.h)
|
||||||
|
https://learn.microsoft.com/en-gb/windows/win32/api/vds/ns-vds-create_partition_parameters
|
||||||
|
|
||||||
|
Signed-off-by: Mike Fleetwood <mike.fleetwood@googlemail.com>
|
||||||
|
Signed-off-by: Brian C. Lane <bcl@redhat.com>
|
||||||
|
---
|
||||||
|
NEWS | 2 ++
|
||||||
|
doc/C/parted.8 | 2 +-
|
||||||
|
include/parted/disk.in.h | 3 ++-
|
||||||
|
libparted/disk.c | 2 ++
|
||||||
|
libparted/labels/gpt.c | 12 ++++++++++--
|
||||||
|
5 files changed, 17 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/NEWS b/NEWS
|
||||||
|
index 099f8bd..ac759fe 100644
|
||||||
|
--- a/NEWS
|
||||||
|
+++ b/NEWS
|
||||||
|
@@ -4,6 +4,8 @@ GNU parted NEWS -*- outline -*-
|
||||||
|
|
||||||
|
** New Features
|
||||||
|
|
||||||
|
+ Support GPT partition attribute bit 63 as no_automount flag.
|
||||||
|
+
|
||||||
|
Add type commands to set type-id on MS-DOS and type-uuid on GPT.
|
||||||
|
|
||||||
|
* Noteworthy changes in release 3.5 (2022-04-18) [stable]
|
||||||
|
diff --git a/doc/C/parted.8 b/doc/C/parted.8
|
||||||
|
index ab34be7..3069c33 100644
|
||||||
|
--- a/doc/C/parted.8
|
||||||
|
+++ b/doc/C/parted.8
|
||||||
|
@@ -120,7 +120,7 @@ or an LVM logical volume if necessary.
|
||||||
|
Change the state of the \fIflag\fP on \fIpartition\fP to \fIstate\fP.
|
||||||
|
Supported flags are: "boot", "root", "swap", "hidden", "raid", "lvm", "lba",
|
||||||
|
"legacy_boot", "irst", "msftres", "esp", "chromeos_kernel", "bls_boot", "linux-home",
|
||||||
|
-"bios_grub", and "palo".
|
||||||
|
+"no_automount", "bios_grub", and "palo".
|
||||||
|
\fIstate\fP should be either "on" or "off".
|
||||||
|
.TP
|
||||||
|
.B unit \fIunit\fP
|
||||||
|
diff --git a/include/parted/disk.in.h b/include/parted/disk.in.h
|
||||||
|
index f649bcc..402d78a 100644
|
||||||
|
--- a/include/parted/disk.in.h
|
||||||
|
+++ b/include/parted/disk.in.h
|
||||||
|
@@ -88,10 +88,11 @@ enum _PedPartitionFlag {
|
||||||
|
PED_PARTITION_CHROMEOS_KERNEL=19,
|
||||||
|
PED_PARTITION_BLS_BOOT=20,
|
||||||
|
PED_PARTITION_LINUX_HOME=21,
|
||||||
|
+ PED_PARTITION_NO_AUTOMOUNT=22,
|
||||||
|
};
|
||||||
|
// NOTE: DO NOT define using enums
|
||||||
|
#define PED_PARTITION_FIRST_FLAG 1 // PED_PARTITION_BOOT
|
||||||
|
-#define PED_PARTITION_LAST_FLAG 21 // PED_PARTITION_LINUX_HOME
|
||||||
|
+#define PED_PARTITION_LAST_FLAG 22 // PED_PARTITION_NO_AUTOMOUNT
|
||||||
|
|
||||||
|
enum _PedDiskTypeFeature {
|
||||||
|
PED_DISK_TYPE_EXTENDED=1, /**< supports extended partitions */
|
||||||
|
diff --git a/libparted/disk.c b/libparted/disk.c
|
||||||
|
index 0ed3d91..45f35fd 100644
|
||||||
|
--- a/libparted/disk.c
|
||||||
|
+++ b/libparted/disk.c
|
||||||
|
@@ -2579,6 +2579,8 @@ ped_partition_flag_get_name (PedPartitionFlag flag)
|
||||||
|
return N_("bls_boot");
|
||||||
|
case PED_PARTITION_LINUX_HOME:
|
||||||
|
return N_("linux-home");
|
||||||
|
+ case PED_PARTITION_NO_AUTOMOUNT:
|
||||||
|
+ return N_("no_automount");
|
||||||
|
|
||||||
|
default:
|
||||||
|
ped_exception_throw (
|
||||||
|
diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
|
||||||
|
index 1993863..780fb70 100644
|
||||||
|
--- a/libparted/labels/gpt.c
|
||||||
|
+++ b/libparted/labels/gpt.c
|
||||||
|
@@ -252,7 +252,8 @@ struct __attribute__ ((packed)) _GuidPartitionEntryAttributes_t
|
||||||
|
uint64_t NoBlockIOProtocol:1;
|
||||||
|
uint64_t LegacyBIOSBootable:1;
|
||||||
|
uint64_t Reserved:45;
|
||||||
|
- uint64_t GuidSpecific:16;
|
||||||
|
+ uint64_t GuidSpecific:15;
|
||||||
|
+ uint64_t NoAutomount:1;
|
||||||
|
#else
|
||||||
|
# warning "Using crippled partition entry type"
|
||||||
|
uint32_t RequiredToFunction:1;
|
||||||
|
@@ -260,7 +261,8 @@ struct __attribute__ ((packed)) _GuidPartitionEntryAttributes_t
|
||||||
|
uint32_t LegacyBIOSBootable:1;
|
||||||
|
uint32_t Reserved:30;
|
||||||
|
uint32_t LOST:5;
|
||||||
|
- uint32_t GuidSpecific:16;
|
||||||
|
+ uint32_t GuidSpecific:15;
|
||||||
|
+ uint32_t NoAutomount:1;
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -1637,6 +1639,9 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
|
||||||
|
case PED_PARTITION_LEGACY_BOOT:
|
||||||
|
gpt_part_data->attributes.LegacyBIOSBootable = state;
|
||||||
|
return 1;
|
||||||
|
+ case PED_PARTITION_NO_AUTOMOUNT:
|
||||||
|
+ gpt_part_data->attributes.NoAutomount = state;
|
||||||
|
+ return 1;
|
||||||
|
case PED_PARTITION_ROOT:
|
||||||
|
case PED_PARTITION_LBA:
|
||||||
|
default:
|
||||||
|
@@ -1662,6 +1667,8 @@ gpt_partition_get_flag (const PedPartition *part, PedPartitionFlag flag)
|
||||||
|
return gpt_part_data->attributes.RequiredToFunction;
|
||||||
|
case PED_PARTITION_LEGACY_BOOT:
|
||||||
|
return gpt_part_data->attributes.LegacyBIOSBootable;
|
||||||
|
+ case PED_PARTITION_NO_AUTOMOUNT:
|
||||||
|
+ return gpt_part_data->attributes.NoAutomount;
|
||||||
|
case PED_PARTITION_LBA:
|
||||||
|
case PED_PARTITION_ROOT:
|
||||||
|
default:
|
||||||
|
@@ -1681,6 +1688,7 @@ gpt_partition_is_flag_available (const PedPartition *part,
|
||||||
|
{
|
||||||
|
case PED_PARTITION_HIDDEN:
|
||||||
|
case PED_PARTITION_LEGACY_BOOT:
|
||||||
|
+ case PED_PARTITION_NO_AUTOMOUNT:
|
||||||
|
return 1;
|
||||||
|
case PED_PARTITION_ROOT:
|
||||||
|
case PED_PARTITION_LBA:
|
||||||
|
--
|
||||||
|
2.38.1
|
||||||
|
|
54
0015-tests-XFS-requires-a-minimum-size-of-300M.patch
Normal file
54
0015-tests-XFS-requires-a-minimum-size-of-300M.patch
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
From caa588269709659d5cf51bf64c559e193f371de4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Brian C. Lane" <bcl@redhat.com>
|
||||||
|
Date: Tue, 13 Dec 2022 14:38:24 -0800
|
||||||
|
Subject: [PATCH] tests: XFS requires a minimum size of 300M
|
||||||
|
|
||||||
|
---
|
||||||
|
tests/t1700-probe-fs.sh | 3 ++-
|
||||||
|
tests/t4100-dvh-partition-limits.sh | 2 +-
|
||||||
|
tests/t4100-msdos-partition-limits.sh | 2 +-
|
||||||
|
3 files changed, 4 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/t1700-probe-fs.sh b/tests/t1700-probe-fs.sh
|
||||||
|
index d33606e..f8af74e 100755
|
||||||
|
--- a/tests/t1700-probe-fs.sh
|
||||||
|
+++ b/tests/t1700-probe-fs.sh
|
||||||
|
@@ -42,7 +42,8 @@ for type in ext2 ext3 ext4 btrfs xfs nilfs2 ntfs vfat hfsplus udf f2fs; do
|
||||||
|
# create an $type file system, creation failures are not parted bugs,
|
||||||
|
# skip the filesystem instead of failing the test.
|
||||||
|
if [ "$type" = "xfs" ]; then
|
||||||
|
- mkfs.xfs -ssize=$ss -dfile,name=$dev,size=${n_sectors}s || { warn_ "$ME: mkfs.$type failed, skipping"; continue; }
|
||||||
|
+ # XFS requires at least 300M which is > 1024 sectors with 8192b sector size
|
||||||
|
+ mkfs.xfs -ssize=$ss -dfile,name=$dev,size=300m || { warn_ "$ME: mkfs.$type failed, skipping"; continue; }
|
||||||
|
else
|
||||||
|
dd if=/dev/null of=$dev bs=$ss seek=$n_sectors >/dev/null || { warn_ "$ME: dd failed, skipping $type"; continue; }
|
||||||
|
mkfs.$type $force $dev || { warn_ "$ME: mkfs.$type failed skipping"; continue; }
|
||||||
|
diff --git a/tests/t4100-dvh-partition-limits.sh b/tests/t4100-dvh-partition-limits.sh
|
||||||
|
index d3798d2..a5b3516 100755
|
||||||
|
--- a/tests/t4100-dvh-partition-limits.sh
|
||||||
|
+++ b/tests/t4100-dvh-partition-limits.sh
|
||||||
|
@@ -37,7 +37,7 @@ mp=`pwd`/mount-point
|
||||||
|
n=4096
|
||||||
|
|
||||||
|
# create an XFS file system
|
||||||
|
-mkfs.xfs -dfile,name=$fs,size=100m || fail=1
|
||||||
|
+mkfs.xfs -dfile,name=$fs,size=300m || fail=1
|
||||||
|
mkdir "$mp" || fail=1
|
||||||
|
|
||||||
|
# Unmount upon interrupt, failure, etc., as well as upon normal completion.
|
||||||
|
diff --git a/tests/t4100-msdos-partition-limits.sh b/tests/t4100-msdos-partition-limits.sh
|
||||||
|
index b591123..09267b5 100755
|
||||||
|
--- a/tests/t4100-msdos-partition-limits.sh
|
||||||
|
+++ b/tests/t4100-msdos-partition-limits.sh
|
||||||
|
@@ -37,7 +37,7 @@ mp=`pwd`/mount-point
|
||||||
|
n=4096
|
||||||
|
|
||||||
|
# create an XFS file system
|
||||||
|
-mkfs.xfs -dfile,name=$fs,size=100m || fail=1
|
||||||
|
+mkfs.xfs -dfile,name=$fs,size=300m || fail=1
|
||||||
|
mkdir "$mp" || fail=1
|
||||||
|
|
||||||
|
# Unmount upon interrupt, failure, etc., as well as upon normal completion.
|
||||||
|
--
|
||||||
|
2.38.1
|
||||||
|
|
25
parted.spec
25
parted.spec
@ -1,7 +1,7 @@
|
|||||||
Summary: The GNU disk partition manipulation program
|
Summary: The GNU disk partition manipulation program
|
||||||
Name: parted
|
Name: parted
|
||||||
Version: 3.5
|
Version: 3.5
|
||||||
Release: 6%{?dist}
|
Release: 7%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: http://www.gnu.org/software/parted
|
URL: http://www.gnu.org/software/parted
|
||||||
|
|
||||||
@ -16,12 +16,16 @@ Patch0002: 0002-parted-add-type-command.patch
|
|||||||
Patch0003: 0003-libparted-add-swap-flag-for-DASD-label.patch
|
Patch0003: 0003-libparted-add-swap-flag-for-DASD-label.patch
|
||||||
Patch0004: 0004-parted-Reset-the-filesystem-type-when-changing-the-i.patch
|
Patch0004: 0004-parted-Reset-the-filesystem-type-when-changing-the-i.patch
|
||||||
Patch0005: 0005-tests-t3200-type-change-now-passes.patch
|
Patch0005: 0005-tests-t3200-type-change-now-passes.patch
|
||||||
Patch0006: 0006-disk.in.h-Remove-use-of-enums-with-define.patch
|
Patch0006: 0006-libparted-Fix-check-for-availability-of-_type_id-fun.patch
|
||||||
Patch0007: 0007-libparted-Fix-handling-of-gpt-partition-types.patch
|
Patch0007: 0007-parted-Simplify-code-for-json-output.patch
|
||||||
Patch0008: 0008-tests-Add-a-libparted-test-for-ped_partition_set_sys.patch
|
Patch0008: 0008-disk.in.h-Remove-use-of-enums-with-define.patch
|
||||||
Patch0009: 0009-libparted-Fix-handling-of-msdos-partition-types.patch
|
Patch0009: 0009-libparted-Fix-handling-of-gpt-partition-types.patch
|
||||||
Patch0010: 0010-tests-Add-a-libparted-test-for-ped_partition_set_sys.patch
|
Patch0010: 0010-tests-Add-a-libparted-test-for-ped_partition_set_sys.patch
|
||||||
|
Patch0011: 0011-libparted-Fix-handling-of-msdos-partition-types.patch
|
||||||
|
Patch0012: 0012-tests-Add-a-libparted-test-for-ped_partition_set_sys.patch
|
||||||
|
Patch0013: 0013-show-GPT-UUIDs-in-JSON-output.patch
|
||||||
|
Patch0014: 0014-gpt-Add-no_automount-partition-flag.patch
|
||||||
|
Patch0015: 0015-tests-XFS-requires-a-minimum-size-of-300M.patch
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: e2fsprogs-devel
|
BuildRequires: e2fsprogs-devel
|
||||||
@ -126,7 +130,14 @@ make check
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Mon Aug 08 2022 Brian C. Lane <bcl@redhat.com> - 3.5-5.bcl.1
|
* Wed Dec 14 2022 Brian C. Lane <bcl@redhat.com> - 3.5-7
|
||||||
|
- libparted: Fix handling of msdos partition types
|
||||||
|
- tests: Add a libparted test for ped_partition_set_system on msdos
|
||||||
|
- parted: Add display of GPT UUIDs in JSON output
|
||||||
|
- Add no_automount flag support
|
||||||
|
- increase xfs size to 300M
|
||||||
|
|
||||||
|
* Mon Aug 08 2022 Brian C. Lane <bcl@redhat.com> - 3.5-6
|
||||||
- Fix ped_partition_set_system handling of existing flags
|
- Fix ped_partition_set_system handling of existing flags
|
||||||
|
|
||||||
* Thu Aug 04 2022 Brian C. Lane <bcl@redhat.com> - 3.5-5
|
* Thu Aug 04 2022 Brian C. Lane <bcl@redhat.com> - 3.5-5
|
||||||
|
Loading…
Reference in New Issue
Block a user