Compare commits

...

4 Commits

Author SHA1 Message Date
openeuler-ci-bot
a528d8fb0b
!51 upgrade to version 3.6
From: @foolstrong 
Reviewed-by: @swf504 
Signed-off-by: @swf504
2024-02-26 07:15:34 +00:00
wangzhiqiang
6baa6be874 upgrade to version 3.6 2024-02-26 14:58:37 +08:00
openeuler-ci-bot
ca76a7beaf
!50 [sync] PR-44: 修复parted命令使用柱面进行分区,22.0.3版本和20.0.3版本行为不一致
From: @openeuler-sync-bot 
Reviewed-by: @swf504 
Signed-off-by: @swf504
2023-12-18 03:37:43 +00:00
lingsheng
46b3361c31 remove patch which modifid cyl-size
(cherry picked from commit 9621063406)
2023-12-15 14:44:16 +08:00
5 changed files with 117 additions and 20 deletions

View File

@ -1,4 +1,4 @@
From 22be792bfd8e4a4da7495ec60084c23dd8a43677 Mon Sep 17 00:00:00 2001 From 7c5b213ab881dbf4a49673908092359f78bc13ce Mon Sep 17 00:00:00 2001
From: huangkaibin <huangkaibin@huawei.com> From: huangkaibin <huangkaibin@huawei.com>
Date: Fri, 25 Jan 2019 19:46:52 +0000 Date: Fri, 25 Jan 2019 19:46:52 +0000
Subject: [PATCH] add-support-of-gpt_sync_mbr Subject: [PATCH] add-support-of-gpt_sync_mbr
@ -13,14 +13,14 @@ This code has been refactored.'boot' is removed.
So we should call ped_partition_get_flag to instead. So we should call ped_partition_get_flag to instead.
Signed-off-by: Hongtao Zhang <zhanghongtao22@huawei.com> Signed-off-by: Hongtao Zhang <zhanghongtao22@huawei.com>
--- ---
libparted/labels/gpt.c | 246 ++++++++++++++++++++++++++++++++++++++++++++++++- libparted/labels/gpt.c | 246 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 242 insertions(+), 4 deletions(-) 1 file changed, 242 insertions(+), 4 deletions(-)
diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
index 4f922b2..b2dad71 100644 index 780fb70..f63d414 100644
--- a/libparted/labels/gpt.c --- a/libparted/labels/gpt.c
+++ b/libparted/labels/gpt.c +++ b/libparted/labels/gpt.c
@@ -306,6 +306,7 @@ typedef struct _GPTPartitionData @@ -364,6 +364,7 @@ typedef struct _GPTPartitionData
} GPTPartitionData; } GPTPartitionData;
static PedDiskType gpt_disk_type; static PedDiskType gpt_disk_type;
@ -28,7 +28,7 @@ index 4f922b2..b2dad71 100644
static inline uint32_t static inline uint32_t
pth_get_size (const PedDevice *dev) pth_get_size (const PedDevice *dev)
@@ -474,8 +475,54 @@ _pmbr_is_valid (const LegacyMBR_t *mbr) @@ -530,8 +531,54 @@ _pmbr_is_valid (const LegacyMBR_t *mbr)
return 0; return 0;
} }
@ -84,7 +84,7 @@ index 4f922b2..b2dad71 100644
{ {
int gpt_sig_found = 0; int gpt_sig_found = 0;
@@ -509,6 +556,19 @@ gpt_probe (const PedDevice *dev) @@ -565,6 +612,19 @@ gpt_probe (const PedDevice *dev)
return gpt_sig_found; return gpt_sig_found;
} }
@ -104,10 +104,11 @@ index 4f922b2..b2dad71 100644
static PedDisk * static PedDisk *
gpt_alloc (const PedDevice *dev) gpt_alloc (const PedDevice *dev)
{ {
@@ -554,6 +614,36 @@ error: @@ -609,6 +669,36 @@ error:
return NULL;
} }
static PedDisk * +static PedDisk *
+gpt_sync_mbr_alloc (const PedDevice *dev) +gpt_sync_mbr_alloc (const PedDevice *dev)
+{ +{
+ PedDisk *disk; + PedDisk *disk;
@ -137,11 +138,10 @@ index 4f922b2..b2dad71 100644
+ return NULL; + return NULL;
+} +}
+ +
+static PedDisk * static PedDisk *
gpt_duplicate (const PedDisk *disk) gpt_duplicate (const PedDisk *disk)
{ {
PedDisk *new_disk; @@ -983,7 +1073,7 @@ gpt_read (PedDisk *disk)
@@ -967,7 +1057,7 @@ gpt_read (PedDisk *disk)
/* motivation: let the user decide about the pmbr... during /* motivation: let the user decide about the pmbr... during
ped_disk_probe(), they probably didn't get a choice... */ ped_disk_probe(), they probably didn't get a choice... */
@ -150,7 +150,7 @@ index 4f922b2..b2dad71 100644
goto error; goto error;
GuidPartitionTableHeader_t *gpt = NULL; GuidPartitionTableHeader_t *gpt = NULL;
@@ -1124,11 +1214,61 @@ error: @@ -1140,11 +1230,61 @@ error:
return 0; return 0;
} }
@ -213,7 +213,7 @@ index 4f922b2..b2dad71 100644
/* The UEFI spec is not clear about what to do with the following /* The UEFI spec is not clear about what to do with the following
elements of the Protective MBR (pmbr): BootCode (0-440B), elements of the Protective MBR (pmbr): BootCode (0-440B),
UniqueMBRSignature (440B-444B) and Unknown (444B-446B). UniqueMBRSignature (440B-444B) and Unknown (444B-446B).
@@ -1142,6 +1282,8 @@ _write_pmbr (PedDevice *dev, bool pmbr_boot) @@ -1158,6 +1298,8 @@ _write_pmbr (PedDevice *dev, bool pmbr_boot)
memset (pmbr->PartitionRecord, 0, sizeof pmbr->PartitionRecord); memset (pmbr->PartitionRecord, 0, sizeof pmbr->PartitionRecord);
pmbr->Signature = PED_CPU_TO_LE16 (MSDOS_MBR_SIGNATURE); pmbr->Signature = PED_CPU_TO_LE16 (MSDOS_MBR_SIGNATURE);
@ -222,7 +222,7 @@ index 4f922b2..b2dad71 100644
pmbr->PartitionRecord[0].OSType = EFI_PMBR_OSTYPE_EFI; pmbr->PartitionRecord[0].OSType = EFI_PMBR_OSTYPE_EFI;
pmbr->PartitionRecord[0].StartSector = 2; pmbr->PartitionRecord[0].StartSector = 2;
pmbr->PartitionRecord[0].EndHead = 0xFF; pmbr->PartitionRecord[0].EndHead = 0xFF;
@@ -1154,6 +1296,60 @@ _write_pmbr (PedDevice *dev, bool pmbr_boot) @@ -1170,6 +1312,60 @@ _write_pmbr (PedDevice *dev, bool pmbr_boot)
pmbr->PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32 (dev->length - 1UL); pmbr->PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32 (dev->length - 1UL);
if (pmbr_boot) if (pmbr_boot)
pmbr->PartitionRecord[0].BootIndicator = 0x80; pmbr->PartitionRecord[0].BootIndicator = 0x80;
@ -283,7 +283,7 @@ index 4f922b2..b2dad71 100644
int write_ok = ped_device_write (dev, pmbr, GPT_PMBR_LBA, int write_ok = ped_device_write (dev, pmbr, GPT_PMBR_LBA,
GPT_PMBR_SECTORS); GPT_PMBR_SECTORS);
@@ -1273,7 +1469,7 @@ gpt_write (const PedDisk *disk) @@ -1284,7 +1480,7 @@ gpt_write (const PedDisk *disk)
ptes_crc = efi_crc32 (ptes, ptes_bytes); ptes_crc = efi_crc32 (ptes, ptes_bytes);
/* Write protective MBR */ /* Write protective MBR */
@ -292,7 +292,7 @@ index 4f922b2..b2dad71 100644
goto error_free_ptes; goto error_free_ptes;
/* Write PTH and PTEs */ /* Write PTH and PTEs */
@@ -2070,6 +2266,38 @@ static PedDiskOps gpt_disk_ops = @@ -1916,6 +2112,38 @@ static PedDiskOps gpt_disk_ops =
PT_op_function_initializers (gpt) PT_op_function_initializers (gpt)
}; };
@ -331,8 +331,8 @@ index 4f922b2..b2dad71 100644
static PedDiskType gpt_disk_type = static PedDiskType gpt_disk_type =
{ {
next: NULL, next: NULL,
@@ -2078,16 +2306,26 @@ static PedDiskType gpt_disk_type = @@ -1925,16 +2153,26 @@ static PedDiskType gpt_disk_type =
features: PED_DISK_TYPE_PARTITION_NAME PED_DISK_TYPE_DISK_UUID | PED_DISK_TYPE_PARTITION_UUID
}; };
+static PedDiskType gpt_sync_mbr_disk_type = +static PedDiskType gpt_sync_mbr_disk_type =
@ -359,5 +359,5 @@ index 4f922b2..b2dad71 100644
verify (sizeof (GuidPartitionEntryAttributes_t) == 8); verify (sizeof (GuidPartitionEntryAttributes_t) == 8);
-- --
1.8.3.1 2.33.0

