sys-block/parted: Sync with gentoo

Apparently the old parted has some problems with updated eclasses.

It's from gentoo commit e8750eda30030e3f13ceaf0fc3c03a0e604ca649.
This commit is contained in:
Krzesimir Nowak 2022-01-05 18:17:13 +01:00
parent f000cc73a3
commit 77d8fbde2d
11 changed files with 96 additions and 429 deletions

View File

@ -1,3 +1,2 @@
DIST parted-3.2.tar.xz 1655244 BLAKE2B 56608590b26a9b5266dacf3698d990b730bdb35d9374d1da57103fbef3ef5037e40dd2fe0f523ca8e0e75401a3b25cf543e5ca5c94cf410bbaa62ea15d6f0ba3 SHA512 4e37dbdd6f5032c9ebfec43704f6882379597d038167b9c4d04053efa083c68a705196713864451fa9e11d32777e16c68982877945c5efd9ea5f8252cb20e1c4
DIST parted_3.2-19.debian.tar.xz 87288 BLAKE2B f0cef2978ead9edca3e952849deb36526eea0a050d45ab480b2aa62d02ba0a1750c28e93c28a714df6629f02ccf5a1e4fbb33a6e42b82bf6685c05aeaad1756c SHA512 de3e55545d7d94668eb608c8c31440f550baaf7b664836d199f73f7a8c75bba4ff59b4c06a23459c7d522250d7c03d29fa7f727f7d1a2b1e5a0366e83a2d871a
DIST parted_3.2-20.debian.tar.xz 87496 BLAKE2B 4409826b35b42093f16f80b1ab2f41b4caf2264c9dcfe9572fa1ddf5f51eeffa2208fc187bd7a98290ee2df92604928eae84fd2fdee78d688ec19e81f8b9efac SHA512 83f14befdd7d048976572b3e2eebfaa42649458cbcfd659db704737dce991980ddb2bc65013c5b31b04a17fc17fb756da0dda76edbcba93708afca34c56e0d22
DIST parted-3.4.tar.xz 1860300 BLAKE2B c724d3d1490c62d440b9e5dc359fef7ff623bc77ae5f867d8905245cb279ec391fa07a1a774488ad3bf7a2c477007264d7bab2635a544be8f94dc706a654a711 SHA512 e69bd1b610778e980d4595d04892f2ea1faf4ae9bfc98cd62abfc70066423f08ddaa396f9461c7beb1330d023232274606b6b26091a0458aeedd0f3f57536690
DIST parted-3.4.tar.xz.sig 508 BLAKE2B 112ad0158b1100bd9150a7c87e8f93e67d42870b82a17d4d0aa8bb5e46306f837f3f99feabaf301f8cd640c299174e5f5acf152dd1f20ea2b7ace73d57d31f14 SHA512 6b11812267e66470ba2908ee1cc78b232b0bc2519787f5a17b92cd5f8ba904b1a836833f19c5244b23d4c7810437eeb26fbbd68fac819391b342709682345472

View File

