[v2] e2fsprogs: Fixes bug#13073 - Update to version 1.47.0

Message ID 20240511112723.9665-1-adolf.belka@ipfire.org
State Staged
Commit 26f53e2c2e70aa5e6adb06f53f7a2414bbe0e518
Headers
Series [v2] e2fsprogs: Fixes bug#13073 - Update to version 1.47.0 |

Commit Message

Adolf Belka May 11, 2024, 11:27 a.m. UTC
  - Previously this patch was reverted due to Grub not being able to boot with it.
   This was fixed in Grub-2.12
- Confirmed on my vm testbed that a CU186 install with this e2fsprogs version was able
   to complete the install when the reboot button at the end of the first install stage
   was completed.
- Update from version 1.46.5 to 1.47.0
- Update of rootfile not required
- Changelog
    E2fsprogs 1.47.0 (February 5, 2023)
	Updates/Fixes since v1.46.6:
	UI and Features
		Add support for the orphan_file feature, which speeds up workloads that
		are deleting or truncating a large number files in parallel.  This
		compat feature was first supported in the v5.15 Linux kernel.
		The mke2fs program (via the mke2fs.conf file) now enables the
		metadata_csum_seed and orphan_file features by default.  The
		metadata_csum_seed feature is an incompat feature which is first
		supported in the Linux kernel starting in the 4.4 kernel and e2fsprogs
		1.43.
		Mke2fs now supports the extended option "assume_storage_prezeroed" which
		causes mke2fs to skip zeroing the journal and inode tables and to mark
		the inode tables as zeroed.
		Add support to tune2fs and e2label to set the label and UUID for a
		mounted file system using a ioctl, which is more reliable than modifying
		the superblock via writing to the block device.  The kernel support for
		setting the label landed in v5.17, while the support for adding the UUID
		landed in v6.0.  If the ioctls are not supported, tune2fs and e2label
		will fall back old strategy of directly modifying the superblock.
		Allow tune2fs to disable the casefold feature after scanning all of the
		directories do not have the Casefold flag set.
	Fixes
		Fix a potential unbalanced mutex unlock when there is a short read while
		using the bounce buffer when using direct I/O.
	Performance, Internal Implementation, Development Support etc.
		Fix various Coverity and compiler warnings.
		Add the new function ext2fs_xattrs_read_inode() which takes an in-memory
		inode to avoid needing to reread an inode that was already read into
		memory.
		Teach debugfs logdump command the -n option which forces printing a
		specified number of transactions, even when a block missing a magic
		number would have stopped the logdump.  (This is for debugging
		journalling problems.)
    E2fsprogs 1.46.6 (February 1, 2023)
	Updates/Fixes since v1.46.5:
	UI and Features
		Debugfs's ncheck command now allows the inode number to be surrounded by
		angle brackets, to be consistent with other debugfs commands.
		Debugfs no longer prints a scary message when debugfs -c (which enables
		"catastrophic mode") is used.  This was intended to allow debugfs to
		operate on very badly corrupted file systems, but it is now sometimes
		used to suppress reading the block and inode bitmaps when they are not
		needed.
		Resize2fs will round down the requested new file system size to the
		nearest cluster boundary when resizing bigalloc file systems.
		Improve error messages issued by badblocks.
		Fuse2fs now supports an offset=<bytes> option which allows operating on
		a file system image which is located starting at the specified offset
		from the beginning of the image.
	Fixes
		Pre-v6.2 Linux kernels had long-standing bug in how the extended
		attribute hash was calculated when there were non-ASCII characters in
		the xattr name, when the hash would be different depending on whether
		the C 'char' type was signed or unsigned.  To address this bug, starting
		with e2fsprogs 1.46.6+ and Linux 6.2+, we will accept either the signed
		or unsigned hash variant, but only set the unsigned hash variant.  Since
		extended attribute names are in practice composed of ASCII characters,
		other than various tests (such as generic/454), most users will
		hopefully not notice this change.
		Avoid triggering udev in dumpe2fs and "resize2fs -P" for file systems
		with MMP enabled by opening the device read-only when reading the MMP
		block.
		Fix MMP handling so it can notice when another writer has modify the MMP
		block out from under it when stopping a MMP sessions.
		Fix tune2fs so it will detect another device stealing the MMP sessions
		while rewriting metadata checksums.
		E2fsck will now check to make sure the journal inode does not have the
		encrypt flag set.
		Fix a deadlock bug in e2fsck's error handler when there are errors
		trying to write to the file system.
		Fix a bug where e2fsck could fail when specifying an undo file and an
		explicit superblock number.
		Fix e2image so it won't potentially loop forever for certain invalid
		file systems.
		Fix resize2fs to honor the E2FSPROGS_FAKE_TIME environment variable.
		This allows embedded system builders who use resize2fs as part of their
		image build process to create reproducible images.
		Fix tune2fs to avoid a crash if the journal replay fails and to make
		sure its exit status is non-zero if there is some failure.
		Fix tune2fs, fuse2fs, and debugsfs to update j_tail_sequence when
		replaying the journal.
		Add additional bullet-proofing for very badly corrupted file systems.
		Try avoid UBSAN warnings, null pointer derferences, and other memory
		bugs.  (Addresses CVE-2022-1304)
		Don't fail when the source directory for mke2fs -d doesn't support
		extended attributese.
		Check for and handle malloc() failures when computing the log filename
		in e2fsck and in the libss library.
		Fix tune2fs and e2fsck to accept pathames which include '=' characters.
		Previously arguments to tune2fs and e2fsck which included '=' characters
		are presumed to be blkid specifiers such as UUID=xxx or LABEL=yyy.  If a
		specifier is both a valid pathname name and blkid tag name specifier,
		priority is given to a blkid resolved pathname.
		Improve tune2fs's error messages.
		Fix a bug in tune2fs which could cause it to crash if device goes
		off-line just as it being opened.
		Fix the fsck driver so if it is interrupted while running fsck -N it
		doesn't end up kllling all processes on the system.
		Fix a crash in badblocks when the user specifies an overly large
		number of blocks tested at a time in read/write or nondestructive
		mode.
		Update and clarify's chattr's man page and usage message.  Fix spelling
		typo's in a variety of different man pages and comments.
	Performance, Internal Implementation, Development Support etc.
		Update to autoconf 2.71.
		Update flags used to create shared library on Darwin/MacOS.
		Speed up e2fsck's clonning of multiply-claimed blocks so it is
		substantially faster on very large file systems.
		Add tests/fuzz directory with fuzzers from oss-fuzz.
		Add a Github Actions configuration file so that Github will run CI tests
		on Linux, Windows and MacOS on a push to the e2fsprogs github repo.
		Make the mtab parsing in ext2fs_check_mount_point() more careful so it
		won't get confused when a block device shows up in the mnt_name field
		for a virtual file system.
		Fix the libss's Makefile to create the man page directory before trying
		to install its man page.
		Fix various Coverity and compiler warnings.
		Make tests more portable on various different OS's and system
		configurations (e.g., with SELinux enabled, MacOS, and Windows)
		Use mallinfo2() instead of mallinfo() where avilable, since mallinfo()
		is deprecated on newer glibc versions.
		E2fsck will no longer do a full scan of disconnected directory when
		trying to print the parent directory, which is pointless and can slow
		down e2fsck if there are a large number of disconnected directories.
		Debugfs will now print the extended attribute's e_hash field.
		Fix the setup-schroot script to work on non-Linux platforms.
		Fix ext2fs_compare_generic_bmap() so it correctly compares all of the
		bits in the bitmap, and so that it works correctly when comparing a
		bitarray bitmap with a rbtree-based bitmap.  (Fortunately, none of the
		programs in e2fsprogs uses bitmap comparison functions.)
		Fix memory leaks on error paths.
		Add support for the configure option --enable-largefile so that
		e2fsprogs can utilize largefile support for the MUSL C library.
		Add an note that the dict library code has been modified, as required by
		the Kazlib license.
		Synchronized changes from Android's AOSP e2fsprogs tree.
		Updated config.guess and config.sub with newer versions from the FSF.
		Add Friulian translation.
		Update Chinese, Czech, Dutch, French, German, Malay, Polish, Serbian,
		Spanish, Swedish, and Ukrainian translations.