View File

@ -0,0 +1,88 @@
From bfce75fd13dd72c6300f0ac3d739e40df90f7dce Mon Sep 17 00:00:00 2001
From: lixiaokeng <lixiaokeng@huawei.com>
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<lixiaokeng@huawei.com>
---
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, &sector_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

Binary file not shown.

BIN
parted-3.6.tar.xz Normal file

Binary file not shown.

View File

@ -15,7 +15,7 @@
Summary: The GNU disk partition manipulation program Summary: The GNU disk partition manipulation program
Name: parted Name: parted
Version: 3.5 Version: 3.6
Release: 1 Release: 1
URL: https://www.gnu.org/software/parted/ URL: https://www.gnu.org/software/parted/
Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
@ -36,6 +36,8 @@ Patch7: 0007-fat_op_context_new-free-ctx-remap-and-goto-correct-l.patch
Patch8: 0008-hfsplus_cache_from_extent-fix-memleak.patch Patch8: 0008-hfsplus_cache_from_extent-fix-memleak.patch
Patch9: 0009-fat_clobber-set-boot_sector-NULL-and-free-boot_secto.patch Patch9: 0009-fat_clobber-set-boot_sector-NULL-and-free-boot_secto.patch
Patch9000: 9000-parted-remove-patch-which-modifid-cyl-size.patch
%description %description
The GNU Parted program allows you to create, destroy, resize, move, The GNU Parted program allows you to create, destroy, resize, move,
and copy hard disk partitions. Parted can be used for creating space and copy hard disk partitions. Parted can be used for creating space
@ -119,6 +121,13 @@ fi
%{_libdir}/pkgconfig/libparted*.pc %{_libdir}/pkgconfig/libparted*.pc
%changelog %changelog
* Mon Feb 26 2024 wangzhiqiang <wangzhiqiang95@huawei.com> - 3.6-1
- update to 3.6
- update version dependency
* Thu Dec 14 2023 lingsheng <lingsheng@xfusion.com> - 3.5-2
- remove patch which modifid cyl-size
* Wed Oct 26 2022 Hongtao Zhang <zhanghongtao22@huawei.com> - 3.5-1 * Wed Oct 26 2022 Hongtao Zhang <zhanghongtao22@huawei.com> - 3.5-1
- update to 3.5 - update to 3.5