@ -1,60 +0,0 @@
--- a/libparted/arch/linux.c
+++ b/libparted/arch/linux.c
@@ -2304,6 +2304,7 @@
return r < 0 ? NULL : resultp;
}
+#ifdef ENABLE_DEVICE_MAPPER
static char *
dm_canonical_path (PedDevice const *dev)
{
@@ -2326,12 +2327,22 @@
err:
return NULL;
}
+#endif /* ENABLE_DEVICE_MAPPER */
static char*
_device_get_part_path (PedDevice const *dev, int num)
{
- char *devpath = (dev->type == PED_DEVICE_DM
- ? dm_canonical_path (dev) : dev->path);
+ char *devpath =
+#ifdef ENABLE_DEVICE_MAPPER
+ (
+ dev->type == PED_DEVICE_DM
+ ? dm_canonical_path (dev) :
+#endif /* ENABLE_DEVICE_MAPPER */
+ dev->path
+#ifdef ENABLE_DEVICE_MAPPER
+ )
+#endif /* ENABLE_DEVICE_MAPPER */
+ ;
size_t path_len = strlen (devpath);
char *result;
/* Check for devfs-style /disc => /partN transformation
@@ -2945,12 +2956,14 @@
unsigned long long *length);
+#ifdef ENABLE_DEVICE_MAPPER
if (disk->dev->type == PED_DEVICE_DM) {
add_partition = _dm_add_partition;
remove_partition = _dm_remove_partition;
resize_partition = _dm_resize_partition;
get_partition_start_and_length = _dm_get_partition_start_and_length;
} else {
+#endif /* ENABLE_DEVICE_MAPPER */
add_partition = _blkpg_add_partition;
remove_partition = _blkpg_remove_partition;
#ifdef BLKPG_RESIZE_PARTITION
@@ -2959,7 +2972,9 @@
resize_partition = NULL;
#endif
get_partition_start_and_length = _kernel_get_partition_start_and_length;
+#ifdef ENABLE_DEVICE_MAPPER
}
+#endif /* ENABLE_DEVICE_MAPPER */
/* lpn = largest partition number.
* for remove pass, use greater of device or label limit */

View File

@ -1,64 +0,0 @@
From 1e9e770f4bc7f3d80e09ecd1df58575fad064163 Mon Sep 17 00:00:00 2001
From: Mike Fleetwood <mike.fleetwood@googlemail.com>
Date: Sun, 28 Sep 2014 15:15:48 +0000
Subject: lib-fs-resize: Prevent crash resizing FAT16 file systems
Resizing FAT16 file system crashes in libparted/fs/r/fat/resize.c
create_resize_context() because it was dereferencing NULL pointer
fs_info->info_sector to copy the info_sector.
Only FAT32 file systems have info_sector populated by fat_open() ->
fat_info_sector_read(). FAT12 and FAT16 file systems don't have an
info_sector so pointer fs_info->info_sector remains assigned NULL from
fat_alloc(). When resizing a FAT file system create_resize_context()
was always dereferencing fs_info->info_sector to memory copy the
info_sector, hence it crashed for FAT12 and FAT16.
Make create_resize_context() only copy the info_sector for FAT32 file
systems.
Reported by Christian Hesse in
https://bugzilla.gnome.org/show_bug.cgi?id=735669
---
diff --git a/NEWS b/NEWS
index 297b0a5..da7db50 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,10 @@ GNU parted NEWS -*- outline -*-
* Noteworthy changes in release ?.? (????-??-??) [?]
+** Bug Fixes
+
+ libparted-fs-resize: Prevent crash resizing FAT16 file systems.
+
* Noteworthy changes in release 3.2 (2014-07-28) [stable]
diff --git a/libparted/fs/r/fat/resize.c b/libparted/fs/r/fat/resize.c
index 919acf0..bfe60a0 100644
--- a/libparted/fs/r/fat/resize.c
+++ b/libparted/fs/r/fat/resize.c
@@ -668,11 +668,17 @@ create_resize_context (PedFileSystem* fs, const PedGeometry* new_geom)
/* preserve boot code, etc. */
new_fs_info->boot_sector = ped_malloc (new_geom->dev->sector_size);
- new_fs_info->info_sector = ped_malloc (new_geom->dev->sector_size);
memcpy (new_fs_info->boot_sector, fs_info->boot_sector,
new_geom->dev->sector_size);
- memcpy (new_fs_info->info_sector, fs_info->info_sector,
- new_geom->dev->sector_size);
+ new_fs_info->info_sector = NULL;
+ if (fs_info->fat_type == FAT_TYPE_FAT32)
+ {
+ PED_ASSERT (fs_info->info_sector != NULL);
+ new_fs_info->info_sector =
+ ped_malloc (new_geom->dev->sector_size);
+ memcpy (new_fs_info->info_sector, fs_info->info_sector,
+ new_geom->dev->sector_size);
+ }
new_fs_info->logical_sector_size = fs_info->logical_sector_size;
new_fs_info->sector_count = new_geom->length;
--
cgit v0.9.0.2

