Skip to content

librsync 2.3.0

Compare
Choose a tag to compare
@dbaarda dbaarda released this 07 Apr 07:18
· 200 commits to master since this release
028d943

Overview

This is a minor release that adds rs_sig_args() for getting the recommended signature arguments based on the file size. which is used by rs_sig_file() and rdiff. This means rdiff by default will use a better block size based on the file size, and supports using --sum-size=-1 to use the smallest safe sum size (safe against random collisions, not against crafted hash-collision attacks). It removes old code that made the default strongsum size 8 when using --hash=md4, and it now defaults to 16 (the max for md4) for better protection against the risk of hash collision attacks and corruption. It also includes many code cleanups and testing improvements, including full C99 compliance. Upgrading from v2.2.1 is optional.

To generate signatures identical to the previous version's default arguments, you will need to use --block-size=2048 to select the old default block size. Also, when using --hash md4 you will need to add --sum-size=8 to select the old sum-size default when using md4 strongsums.

Included Changes

  • Bump minor version from 2.2.1 to 2.3.0 to reflect additional rs_sig_args() and strong_len=-1 support.

  • Add public rs_sig_args() function for getting the recommend signature args from the file size. Added support to rdiff for --sum-size=-1 to indicate "use minimum size safe against random block collisions". Added warning output for sum-sizes that are too small to be safe. Fixed possible rdiff bug affecting popt parsing on non-little-endian platforms. (dbaarda, #109)

  • Fixed yet more compiler warnings for various platforms/compilers. (Adsun701, texierp, #187, #188)

  • Improved cmake popt handling to find popt dependencies using PkgConfig. (ffontaine, #186)

  • Tidied internal code and improved tests for netint.[ch], tube.c, and hashtable.h. (dbaarda, #183 #185).

  • Improved C99 compatibility. Add -std=c99 -pedantic to CMAKE_C_FLAGS for gcc and clang. Fix all C99 warnings by making all code C99 compliant. Tidy all CMake checks, #cmakedefines, and #includes. Fix 64bit support for mdfour checksums (texierp, dbaarda, #181, #182)

  • Usage clarified in rdiff (1) man page. (AaronM04, #180)

Known Issues

  • The debian package configs are still very out of date.

  • There is still no documentation on how to compile on or cross-compile for windows. See #171 for help.