Accepting request 984783 from Base:System

OBS-URL: https://build.opensuse.org/request/show/984783
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/parted?expand=0&rev=139
This commit is contained in:
Dominique Leuenberger 2022-06-25 08:23:46 +00:00 committed by Git OBS Bridge
commit 70b4d7e1f6
7 changed files with 31 additions and 373 deletions

View File

@ -1,14 +0,0 @@
diff --git a/parted/parted.c b/parted/parted.c
index 5c7c270..aa68d58 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -956,6 +956,9 @@ partition_print_flags_json (PedPartition const *part)
for (flag = ped_partition_flag_next (0); flag;
flag = ped_partition_flag_next (flag))
{
+ if (flag == PED_PARTITION_TYPE)
+ continue;
+
if (ped_partition_get_flag (part, flag))
{
if (!did_open_array)

View File

@ -152,29 +152,29 @@ Index: parted-3.3/parted/parted.c
===================================================================
--- parted-3.3.orig/parted/parted.c
+++ parted-3.3/parted/parted.c
@@ -929,6 +929,7 @@ static char*
@@ -946,6 +946,7 @@
static char*
partition_print_flags (PedPartition const *part)
{
int xtype;
+ const char* sysname;
char *res = xstrdup ("");
if (!part)
return res;
@@ -961,6 +962,17 @@ partition_print_flags (PedPartition cons
}
+ const char* sysname;
char *res = xstrdup ("");
if (!part)
return res;
@@ -967,6 +968,17 @@
}
}
+ sysname = ped_partition_get_system_name( part );
+ if (sysname) {
+ char tmpstr[21];
+ snprintf(tmpstr, sizeof(tmpstr) - 1, "type=%s", sysname);
+ size_t new_len = res_buf_len + strlen(sep) + strlen(tmpstr);
+ res = xrealloc(res, new_len);
+ stpcpy (stpcpy (res + res_buf_len - 1, sep), tmpstr);
+ res_buf_len = new_len;
+ sep = ", ";
+ }
+ sysname = ped_partition_get_system_name( part );
+ if (sysname) {
+ char tmpstr[21];
+ snprintf(tmpstr, sizeof(tmpstr) - 1, "type=%s", sysname);
+ size_t new_len = res_buf_len + strlen(sep) + strlen(tmpstr);
+ res = xrealloc(res, new_len);
+ stpcpy (stpcpy (res + res_buf_len - 1, sep), tmpstr);
+ res_buf_len = new_len;
+ sep = ", ";
+ }
+
return res;
return res;
}

View File

@ -1,15 +0,0 @@
--- parted-3.3/parted/ui.c 2020/08/25 16:28:53 1.1
+++ parted-3.3/parted/ui.c 2020/08/25 16:31:39
@@ -926,7 +926,11 @@
return 0;
errno = 0;
- ret = strtol (input, (char**) NULL, 10);
+
+ if (strstr(input, "0x") == input)
+ ret = strtol (input, (char**) NULL, 16);
+ else
+ ret = strtol (input, (char**) NULL, 10);
if (errno)
goto error;

View File