View File

@ -1,28 +0,0 @@
https://bugs.gentoo.org/580022
From dec8995fe80508374beba6356f6ecbba8ef6b18b Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Tue, 21 Jun 2016 15:01:08 -0400
Subject: [PATCH] include sysmacros.h for major/minor/makedev
Linux C libs are moving away from including this header implicitly via
sys/types.h, so include it explicitly.
---
libparted/arch/linux.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
index 326b95619d31..e5c168be3c68 100644
--- a/libparted/arch/linux.c
+++ b/libparted/arch/linux.c
@@ -37,6 +37,7 @@
#include <dirent.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
+#include <sys/sysmacros.h>
#include <sys/types.h>
#include <sys/utsname.h> /* for uname() */
#include <scsi/scsi.h>
--
2.8.2

View File

@ -0,0 +1,11 @@
--- a/libparted/labels/atari.c
+++ b/libparted/labels/atari.c
@@ -1957,7 +1957,7 @@
PED_ASSERT (sizeof (AtariRawPartition) == 12);
PED_ASSERT (sizeof (AtariRawTable) == 512);
/* GNU Libc doesn't support NULL instead of the locale name */
- PED_ASSERT ((atr_c_locale = newlocale(LC_ALL_MASK, "C", NULL)) != NULL);
+ atr_c_locale = newlocale(LC_ALL_MASK, "C", NULL);
ped_disk_type_register (&atari_disk_type);
}

View File

@ -1,20 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>mgorny@gentoo.org</email>
<name>Michał Górny</name>
</maintainer>
<maintainer type="project">
<email>livecd@gentoo.org</email>
<name>Gentoo LiveCD Project</name>
<email>base-system@gentoo.org</email>
<name>Base System Project</name>
</maintainer>
<use>
<flag name="device-mapper">
Enable device-mapper support from <pkg>sys-fs/lvm2</pkg> in parted
</flag>
Enable device-mapper support from <pkg>sys-fs/lvm2</pkg>
in parted
</flag>
<flag name="debug">
Enable debugging as encouraged by upstream: [The default configuration]
includes --enable-debug (by default), which contains many assertions.
Obviously, these "waste" space, but in the past, they have caught
potentially dangerous bugs before they would have done damage, so we think
it's worth it. Also, it means we get more bug reports ;)
</flag>
Enable debugging as encouraged by upstream: [The default
configuration] includes --enable-debug (by default), which
contains many assertions. Obviously, these "waste" space,
but in the past, they have caught potentially dangerous bugs
before they would have done damage, so we think it's worth
it. Also, it means we get more bug reports ;)
</flag>
</use>
</pkgmetadata>

View File

@ -1,60 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit autotools eutils flag-o-matic
DESCRIPTION="Create, destroy, resize, check, copy partitions and file systems"
HOMEPAGE="https://www.gnu.org/software/parted"
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
IUSE="+debug device-mapper nls readline selinux static-libs"
RESTRICT="test"
# specific version for gettext needed
# to fix bug 85999
RDEPEND="
>=sys-fs/e2fsprogs-1.27
device-mapper? ( >=sys-fs/lvm2-2.02.45 )
readline? ( >=sys-libs/readline-5.2:0= >=sys-libs/ncurses-5.7-r7:0= )
selinux? ( sys-libs/libselinux )
elibc_uclibc? ( dev-libs/libiconv )
"
DEPEND="
${RDEPEND}
nls? ( >=sys-devel/gettext-0.12.1-r2 )
virtual/pkgconfig
"
src_prepare() {
epatch \
"${FILESDIR}"/${PN}-3.2-devmapper.patch \
"${FILESDIR}"/${PN}-3.2-po4a-mandir.patch \
"${FILESDIR}"/${PN}-3.2-fix-resizing-FAT16.patch \
"${FILESDIR}"/${PN}-3.2-sysmacros.patch
eautoreconf
}
src_configure() {
use elibc_uclibc && append-libs -liconv
econf \
$(use_enable debug) \
$(use_enable device-mapper) \
$(use_enable nls) \
$(use_enable selinux) \
$(use_enable static-libs static) \
$(use_with readline) \
--disable-rpath \
--disable-silent-rules
}
DOCS=( AUTHORS BUGS ChangeLog NEWS README THANKS TODO doc/{API,FAT,USER.jp} )
src_install() {
default
prune_libtool_files
}

