109 February 2020 Ike Devolder 2 * release: 0.8.1 3 * Serious rework of internals by Michael Nahas 4 * Added unittests by Michael Nahas 5 * Added support for static libpar2 6 711 December 2017 Ike Devolder 8 * release: 0.8.0 9 * improved parallelisation on input files 10 1108 September 2017 Ike Devolder 12 * release: 0.7.4 13 * performance improvement when not using quiet mode 14 1525 June 2017 Ike Devolder 16 * release: 0.7.3 17 * fixed critical issue on windows where created parfiles were corrupt 18 1903 June 2017 Ike Devolder 20 * release: 0.7.2 21 * fixed tests on NetBSD, #102 22 * fixed failing tests when dir contains whitespace, #103 23 * added automake.sh to the files, #104 24 * changed some flags related to windows build, #94 25 * cleaned up compiler warnings for mingw build 26 2719 May 2017 Ike Devolder 28 * release: 0.7.1 29 * fixed basepath issues #93 30 * made distcheck behaviour consistent with different --srcdir #96 31 * properly package distribution package #98 32 * cross compile for windows to get redistributable exe #94 33 * change distribution format to tar.gz and tar.bz2 for unix 34 and keep zip for windows #97 35 3617 April 2017 Ike Devolder 37 * release: 0.7.0 38 * Merged OpenMP version and so enabled multithreading 39 * added -t flag to set the number of threads (all possible threads 40 used by default) 41 * Added -B flag to set the basepath for difficult to guess situations 42 * bugfixes 43 4427 February 2014 Ike Devolder 45 * release: 0.6.5 46 * fix blocksize calculation 47 4825 February 2014 JCF Ploemen 49 * lintian warning spelling fix 50 517 February 2014 Ike Devolder 52 * add manfile for par2 53 5429 January 2014 Jan van Haarst 55 * README in Markdown 56 5721 January 2014 Ike Devolder 58 * add spelling fixes to cmdline output 59 6018 January 2014 Jan van Haarst 61 * fixed some spelling 62 636 January 2014 Ike Devolder 64 * simplify FindFiles 65 664 January 2014 Ike Devolder 67 * release: 0.6.4 68 * when directory is removed, recreate 69 * add test to verify directory behaviour 70 * add test with valgrind 71 7216 December 2013 Ike Devolder 73 * allow verification of files even with ducplicates in parfiles 74 7515 December 2013 Ike Devolder 76 * avoid adding of duplicates 77 7814 December 2013 Ike Devolder 79 * release: 0.6.3 80 * rework original tests so parallelisation is no issue 81 * add test8 which makes sure the paths stored are relative 82 * add test9 rename wrongly named file, passed to par2 83 result is correctly named files after repair 84 8513 Decebmer 2013 Ike Devolder 86 * move tests in separate folder, tests will be extended 87 and otherwise eventually clutter the source too much 88 899 December 2013 Ike Devolder 90 * rework parfilename handling + it fixes passing par 91 filename without extension for repair 92 937 December 2013 Ike Devolder 94 * release: 0.6.2 95 * basepath was not set correctly in restoring of 'old' way 96 975 December 2013 Ike Devolder 98 * release: 0.6.1 99 * show usage / version / copyright on request 100 * restore 'old' way of creating make -a optional 101 10230 November 2013 Ike Devolder 103 * release: 0.6.0 104 * test8: windows generated recovery files with subdir 105 * windows recurses in . and .. which leads to deadlock 106 so dont recurse in folders starting with . on windows 107 * when recursion happens make sure windows can recover with 108 unix created par2 files 109 * fixed fc -> fd typo in windows part of diskfile 110 * FTBFS fix on GNU/kFreeBSD (by Cyril Brulebois) 111 * fixed non quiet output when creating par2 112 * Applied fix preventing a stack overflow (by Robert Schneider) 113 11414 October 2013 Ike Devolder 115 * Implemented recursion 116 * NOTE: only for unix like systems 117 * Windows can be done i guess but i have no access to windows machines 118 11916 June 2013 Ike Devolder 120 * Implemented initial subdir handling 121 * added subdir tests 122 12313 June 2013 Ike Devolder 124 * Fixed failing testsuite 125 1269 December 2012 Ike Devolder 127 * rework purging of par(2) files because of possible segfaults 128 and other inconsistencies 129 1304 December 2012 Ike Devolder 131 * fix purge option so it removes the par files when there is no 132 repair needed 133 * add purge option to verify so when there is no repair needed 134 the par2 files are removed when the purge option is given 135 13630 November 2012 Ike Devolder 137 * add purge option 138 remove backup files (mostly .1) and par files on request 139 **USE AT YOUR OWN RISK 140 * purge option available in par1 and par2 repair 141 * fix memory leak when using par1 repair 142 14330 January 2012 Ike Devolder 144 * add inlining performance improvement of Gerard Putter 145 * release: 0.5.4 146 14719 January 2012 Ike Devolder 148 * fix wrongly created par2 files in quiet mode 149 this was related to the -q -qq fix 150 * release: 0.5.3 151 15217 January 2012 Ike Devolder 153 * fix deadlock condition when repairing and filepath is longer 154 than _MAX_PATH 155 * increase _MAX_PATH, 255 is no longer of these days 156 * release: 0.5.2 157 15816 January 2012 Ike Devolder 159 * fixup 0.5 version display 160 * "par2 create" dumps core with -q or -qq, but non-quiet mode works fine 161 FIXED 162 * removed automake files 163 * updated copyrights 164 * release: 0.5.1 165 16612 December 2011 Marcel Partap 167 * Reanimate par2cmdline development on new github repository 168 * Merge available distro patches since 2004 0.4 release back upstream 169 * Release: Version 0.5 ;) 170 1713 January 2005 Peter B Clements 172 173 * par2creatorsourcefile.cpp: "offset" must be updated when computing 174 file and block hashes even if progress is not being displayed. 175 17623 June 2004 Peter B Clements 177 178 * diskfile.cpp: Changed DiskFile::GetFileSize for WIN32 179 so that it uses _stati64() to get the size of a file. 180 181 * par2creatorsourcefile.cpp: In UpdateHashes() the test 182 that adjusts the length of the last block of a file when 183 before updating the file hash was incorrect. 184 18517 June 2004 Peter B Clements 186 187 * par1repairer.cpp, par2repairer.cpp: Report empty files when 188 scanning for data. 189 19022 April 2004 Peter B Clements 191 192 * README: Updated to include new commandline options. 193 194 * par2cmdline.vcproj: Update VS .NET project file with new 195 version number. 196 197 * Released: Version 0.4. 198 19915 April 2004 Peter B Clements 200 201 * par2cmdline.sln, par2cmdline.vcproj: Updated. 202 203 * commandline.cpp, commandline.h, par1repairer.cpp, par1repairer.h, 204 par2cmdline.cpp, par2cmdline.h, par2creator.cpp, par2creator.h, 205 par2creatorsourcefile.cpp, par2creatorsourcefile.h, par2repairer.cpp, 206 par2repairer.h, reedsolomon.h, par2cmdline.h: Handle -v and -q 207 options from the command line to change the amount of messages displayed. 208 20914 April 2004 Peter B Clements 210 211 * commandline.h, commandline.cpp: Add -c<n> option to allow the 212 number of recovery blocks to be directly specified rather than 213 indirectly via the -r<n> option. Add -l option to allow the 214 recovery file size to be limited so that the largest will have 215 just enough recovery data to reconstruct the larget source file. 216 217 * par2creator.h, par2creator.cpp: Use the recovery block count 218 specified via the command line instead of the redundancy % if 219 given. Allocate the sizes of recovery files so the are limited 220 if requested. 221 22212 April 2004 Peter B Clements 223 224 * config.h.in, configure, configure.ac: Detect what defines are 225 required to enable 64 bit file system support and whether or 226 not fseeko() is available. 227 228 * diskfile.cpp: Use fseeko and 64 bit file operations if they 229 are available. 230 231 * par2cmdline.h: Change order of include files. 232 233 * par2repairer.cpp: When verifying files with long filenames, 234 display a shorter version of the filename. 235 236 * datablock.h: Change DataBlock::GetDiskFile so that in returns 237 a non const DiskFile. 238 239 * par2repairer.cpp, par2creator.cpp: Only keep source files open 240 when they are actually needed. This should allow par2 creation 241 and repair to work with large file sets on OS's with a limit 242 on the number of files that can be open simultaneously. 243 244 * Makefile.in, aclocal.m4, config.guess, config.sub, configure, 245 depcomp, install-sh, missing, mkinstalldirs: Updated Automake to 246 version 1.8.3 and Autoconf to version 2.59. 247 248 * configure.ac, config.h.in, configure: Check for getopt() and 249 getopt_long(). 250 25119 August 2003 Peter B Clements 252 253 * Updated par2creator.cpp: When creating par2 files the wrong 254 number of bytes would be reported as written to disk. 255 25613 August 2003 Peter B Clements 257 258 * Updated par2cmdline.h: Recorrected spelling of STDC_HEADERS! 259 260 * Updated par1repairersourcefile.cpp, par2repairersourcefile.cpp: 261 Don't treat ':' as a path separator on non Windows platforms. 262 2632 August 2003 Peter B Clements 264 265 * Updated par1fileformat.h, par2fileformat.h: Use memcmp when 266 comparing MAGIC strings and PACKETTYPE strings. 267 268 * Updated par2repairer.cpp: When a good packet is found after bad 269 data, use memcpy to copy the packet header. Don't attempt to get 270 the block count directly from the verification packet (which 271 might be missing). 272 273 * Updated par2repairersourcefile.cpp: Add function to set the block 274 count when the verification packet is missing. 275 2761 August 2003 Peter B Clements 277 278 * Updated par2cmdline.h: Included <iomanip>. 279 28031 July 2003 Peter B Clements 281 282 * Updated reedsolomon.h: Added debugging code. 283 28429 July 2003 Peter B Clements 285 286 * Updated galois.h: Use typename when refering to a typedef 287 in another class. 288 289 * Updated par1repairer.cpp: Cast size of fileentry in memcpy. 290 291 * Updated par2repairersourcefile.h: Add function to set the block 292 count for a file when the verification packet is missing. 293 29425 July 2003 Peter B Clements 295 296 * Updated par2cmdline.h: Correct spelling of STDC_HEADERS. 297 29816 July 2003 Peter B Clements 299 300 * Release: Version 0.3. 301 30215 July 2003 Peter B Clements 303 304 * Added config.guess, config.sub: Autoconf files. 305 306 * Updated configure, Makefile.in: Updated by Autoconf. 307 308 * Updated configure.ac: Changed par2cmdline version number. Added 309 call to AC_CANONICAL_HOST. 310 311 * Updated par2cmdline.vcproj: Updated version number. 312 3133 July 2003 Peter B Clements 314 315 * Updated aclocal.m4, depcomp, INSTALL, install-sh, 316 mkinstalldirs: Upgrade Autoconf to version 1.75 from 1.6.3. 317 318 * Updated Makefile.am: Changed CXXFLAGS to AM_CXXFLAGS. 319 32024 June 2003 Peter B Clements 321 322 * Updated commandline.cpp, commandline.h: Added "redundancyseet" 323 member to record whether or not the value of "redundancy" has been 324 specified so that 0% reduncancy is permissible. 325 326 * Updated par2creator.cpp: Detect situation where no recovery 327 blocks are being created and skip related code sections. 328 32914 June 2003 Peter B Clements 330 331 * Updated galois.h: Corrected bug in the initialisation of log[0] in 332 GaloisTable. 333 33411 June 2003 Peter B Clements 335 336 * Updated par1repair.cpp, par1repairer.h: Detect buggy version 337 of smartpar which creates PAR1 files with invalid 16k hash 338 values, Change alignement of temporary buffer used for 339 PAR1FILEENTRYs to 8 bytes. 340 3417 June 2003 Peter B Clements 342 343 * Update par2cmdline.h: Added <cassert> header include. 344 3453 June 2003 Peter B Clements 346 347 * Updated verificationhashtable.h: Fixed bug where blocks of data 348 that have the same crc and hash would not be correctly 349 recognised. 350 35126 May 2003 Peter B Clements 352 353 * Release: Version 0.2. 354 355 * Added config.h.in, configure, configure.ac, depcomp, missing, 356 mkinstalldirs, stamp-h.in: Autoconf configuration files. 357 * Added NEWS 358 359 * Added par1fileformat.h, par1fileformat.cpp: Specifies the 360 layout of PAR 1.0 files. 361 362 * Added par1repairer.h, par1repairer.cpp: Encapsulates the details 363 of repairing using PAR 1.0 files. 364 365 * Added par1repairersourcefile.h, par1repairersourcefile.cpp: 366 Stores details of a source file. 367 368 * Added test1, test2, test3, test4, test5, test6, testdata.tar.gz: 369 Test files for "make check". 370 371 * Changed commandline.cpp, commandline.h: Add "version" member 372 and set it according to whether the recovery file is a .PAR file 373 or a .PAR2 file. Rename "par2filename" member to "parfilename". 374 375 * Changed creatorpacket.cpp: Made "string creator" a local variable 376 in CreatorPacket::Create instead of a global. Commented out code 377 that does nothing. 378 379 * Changed criticalpacket.h: Corrected bug in 380 CriticalPacketEntry::operator= which failed to return *this. 381 382 * Changed descriptionpacket.cpp: Commented out code which does 383 nothing. 384 385 * Changed diskfile.cpp: Updated wildcard matching code to permit 386 multiple "?" in wildcard. Adjusted the list of characters that 387 are accepted in filenames to include all with bit 7 set and 388 also spaces. Removed restrictions on many other permitted 389 characters. 390 391 * Changed diskfile.h: Removed cygwin and linux ifdefs which are 392 now handled by autoconf. 393 394 * Changed galois.cpp: Move the constructors for GaloisTable and 395 GaloisLongMultiplyTable to galois.h. 396 397 * Changed galois.h: Changed GaloisTable, Galois, and 398 GaloisLongMultipleTable into templates. Corrected bug in 399 Galois::pow and Galois::operator^ which incorrectly returned 0 400 for x^0 when it should always return 1. Added Galois8 and 401 Galois16 typedefs for PAR1 and PAR2. 402 403 * Changed letype.h: Added leu16 type for use in PAR1 processing. 404 405 * Changed mainpacket.cpp: Commented out code which does nothing. 406 407 * Changed md5.cpp: Adjusted ROL macro to include masking to correct 408 for bug on Alpha CPUs. Added operator<<() and print() to MD5Hash. 409 410 * Changed md5.h: Added copy and assignment operators for MD5Hash. 411 412 * Changed par2cmdline.cpp: Made "string version" a local variable 413 instead of global. Use Par1Repairer or Par2Repaire as appropriate 414 when verifying or repairing PAR1 and PAR2 files. 415 416 * Changed par2cmdline.h: Adjusted to conditionally include headers 417 and to define various types based on the autoconf configuration. 418 419 * Changed par2cmdline.sln, par2cmdline.vcproj: Updated. 420 421 * Changed par2creator.cpp: Called Commandline::GetParFilename instead 422 of CommandLine::GetPar2Filename. 423 424 * Changed par2creator.h: Redifine rs as ReedSolomon<Galois16>. 425 426 * Changed par2creatorsourcefile.cpp: Comment out code which does 427 nothing. Added typecasts between 32bit and 64bit values. 428 429 * Changed par2fileformat.cpp: Adjusted initialisation code. 430 431 * Changed par2fileformat.h: Use packed attribute for gnu compilers. 432 433 * Changed par2repairer.cpp: Get filename using 434 CommandLine::GetParFilename. 435 436 * Changed par2repairer.h: Redefine rs as ReedSolomon<Galois16>. 437 438 * Changed par2repairersourcefile: Add typecast from 32bit to 64bit. 439 440 * Changed README: Update details of how to compile the source code 441 using the configure script. 442 443 * Changed recoverypacket.cpp: Commented out code which does nothing. 444 445 * Changed ReedSolomon.cpp: Move ReedSolomon constructor to 446 ReedSolomon.h. Created template specialisations for Galois8 and 447 Galois16 for SetInput, SetOutput, and Process. 448 449 * Changed ReedSolomon.h: Converted ReedSolomon to a template. 450 451 * Changed verificationhashtable.cpp: Removed unused code. 452 453 * Changed verificationpacket.cpp: Commented out code that does 454 nothing. 455 4567 May 2003 Peter B Clements 457 458 * Version 0.1: Initial release. 459 460