Attached the debian.tar.xz of my local build with many fixes included.
configure-ac.patch ........... 1 compiler-warnings.patch ...... 1 handle-bigfiles.patch ........ 4 xattr_verify.patch ........... 3 ignore-ext4-extents-flag.patch . 2 fix-uninit-blocks.patch ...... 4 fix-write-estimate.patch ..... 2 fix-paramter-maxsize.patch ... 2 handle-inline-data.patch ..... 4 I've ranked them from 1-4. 1 - it makes no difference if the patch is included 2 - Data is written to tape and restored correctly but a verify might fail or other visible effects. 3 - Data is written to tape correctly but a restore does not give correct results. 4 - Invalid data is written to tape. Details of each patch: (T) indicates that I have a testcase for the bug. configure-ac.patch Update configure.ac so that there are no warnings about deprecated usage. compiler-warnings.patch Fix some compiler warnings about suspicious usage. (The usage appears OK in the particular context) handle-bigfiles.patch (T) Correctly dump files that use blocks with index >=2^32. On a default bookworm install using default mkfs.ext4 this means filesystems >16T xattr_verify.patch (T) This replaces the existing xattr_verify. (which I notice is still present in the tarfile but isn't part of the quilt series - not sure what I did wrong there). As well as the original issue where verify of files that had EA across two blocks, this fixes a similar issue with directories except that directories didn't restore correctly. N.B. I've only tested the cases of files and directories. I now have proper testcases that I'll extend to the other types that can have EA so there might be another patch incoming shortly. ignore-ext4-extents-flag.patch (T) When verifying symlinks you cannot get or set the flags on the symlink. But with ext4 the flags can either be 0 or EXT4_EXTENTS_FL. This patch ignores this flag while verifying. fix-uninit-blocks.patch (T) Ext4 added the feature that an extent can reserve blocks on the FS but not write any data to them. This patch ensures that the dump gets blocks of zeros written to it rather than whatever random, uninitialized data exists on the disk. fix-write-estimate.patch The existing code incorrectly calculates the file size for very large files therefore the estimate of blocks to be written will also be wrong. fix-paramter-maxsize.patch The -D parameter to restore -C was limited to 64 characters. This meant verifies of a FS mounted on a patch longer than this would fail. handle-inline-data.patch (T) Ext4 adds the ability to store small files in the inode. These were not dumped to the tape at all. Additionally, they use a "system.data" EA which messes up both restore and verify of EAs. -O inline_data is not a default parameter for bookworm and so this bug will only be hit by people who explicitly request inline data. All of the testcases require root to run so I've not included them. They can be found here: https://sourceforge.net/p/dump/code/merge-requests/3/
dump_0.4b47-4+~tjw12r7.debian.tar.xz
Description: application/xz