View File

@ -1,63 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit autotools eutils flag-o-matic
DESCRIPTION="Create, destroy, resize, check, copy partitions and file systems"
HOMEPAGE="https://www.gnu.org/software/parted"
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
IUSE="+debug device-mapper nls readline selinux static-libs"
RESTRICT="test"
# specific version for gettext needed
# to fix bug 85999
RDEPEND="
>=sys-fs/e2fsprogs-1.27
device-mapper? ( >=sys-fs/lvm2-2.02.45 )
readline? ( >=sys-libs/readline-5.2:0= >=sys-libs/ncurses-5.7-r7:0= )
selinux? ( sys-libs/libselinux )
elibc_uclibc? ( dev-libs/libiconv )
"
DEPEND="
${RDEPEND}
nls? ( >=sys-devel/gettext-0.12.1-r2 )
virtual/pkgconfig
"
PATCHES=(
"${FILESDIR}"/${PN}-3.2-devmapper.patch
"${FILESDIR}"/${PN}-3.2-po4a-mandir.patch
"${FILESDIR}"/${PN}-3.2-fix-resizing-FAT16.patch
"${FILESDIR}"/${PN}-3.2-sysmacros.patch
)
src_prepare() {
default
eautoreconf
}
src_configure() {
use elibc_uclibc && append-libs -liconv
econf \
$(use_enable debug) \
$(use_enable device-mapper) \
$(use_enable nls) \
$(use_enable selinux) \
$(use_enable static-libs static) \
$(use_with readline) \
--disable-rpath \
--disable-silent-rules
}
DOCS=( AUTHORS BUGS ChangeLog NEWS README THANKS TODO doc/{API,FAT,USER.jp} )
src_install() {
default
prune_libtool_files
}

View File

@ -1,70 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit autotools eutils flag-o-matic
DESCRIPTION="Create, destroy, resize, check, copy partitions and file systems"
HOMEPAGE="https://www.gnu.org/software/parted"
SRC_URI="
mirror://gnu/${PN}/${P/_p*/}.tar.xz
mirror://debian/pool/main/p/${PN}/${PN}_${PV/_p/-}.debian.tar.xz
"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
IUSE="+debug device-mapper nls readline selinux static-libs"
RESTRICT="test"
# specific version for gettext needed
# to fix bug 85999
RDEPEND="
>=sys-fs/e2fsprogs-1.27
device-mapper? ( >=sys-fs/lvm2-2.02.45 )
readline? ( >=sys-libs/readline-5.2:0= >=sys-libs/ncurses-5.7-r7:0= )
selinux? ( sys-libs/libselinux )
elibc_uclibc? ( dev-libs/libiconv )
"
DEPEND="
${RDEPEND}
nls? ( >=sys-devel/gettext-0.12.1-r2 )
virtual/pkgconfig
"
PATCHES=(
"${FILESDIR}"/${PN}-3.2-devmapper.patch
"${FILESDIR}"/${PN}-3.2-po4a-mandir.patch
"${FILESDIR}"/${PN}-3.2-sysmacros.patch
)
S=${WORKDIR}/${P/_p*/}
src_prepare() {
default
sed -i -e '/atari\.patch/d' "${WORKDIR}"/debian/patches/series || die
for patch in $(< "${WORKDIR}"/debian/patches/series); do
eapply "${WORKDIR}/debian/patches/$patch"
done
eautoreconf
}
src_configure() {
use elibc_uclibc && append-libs -liconv
econf \
$(use_enable debug) \
$(use_enable device-mapper) \
$(use_enable nls) \
$(use_enable selinux) \
$(use_enable static-libs static) \
$(use_with readline) \
--disable-rpath \
--disable-silent-rules
}
DOCS=( AUTHORS BUGS ChangeLog NEWS README THANKS TODO doc/{API,FAT,USER.jp} )
src_install() {
default
prune_libtool_files
}

