Fixed
- Do not
--backup-rename special output paths like/dev/null(see issue #763) - Fix json UTF-encoding issues (see issues #463 and #464)
- Fix
rmlint --guiignoring manual tagging of originals (see issue #385) - Fix various bugs in
--replaymode (see issue #383) - Fix bug if
--treemergeused in combination with--algorithm=SHA1 - Fix broken
rmlint.pyscript after adding of part_of_directory types - Don't disable fiemap when gettext is disabled
- Various fixes aimed at improving mac osx compatibility
- Avoid generating
rmlint.shor other output files forrmlint --dedupeor ``rmlint --is-reflink` - Fix possible compile problems scons' default CC flags are non-functional
- Fix GUI failing to start with pygobject >= 3.56
- Make SSE4.2 runtime dispatch works on Clang builds.
- FreeBSD:
rmlint.sh's RMLINT_BINARY= entry. - Fix
--honour-dir-layout/-jwhen filenames and content are the sames, just not
at the same place. - Add a protection against
-DXOR cancellation
Added
- Implement --hash-uniques option to generate full checksums of unique files too.
- Implement --hash-unmatched option, similar to --hash-uniques but only for size twins.
- Implement --rank-by f option to rank originals by directory full path
- Can now atomically clone from original to its hardlink via
rmlint --dedupe - Option
-c json:traversedto include list of fully-traversed dirs in json output - Option
--ignore-bad-pathsto not abort run if one or more bad paths passed - Exit code 12 for
rmlint --is-reflink: inline extents. - FreeBSD: support for xattr checksum cache (#800).
- BLAKE3 and its 512-bit extension
- xxHash3-128 digest: still ultra-fast with less collision risks than the 64-bit variant.
,dflag to--sizeto skip directories byst_size.- Tests: new markers for tests with special needs (reflink, xattr, manpage).
scons --show-configshows features and build in one run.- Build target test understands a new SCons variable:
PYTEST_ARGS. - For packagers: build targets
install-cliandinstall-gui, handy for split-packaging.
Note that the GUI still depends on the CLI. - For packagers: environement variable
SOURCE_DATE_EPOCHis honoured. - For packagers: environement variables
PYTHONHASHSEED,PYTHONPATH,
andDEB_PYTHON_INSTALL_LAYOUTare honoured for the GUI. - On Debian, without
PREFIX=andDEB_PYTHON_INSTALL_LAYOUT,
scons install-guiinstalls to/usr/local/lib/python3.YY/dist-packages. CFLAGSandLDFLAGSfrom the environment are now appending to our flags,
so that they could override ours.- Build no longer strip at link time unless explicitly asked with
STRIP=1(or=yes,=true). - Japanese translation
Changed
- Option
--dedupeoption parsing changed. Seermlint --dedupe -hfor more.
Previously:
rmlint --dedupe [--dedupe-xattr] [--dedupe-readonly] [-v] [-V] <src> <dest>
Now:
rmlint --dedupe [--xattr] [--readonly] [--followlinks] [--inline-extents] [-v] [-V] <src> <dest> - Made json-glib a hard dependency
- Improved progress reporting ETA algorithm when large number of small files remaining to scan
- Small files (<4k) are now generally ignored for reflinking / cloning options since They
are typically stored as inline extents - container: provide images for building, running and testing
- short option
-Unow refers to--hash-unmatchedinstead of--write-unfinished. - Treat paths beyond
PATH_MAXas a hard error instead of truncating them -g --progressand-G --no-progressdo not clear outputs anymore (#582).rmlint.shsets-euby default (#469).- The generated
rmlint.pyminimum supported Python is now 3.9 - GUI: the minimum supported Python version is now 3.12
- GUI: the minimum supported Gtk version is now 3.22
- GUI: remove hard Rsvg dependency.
- The minimum supported Glib version is now 2.74
- The default installation prefix is now
/usr/local. - The build system supports
PREFIX=,DESTDIR=andLIBDIR=variables
instead of the old--prefix,--actualprefixand--libdiroptions.
Note thatDESTDIR=is not equivalent to--actualprefix. - Shredder's GSettings schema is now
io.github.sahib.rmlint.Shredder
instead oforg.gnome.Shredder— Shredder is not a GNOME project. The
application ID and the GResource prefix changed as well accordingly.
Shredder will therefore starts from its defaults, but the old values can be
read using:dconf dump /org/gnome/Shredder/.
Removed
--dedupe-xattr. Use--dedupe --xattr--dedupe-readonly. Use--dedupe --readonly- Build target
config. Usescons --show-config -n. - Dropped support for Python 2.