$treeview $search $mathjax $extrastylesheet
librsync
2.0.2
$projectbrief
|
$projectbrief
|
$searchbox |
00001 # librsync NEWS 00002 00003 ## librsync 2.0.2 00004 00005 Released 2018-02-27 00006 00007 * Improve CMake install paths configuration (wRAR, 00008 https://github.com/librsync/librsync/pull/133) and platform support 00009 checking when cross-compiling (fornwall, 00010 https://github.com/librsync/librsync/pull/136). 00011 00012 * Fix Unaligned memory access for rs_block_sig_init() (dbaarda, 00013 https://github.com/librsync/librsync/issues/135). 00014 00015 * Fix hashtable_test.c name collision for key_t in sys/types.h on some 00016 platforms (dbaarda, https://github.com/librsync/librsync/issues/134) 00017 00018 * Format code with consistent style, adding `make tidy` and `make 00019 tidyc` targets for reformating code and comments. (dbaarda, 00020 https://github.com/librsync/librsync/issues/125) 00021 00022 * Update RPM spec file for v2.0.2 and fix cmake man page install. (deajan, 00023 https://github.com/librsync/librsync/issues/47) 00024 00025 ## librsync 2.0.1 00026 00027 Released 2017-10-17 00028 00029 * Extensively reworked Doxygen documentation, now available at 00030 http://librsync.sourcefrog.net/ (Martin Pool) 00031 00032 * Removed some declarations from librsync.h that were unimplemented or no 00033 longer ever useful: `rs_work_options`, `rs_accum_value`. Remove 00034 declaration of unimplemented `rs_mdfour_file()`. (Martin Pool) 00035 00036 * Remove shipped `snprintf` code: no longer acutally linked after changing to 00037 CMake, and since it's part of C99 it should be widely available. 00038 (Martin Pool) 00039 00040 * Document that Ninja (http://ninja-build.org/) is supported under CMake. 00041 It's a bit faster and nicer than Make. (Martin Pool) 00042 00043 * `make check` (or `ninja check` etc) will now build and run the tests. 00044 Previously due to a CMake limitation, `make test` would only run existing 00045 tests and could fail if they weren't built. 00046 (Martin Pool, https://github.com/librsync/librsync/issues/49) 00047 00048 * Added cmake options to exclude rdiff target and compression from build. 00049 See install documentation for details. Thanks to Michele Bertasi. 00050 00051 * `popt` is only needed when `rdiff` is being built. (gulikoza) 00052 00053 * Improved large file support for platforms using different variants 00054 of `fseek` (`fseeko`, `fseeko64`, `_fseeki64`), `fstat` (`fstat64`, 00055 `_fstati64`), and `fileno` (`_fileno`). (dbaarda, charlievieth, 00056 gulikoza, marius-nicolae) 00057 00058 * `rdiff -s` option now shows bytes read/written and speed. (gulikoza). 00059 For delta operations it also shows hashtable match statistics. (dbaarda) 00060 00061 * Running rdiff should not overwrite existing files (signatures, deltas and 00062 new patched files) by default. If the destination file exists, rdiff will 00063 now exit with an error. Add new option -f (--force) to overwrite existing 00064 files. (gulikoza) 00065 00066 * Improve signature memory allocation (doubling size instead of calling 00067 realloc for every sig block) and added support for preallocation. See 00068 streaming.md job->estimated_signature_count for usage when using the 00069 library. `rdiff` uses this by default if possible. (gulikoza, dbaarda) 00070 00071 * Significantly tidied signature handling code and testing, resulting in more 00072 consistent error handling behaviour, and making it easier to plug in 00073 alternative weak and strong sum implementations. Also fixed "slack delta" 00074 support for delta calculation with no signature. (dbaarda) 00075 00076 * `stdint.h` and `inttypes.h` from C99 is now required. Removed redundant 00077 librsync-config.h header file. (dbaarda) 00078 00079 * Lots of small fixes for windows platforms and building with MSVC. 00080 (lasalvavida, mbrt, dbaarda) 00081 00082 * New open addressing hashtable implementation that significantly speeds up 00083 delta operations, particularly for large files. Also fixed degenerate 00084 behaviour with large number of duplicate blocks like runs of zeros 00085 in sparse files. (dbaarda) 00086 00087 * Optional support with cmake option for using libb2 blake2 implementation. 00088 Also updated included reference blake2 implementation with bug fixes 00089 (dbaarda). 00090 00091 * Improved default values for input and output buffer sizes. The defaults are 00092 now --input-size=0 and --output-size=0, which will choose recommended 00093 default sizes based on the --block-size and the operation being performed. 00094 (dbaarda) 00095 00096 * Fixed hanging for truncated input files. It will now correctly report an 00097 error indicating an unexpected EOF was encountered. (dbaarda, 00098 https://github.com/librsync/librsync/issues/32) 00099 00100 * Fixed #13 so that faster slack delta's are used for signatures of 00101 empty files. (dbaarda, 00102 https://github.com/librsync/librsync/issues/13) 00103 00104 * Fixed #33 so rs_job_iter() doesn't need calling twice with eof=1. 00105 Also tidied and optimized it a bit. (dbaarda, 00106 https://github.com/librsync/librsync/issues/33) 00107 00108 * Fixed #55 remove excessive rs_fatal() calls, replacing checks for 00109 programming errors with assert statements. Now rs_fatal() will only 00110 be called for rare unrecoverable fatal errors like malloc failures or 00111 impossibly large inputs. (dbaarda, 00112 https://github.com/librsync/librsync/issues/55) 00113 00114 ## librsync 2.0.0 00115 00116 Released 2015-11-29 00117 00118 Note: despite the major version bump, this release has few changes and should 00119 be binary and API compatible with the previous version. 00120 00121 * Bump librsync version number to 2.0, to match the library 00122 soname/dylib version. 00123 (Martin Pool, https://github.com/librsync/librsync/issues/48) 00124 00125 ## librsync 1.0.1 (2015-11-21) 00126 00127 * Better performance on large files. (VictorDenisov) 00128 00129 * Add comment on usage of rs_build_hash_table(), and assert correct use. 00130 Callers must call rs_build_hash_table() after loading the signature, 00131 and before calling rs_delta_begin(). 00132 Thanks to Paul Harris <paulharris@computer.org> 00133 00134 * Switch from autoconf to CMake. 00135 00136 Thanks to Adam Schubert. 00137 00138 ## librsync 1.0.0 (2015-01-23) 00139 00140 * SECURITY: CVE-2014-8242: librsync previously used a truncated MD4 00141 "strong" check sum to match blocks. However, MD4 is not cryptographically 00142 strong. It's possible that an attacker who can control the contents of one 00143 part of a file could use it to control other regions of the file, if it's 00144 transferred using librsync/rdiff. For example this might occur in a 00145 database, mailbox, or VM image containing some attacker-controlled data. 00146 00147 To mitigate this issue, signatures will by default be computed with a 00148 256-bit BLAKE2 hash. Old versions of librsync will complain about a 00149 bad magic number when given these signature files. 00150 00151 Backward compatibility can be obtained using the new 00152 `rdiff sig --hash=md4` 00153 option or through specifying the "signature magic" in the API, but 00154 this should not be used when either the old or new file contain 00155 untrusted data. 00156 00157 Deltas generated from those signatures will also use BLAKE2 during 00158 generation, but produce output that can be read by old versions. 00159 00160 See https://github.com/librsync/librsync/issues/5 00161 00162 Thanks to Michael Samuel <miknet.net> for reporting this and offering an 00163 initial patch. 00164 00165 * Various build fixes, thanks Timothy Gu. 00166 00167 * Improved rdiff man page from Debian. 00168 00169 * Improved librsync.spec file for building RPMs. 00170 00171 * Fixed bug #1110812 'internal error: job made no progress'; on large 00172 files. 00173 00174 * Moved hosting to https://github.com/librsync/librsync/ 00175 00176 * Travis-CI.org integration test at https://travis-ci.org/librsync/librsync/ 00177 00178 * You can set `$LIBTOOLIZE` before running `autogen.sh`, for example on 00179 OS X Homebrew where it is called `glibtoolize`. 00180 00181 ## 0.9.7 (released 2004-10-10) 00182 00183 * Yet more large file support fixes. 00184 00185 * `extern "C"` guards in librsync.h to let it be used from C++. 00186 00187 * Removed Debian files from dist tarball. 00188 00189 * Changed rdiff to an installed program on "make install". 00190 00191 * Refactored delta calculation code to be cleaner and faster. 00192 00193 * \#879763: Fixed mdfour to work on little-endian machines which don't 00194 like unaligned word access. This should make librsync work on 00195 pa-risc, and it makes it slightly faster on ia64. 00196 00197 * \#1022764: Fix corrupted encoding of some COPY commands in large 00198 files. 00199 00200 * \#1024881: Print long integers directly, rather than via casts to 00201 double. 00202 00203 * Fix printf formats for size_t: both the format and the argument 00204 should be cast to long. 00205 00206 ## 0.9.6 00207 00208 * Large file support fixes. 00209 00210 * [v]snprintf or _[v]snprintf autoconf replacement function fix. 00211 00212 * Changed installed include file from rsync.h to librsync.h. 00213 00214 * Migration to sourceforge for hosting. 00215 00216 * Rollsum bugfix that produces much smaller deltas. 00217 00218 * Memory leaks bugfix patches. 00219 00220 * mdfour bigendian and >512M bugfix, plus optimisations patch. 00221 00222 * autoconf/automake updates and cleanups for autoconf 2.53. 00223 00224 * Windows compilation patch, heavily modified. 00225 00226 * MacOSX compilation patch, modified to autoconf vararg macro fix. 00227 00228 * Debian package build scripts patch. 00229 00230 ## 0.9.5 00231 00232 * Bugfix patch from Shirish Hemant Phatak 00233 00234 ## 0.9.4: (library 1.1.0) 00235 00236 * Fixes for rsync.h from Thorsten Schuett <thorsten.schuett@zib.de> 00237 00238 * RLL encoding fix from Shirish Hemant Phatak <shirish@nustorage.com> 00239 00240 * RPM spec file by Peter J. Braam <braam@clusterfs.com> 00241 00242 * No (intentional) changes to binary API. 00243 00244 ## 0.9.3 00245 00246 * Big speed improvements in MD4 routines and generation of weak 00247 checksums. 00248 00249 * Patch to build on FreeBSD by Jos Backus <josb@cncdsl.com> 00250 00251 * Suggestions to build on Solaris 2.6 from Alberto Accomazzi 00252 <aaccomazzi@cfa.harvard.edu> 00253 00254 * Add rs_job_drive, a generic mechanism for turning the library into 00255 blocking mode. rs_whole_run now builds on top of this. The 00256 filebuf interface has changed a little to accomodate it. 00257 00258 * Generating and loading signatures now generates statistics. 00259 00260 * More test cases. 00261 00262 * I suspect there may be a bug in rolling checksums, but it probably 00263 only causes inefficiency and not corruption. 00264 00265 * Portability fixes for alphaev67-dec-osf5.1; at the moment builds 00266 but does not work because librsync tries to do unaligned accesses. 00267 00268 * Works on sparc64-unknown-linux-gnu (Debian/2.2) 00269 00270 ## 0.9.2 00271 00272 * Improve delta algorithm so that deltas are actually 00273 delta-compressed, rather than faked. 00274 00275 ## 0.9.1 00276 00277 * Rename the library to `librsync'. 00278 00279 * Portability fixes. 00280 00281 * Include the popt library, and use it to build rdiff if the library 00282 is not present on the host. 00283 00284 * Add file(1) magic for rdiff. 00285 00286 * Add more to the manual pages. 00287 00288 * It's no longer necessary to call rs_buffers_init on a stream before 00289 starting to use it: all the internal data is kept in the job, not 00290 in the stream. 00291 00292 * Rename rs_stream_t to rs_buffers_t, a more obvious name. Pass the 00293 buffers to every rs_job_iter() call, rather than setting it at 00294 startup. Similarly for all the _begin() functions. 00295 00296 * rs_job_new also takes the initial state function. 00297 00298 * Return RS_PARAM_ERROR when library is misused. 00299 00300 ## 0.9.0 00301 00302 * Redesign API to be more like zlib/bzlib. 00303 00304 * Put all command-line functions into a single rdiff(1) program. 00305 00306 * New magic number `rs6' 00307 00308 * Change to using popt for command line parsing. 00309 00310 * Use Doxygen for API documentation. 00311 00312 ## 0.5.7 00313 00314 * Changes stats string format. 00315 00316 * Slightly improved test cases 00317 00318 ## 0.5.6 00319 00320 * Don't install debugging tools into /usr/local/bin; leave them in 00321 the source directory. 00322 00323 * Fix libhsync to build on (sgi-mips, IRIX64, gcc, GNU Make) 00324 00325 * Include README.CVS in tarball 00326 00327 * Back out of using libtool and shared libraries, as it is 00328 unnecessary at this stage, complicates installation and slows down 00329 compilation. 00330 00331 * Use mapptr when reading data to decode, so that decoding should 00332 have less latency and be more reliable. 00333 00334 * Cope better on systems that are missing functions like snprintf. 00335 00336 ## 0.5.5 00337 00338 * Put genuine search encoding back into the nad algorithm, and 00339 further clean up the nad code. Literals are now sent out using a 00340 literal buffer integrated with the input mapptr so that data is not 00341 copied. Checksums are still calculated from scratch each time 00342 rather than by rolling -- this is very slow but simple. 00343 00344 * Reshuffle test cases so that they use files generated by hsmapread, 00345 rather than the source directory. This makes the tests quicker and 00346 more reproducible, hopefully without losing coverage. Further 00347 develop the test driver framework. 00348 00349 * Add hsdumpsums debugging tool. 00350 00351 * Hex strings (eg strong checksums) are broken up by underscores for 00352 readability. 00353 00354 * Stats now go to the log rather than stdout. 00355 00356 * mapptr acts properly when we're skipping/rewinding to data already 00357 present in the buffer -- it does a copy if required, but not 00358 necessarily real IO. 00359 00360 ## 0.5.4 00361 00362 * Improved mapptr input code 00363 00364 * Turn on more warnings if using gcc 00365 00366 * More test cases 00367 00368 ## 0.5.3 00369 00370 * Improvements to mapptr to make it work better for network IO. 00371 00372 * Debug trace code is compiled in unless turned off in ./configure 00373 (although most programs will not write it out unless asked.) 00374 00375 * Add libhsyncinfo program to show compiled-in settings and version. 00376 00377 * Add test cases that run across localhost TCP sockets. 00378 00379 * Improved build code; should now build easily from CVS through 00380 autogen.sh. 00381 00382 * Improved trace code. 00383 00384 * Clean up to build on sparc-sun-solaris2.8, and in the process clean 00385 up the handling of bytes vs chars, and of building without gcc 00386 00387 * Reverse build scripts so that driver.sh calls the particular 00388 script. 00389 00390 ## 0.5.2 00391 00392 * Use mapptr for input. 00393 00394 * Implement a new structure for encoding in nad.c. It doesn't 00395 encode at the moment, but it's much more maintainable. 00396 00397 * More regression cases. 00398 00399 * Clean up build process. 00400 00401 ## 0.5.0 00402 00403 * Rewrite hs_inbuf and hs_encode to make them simpler and more 00404 reliable. 00405 00406 * Test cases for input handling. 00407 00408 * Use the map_ptr idea for input from both streams and files. 00409 00410 ## 0.4.1 00411 00412 * automake/autoconf now works cleanly when the build directory is 00413 different to the source directory. 00414 00415 * --enable-ccmalloc works again. 00416 00417 ## 0.4.0 00418 00419 * A much better regression suite. 00420 00421 * CHECKSUM token includes the file's checksum up to the current 00422 location, to aid in self-testing. 00423 00424 * Various bug fixes, particularly to do with short IO returns.