Fixes: bug#13073
Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 lfs/e2fsprogs | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Michael Tremer May 13, 2024, 10:01 a.m. UTC | #1
Reviewed-by: Michael Tremer <michael.tremer@ipfire.org>

> On 11 May 2024, at 12:27, Adolf Belka <adolf.belka@ipfire.org> wrote:
> 
> - Previously this patch was reverted due to Grub not being able to boot with it.
>   This was fixed in Grub-2.12
> - Confirmed on my vm testbed that a CU186 install with this e2fsprogs version was able
>   to complete the install when the reboot button at the end of the first install stage
>   was completed.
> - Update from version 1.46.5 to 1.47.0
> - Update of rootfile not required
> - Changelog
>    E2fsprogs 1.47.0 (February 5, 2023)
> Updates/Fixes since v1.46.6:
> UI and Features
> Add support for the orphan_file feature, which speeds up workloads that
> are deleting or truncating a large number files in parallel.  This
> compat feature was first supported in the v5.15 Linux kernel.
> The mke2fs program (via the mke2fs.conf file) now enables the
> metadata_csum_seed and orphan_file features by default.  The
> metadata_csum_seed feature is an incompat feature which is first
> supported in the Linux kernel starting in the 4.4 kernel and e2fsprogs
> 1.43.
> Mke2fs now supports the extended option "assume_storage_prezeroed" which
> causes mke2fs to skip zeroing the journal and inode tables and to mark
> the inode tables as zeroed.
> Add support to tune2fs and e2label to set the label and UUID for a
> mounted file system using a ioctl, which is more reliable than modifying
> the superblock via writing to the block device.  The kernel support for
> setting the label landed in v5.17, while the support for adding the UUID
> landed in v6.0.  If the ioctls are not supported, tune2fs and e2label
> will fall back old strategy of directly modifying the superblock.
> Allow tune2fs to disable the casefold feature after scanning all of the
> directories do not have the Casefold flag set.
> Fixes
> Fix a potential unbalanced mutex unlock when there is a short read while
> using the bounce buffer when using direct I/O.
> Performance, Internal Implementation, Development Support etc.
> Fix various Coverity and compiler warnings.
> Add the new function ext2fs_xattrs_read_inode() which takes an in-memory
> inode to avoid needing to reread an inode that was already read into
> memory.
> Teach debugfs logdump command the -n option which forces printing a
> specified number of transactions, even when a block missing a magic
> number would have stopped the logdump.  (This is for debugging
> journalling problems.)
>    E2fsprogs 1.46.6 (February 1, 2023)
> Updates/Fixes since v1.46.5:
> UI and Features
> Debugfs's ncheck command now allows the inode number to be surrounded by
> angle brackets, to be consistent with other debugfs commands.
> Debugfs no longer prints a scary message when debugfs -c (which enables
> "catastrophic mode") is used.  This was intended to allow debugfs to
> operate on very badly corrupted file systems, but it is now sometimes
> used to suppress reading the block and inode bitmaps when they are not
> needed.
> Resize2fs will round down the requested new file system size to the
> nearest cluster boundary when resizing bigalloc file systems.
> Improve error messages issued by badblocks.
> Fuse2fs now supports an offset=<bytes> option which allows operating on
> a file system image which is located starting at the specified offset
> from the beginning of the image.
> Fixes
> Pre-v6.2 Linux kernels had long-standing bug in how the extended
> attribute hash was calculated when there were non-ASCII characters in
> the xattr name, when the hash would be different depending on whether
> the C 'char' type was signed or unsigned.  To address this bug, starting
> with e2fsprogs 1.46.6+ and Linux 6.2+, we will accept either the signed
> or unsigned hash variant, but only set the unsigned hash variant.  Since
> extended attribute names are in practice composed of ASCII characters,
> other than various tests (such as generic/454), most users will
> hopefully not notice this change.
> Avoid triggering udev in dumpe2fs and "resize2fs -P" for file systems
> with MMP enabled by opening the device read-only when reading the MMP
> block.
> Fix MMP handling so it can notice when another writer has modify the MMP
> block out from under it when stopping a MMP sessions.
> Fix tune2fs so it will detect another device stealing the MMP sessions
> while rewriting metadata checksums.
> E2fsck will now check to make sure the journal inode does not have the
> encrypt flag set.
> Fix a deadlock bug in e2fsck's error handler when there are errors
> trying to write to the file system.
> Fix a bug where e2fsck could fail when specifying an undo file and an
> explicit superblock number.
> Fix e2image so it won't potentially loop forever for certain invalid
> file systems.
> Fix resize2fs to honor the E2FSPROGS_FAKE_TIME environment variable.
> This allows embedded system builders who use resize2fs as part of their
> image build process to create reproducible images.
> Fix tune2fs to avoid a crash if the journal replay fails and to make
> sure its exit status is non-zero if there is some failure.
> Fix tune2fs, fuse2fs, and debugsfs to update j_tail_sequence when
> replaying the journal.
> Add additional bullet-proofing for very badly corrupted file systems.
> Try avoid UBSAN warnings, null pointer derferences, and other memory
> bugs.  (Addresses CVE-2022-1304)
> Don't fail when the source directory for mke2fs -d doesn't support
> extended attributese.
> Check for and handle malloc() failures when computing the log filename
> in e2fsck and in the libss library.
> Fix tune2fs and e2fsck to accept pathames which include '=' characters.
> Previously arguments to tune2fs and e2fsck which included '=' characters
> are presumed to be blkid specifiers such as UUID=xxx or LABEL=yyy.  If a
> specifier is both a valid pathname name and blkid tag name specifier,
> priority is given to a blkid resolved pathname.
> Improve tune2fs's error messages.
> Fix a bug in tune2fs which could cause it to crash if device goes
> off-line just as it being opened.
> Fix the fsck driver so if it is interrupted while running fsck -N it
> doesn't end up kllling all processes on the system.
> Fix a crash in badblocks when the user specifies an overly large
> number of blocks tested at a time in read/write or nondestructive
> mode.
> Update and clarify's chattr's man page and usage message.  Fix spelling
> typo's in a variety of different man pages and comments.
> Performance, Internal Implementation, Development Support etc.
> Update to autoconf 2.71.
> Update flags used to create shared library on Darwin/MacOS.
> Speed up e2fsck's clonning of multiply-claimed blocks so it is
> substantially faster on very large file systems.
> Add tests/fuzz directory with fuzzers from oss-fuzz.
> Add a Github Actions configuration file so that Github will run CI tests
> on Linux, Windows and MacOS on a push to the e2fsprogs github repo.
> Make the mtab parsing in ext2fs_check_mount_point() more careful so it
> won't get confused when a block device shows up in the mnt_name field
> for a virtual file system.
> Fix the libss's Makefile to create the man page directory before trying
> to install its man page.
> Fix various Coverity and compiler warnings.
> Make tests more portable on various different OS's and system
> configurations (e.g., with SELinux enabled, MacOS, and Windows)
> Use mallinfo2() instead of mallinfo() where avilable, since mallinfo()
> is deprecated on newer glibc versions.
> E2fsck will no longer do a full scan of disconnected directory when
> trying to print the parent directory, which is pointless and can slow
> down e2fsck if there are a large number of disconnected directories.
> Debugfs will now print the extended attribute's e_hash field.
> Fix the setup-schroot script to work on non-Linux platforms.
> Fix ext2fs_compare_generic_bmap() so it correctly compares all of the
> bits in the bitmap, and so that it works correctly when comparing a
> bitarray bitmap with a rbtree-based bitmap.  (Fortunately, none of the
> programs in e2fsprogs uses bitmap comparison functions.)
> Fix memory leaks on error paths.
> Add support for the configure option --enable-largefile so that
> e2fsprogs can utilize largefile support for the MUSL C library.
> Add an note that the dict library code has been modified, as required by
> the Kazlib license.
> Synchronized changes from Android's AOSP e2fsprogs tree.
> Updated config.guess and config.sub with newer versions from the FSF.
> Add Friulian translation.
> Update Chinese, Czech, Dutch, French, German, Malay, Polish, Serbian,
> Spanish, Swedish, and Ukrainian translations.
> 
> Fixes: bug#13073
> Tested-by: Adolf Belka <adolf.belka@ipfire.org>
> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
> ---
> lfs/e2fsprogs | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/lfs/e2fsprogs b/lfs/e2fsprogs
> index 4758b5401..ce1ba19a4 100644
> --- a/lfs/e2fsprogs
> +++ b/lfs/e2fsprogs
> @@ -1,7 +1,7 @@
> ###############################################################################
> #                                                                             #
> # IPFire.org - A linux based firewall                                         #
> -# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
> +# Copyright (C) 2007-2024  IPFire Team  <info@ipfire.org>                     #
> #                                                                             #
> # 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        #
> @@ -24,7 +24,7 @@
> 
> include Config
> 
> -VER      = 1.46.5
> +VER      = 1.47.0
> 
> THISAPP    = e2fsprogs-$(VER)
> DL_FILE    = $(THISAPP).tar.xz
> @@ -40,7 +40,7 @@ objects = $(DL_FILE)
> 
> $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
> 
> -$(DL_FILE)_BLAKE2 = 8d8c02e891c464782a7cff518c41d793fc73366b57e17d80ffc5afd96e6144e354290e667e9710509a9dde4e5dab7e7185c5bf084c5bfd26219f05e5e92e0830
> +$(DL_FILE)_BLAKE2 = 84f58b05a9f0e14e1a66c6e5171ff23b022f51c4e9a02d4d6d1d26c91909f3c7ec9c9f0462663a4457b4479043774502b8891f691e58a61f4ef6bf9ba33f33aa
> 
> install : $(TARGET)
> 
> -- 
> 2.44.0
>
  

Patch

diff --git a/lfs/e2fsprogs b/lfs/e2fsprogs
index 4758b5401..ce1ba19a4 100644
--- a/lfs/e2fsprogs
+++ b/lfs/e2fsprogs
@@ -1,7 +1,7 @@ 
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2024  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # 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        #
@@ -24,7 +24,7 @@ 
 
 include Config
 
-VER      = 1.46.5
+VER      = 1.47.0
 
 THISAPP    = e2fsprogs-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 8d8c02e891c464782a7cff518c41d793fc73366b57e17d80ffc5afd96e6144e354290e667e9710509a9dde4e5dab7e7185c5bf084c5bfd26219f05e5e92e0830
+$(DL_FILE)_BLAKE2 = 84f58b05a9f0e14e1a66c6e5171ff23b022f51c4e9a02d4d6d1d26c91909f3c7ec9c9f0462663a4457b4479043774502b8891f691e58a61f4ef6bf9ba33f33aa
 
 install : $(TARGET)