@ -1,162 +0,0 @@
From: Petr Uzel <petr.uzel@suse.cz>
Subject: parted: Introduce a type flag
Patch-mainline: no, required by YaST
YaST requires a type flag in order to check the current partition
type for msdos partition tables.
---
include/parted/disk.in.h | 5 ++-
libparted/disk.c | 2 +
libparted/labels/dos.c | 8 ++++++
parted/parted.c | 61 ++++++++++++++++++++++++++++++-----------------
parted/ui.c | 3 ++
5 files changed, 56 insertions(+), 23 deletions(-)
Index: parted-3.3/include/parted/disk.in.h
===================================================================
--- parted-3.3.orig/include/parted/disk.in.h
+++ parted-3.3/include/parted/disk.in.h
@@ -86,9 +86,10 @@
PED_PARTITION_CHROMEOS_KERNEL=19,
PED_PARTITION_BLS_BOOT=20,
PED_PARTITION_LINUX_HOME=21,
+ PED_PARTITION_TYPE=22,
};
#define PED_PARTITION_FIRST_FLAG PED_PARTITION_BOOT
-#define PED_PARTITION_LAST_FLAG PED_PARTITION_LINUX_HOME
+#define PED_PARTITION_LAST_FLAG PED_PARTITION_TYPE
enum _PedDiskTypeFeature {
PED_DISK_TYPE_EXTENDED=1, /**< supports extended partitions */
Index: parted-3.3/libparted/disk.c
===================================================================
--- parted-3.3.orig/libparted/disk.c
+++ parted-3.3/libparted/disk.c
@@ -2389,6 +2389,8 @@ ped_partition_flag_get_name (PedPartitio
return N_("lba");
case PED_PARTITION_HPSERVICE:
return N_("hp-service");
+ case PED_PARTITION_TYPE:
+ return N_("type");
case PED_PARTITION_PALO:
return N_("palo");
case PED_PARTITION_PREP:
Index: parted-3.3/libparted/labels/dos.c
===================================================================
--- parted-3.3.orig/libparted/labels/dos.c
+++ parted-3.3/libparted/labels/dos.c
@@ -1565,6 +1565,10 @@ msdos_partition_set_flag (PedPartition*
disk = part->disk;
switch (flag) {
+ case PED_PARTITION_TYPE:
+ dos_data->system = state;
+ return 1;
+
case PED_PARTITION_HIDDEN:
if (part->type == PED_PARTITION_EXTENDED) {
ped_exception_throw (
@@ -1690,6 +1694,9 @@ msdos_partition_get_flag (const PedParti
case PED_PARTITION_LBA:
return dos_data->lba;
+ case PED_PARTITION_TYPE:
+ return dos_data->system;
+
case PED_PARTITION_PALO:
return dos_data->palo;
@@ -1728,6 +1735,7 @@ msdos_partition_is_flag_available (const
case PED_PARTITION_LVM:
case PED_PARTITION_SWAP:
case PED_PARTITION_LBA:
+ case PED_PARTITION_TYPE:
case PED_PARTITION_PALO:
case PED_PARTITION_PREP:
case PED_PARTITION_IRST:
Index: parted-3.3/parted/parted.c
===================================================================
--- parted-3.3.orig/parted/parted.c
+++ parted-3.3/parted/parted.c
@@ -946,28 +946,40 @@ error:
static char*
partition_print_flags (PedPartition const *part)
{
- char *res = xstrdup ("");
- if (!part)
- return res;
-
- PedPartitionFlag flag;
- size_t res_buf_len = 1;
- char const *sep = "";
- for (flag = ped_partition_flag_next (0); flag;
- flag = ped_partition_flag_next (flag))
- {
- if (ped_partition_get_flag (part, flag))
+ int xtype;
+ char *res = xstrdup ("");
+ if (!part)
+ return res;
+
+ PedPartitionFlag flag;
+ size_t res_buf_len = 1;
+ char const *sep = "";
+ for (flag = ped_partition_flag_next (0); flag;
+ flag = ped_partition_flag_next (flag))
{
- const char *name = _(ped_partition_flag_get_name (flag));
- size_t new_len = res_buf_len + strlen (sep) + strlen (name);
- res = xrealloc (res, new_len);
- stpcpy (stpcpy (res + res_buf_len - 1, sep), name);
- res_buf_len = new_len;
- sep = ", ";
+ if (xtype = ped_partition_get_flag (part, flag))
+ {
+ if (flag == PED_PARTITION_TYPE) {
+ char tmpstr[21];
+ int len = snprintf(tmpstr, sizeof(tmpstr) - 1, "type=%02x", xtype);
+ size_t new_len = res_buf_len + strlen(sep) + strlen(tmpstr);
+ res = xrealloc(res, new_len);
+ stpcpy (stpcpy (res + res_buf_len - 1, sep), tmpstr);
+ res_buf_len = new_len;
+ sep = ", ";
+ }
+ else {
+ const char *name = _(ped_partition_flag_get_name (flag));
+ size_t new_len = res_buf_len + strlen (sep) + strlen (name);
+ res = xrealloc (res, new_len);
+ stpcpy (stpcpy (res + res_buf_len - 1, sep), name);
+ res_buf_len = new_len;
+ sep = ", ";
+ }
+ }
}
- }
- return res;
+ return res;
}
static void
@@ -1808,12 +1820,19 @@ do_set (PedDevice** dev, PedDisk **diskp
goto error;
if (!command_line_get_part_flag (_("Flag to Invert?"), part, &flag))
goto error;
- state = (ped_partition_get_flag (part, flag) == 0 ? 1 : 0);
+ if( flag == PED_PARTITION_TYPE )
+ state = ped_partition_get_flag (part, flag);
+ else
+ state = (ped_partition_get_flag (part, flag) == 0 ? 1 : 0);
- if (!is_toggle_mode) {
+ if (!is_toggle_mode && flag != PED_PARTITION_TYPE ) {
if (!command_line_get_state (_("New state?"), &state))
goto error;
}
+ else if( flag == PED_PARTITION_TYPE ) {
+ if (!command_line_get_integer (_("New type?"), &state))
+ goto error;
+ }
if (!ped_partition_set_flag (part, flag, state))
goto error;

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Thu Jun 23 07:34:55 CEST 2022 - aschnell@suse.com
- drop type flag (SUSE specific) to fix bsc#1190847
refreshed patches:
- parted-mac.patch
- tests-adapt-to-SUSE.patch
drop patches:
- parted-type.patch
- parted-type-accept-hex.patch
- parted-json-no-type-flag.patch
-------------------------------------------------------------------
Wed Jun 1 09:27:16 UTC 2022 - Dirk Müller <dmueller@suse.com>

View File

@ -39,7 +39,6 @@ Patch12: libparted-partition-naming.patch
#PATCH-FEATURE-SUSE more-reliable-informing-the-kernel.patch bnc#657360 petr.uzel@suse.cz
Patch13: more-reliable-informing-the-kernel.patch
Patch14: dummy-bootcode-only-for-x86.patch
Patch15: parted-type.patch
Patch16: parted-mac.patch
Patch17: libparted-use-BLKRRPART-for-DASD.patch.patch
Patch18: libparted-make-BLKRRPART-more-robust.patch
@ -59,7 +58,6 @@ Patch31: parted-add-ignore-busy-option.patch
Patch32: parted-fix-resizepart-and-rm-command.patch
Patch33: libparted-use-BLKRRPART-only-when-needed.patch
Patch34: libparted-canonicalize-dev-md-paths.patch
Patch35: parted-json-no-type-flag.patch
# bsc#1168756
Patch36: libparted-linux-pmem-path.patch
# bsc#1164260
@ -67,7 +65,6 @@ Patch37: parted-print-max-partitions-for-yast.patch
Patch38: direct-handling-of-partition-type-id-and-uuid.patch
Patch39: type-command.patch
# bsc#1164907
Patch64: parted-type-accept-hex.patch
# Fatresize
Patch100: parted-fatresize-autoconf.patch
Patch101: fatresize-fix-getting-dev-name.patch
@ -143,7 +140,6 @@ to develop applications that require these.
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
@ -160,12 +156,10 @@ to develop applications that require these.
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
%patch39 -p1
%patch64 -p1
%patch100 -p1
%patch101 -p1
%patch156 -p1

View File

@ -11,86 +11,6 @@ Change dm partition name from 'pN' to '-partN'
Tests: t6001, t6002, t6004, t6005
For: libparted-partition-naming.patch
---
Index: parted-3.3/tests/t2200-dos-label-recog.sh
===================================================================
--- parted-3.3.orig/tests/t2200-dos-label-recog.sh
+++ parted-3.3/tests/t2200-dos-label-recog.sh
@@ -45,7 +45,7 @@ printf FAT | dd bs=1c seek=82 count=3 of
# print the partition table
parted -m -s $dev unit s p > out || fail=1
tail -2 out > k && mv k out || fail=1
-printf "1:2048s:4095s:2048s:::;\n2:4096s:8191s:4096s:::;\n" > exp || fail=1
+printf "1:2048s:4095s:2048s:::type=83;\n2:4096s:8191s:4096s:::type=83;\n" > exp || fail=1
compare exp out || fail=1
Index: parted-3.3/tests/t2310-dos-extended-2-sector-min-offset.sh
===================================================================
--- parted-3.3.orig/tests/t2310-dos-extended-2-sector-min-offset.sh
+++ parted-3.3/tests/t2310-dos-extended-2-sector-min-offset.sh
@@ -33,8 +33,8 @@ p5=${scsi_dev}5
cat <<EOF > exp || framework_failure
BYT;
$scsi_dev:$((2048*512/$ss))s:scsi:$ss:$ss:msdos:Linux scsi_debug:;
-1:64s:128s:65s:::lba;
-5:65s:128s:64s:::;
+1:64s:128s:65s:::lba, type=0f;
+5:65s:128s:64s:::type=83;
EOF
# Create a DOS label with an extended partition starting at sector 64.
Index: parted-3.3/tests/t3200-resize-partition.sh
===================================================================
--- parted-3.3.orig/tests/t3200-resize-partition.sh
+++ parted-3.3/tests/t3200-resize-partition.sh
@@ -75,7 +75,7 @@ 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:ext2::$ms;\n" > exp || fail=1
+printf "1:$default_start:$new_end:3073s:ext2::type=83;\n" > exp || fail=1
compare exp out || fail=1
umount "${dev}1" || fail=1
Index: parted-3.3/tests/t3300-palo-prep.sh
===================================================================
--- parted-3.3.orig/tests/t3300-palo-prep.sh
+++ parted-3.3/tests/t3300-palo-prep.sh
@@ -20,9 +20,9 @@
ss=$sector_size_
cat > exp <<EOF || framework_failure
-1:2048s:4095s:2048s:ext2::lba, palo;
-1:2048s:4095s:2048s:ext2::lba, prep;
-1:2048s:4095s:2048s:ext2::lba, palo;
+1:2048s:4095s:2048s:ext2::lba, palo, type=f0;
+1:2048s:4095s:2048s:ext2::lba, prep, type=41;
+1:2048s:4095s:2048s:ext2::lba, palo, type=f0;
EOF
dev=dev-file
@@ -37,7 +37,7 @@ parted -m -s $dev mklabel msdos \
set 1 palo on u s print \
> out 2> err || fail=1
-grep -E '^1:2048s:4095s:2048s:ext2::lba, p...;$' out > k; mv k out
+grep -E '^1:2048s:4095s:2048s:ext2::lba, p..., type=..;$' out > k; mv k out
compare exp out || fail=1
Index: parted-3.3/tests/t4100-msdos-starting-sector.sh
===================================================================
--- parted-3.3.orig/tests/t4100-msdos-starting-sector.sh
+++ parted-3.3/tests/t4100-msdos-starting-sector.sh
@@ -56,7 +56,7 @@ cat <<EOF > exp || fail=1
BYT;
path:${N}s:file:$ss:$ss:msdos::;
1:32s:2047s:2016s:free;
-1:2048s:4095s:2048s:::;
+1:2048s:4095s:2048s:::type=83;
EOF
# create a partition at the end of the label
Index: parted-3.3/tests/t6001-psep.sh
===================================================================
--- parted-3.3.orig/tests/t6001-psep.sh
@ -164,30 +84,6 @@ Index: parted-3.3/tests/t6005-dm-uuid.sh
done
Exit $fail
Index: parted-3.3/tests/t0283-overlap-partitions.sh
===================================================================
--- parted-3.3.orig/tests/t0283-overlap-partitions.sh
+++ parted-3.3/tests/t0283-overlap-partitions.sh
@@ -54,8 +54,8 @@ Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
- 1 1049kB 5243kB 4194kB primary
- 2 5242kB 8000kB 2758kB primary
+ 1 1049kB 5243kB 4194kB primary type=83
+ 2 5242kB 8000kB 2758kB primary type=83
(parted) rm
Partition number? 2
@@ -94,7 +94,7 @@ Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
- 1 1049kB 5243kB 4194kB primary
+ 1 1049kB 5243kB 4194kB primary type=83
(parted) rm
Partition number? 1
Index: parted-3.3/tests/t6002-dm-busy.sh
===================================================================
--- parted-3.3.orig/tests/t6002-dm-busy.sh
@ -223,56 +119,3 @@ Index: parted-3.3/tests/t6002-dm-busy.sh
# Removal of unmounted partition must succeed.
parted -s "$dev" rm 1 > /dev/null 2>&1 || fail=1
@@ -84,7 +84,7 @@ sed "s,^$dev,DEV," out > k; mv k out
cat <<EOF >> exp || fail=1
BYT;
DEV:${n}s:dm:512:512:msdos:Linux device-mapper (linear):;
-2:1001s:200000s:199000s:fat32::lba;
+2:1001s:200000s:199000s:fat32::lba, type=0c;
EOF
compare exp out || fail=1
Index: parted-3.3/tests/t9042-dos-partition-limit.sh
===================================================================
--- parted-3.3.orig/tests/t9042-dos-partition-limit.sh
+++ parted-3.3/tests/t9042-dos-partition-limit.sh
@@ -41,7 +41,7 @@ scsi_dev=$(cat dev-name)
n=$((n_MiB * sectors_per_MiB))
printf '%s\n' "BYT;" \
"$scsi_dev:${n}s:scsi:$ss:$ss:msdos:Linux scsi_debug:;" \
- "1:$((start-2))s:$((n-1))s:$((n-start+2))s:::lba;" \
+ "1:$((start-2))s:$((n-1))s:$((n-start+2))s:::lba, type=0f;" \
> exp || fail=1
parted -s -a min $scsi_dev mklabel msdos mkpart extended $((start-2))s 100% || fail=1
@@ -51,7 +51,7 @@ i=1
while :; do
end=$((start + partition_sectors - 2))
parted -s -a min $scsi_dev mkpart logical ${start}s ${end}s || fail=1
- printf "$((i+4)):${start}s:${end}s:$((end-start+1))s:::;\n" >> exp
+ printf "$((i+4)):${start}s:${end}s:$((end-start+1))s:::type=83;\n" >> exp
test $i = $((n_partitions - 1)) && break
start=$((start + partition_sectors))
i=$((i+1))
Index: parted-3.3/tests/t4100-msdos-partition-limits.sh
===================================================================
--- parted-3.3.orig/tests/t4100-msdos-partition-limits.sh
+++ parted-3.3/tests/t4100-msdos-partition-limits.sh
@@ -81,7 +81,7 @@ do_mkpart $n $end || fail=1
# print the result
parted -s $dev unit s p > out 2>&1 || fail=1
sed -n "/^ *1 *$n/s/ */ /gp" out|sed "s/ *\$//" > k && mv k out || fail=1
-echo " 1 ${n}s ${end}s 4294967295s primary" > exp || fail=1
+echo " 1 ${n}s ${end}s 4294967295s primary type=83" > exp || fail=1
compare exp out || fail=1
# a partition length of exactly 2^32 sectors provokes failure.
@@ -121,7 +121,7 @@ Partition Table: $table_type
Disk Flags:
Number Start End Size Type File system Flags
- 1 4294967295s 4294968294s 1000s primary
+ 1 4294967295s 4294968294s 1000s primary type=83
EOF