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