View File

@ -1,70 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit autotools eutils flag-o-matic
DESCRIPTION="Create, destroy, resize, check, copy partitions and file systems"
HOMEPAGE="https://www.gnu.org/software/parted"
SRC_URI="
mirror://gnu/${PN}/${P/_p*/}.tar.xz
mirror://debian/pool/main/p/${PN}/${PN}_${PV/_p/-}.debian.tar.xz
"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
IUSE="+debug device-mapper nls readline selinux static-libs"
RESTRICT="test"
# specific version for gettext needed
# to fix bug 85999
RDEPEND="
>=sys-fs/e2fsprogs-1.27
device-mapper? ( >=sys-fs/lvm2-2.02.45 )
readline? ( >=sys-libs/readline-5.2:0= >=sys-libs/ncurses-5.7-r7:0= )
selinux? ( sys-libs/libselinux )
elibc_uclibc? ( dev-libs/libiconv )
"
DEPEND="
${RDEPEND}
nls? ( >=sys-devel/gettext-0.12.1-r2 )
virtual/pkgconfig
"
PATCHES=(
"${FILESDIR}"/${PN}-3.2-devmapper.patch
"${FILESDIR}"/${PN}-3.2-po4a-mandir.patch
"${FILESDIR}"/${PN}-3.2-sysmacros.patch
)
S=${WORKDIR}/${P/_p*/}
src_prepare() {
default
sed -i -e '/atari\.patch/d' "${WORKDIR}"/debian/patches/series || die
for patch in $(< "${WORKDIR}"/debian/patches/series); do
eapply "${WORKDIR}/debian/patches/$patch"
done
eautoreconf
}
src_configure() {
use elibc_uclibc && append-libs -liconv
econf \
$(use_enable debug) \
$(use_enable device-mapper) \
$(use_enable nls) \
$(use_enable selinux) \
$(use_enable static-libs static) \
$(use_with readline) \
--disable-rpath \
--disable-silent-rules
}
DOCS=( AUTHORS BUGS ChangeLog NEWS README THANKS TODO doc/{API,FAT,USER.jp} )
src_install() {
default
prune_libtool_files
}

View File

@ -0,0 +1,66 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit verify-sig
DESCRIPTION="Create, destroy, resize, check, copy partitions and file systems"
HOMEPAGE="https://www.gnu.org/software/parted/"
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz
verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="+debug device-mapper nls readline"
# util-linux for libuuid
RDEPEND="
>=sys-fs/e2fsprogs-1.27
sys-apps/util-linux
device-mapper? ( >=sys-fs/lvm2-2.02.45 )
readline? (
>=sys-libs/ncurses-5.7-r7:0=
>=sys-libs/readline-5.2:0=
)
"
DEPEND="${RDEPEND}"
BDEPEND="
nls? ( >=sys-devel/gettext-0.12.1-r2 )
verify-sig? ( sec-keys/openpgp-keys-bcl )
virtual/pkgconfig
"
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/bcl.asc
PATCHES=(
"${FILESDIR}"/${PN}-3.2-po4a-mandir.patch
"${FILESDIR}"/${PN}-3.3-atari.patch
)
src_prepare() {
default
touch doc/pt_BR/Makefile.in || die
}
src_configure() {
local myconf=(
$(use_enable debug)
$(use_enable device-mapper)
$(use_enable nls)
$(use_with readline)
--disable-rpath
--disable-static
)
econf "${myconf[@]}"
}
DOCS=(
AUTHORS BUGS ChangeLog NEWS README THANKS TODO doc/{API,FAT,USER.jp}
)
src_install() {
default
find "${ED}" -type f -name '*.la' -delete || die
}