File: ChangeLog

package info (click to toggle)
dar 2.6.13-2
  • links: PTS
  • area: main
  • in suites: bullseye
  • size: 10,364 kB
  • sloc: cpp: 77,385; sh: 6,192; ansic: 776; makefile: 435; python: 242; csh: 95; perl: 43; sed: 16
file content (1867 lines) | stat: -rw-r--r-- 98,278 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
from 2.6.12 to 2.6.13
- fixed compilation warning in testing routine (outside libdar and dar)
- due to change in autoconf, the --sysconfdir path (which defaults to
  ${prefix}/etc) was read as an empty string, leading dar to look for
  darrc system file at the root of the filesystem (/darrc)
- fixed bug that should occur in extremely rare conditions (it has been
  discover during 2.7.0 validation process): compression must be used,
  no ciphering, no hashing, file changed at backup time or had a poor
  compression ratio, was not saved at slice boundary, the previous
  entry had an EA saved but no FSA or an unchanged FSA. In such
  conditions are all met, dar tries to resave the file in place, but
  partially or totally overwites the EAs of the previous entry leading
  to archive testing to fail for these EA (though the archive could be
  finished without error).
- fixed bug met when case insensitive mask is requested (-an option)
  and locale of file to restore or backup is not the one the dar binary
  is run with.

from 2.6.11 to 2.6.12
- fixed regression met in 2.6.11 when generating encrypted archives

from 2.6.10 to 2.6.11
- fixing bug in dar_manager libdar part, met when the two oldest entries
  for a file are recorded as unchanged (differential backup).
- fixed typo in dar_manager man page
- updated lax mode to ignore encryption flag found in header and trailer
- fixed two opposite bugs in strong encryption code that annihilated
  each other, by chance
- fixing bug met when merging an archive an re-compressing the data
  with another algorithm that gives a less good result, this condition
  lead the merging operation to fail reporting a CRC mismatch
- improving archive header code to cope with unknown flags

from 2.6.9 to 2.6.10
- update the configure script to handle some undocumented --enable-*
  options that existed but were not expected to be used.
- fixed spelling in darrc comments
- fixed bug in dar_split that could occur in very rare conditions
- fixed EA support build failure due to what seems to be a change
  in Linux kernel header
- fixed symbol conflict with s_host of in.h on omniOS platform

from 2.6.8 to 2.6.9
- fixed some obvious bug when running doxygen (inlined documentation)
- fixing configure.ac to detect xattr.h system header when it is
  located in /usr/include/sys like under Alpine Linux distro (musl libc)
- fixed typo in symbol name "libdar.archive_summary" in python binding
- fixed bug met when testing an archive in sequential-read mode leading
  dar to skip back to test deleted inode which is useless and may lead
  to failure if the archive is read from a pipe
- adding *.zst files as excluded from compression when using the
  predefined target "compress-exclusion"
- fixed text diagram alignment in documentation and spelling errors
- moving date_past_N_days script to doc/sample with other scripts

from 2.6.7 to 2.6.8
- fixing bug leading binary delta failed to be read from an archive in
  some quite rare condition.
- fixed bug that was not listing file with delta path when filtering out
  unsaved inodes
- updated source package for the python binding tutorial document be
  installed with the rest of the documentation
- adding date_past_N_days helper script to backup only files later than
  "today minus N days"
- incorporated the "args" support built script in dar source package

from 2.6.6 to 2.6.7
- fixing shell_interaction_emulator class declaration to avoid compilation
  errors and warning under MacOS
- fixed bug: dar failed creating an archive on its standard output
  reporting the error message "Skipping backward is not possible on a pipe"
- new feature: added python binding to libdar!

from 2.6.5 to 2.6.6
- fixing script that builds windows binary packages to include missing
  cygwin libraries
- fixing bug: dar_manager batch command (-@ option) contains a inverted
  test in a sanity check, leading the execution to systematically abort
  reporting an internal error message.
- fixed message error type when asymmetrical encryption is requested and
  gpgme has not been activated at compilation time
- fixed dar/libdar behavior when gpg binary is not available and gpgme
  has been activated at compilation time. Instead of aborting, dar now
  signal the gpgme error and proposes to retry initialization without
  gpgme support. This makes sense for dar_static binary which stays
  usable in that context when all options have been activated

from 2.6.4 to 2.6.5
- fixed bug: dar crashed when the HOME environment variable was not
  defined (for example running dar from crontab)
- removed useless skip() in cache layer
- cache layer improvement, flushing write pending data before asking
  lower layer about skippability
- fixed bug met when several consecutive compressed files were asked to
  be compressed and failed getting reduced in size by libdar. In that
  situation as expected, libdar tries to skip backward and stores the
  file uncompressed. However the cache layer was introducing an offset
  of a few bytes leading the next file to be written over the end of the
  previous one, which dar reported as data corruption when testing the
  archive.
- updating licensing information with the new address of the FSF
- clarifying message about possibly truncated filename returned by the
  operating system

from 2.6.3 to 2.6.4
- fixed display bug indicating delta signatures were about to be
  calculated even when this was not the case.
- updating dar man page about the fact aes256 replaced blowfish as
  the default strong encryption algorithm
- bug fix: -D option used at creation time was not adding escape mark
  of skipped directories. This lead the empty directories that would
  replace each skipped one to be inaccessible and unable to be restored
  only in sequential read mode (it worked as expected in direct mode)

from 2.6.2 to 2.6.3
- feature enhancement: added option to specify the block size used to
  create delta signatures.
- feature enhancement: added the ability to provide login for sftp/ftp
  remote access, that contain @ and other special characters.
- fixed bug in dar_xform, leading dar not finding source archive if
  destination was not placed in the same directory as source

from 2.6.1 to 2.6.2
- fixed incoherence in documentation
- updating in-lined help information (-h option)
- fixed unexpected behavior of the dar command-line filtering mechanism
  met when the provided path to -P or -g options was ending with a slash
- renaming 'path operator + (std::string)' as method append() to avoid
  compiler using it when a std::string need first to be converted to path
  before adding it to an existing path.
- adding check test to detect when path::append() is used to add a path
  instead of a filename to an existing path object.
- adding a warning when restoring a Unix socket if the path to that
  socket is larger than what the sockaddr_un system structure can handle
- fixing bug due to Linux system removing file capabilities (stored as
  EA) when file ownership is changed. Though restoring EA after ownership
  may lead to the impossibility to restore them due to lack of permission
  when dar/libdar is not run as root. Thus we try restoring EA a second
  time after ownership restoration. This is not efficient but restores
  the file as close as possible to their original state whatever
  permission dar has been granted for a restoration operation.

from 2.6.0 to 2.6.1
- fixed error in man page
- fixing bug in the routine removing files for local filesystem, used at
  archive creation time to remove an existing archive (after user
  confirmation), or at restoration time used to remove file that had been
  removed since the archive of reference was done. The file to remove was
  always removed from the current directory (missing the path part), most
  of the time this was leading to the error message "Error removing file
  ...: Not such file or directory". It could also lead to incorrectly
  removing files (not directory) located in the directory from which
  dar was run.
- fixing bug met while repairing an archive containing delta signature
  for unsaved files
- merging patch from ballsystemlord updating list of file extension
  not to compress (see compress-exclusion defined in /etc/darrc)
- review cat_delta_signature implementation in order to be able to fix
  memory consumption problem when delta signature are used
- fixed missing mark for data CRC when the data is a delta patch, leading
  sequential reading to fail when a delta patch was encountered
- fixed bug in XML output about deleted entries
- fixed XML output to be identical to the one of dar 2.5.x for deleted
  entries.
- Adding the deleted date in 'mtime' field for deleted entries in XML
  output
- fixing bug in xz/lzma routine wrongly reporting internal error when
  corrupted data was met
- fixed code for compilation with clang to succeed (it concerns MAC OS X
  in particular)
- fixed inconsistencies in libdar API that avoided gdar to compile with
  libdar released in 2.6.0

from 2.5.x to 2.6.0
- new feature: support for binary delta in incremental/differential backups
  (relying on librsync)
- new feature: support ftp/sftp to read an archive from a cloud storage.
  (relying on libcurl)
  reading is optimized to not transfer a whole slice but only the needed
  part to proceed to the operation (restoration, listing, and so on)
- new feature: support ftp/sftp to write an archive eventually with hash
  files to a remote cloud storage (relying on libcurl)
- modified behavior: While creating a single sliced archive, DUC file is
  now executed unless user interrupted dar/libdar. This to stay coherent
  with multi sliced archive behavior
- new feature: display filters nature (-vmasks option)
- new feature: follow some symlinks as defined by the --ignored-as-symlink
  option
- new feature: one can define the compression algorithm a dar_manager
  database will use. This choice is only available at database creation
  using the new dar_manager's -z option. In particular "-z none" can be
  used to avoid using compression at all
- repair mode added to re-create a completed archive (suitable for direct
  access mode and merging) from an interrupted one due to lack of disk
  space, power outage or other reasons leading to similar problem.
- Dar can now only save metadata inode change without re-saving the whole
  file if its data has not changed. Dar_manager also handle this by
  restoring the full backup and then the inode metadata only when
  necessary.
- In regard to previous point, if you want to keep having dar saving the
  data when only metadata has changed use --modified-data-detection option
- moved dar_slave code into libdar as class libdar::libdar_slave
- moved dar_xform code into libdar as class libdar::libdar_xform
- added libdar_slave and libdar_xform in libdar API
- modified dar_xform and dar_slave to rely on new libdar API
- API: simplified user_interface class
- API: using std::shared_ptr and std::unique_ptr to explicitly show the
  ownership of the given pointed objects (C++11 standard)
- API: simplified class archive to only require user_interaction at
  object construction time
- API: simplified class database to only require user_interaction at
  object construction time
- API: making enum crypto_algo an C++11 "enum class" type
- security refresh: default crypto algo is now AES256. As you do not
  need anymore since 2.5.0 to specify the -K option when reading an
  archive this should not bring any backward compatibility issue
- security refresh: adding salt per archive (one is still present per
  block inside an archive)
- security refresh/new feature: adding option --kdf-param to define
  the iteration count for key derivation, which now defaults to 200,000
  and hash algorithm used to derived key, still using sha1 by default
- slide effect of previous feature due to starvation of free letters
  to add a new command, the -T option with argument is no more
  available, one need to provide explicitly the desired argument
- security refresh: improving seed randomization for the pseudo-random
  generator used in elastic buffers
- feature enhancement: activate needed Linux capabilities in the
  "effective" set if it is permitted but not effective. This concerns
  cap_chown at restoration time, cap_fchown for furtive read mode,
  cap_linux_immutable to restore the immutable flag, and cap_sys_
  resource to set some linux FSA. This let one set the capabilities
  for dar binary only in the "permitted" set, capabilities will then be
  allowed only for users having them in the "inheritable" set of their
  calling process (usually a shell), without root privilege need.
- the ./configure --enable-mode option now defaults to 64, which
  will setup a libdar64 in place of infinint based libdar by default.
  You can still build a infinint based libdar by passing
  --enable-mode=infinint to the ./configure script.

from 2.5.21 to 2.5.22
- removed useless skip() in cache layer
- cache layer improvement, flushing write pending data before asking
  lower layer about skippability
- fixed bug met when several consecutive compressed files were asked to
  be compressed and failed getting reduced in size by libdar. In that
  situation as expected, libdar tries to skip backward and stores the
  file uncompressed. However the cache layer was introducing an offset
  of a few bytes leading the next file to be written over the end of the
  previous one, which dar reported as data corruption when testing the
  archive.
- updating licensing information with the new address of the FSF
- fixing bug met when restoring file having FSA but EA and overwriting
  an existing file in filesystem
- clarifying message about possibly truncated filename returned by the
  operating system

from 2.5.20 to 2.5.21
- bug fix: -D option used at creation time was not adding escape mark
  of skipped directories. This lead the empty directories that would
  replace each skipped one to be inaccessible and unable to be restored
  only in sequential read mode (it worked as expected in direct mode)


from 2.5.19 to 2.5.20
- adding a warning when restoring a unix socket if the path to that
  socket is larger than what the sockaddr_un system structure can handle
- fixing bug due to Linux system removing file capabilities (stored as
  EA) when file ownership is changed. Though restoring EA after ownership
  may lead to the impossibility to restore them due to lack of permission
  when dar/libdar is not run as root. Thus we try restoring EA a second
  time after ownership restoration. This is not efficient but restores
  the file as close as possible to their original state whatever
  permission dar has been granted for a restoration operation.
- fixing compilation problem with recent clang++ compiler

from 2.5.18 to 2.5.19
- fixed compilation issue on system that to not have ENOATTR defined
- fixed compilation warning about deprecated dynamic exception
  specifications in C++11
- fixing bug in xz/lzma routine wrongly reporting internal error when
  corrupted data was met
- fixed compilation warning with gcc about deprecated readdir_r system
  call

from 2.5.17 to 2.5.18
- fixed compilation issue in context where EA are not supported
- fixed typo in dar man page (--sequential-mode in place of
  --sequential-read)
- moved the "no EA support warning" trigger when restoring an archive
  later in the EA restoration process, in order to have the possibility
  thanks to the -u "*" option to restore an archive containing EA using a
  dar/libdar without EA support activated at compilation time,
- at restoration time, avoiding issuing an "EA are about to be
  overwritten" warning when the in place file has in fact not only
  one EA set.

from 2.5.16 to 2.5.17
- bug fix: dar failed to restore EA when file permission to restore
  did not included user write access. Fix consists in temporarily
  adding user write access in order to restore EA and removing this
  extra permission afterward if necessary
- updated FAQ
- fixed typos in dar man page
- fixed bug met when writing slices to a read-only filesystem
- fixed compilation problem under Solaris
- fixed typos in dar man page
- bug fix: self reporting bug in filtre.cpp line 2932 or 2925 depending
  or dar's version (report occurs in a normal but rare condition that
  was not imagined by developer, leading dar to abort the backup)
- bug fix: wrong evaluation of possibility to seek backward in the
  escape layer (layer managing tape marks) which lead to useless but
  harlmess skip trials in some rare conditions.

from 2.5.15 to 2.5.16
- bug fix: while rechecking sparse file (-ah option) during a merging
  operation, dar wrongly reported CRC mismatch for saved plain files
- fixed man page about sparse-file handling while merging: To remove
  sparse file datastructure during a merging operation you need to
  set --sparse-file-min-size to a valuer larger than all file sizes
  contained in the archive (for example 1E for one exabyte)
- bug fix: met when using compression and creating the archive to
  dar's standard output (ssh) and leading files to be corrupted in the
  archive and reported as such.
- optimisation of escape_sequence skippability (avoids trying skipping
  and failing for some corner cases, when we can detect it does even
  not worth trying)

from 2.5.14-bis to 2.5.15
- fixing self report bug message met when trying to create an isolated
  catalogue into a directory that does not exist
- adding slice overwriting verification before creating a isolated
  catalogue, to be coherent with other operations creating an archive
  (backup and merging)
- storage size of compressed files was often wrongly stored in archive
  (shorter than reality), the only impact took place at archive listing
  time where the compression ratio displayed was better than reality
- fixed auto-detected bug condition triggered when -Tslicing is used
  with --sequential-read. Both options are not compatible and have been
  excluded by a nicer message than this auto-detection bug message.

from 2.5.14 to 2.5.14-bis
- avoiding using the syncfs() system call in dar_split when the
  platform does not support it (replacing it by sync() in that case
  for compilation to be successful)

from 2.5.13 to 2.5.14
- made libgcrypt built-in memory guard be initialized before obtaining
  ligcrypt version, to respect libgcrypt usage (but no problem was seen
  nor reported about this inconsistency)
- fixed syntax error in XML listing output (EA_entry and Attributes
  tags)
- fixed typos in dar man page
- Updating Tutorial for restoration
- fixed bugs in dar_split: cygwin support, filedescriptors were not
  explicitly closed at end of execution, allocating buffer on heap
  rather than in the stack for better size flexibility, avoiding buffer
  size to be greater than SSIZE_MAX.
- added -s option to dar_split in order to disable the by default SYNC
  write that was used and which caused poor performance. To keep the
  same behavior as the older dar_split (and its poor performances) you
  need now using -s option.
- dar_split enhancement: added call to syncfs before closing the file
  descriptor in split_output mode
- fixed bug in dar_split that was did not lead dar_split to completely
  fulfill an device before asking for user to change the media when
  used in split_output mode, this was sometimes leading dar reporting
  file as corrupted at dar_split at media boundary.
- added feature in dar_split to show the amount of data written since
  the last media change

from 2.5.12 to 2.5.13
- added -az option to automatically nullify negative dates returned from
  the system in the archive under creation (filesystem is not modified)
- included the birthtime (HFS FSA) into the negative dates handling
- modified behavior: dar now fails upon unknown option instead of warning
  the option is unknown and thus ignored
- bug fix: dar 2.5.12 and below in 2.5.x branch could not read archive
  generated by dar 2.4.x and below (unless in infinint compilation mode)
  when the old archive included a file which date(s) was returned by the
  system as a negative integer at the time of the backup. Note that if
  dar can now read old archive in that particular case, such date stay
  recorded in the dar archive as very far in the future and not in the
  past, because 2.4.x and below blindly assumed the system would always
  return a positive integer as number of second since 1970. Since 2.5.12
  release, when the system provides a negative date the date is assumed
  as zero (Jan 1970) with user agreement.
- fixed missing throw in tools.cpp (exception condition was not reported)

from 2.5.11 to 2.5.12
- documenting in man page the limitation of -[ and -] options concerning
  the maximum line length that could be used in a listing file. This
  limitation was only described in doc/Limitations.html
- dar now aborts if a line exceeding 20479 bytes is met in a listing file
- improved error message issued when a file listing (-[ or -] option) is
  missing for it provides the missing filename in the error message
- improved error message issued when a line of a file listing exceeds
  20479 characters for it display the start of that line
- fixed bug in file listing (-[ option) leading some directories and their
  content to be excluded in a somehow rare condition
- improved behavior when dar reads a negative date. Instead of aborting
  it now asks the user if it can substitute such value by zero
- improved behavior when dar is asked to read an archive located in a
  directory that does not exist. DUC file passed to -E option is now
  properly run in that case too and has the possibility for example to
  create that directory and download requested file

from 2.5.10 to 2.5.11
- minor feature: displays the archive header which is never ciphered and
  aborts. This feature is activated while listing archive content and
  adding the -aheader option. This brings the side effect to invert two
  lines in the archive summary (dar -l archive -q) "catalogue size" and
  "user comment".
- adding date format info for -w option in "dar_manager -h" usage help
- fixed several mistakes in tools.cpp leading compilation to fail under
  certain environments
- fixed a typo in filesystem.cpp and portability issue that lead
  compilation to fail under openbsd 6.0
- fixed bug in the filtering mechanism relying on file listing (-[ and
  -] options) that could not find an entry in the listing upon certain
  condition leading a file not being excluded as requested or not
  included as requested

from 2.5.9 to 2.5.10
- fixed bug: -r option (only more recent overwriting policy) was
  considering a file to be more recent when it had the exact same date as
  the file in place.
- updating documentation about requirements for compiling dar from sources
- fixed bug: bug met when restoring of a file that has the immutable
  flag set. Dar/libdar failed restoring such file in the context of
  differential/incremental backup. The fix consists of the removal of the
  immutable flag from filesystem before restoring the new version of the
  file's data, then setting back the immutable flag afterward.
- updating FAQ with description of the way dar uses lzo compression
  compared to the lzop program
- fixed bug: aborting an archive was leading to an unreadable archive in
  direct mode, most of the time when strong encryption was used
- minor new feature: added two flavors of lzo algorithm: lzop-1 and lzop-3
  in order to match compression levels 1 and 3 of the lzop command

from 2.5.8 to 2.5.9
- fixed typos in documentation about dar internal use of symmetric
  encryption
- fixed bug: merging operation could wrongly melt different unrelated hard
  linked inodes when merging using an archive which results from a previous
  merging operation.
- fixed bug: aborting an archive was sometimes leading to an unreadable
  archive in direct mode (was readable only in --sequential-read mode)
- fixed bug: libgpgme was only present at linking time of final binaries
  (dar, dar_slave, dar_xform, dar_manager, dar_cp, dar_split), not at
  linking time of libdar, which caused problem under Linux Rosa distro
  where the "no-undefined" flag is passed to the linker.
- minor new feature: -ay option has been added to display sizes in bytes
  instead of the default which uses the largest possible unit (Kio, Mio,
  and so on.)

from 2.5.7 to 2.5.8
- fixed double memory release occurring in a particular case of read error
- improving robustness of FSA code against data corruption
- fixed bug: DAR_DUC_PATH was not used with -F and -~ options
- new feature: added -aduc option to combine several -E options using the
  shell '&&' operator rather than the shell ';' operator. The consequence
  is that with -aduc option a non zero exist status of any script (and not
  only of the script given to the last -E option) will lead dar to report
  the error.
- man page updated about combination of several -E options
- fixed bug: merging partial FSA led to self reported bug in cat_inode.cpp
  at line 615

from 2.5.6 to 2.5.7
- fixed bug leading dar to not include directories given to -g option nor
  to exclude directories given to -P option when at the same time the
  directory given to -R option starts by a dot ("-R ./here" in place of
  "-R here")
- bug fix and speed improvement: under certain circumstances dar was
  reading several times the data at slice boundary, leading dar to ask for
  slice N then N-1 then again N, this caused sub-optimal performance and
  was triggering user script unnecessarily

from 2.5.5 to 2.5.6
- added speed optimization when comparing dates with hourshift flexibility
  (-H option)
- fixed bug met when using as reference an archive generated by dar 2.5.4
  or older, bug that lead dar saving almost all file even those that did
  not change.

from 2.5.4 to 2.5.5
- fixed message displayed when reading old archives
- fixed bug that avoided dar-2.5.x code to read old archive format when
  special allocation was set (by defaut) at compilation time
- disabling special-alloc by default reducing memory footprint
- fixed error in FAQ about the way ctime/atime/mtime are modified during
  normal operating system life.
- new implementation of class datetime with better memory footprint
- avoding storing sub-microsecond part of date to preserve limitint
  ability to store large dates
- moving field cat_inode::last_cha from pointer-to-field to plain field
  of the class, this slightly reduce catalogue memory footprint.
- fixing bug in the returned exit status when dar failed executing DUC
  command due to system error (now returning the expected code 6 in that
  case too)

from 2.5.3 to 2.5.4
- fixing missing included files for libdar API
- removed extra try/catch block introduced by commit
  72da5cad5e52f959414b3163a2e2a320c2bc721e
- removed sanity check that caused problem when writing an archive to a
  FUSE based filesystem.
- fixing non call of the -E script/command after last slice creation,
  when encryption or slice hashing was used
- fixed bug in dar_manager: archive permutation in database lead libdar
  to check an archive number of range under certain circumstances
- fixed inversion of the condition triggering a warning about archive
  date order in a dar_manager database while moving an archive within a
  database
- fixed typos in documentation
- catalogue memory optimization, with the drawback to limit the number of
  entry in an archive to the max integer supported by the libdar flavor
  (32 bits/64 bits/infinint).
- fix configure script to temporarily rely on LIBS rather LDFLAGS to
  check for gpgme availability
- removed order dependency between -A and -9 options of dar_manager: -9
  can now be specified before or after -A option.
- resetting to "false" the "inode_wrote" flag of hard link data-structure
  before testing and merging. Merging a previously tested archive or
  testing a second time would not include hard linked inode in the
  operation. This situation does not occurs with dar but could succeed
  with some external tools that keep the catalogue in memory to perform
  different operations on it.
- fixed bug in the routine that detects existing slices to warn the user
  and/or avoid overwriting, bug that lead dar to "bark" when an archive
  base name started by a + character.
- avoiding to use AM_PATH_GPGME in configure script when gpgme.m4 is not
  available
- adding new methods in libdar API to obtain the archive offset and
  storage size of saved files (class list_entry)
- adding new method in libdar API to translate archive offset to file
  offset (class archive)
- reporting a specific error message when filename returned by the system
  has the maximum length supported by the system itself, assuming
  filename has been truncated

from 2.5.2 to 2.5.3
- Fixing a 2.5.x build issue met when a 2.4.x libdar library is already
  installed in an FreeBSD system.
- Improving message and behavior of libdar in lax mod when a truncated
  archive is read
- Fixing self reported bug at "tronconneuse.cpp line 561" met while
  reading truncated/corrupted archive
- Fixed not closed filedescriptors, met when saving a filesystem that has
  not ExtX FSA available
- Fixing configure script to be more robust in front of system where
  gpgme.h is installed in a non standard path and user did not provide
  coherent CPPFLAGS, LDFLAGS before calling ./configure
- Displaying CRC values when listing isolated catalog as XML output
- Fixing compilation issue when system does not provide strerror_r() call
- Avoiding warning about FSA absence when fsa-scope is set to "none"
- Adding --disable-fadvise option to configure script for those that want
  back full pressure from dar on the system cache (same behavior as 2.4.x)
- Fixing bug, fadvise() called a wrong time making it having no effect
- updating FAQ about comparative performance from 2.4.x to 2.5.x
- optimization: reduced the number of call to dup() at libdar startup
- improvement: printing file type on verbose output
- new feature: added %t macro reflecting the inode type in dar's
  --backup-hook-execute option

from 2.5.1 to 2.5.2
- fixed bug met when permission is denied while reading or writing slices
- fixing bug that avoided creating an archive at the root of the filesystem
- fixing bug met in rare situation while reading in sequential-read mode
  an archive encrypted using gnupg encryption. In that situation libdar
  may fail reading the archive (but succeeds in normal read mode) issuing
  an obscure message (message has also been fixed).
- code simplification, removing field reading_verion from class crypto_sym
  as its parent class tronconneuse already have such information
- removed extra newline displayed by dar at end of execution
- fixed bug avoiding dar to properly read an entry (reporting CRC error)
  when specific sequence of character (start of escape sequence) fall at
  end of the read buffer of the escape layer.
- speed optimization for datetime class
- fixed bug that avoided dar reading archives in sequential read mode
  while reading from a pipe
- fixed bug in non regression test routine provided beside dar/libdar
- fixing display message showing not always in the correct context
- fixing case inversion leading the cache layer not to be used when
  necessary and used when useless while reading an archive
- improved heuristic in dar_manager to determine the date a file has been
  deleted.

from 2.5.0 to 2.5.1
- fixed display bug in dar_manager met when using -o option and adding
  options for dar that does not exist for dar_manager (like -R option)
- reactivating disabled (by mistake) optimization for some read-only dar
  manager database operations
- fixing compilation issue with dar against gcc 4.9.2
- fixing syntax error in dar_manager message
- fixed bug that forbade dar_manager to write down modified database
  when only database header was modified (-o, -b, -p switches).
- adding dar_manager database format version information with -l option
- fixed libdar inability to read dar_manager's database format version 4
- adapting code to build under cygwin environment, where thread_local seems
  broken
- fixed output to stderr in place of stdout for Licensing information
- fixed bug met when permission is denied while reading or writing slices
- fixing bug that avoided creating an archive at the root of the filesystem

from 2.4.x to 2.5.0
- added support for posix_fadvise()
- added entrepot class hierarchy to support in the future other storage
  types than local filesystem for slices
- API: added access to the entrepot through the API
- modified class hash_fichier for it becomes entrepot independent
- API: extended libdar API with an additional and more simple way to read
  an archive: archive::get_children_in_table() method, see
  doc/API_tutorial.html for details
- added support for extX (see lsattr(1)) and HFS+ (birthtime date)
  Filesystem Specific Attributes (FSA).
- dar is now able to skip backward when a file is found to be "dirty" at
  backup time. This avoids wasting space in archive but is only possible if
  the backward position is located in the current slice and no slice
  hashing nor strong encryption is used. Of course if the archive is
  written to a pipe or to stdout, skipping back to retry saving data at the
  same place is neither possible, --retry-on-change option stays possible
  in that cases at the cost of data duplication (wasted bytes amount, see
  --retry-on-change man page).
- by default dar now performs up to 3 retries but do not allow for wasting
  bytes if file has changed at the time it was read for backup,
  this can be modied using --retry-on-change option.
- With the same constraints as for a changing file, if a file is saved
  compressed but its compressed data uses more space than uncompressed,
  the file's data is resaved as uncompressed. However, if skipping backward
  is not possible, data is kept compressed.
- if system provides it, dar uses "Linux capabilities" to check for the
  ability to set file ownership when dar is not run as root. This allows dar
  to restore ownership when allowed even when it is not run as superuser.
- removing dar-help tool used to build dar -h messages. That tool became
  useless for a long time now.
- added several more specific verbosity options: -vm, -vf and -vt
- added support for microsecond timestamps (atime, mtime, ctime, birthtime)
- Using lutime() to restore atime/mtimes of symlink on systems that support
  it.
- API: removed backward compatible API for old libdar 4.4.x
- API: simplified implementation of archive isolation thanks to isolation
  evolution features brought by release 2.4.0. Memory requirement is now
  devided by two compared to releases of previous branch (2.4.x).
- dar has been updated to use this new API for archive isolation
- added exclude-by-ea feature to avoid saving inodes that have a particular
  user defined EA set.
- added comparison of an isolated catalogue with a filesystem, relying on
  embedded data CRC and inode metadata in absence of the saved data.
- The new archive format (version 9) holds the ciphering algorithm used
  at creation time, only the passphrase is now required at reading time and
  -K option may be ignored which will lead dar to prompt for passphrase.
- Adding support for public key encryption (GnuPG) supporting several
  encryption keys/recipients for a given archive
- Adding support for public key signature when public key encryption is used
- While listing archive contents, directories now show the size and average
  compression ratio of the data they contain
- Archive summary (-l with -q options) now reports the global compression
  ratio
- added the -vd switch to only display current directory under process for
  creation, diff, test, extraction and merging operations
- added xz/lzma compression support
- added -Tslicing listing option to show slice location of files inside
  an archive archive.
- isolated catalogues now keep a record of the slicing layout of their
  archive of reference in order to provide -Tslicing feature when used
  on the isolated catalogue alone.
- However if an archive has been resliced (using dar_xform) after its
  isolated catalogue has been generated, using -Tslicing option with the
  isolated catalogue would give wrong information. To overcome that, it
  is possible to specify what is the new slicing of the archive of
  reference by using the -s and -S options in conjunction with -Tslicing
- added dar_split command to provide on-fly multi-volume archive support
  for tape media
- experimental feature to have libdar using several threads (not activated
  by default due to poor performance gain)
- dar now aborts when a given  user target cannot be found in included file
- added sha512 hashing algorithm beside already available md5 and sha1, the
  generated hash file can be used with 'sha512sum -c <file>' command
- removed useless --jog option for memory management
- removed previously deprecated -y/--bzip2 command, bzip2 compression
  remains available using -z option (-zbzip2 or --compression=bzip2)
- replaced SHA1 by SHA224 to generate IV for encryption blocks, this
  slightly improves randomness of IV and stay available when libgcrypt is
  run in FIPS mode

from 2.4.23 to 2.4.24
- fixed bug: merging operation could wrongly melt different unrelated hard
  linked inodes when merging using an archive which results from a previous
  merging operation.

from 2.4.22 to 2.4.23
- fixed bug leading dar to not include directories given to -g option nor
  to exclude directories given to -P option when at the same time the
  directory given to -R option starts by a dot ("-R ./here" in place of
  "-R here")

from 2.4.21 to 2.4.22
- fixing bug in the returned exit status when dar failed executing DUC
  command due to system error (now returning the expected code 6 in that
  case too)

from 2.4.20 to 2.4.21
- removed sanity check that caused problem when writing an archive to a
  FUSE based filesystem.
- fixed bug in dar_manager: archive permutation in database lead libdar
  to check an archive number out of range under certain circumstances
- fixed inversion of the condition triggering a warning about archive
  date order in a dar_manager database while moving an archive within a
  database
- removed order dependency between -A and -9 options of dar_manager: -9
  can now be specified before or after -A option.
- resetting to "false" the "inode_wrote" flag of hard link datastructure
  before testing and merging. Merging a previously tested archive or
  testing a second time would not include hard linked inode in the
  operation. This situation does not occurs with dar but could succeed
  with some external tools that keep the catalogue in memory to perform
  different operations on it.
- fixed bug in the routine that detects existing slices to warn the user
  and/or avoid overwriting, bug that lead dar to "bark" when an archive
  base name started by a + character.

from 2.4.19 to 2.4.20
- fixed display bug in dar_manager met when using -o option and adding
  options for dar that does not exist for dar_manager (like -R option)
- reactivating disabled (by mistake) optimization for some read-only dar
  manager database operations
- fixing compilation issue with dar against gcc 4.9.2
- fixing syntax error in dar_manager message
- fixing bug that avoided creating an archive at the root of the filesystem

from 2.4.18 to 2.4.19
- fixed missing quote in dar_par.dcf which is called by the par2 directive
- fixed bug in dar_manager's -u option, not displaying most recent files of
  an archive when they have been marked as removed in a more recent archive
  of the same dar_manager database.
- fixed bug met while restoring in sequential read mode a file having
  several copies (was modified at the time it was saved and retry-on-change
  was set).

from 2.4.17 to 2.4.18
- Initial Vector used for strong encryption was set with pseudo-random data
  generated using SHA1 message digest and blowfish cipher, which are not
  available when ligcrypt is running in FIPS mode. Since 2.4.18 we now use
  SHA256 and AES256 for IV assignment in order to have libdar compatible
  with FIPS mode. For data encryption nothing changes: the cipher specified
  (-K, -J, -$ options on CLI) are used as before.
- fixing bug met when performing archive isolation in sequential-read mode,
  If an archive corruption or truncated archive leads an inode to not have
  its CRC readable, dar aborts and issues a BUG report.
- updating list of project relying on dar/libdar

from 2.4.16 to 2.4.17
- fixing issue when case insensitive comparison was requested and invalid
  wide char for the current local was met in a filename. In such situation
  the corresponding file was never saved before (considering a filesystem
  error for that file), while now the ASCII case insensitivity is used
  as fallback.

from 2.4.15 to 2.4.16
- fixing archive listing displayed information for catalogue size when
  archive is read in --sequential-read mode
- fixing bug that avoided dar releases 2.4.x up to 2.4.15 to read encrypted
  archive generated by dar release 2.3.x and below
- adding informational note at the end of ./configure script execution
  when --enable-mode has not been used.
- adding support for case sensitivity in filename comparison (-an option)
  for other character sets than POSIX/C locale like Cyrillic for example.
- fixing bashisms in doc/samples scripts

from 2.4.14 to 2.4.15
- fixing bug met when reading an encrypted archive in sequential mode
- fixing bug met when reading an encrypted archive in sequential mode from
  an anonymous pipe
- changed option '-;' to -9 as '-;' does not work on all systems with getopt
  (only long option equivalent --min-digits worked) for dar, dar_cp,
  dar_manager, dar_xform and dar_slave commands.
- fixing bug met when restoring deleted files in sequential read mode and
  some directory where they should be "restored" are not readable or
  could not be restored earlier
- adding extra buffer to handle sequential read of encrypted archive
  when the last crypto block contains some but not all clear data after
  encrypted one (the archive trailer).
- fixing compilation issue using clang
- fixing bug that prevents using -~ option with on-fly catalogue isolation
  in order to execute an user command once on-fly isolation has completed
- added some autoconf magic to determine the correct (BSD/GNU) flag to
  use with sed in order to activate regular expression parsing
- new implementation of mask_list class which is compatible with libc++
- fixed bug met on FreeBSD with dar_xform where the system provides a
  standard input file descriptor in read-write instead of read-only mode.

from 2.4.13 to 2.4.14
- limiting memory consumption of the cache layer to stay below 10 MiB, under
  certain circumstances (very large archive), it could grow up to an insane
  value like 50% or the available RAM. reducing to 10 MiB does not impact
  performance in a noticeable manner while it avoids system to swap out due
  to the libdar cache layer becoming huge.
- added --with-pkgconfigdir to define an alternative path for libdar
  pkgconfig file (to ease portability to FreeBSD)
- modified some Makefile.am for better FreeBSD support
- fixed display bug in XML listing output concerning hard linked inodes
- fixing typo in man page
- fixing bug met while isolating a catalogue in --sequential-read mode.
  Using such isolated catalogue lead dar report an error about inaccessible
  EA.
- displaying compression rate for sparse files even when they are
  uncompressed, sparse file detection also leads to compress files
- fixing bug that lead libdar to fail comparing an inode having EA when
  comparison is done in --sequential-read mode
- fixing display bug in in ligcrypt check of configure script for minimum
  required version
- fixing 'make clean' to remove some forgotten files generated by 'make'

from 2.4.12 to 2.4.13
- adding initialization value for two variables to avoid inappropriate
  warning when compiling with -Wall option
- reducing UNIX_PATH_MAX by the system when not defined from 108 to 104
  bytes to accommodate BSD systems
- fixing assignment operator of class criterium that was not returning
  any value as it should
- removing useless boolean expression that always succeeds in logical
  AND expression
- adding support for back-slash of quoting characters in DCF files
- fixed compilation issues with clang / FreeBSD, Thanks to Neil
  Darlow's server ;-)
- fixed compilation warning due to deprecated symbols in libgcrypt
  header files
- replaced gnu make specific rules by legacy ones to avoid automake
  warning about them
- removed old unused stuff from misc sub-directory
- adding warning at compilation time if libgcrypt used is older than
  1.6.0
- adding warning at execution time if hash computation is requested
  with slices greater than 256 Gio and ligbcrypt dynamically or
  statically linked is older than 1.6.0
- adding alternative methods in list_entry API class to return dates as
  number of seconds
- fixed bug in hour-shift (-H option) when comparing dates from an old
  extracted catalogue (archive format 7 or older).
- fixed documentation bug about the meaning of the compression ratio
- fixed a display bug about the "compression flag" wrongly displayed
  for uncompressed files
- fixed unhandled exception when giving non number argument to -1 option

from 2.4.11 to 2.4.12
- for correctness fixed delete vs delete[] on vector of char (not incidence
  reported)
- fixed out of range access in routine used to read very old archive format
- fixed error in logical expression leading a sanity test to be useless
- removed duplicated variable assignment
- updated FAQ
- fixed typo and spelling errors
- fixed bug (reported by Torsten Bronger) in the escape layer leading libdar
  to wrongly reporting a file as corrupted at reading time
- fixed bug in the sparse file detection mechanism that lead the minimum size
  hole detection to become a multiple of the default value or specified one.
  This implied a less efficient reduction of sparse files because smaller
  holes in files were ignored
- fixed and updated man page about --go-into option
- updated full-from-diff target in /etc/darrc default file
- added a debug option in hash_file class (option only used from testing
  tools) to troubleshoot sha1/md5 hash problem on slices larger than
  (2**38)+63 bytes, bug reported by Mike Lenzen and understood by Yuriy
  Kaminskiy at libgcrypt. Note: This bug is still open due to an integer
  overflow in libgcrypt.
- backported from current development code an additional and more simple
  way to read an archive using the libdar API. This API extension is not used
  by dar command-line tools for now.
- Fixing installation of libdar header files on Darwin, where "DARwin" macros
  were not filtered out from the generated libdar header files.
- Fixing self reported bug 'generic_file.cpp line 309' met while comparing an
  archive with a filesystem
- Update code in order to compile with gcc-4.8.2 in g++11 mode (partial
  implementation and adaptation of Fabian Stanke's patch)
- Fixing bug met while performing a verbose archive listing in sequential
  read mode
- Added Ryan Schmidt's Patch to properly display status at end of ./configure
  script under BSD systems (in particular Mac OS X)
- Updating configure.ac script to fix warning reported by autoconf when
  generating the ./configure script
- Addressed portability problem with BSD systems that do not provide a -d
  option to the 'cp' command, preventing proper installation of the Doxygen
  documentation. Fix based on patch provided by Jan Gosmann.

from 2.4.10 to 2.4.11
- Modified behavior of 'dar -h' and 'dar -V', both now return 0 as exist
  status instead of 1 (which means syntax error).
- Fixed bug: -Q is now available with -V under the collapsed form -QV or -VQ
- fixed typo in documentation
- fixed memory leakage met when dar fails a merging operation because the
  resulting archive is specified in an directory that does not exist.
- fixed bug met when isolating a differential backup in sequential read mode
- fixed bug about slice file permission not taking care about umask variable
  when the --hash feature is used.
- fixed performance issue when reading an archive over a pair of piles using
  dar_slave (possibly over ssh) when the archive makes use of escape marks and
  when no encryption is used
- added target "full-from-diff" in /etc/darrc default file
- fixed bug avoiding reading an truncated archive in direct access mode with
  the help of an external catalogue.
- new and better implementation of archive extraction in sequential read mode
- fixing bug (segfault) met when hitting CTRL-C while reading an archive in
  sequential mode
- fixing libdar.pc for pkg-config for the cflags given to external applications
- fixed memory allocation/desallocation mismatches (delete vs delete [] )
  concerning four vector of chars.
- fixed error in logical expression leading a sanity test to be useless

from 2.4.9 to to 2.4.10
- fixing libdar about dar_manager database corruption that occurred when
  deleting the first archive of a base containing a plain file only
  existing in that first archive.
- Added code to cleanup databases instead of aborting and reporting
  that previously described type of database corruption.
- Added feature when comparing archive with filesystem in order to report
  the offset of the first difference found in a file. This was necessary to
  help solving the following bug:
- fixed bug in sparse file detection mechanism that could lead in some very
  particular (and rare) situations to the loss of one byte from file being
  saved. In that case testing the archive reported a CRC error for that
  file. So if you keep testing achives in your backup process and have not
  detect any problem, you can then keep relying on your old backups. This
  bug also expressed when merging archives: dar aborted and reported that a
  merged file had a different CRC than the one stored in the archive of
  reference.

from 2.4.8 to 2.4.9
- fixed bug: during differential backup dar saved unchanged hard linked inode
  when a hard link on that inode was out of the -R root directory. This also
  has the effect to always save files with long names on NTFS filesystems (!)
- Adapted patch provided by Kevin Wormington (new messages displayed)
- Fixed syntax error in configure script about execinfo detection
- Removed unused AM_ICONV macro from configure script
- fixed bug met under Cygwin when auxiliary test command failed to link when
  libgcrypt was not available.
- updated mini-howto by Grzegorz Adam Hankiewicz
- updating French message translations
- restricted security warning for plain files and hard linked plain files
- fixed display bug in dar_cp when manipulating files larger than 2 GB
- fixed SEGFAULT met when adding to a dar_manager database an archive which
  base name is an empty string
- improved error message, reporting the -B included file in which a syntax error
  has been met
- modified dar_manager database to consider both ctime and mtime as timestamp
  value for data of saved files. This suppresses the warning about badly ordered
  archives in database when at some files have been restores from a old
  backup.

from 2.4.7 to 2.4.8
- documentation fixes and updates
- improved database listing efficiency
- reduced memory usage of the caching layer in libdar
- fixed self reported bug caused by memory allocation failure
- fixed a SIGSEGV caused by double free in dar_xform when syntax error is
  met on command-line
- dar_xform was not able to properly transform archive generated by dar older
  than release 2.4.0
- fixed bug that lead dar be unable to remove a directory at restoration time
- replaced old remaining "bcopy" occurrence by a call to memcpy
- fixed compilation warning under ArchLinux
- fixed crash met while creating a backup with on-fly isolation
- fixed libdar behavior when reading a strongly corrupted encrypted archive

from 2.4.6 to 2.4.7
- fixing memory allocation bug in crc class, that lead glibc aborting dar
- reviewed code and replaced some remaining occurences of bzero/bcopy by
  their recommended replacement version
- fixed compilation problem under Solaris
- fixed bug that could lead a file to be wrongly reported as different from the
  one on filesystem, when that file has been changed while it was saved, then
  saved a second time but has its size modified since the first time it was
  saved.

from 2.4.5 to 2.4.6
- fixed bug met while interrupting compressed archive creation, the resulting
  archive was only readable in --sequential-read mode
- fixed bug met while reading an interrupted archive in sequential reading
  mode. It lead dar to not release some objects from memory at the end of
  the operation, which displayed an ugly error message from libdar selfcheck
  routine.
- fixed message reporting unknown system group when converting gid to name
  (was reporting unknow "user" instead of unknown "group")
- removing the $Id:$ macro from file as we moved from CVS to GIT
- updating package to distribute Patrick Nagel's scripts and documentation
- updated URL pointing to Patrick Nagel's web site
- updating documentation describing how to get source code from GIT (no more
  from CVS)
- fixed typo in configure.ac
- added info on how to build a brand-new dar tarball from source in GIT
- modifies the end of messages shown by -h option to point to man page for
  more _options_ rather than _details_
- replaced &minus; in the HTML generated documentation by a standard ASCII dash
- fixed alignement bug in CRC calculation that lead libdar based application to
  crash on sparc-based systems.

from 2.4.4 to 2.4.5
- updated sample scripts to be compatible with dar's --min-digit option
- added missing included file to be able to compile with gcc-4.7.0
- removing an unused variable in filtre.cpp
- fixed a display bug when comparing archive with filesystem, leading to a
  segmentation fault (%S in place of %i in mask)
- fixed bug leading dar to not restore some directories from differential
  backups when they are absent in the filesystem
- fixed bug that show a "uncaught exception" message at the end of archive
  listing for dar shared binaries only, compiled in infinint mode, under
  ArchLinux
- updated the configure script to link with libexecinfo when available
- added possibility to disable the use of execinfo in libdar thanks to the
  new --disable-execinfo option for the ./configure script
- added Andreas Wolff patch to fix bug under Cygwin (segfault on program
  termination).

from 2.4.3 to 2.4.4
- fixed man pages in the NAME section: added whatis entry
- fixed segfault: in the internal error reporting code (delete[] in place of
  free())
- fixed bug: dar_manager was not able to read properly the latest generated
  databases version when having Extended Attributes recorded for some files
- avoided reporting unreleased memory block when compilation optimization
  have been used (dar, dar_manager, dar_cp, dar_slave, dar_xform do all
  reported unreleased memory when gcc optimization was used in "infinint" mode)

from 2.4.2 to 2.4.3
- fixed absurd compilation warning about possibly uninitialized variable
- added -ai switch to dar_manager to disable warning about improper file order
  in database.
- fixed bug met while changing order of archives in a dar_manager database
- avoiding concurrent use of -p and -Q options, error message shown in that
  situation.
- modified slice overwriting detection code to use a single atomic system call
  to create a new slice
- replaced delete by delete[] for conversion routine of user/group to uid/gid
- added the possibility to disable speed optimization for large directories
- added memory troubleshooting option --enable-debug-memory
- simplified class CRC implementation
- fixed failed memory release upon exception thrown in class deci
- modified tlv, tlv_list classes and ea_filesystem routines to not require
  any corresponding temporary objects in libdar (saves a few new/delete calls)
- fixed silent bug in tlv class: due to the absence of copy constructor and
  destructor, some memory was not released and referred after the corresponding
  object's destruction
- modified generic_file class to avoid temporary crc objects
- fixed bug in header class that lead unreleased field (this class lacked a
  destructor), memory impact was however little: 10 bytes per slice
- fixing bug in class tlv: unreleased memory
- added protection code in class deci to properly release memory against
  exception thrown from called routines when user interrupts the operation.
- replace previous internal stack report code by backtrace()/backtrace_symbols()
- complete change of the implementation of the 'special-alloc' feature:
  the old code eat too much memory not to be adapted to new features added
  in release 2.4.0. This new implementation also bring some speed improvement

from 2.4.1 to 2.4.2
- fixing bug met when reading an archive in sequential-read mode
- fixing bug while filtering in sequential-read mode
- fixing backward compatibility in dar_manager with old archives (wrong dates
  for deleted files).
- fixing compilation problem on certain systems (missing #include statement)
- fixing documentation syntax and spelling

from 2.4.0 to 2.4.1
- adding information about "Cache Directory Tagging Standard" in doc/Feature.html
- fixing typo in doc/presentation.html
- fixing incomplete information in doc/usage_notes.html
- rewriting sample scripts from tcsh to bash in doc/usage_notes.html
- updating Swedish translation with the last version from Peter Landgren
  which has been forgotten for 2.4.0, sorry.
- fixing installation problem, where src/libdar/nls_swap.hpp was not installed
- fixing version returned by libdar_4_4::get_version to let kdar (or other
  external program relying on the backward compatible API) working as expected
- fixed bug in the code determining whether a directory is a subdirectory of
  another. This bug could lead dar to restore more files that just the one that
  were specified with -g option.
- added -k option to dar_manager for backward compatible behavior of dar_manager
- fixed bug in dar_manager, was recording the wrong date of EA removal (when
  an inode has dropped all its EA since the archive of reference was done).
- adapted dar_par_test.duc sample script to dar-2.4.x new behavior
- adapted libdar to MacOS X to restore mtime date after EA, as on this system,
  modifying some system specific EA implies updating the mtime. But dar cannot
  yet store and restore the "creation date", it needs specific MacOS X code,
  as this value is not available through Posix EA.
- fixed backward compatibility bug where dar 2.4.0 was not able to read archive
  containing only a catalogue (differential backup when no change occurred,
  snapshot backup, extracted catalogue) generated by dar 2.3.x or older.
- fixed self reported internal error met when dar is merging archives generated
  by dar 2.3.x versions.

from 2.3.x to 2.4.0
- hard links support for pipes, soft links, char and block devices has been
  added (so far, only hard links on plain files were supported)
- added rich overwriting feature for merging archives (-/ option)
- changed default behavior of dar: it no more tries to preserve the atime of
  read files, which had as side effect to modify the ctime. See man page for
  -aa and -ac options for details
- simplified the use of the "sed" command in Makefiles.am files
- integrated Wiebe Cazemier's patch for man page
- -E option has been extended to work also when generating a single sliced
  archive (no need to have -s option to be able to use -E option).
- slice header has been extended to store additional information (slice
  layout is now redundant in each each slice and may be used as backup from
  a slice to another in case of corruption).
- dar does no more need to read the first then the last slice of an archive to
  get its contents, it now instead only needs the last slice.
- an isolated catalogue can now be used as backup of the original archive's
  internal catalogue (-A option in conjunction with -x option for example)
- added directory look-up optimization (adaptation of Erik Wasser's patch)
- added -e option support (aka dry-run) to archive testing
- added the possibility to set permission and ownership of generated slices
- re-designed the libdar API to have all optional parameters carried by class
  object in a single argument, the aim to not break backward compatibility of
  the API upon each new feature addition. The libdar_4_4 namespace can be used
  for backward compatibility with older applications (see API documentation)
- added retry on change feature (-_ option).
- changed storage for UID and GID from U_16 to infinint to support arbitrarily
  larger UID and GID
- added lzo compression support
- dar_manager now uses an anonymous pipe to send configuration to dar, this
  solves the problem due to command-line limitation.
- dar now stores a "removal date" when a file disappeared since the archive of
  reference was done (so far only the information that a file was removed was
  stored). This is needed for dar_manager (see next new feature)
- dar_manager can now better restore the status of a set of files exactly as
  it was at any given time from a set of full and differential backups. In
  particular, it does no more restore files that were removed at the requested
  date.
- added check in dar_manager to detect conditions where a file has a
  modification date that has been set to the past. Two objectives are at the
  root of this feature: proper restoration of files and detection of possible
  rootkit
- added mode for restoration that avoid restoring directory tree which do not
  contain any saved files (in particular when restoring a differential backup)
  see man page for -D option for more details.
- reviewed implementation of code managing Extended Attributes (much faster now)
- added batch feature (-@ option) to dar_manager
- added Furtive Read Mode support (O_NOATIME + fdopendir): when the system
  supports it, while reading data, dar does not modify any date (ctime or atime)
- added the possibility to have sequential reading of archives (ala tar) see
  option --sequential-read
- added the possibility to read from a pipe (single pipe, without dar_slave)
  (use '-' as filename in conjunction with --sequential-read)
- added -P -g -[ and -] options to archive listing (-l option)
- added sparse file detection mechanism (can save and restore sparse files)
- added dirty flag in archive for file that changed while being saved. By
  default a warning is issued when the user is about to restore a dirty file,
  this can be changed thanks to the --dirty-behavior option
- -R option can receive an arbitrary string (still is excepted an empty string)
  In particular dar will no more complain if the given path contains // or \\
  however it must in a way or another point to something that exists!
- added a short listing feature (listing only the summary), (using both -l and
  -q options)
- extended conditional statements in included files (DCF) with user defined
  targets (see user target paragraph at the end of dar man page) User targets
  let the user add a set of options using a single keyword on command-line.
- a sample /etc/darrc is now proposed with some user targets for common
  operation like compression without compressing already compressed files.
- dar now releases filedescriptors of archive of reference(s) before proceeding
  to the operation (differential backup, archive isolation, etc.)
- user can add a comment in archive header some macro are provided for common
  options (see --user-comment in man page). This comment can be seen when
  listing an archive in verbose mode (-l -v) or when displaying the archive's
  summary (-l -v -q).
- added a "security warning" feature if ctime has changed in filesystem while
  inode has not changed at all (-asecu disables this feature). This is to target
  possible rootkit files. Note that this may toggle false positive, if for
  example you change EA of a file.
- added feature: DAR_DUC_PATH environment variable, which let dar look for a DUC
  file (see -E and -F options) in the given path.
- added feature: DAR_DCF_PATH environment variable, same as previously but for
  DCF files (see -B option).
- added two targets for conditional syntax: "reference:" and "auxiliary:"
- weak blowfish implementation has been removed (no backward compatibility as
  it suffered of a weak Initial Vector (IV) initialization), but the normal
  blowfish encryption stays in place.
- Due to openssh licensing, replaced openssh by libgcrypt dependancy (which
  stays optional).
- added new cyphers aes256, twofish256, serpent256 and camellia256
- added the hash feature (--hash option), supporting md5 and sha1 algorithms.
  The hash is calculated on the fly for each slice, before its data is even
  written to disk. This let one to check for media corruption even before a
  multi-sliced archive is finished. However this does not prevent an archive to
  be corrupted due to a software bug (in dar, libdar or in a external library),
  so it is always recommended to test the archive using dar's -t option.
- -G option (on-fly isolation) has been replaced by -@ when creating an archive,
  to reduce the number of letter used for options. This also let available the
  usual switches associated to -@ option to define an encryption algorithm and
  passphrase for the on-fly isolated catalogue.
- slices number may be padded with zeros (--min-digits option) Note that if using
  this option when creating an archive, this same option is required for any
  operation on this archive
- added -konly feature to only remove files recorded as suppressed at
  differential backup restoration time.
- dar and libdar now store keys in secure memory (with the exception that a DCF
  is parsed in unlocked memory, having a key in a DCF file is not as secure as
  having dar asking for password at execution time using the "-K :" syntax)
- added hook for backup: a user command or script can be run before saving and
  after backing up files that match a given mask all along the backup process
  (see -<, -> and -= options).
- added feature: -alist-ea let the user see the Extended Attributes of files
  while listing an archive contents.
- dar_manager can receive negative numbers to point to archive counting by the
  end of the database.
- dar and libdar stay released under GPL 2.1 (not under GPL 3, and not lesser
  GPL, neither)
- setting the "little/big endian" to usual meaning (it was inverted in the code)
  this does not change the dar's behavior nor its compatibility with different
  systems or older libdar versions.
- added -ai option to avoid warning for unknown inode types
- added support for Solaris's Door files
- added feature: decremental backup

from 2.3.11 to 2.3.12
- avoiding concurrent use of -p and -Q options, error message shown in that
  situation.

version 2.3.10 to 2.3.11
- fixed bug in the detection code of an existing archive of the same name when
  creating a new archive (improperly considered some files sharing a part of
  the archive basename as old slices of an archive of the same base name).
- fixed a display bug. When using -v to see which arguments get passed to dar
  by mean of configuration file (DCF file, ~/.darrc or /etc/darrc) the last
  argument found in file was not displayed.
- fixed two bugs (one in decompression routine, the other in decryption routine)
  that lead dar to segfault or run into an endless loop when reading a very
  corrupted archive.
- added -H option with -d option
- fixed bug leading Dar to report some files to be removed at restoration time
  to be of different type than the expected one when the reference used for
  that archive (difference backup) was an extracted catalogue.
- fixed bug in dar's command_line parsing leading dar to free twice the same
  block of memory when an argument containing a double slash was given to
  -G [SF 3162716].
- probable fix (problem difficult to reproduce) for double memory release in
  the storage class [SF 3163389]

version 2.3.9 to 2.3.10
- added patch by Jan-Pascal van Best to have -[ and -] options working with
  archive merging
- fixed bug in displaying dates [SF 2922417]
- enhanced pseudo random number generation used in dar
- added an error message when an include/exclude file listing does not
  contains an invalid path (instead of a self reported bug message).
- modified message displayed when some slice of an old archive having the
  same name are present in the destination directory (backup, isolation, merging,
  dar_xform)

from 2.3.8 to 2.3.9
- fixed bashism in doc/examples/pause_every_n_slice.duc sample script
   [SF 2020090]
- added Jason Lewis's script "dar_backups.sh" which is an enhanced version
  of n the script done by Roi Rodriguez Mendez & Mauro Silvosa Rivera.
- added message asking software upgrade to handle case when new archive format
  (used by dar >= 2.4.0) is provided to dar
- very little optimization of the reading process of EA
- updated FAQ
- replaced "Catalogue" by "Archive Contents" in output message (-l -v).
- added Sergey Feo's patch to dar_par.dcf
- added check against stddef.h header file presence in configure script
- fixed spelling
- added Charles's Script in doc/sample
- added -q option to dar
- added licensing exception to allow distribution of dar beside OpenSSL library
- Bug fix: during archive diff (only), dar restore atime of file in the backup
  instead of file in the system before opening it for reading.
- tested dar with valgrind

from 2.3.7 to 2.3.8
- fixed bug in libdar met when user supply an empty file as a list of file to
  include or exclude ( -[ and -] options )
- fixed bug concerning elastic buffers used beside strong encryption. No
  security issue here, just in some almost rare situations the generated archive
  was not readable (testing your archive prevents you loosing data in this
  situation)
- added some speed optimizations
- avoided warning to appear without -v option set, when an error is met while
  fetching value of nodump flag (flag not supported on filesystem for example).

from 2.3.6 to 2.3.7
- fixed bug in dar_manager about the localization of the archive in which to
  find the latest EA
- fixed bug in configure script to properly report full blowfish encryption
  support
- fixed a bug in the statistics calculus of dar_manager for most recent files
  per archive
- removed inappropriate internal error check
- added --disable-libdl-linking option
- fixed mistake in API tutorial
- updated Swedish translation by Peter Landgren
- fixed bug in the file filtering based on listing file ( -[ option )
- fixed typo and spelling errors in documentation
- updated code for clean compilation with gcc-4.2.3
- updated code for clean compilation with gcc-4.3 20080208 (experimental gcc)

from 2.3.5 to 2.3.6
- fixed Makefile.am in src/dar_suite (removed "/" after $(DESTDIR))
- fixed bug in regex mask building when not using ordered masks
- fixing bug that led dar_manager to report no error while some files failed
  to be restored due to command-line for dar being too large.
- fixed bug met when user aborts operation while dar is finalizing archive
  creation [SF #1800507]
- fixed problem with execvp when dar_manager launches dar

from 2.3.4 to 2.3.5
- changed displayed message when adding a hard link to an archive while
  performing a differential backup
- added back the possibility to use old blowfish implementation (bfw cipher)
- integrated optimization patch from Sonni Norlov
- updated Swedish translation by Peter Landgren
- updated French translation
- fixed broken Native Language Support in 2.3.x (where x<5)

from 2.3.3 to 2.3.4
- fixed behavior when differential backup is interrupted (no more store file
  that would have been read if no interruption had been done as "deleted" since
  the archive of reference) [SF #1669091].
- added official method to access catalogue's statistics through the API (for
  kdar next version).
- Fixed syntax error in dar_par_create.duc and dar_par_test.duc files (Parchive
  integration with dar).
- minor spelling fix in error message (compressor.cpp)
- added Wiebe Cazemier's two patches for dar man page
- integrated patch from Dwayne C. Litzenberger to fix weakness in dar's
  implementation of the blowfish encryption.
- improved the returned message when an invalid path is given as argument
- updated doc/sample/sample1.txt script file

from 2.3.2 to 2.3.3
- avoid using getpwuid() and getgrgid() for static linking.
- fixed typo in dar's man page
- update FAQ
- fixed bug: uncaught exception thrown when CTRC-C was hit while dar waits an
  answer from the user [SF #1612205]
- fixed bug: unusable archive generated when CTRC-C was hit and blowfish
  encryption used [SF #1632273]
- added a check to verify that the libdar used is compatible with the current
  dar suite programs [SF #1587643]
- fixed bug: added workaround for the right arithmetic shift operator (the
  binary produced by gcc-3.4.2 produces computes "v>>s" equal to "v" when when
  v is a integer field composed of s exactly bits. It should rather compute it
  to zero...).
  this problem leads 32 bits generated archive incompatible with 64 bits
  generated archive only when blowfish is used.
- fixed bug met when the inode space is exhausted, thanks to "Jo - Ex-Bart" for
  this new feedback. [SF #1632738]
- replaced &, <, >, ' and " in XML listing by &...; corresponding sequence.
  [SF #1597403]
- dar_manager can receive arguments after stick to -o options (it is an error
  in regard to documentation, but no warning was issued in that case, leading
  to confusion for some users) [SF #1598138]
- updated Veysel Ozer's automatic_backup script
- fixed hard link detection problem [SF #1667400]
- verbose output did not displayed hard links information
- merged patch on dar_cp by Andrea Palazzi to have it to return EXIT_DATA_ERROR
  when some data have been reported [SF #1622913]

from 2.3.2 to 2.3.3
- avoid using getpwuid() and getgrgid() for static linking.
- fixed typo in dar's man page
- update FAQ

from 2.3.1 to 2.3.2
- fixed bug in Native Language Support when --enable-locale-dir was not set
  (Thomas Jacob's patch)
- updated Swedish translation by Peter Landgren
-  --verbose=skipped was not available (only the short -vs form was available)
- reviewed regex with ordered mask for the feature to better fits user's need
  (Dave Vasilevsky's feedback)
- fixed bug where compression algorithm was changed to maximum (fixed with
  Richard Fish's adequate patch)
- fixed tutorial with command line evolution (dar's -g option in particular)
- latest version of Grzegorz Adam Hankiewicz's mini-howto
- fixed bug concerning restoration of only more recent files

from 2.3.0 to 2.3.1
- set back Nick Alcock's patch which has been dropped from 2.2.x to 2.3.x (patch
  name is "Do not moan about every single file on a non-ext2 filesystem")
- fixed compilation problem when thread-safe code is disabled
- integrated Wiebe Cazemier's patch for dar's man page
- fixed bug in listing: -as option also listed files that had EA even when these
  were not saved in the archive
- file permission of installed sample scripts lacked the executable bit
- fixed a bug that appeared when a file is removed while at the time it is saved
  by dar
- avoid having an unnecessary warning appearing when restoring a file in a
  directory that has default EA set
- Cygwin has changed and does not support anymore the path in the form
  "c:/some/where", you have to use "/cygdrive/c/some/where" instead.
  Documentation has been updated in consequence.

from 2.2.x to 2.3.0
- added user_interaction::pause2() method
- added the snapshot feature
- added the Cache Directory Tagging detection feature
- adapted Wesley's patch for a pkgconfig for libdar
- added -[ and -] options (file selection from file listing)
  Important consequence for libdar user programs:
  the fs_root argument is now expanded to full absolute path inside libdar,
  thus the mask you will give for path inclusion/exclusion (the "subtree"
  argument)will be used against full absolute path of files under consideration
  for the operation. Assuming you have fs_root=tmp/A and the current
  directory is /tmp, your mask will be used against strings like
  /var/tmp/A/some/file. (instead of tmp/A/some/file as in the previous API
  version). Things are equal if the fs_root is given an absolute path.
- changed archive format to "05". Due to complete review of EA management.
- upon some signal reception, dar aborts the backup nicely, producing a
  completely formatted archive will all the file saved so far. This archive can
  be take as reference for a further backup to continue the operation at a later
  time.
- dar_manager aborts properly upon certain signal reception (do not let the
  database partially updated).
- dar_slave and dar_xform now recognize when a slicename is given in place of a
  basename
- reviewed thread_cancellation (API change) for it be possible to cancel several
  thread at the same time
- prevent some dead-lock situation that can occur when a signal is received
  inside a critical section
- dar_cp, dar_xform and dar_slave also abort nicely upon signal reception
- dar_manager can now restore files based on a given date (not always the most
  recent version)
- dar_manager now has an interactive mode (-i option)
- change in API, the warning() method need not be overwritten, but the new
  protected method inherited_warning() must be inherited in its place (same
  function, same prototype as the original warning() method).
- dar_manager features are now part of libdar. API has been completed with these
  new features
- added the "last_slice" context (%c with -E option) when creating an archive
- dar now check a file has not been modified while it was reading it, if so it
  reports a warning and returns a specific exit code
- remove included gettext from the package (it is more a source of conflict with
  external gettext and if somebody needs internationalization better is to
  install libintl/gettext on its own).
- added George Foot feedback about the good backup practice sort guide.
- added -e option to dar_manager
- added the progressive_report feature in the API
- dar can now pause every N slice where N >= 1
- integrated Dave Vasilevsky's patch to support Extended Attributes and file
  forks under MacOS X
- added method in API for external program be able to list dar_manager
  databases, their file contents and the statistics
- added the merge/sub-archive feature
- remove [list of path] from command line (-g option is now mandatory)
- added regex expression in filters (-ar/-ag options)
- added -ak option
- added the --comparison-field option (extension of the --ignore-owner option
  aka -O option)
- added the -af option (backup files more recent than a given date, others are
  keept as already saved)
- dar now take care that an escape character can be sent when pressing the arrow
  keys and avoid considering them in this situation
- dar will no refuse to abort if user presses escape when dar asks the user to
  be ready to write to a new slice
- adapted Wesley Legette's patch for an xml archive listing
- added 'InRef' status for EA (same meaning as the one for file's data)

from 2.2.6 to 2.2.7
- updated Swedish translation by Peter Landgren
- fixed bug #37
- added old function (modified in 2.2.6) for backward compatibility
- added German translation by Markus Kamp

from 2.2.5 to 2.2.6
- fixed bug #36
- avoid removing slices when creating archive in dry-run mode (-e option)
- fixed display problem in dar_cp that lead uncaught exception just before exiting

from 2.2.4 to 2.2.5
- limited size of internal buffers allocated on the stack to not
  be greater than SSIZE_MAX when this macro is defined. This comes
  from feedback from "Steffe" at sourceforge after he ported dar
  to HPnonStop.
- integrated Andrey Yasniy's patch: fixed differential backup problem with
  ru_RU.koi8-r locale.
- integrated  Nick Alcock's patch: no warning shown when not on EXT2
  filesystem and nodump feature has been activated.
- avoid having arrow key be interpreted as escape key (while they remains
  an escape key + one char, as received from the tty).
- added part of Kyler Klein's patch for OSX (Tiger) (only concerns included gettext)

from 2.2.3 to 2.2.4
- fixed #35
- added in doc/samples the backup Script of Rodriguez Mendez & Mauro Silvosa
  Rivera
- updated Swedish translation by Peter Landgren

from 2.2.2 to 2.2.3
- error in TUTORIAL (-P only receives relative paths)
- updated FAQ with memory requirement questions/problem
- added Bob Barry's script for determining memory requirement
- added documentation about NLS in doc/NOTES
- fixed bug concerning the << operator of infinint class. This has no
  impact as this operator is not used in dar/libdar.
- added Jakub Holy's script to doc/samples
- fixed bug with patch transmitted from Debian (Brian May) about the
  detection of the ext2_fs.h header.
- added warning in libdar when user asks the nodump flags to be checked against
  while the nodump feature has not been activated at compilation time.
- fixed dar man page about --gzip option usage when using an argument
- now counting as errors the file with too long filename
- now counting the file excluded due to nodump flag as ignored due filter
  selection

from 2.2.1 to 2.2.2
- fixed typo in dar man page (flowfish ;-) )
- -Q option now forces the non terminal mode even when dar is run from a
  terminal (tty) this makes dar possible to run in background without having
  the shell stopping it upon text output.
- removed unused control code for dar's command line syntax
- spelling fix of the tutorial by Ralph Slooten
- added the pertinent part of the memory leak patch from Wesley Leggette
  (there is no bug here as the function where could occur the memory leak
   is not used in dar (!) ).
- updated FAQ
- updated man page information about optional argument's syntax to options
  like -z9 or --zip 9
- avoid calls to textdomain() when --disable-nls is set
- updates doc/NOTES
- fixed potential memory leakage on some system (to a "new[]" was
  corresponding a "delete" in place of a "delete[]" (Wesley's patch))
  In consequences, for API users, note that the following calls
	  - tools_str2charptr
  	  - tools_extract_basename
	  - libdar_str2charptr_noexcept
  all return a char * pointer which area must be released
  by the caller using the delete[] operator
- partially integrated Wesley's api_tutorial patch (added explanations)
- Fixed installation problem of header files, problem reported by
  Juergen Menden
- updated the examples programs for they properly initialize libdar
- the gettext.h file was not installed with libdar headers
- fixed typo error reported by Peter Landgren
- updated api_tutorial with compilation & linking informations
- fixed pedantic warning about some classes inherited from "mask"
  (the parent copy constructor is not called from inherited copy
   constructor; note that the parent class is a pure virtual class)
- added Swedish translation (by Peter Landgren)
- fixed typo in French translation
- added a const_cast statment to avoid compilation warning under some systems
- fixed problem on solaris where the TIME&MIN non canonical parameters
  for terminal are not set by default to 1 and 0 (but to 4 and 0),
  leading keyboard interaction to be impossible when dar needs
  user interaction.
- added O_BINARY to open() mode in dar_cp, without this will cause some problem
  under Cygwin.

from 2.2.0 to 2.2.1
- fixed execution problem for testing programs
- added control code to avoid the "endless loop" warning when -M is used
  and root and archive are not located on the same filesystem
- replaced an internal bug report by a more appropriate exception (elastic.cpp
  line 191)
- fixed bug #31
- fixed bug #32
- fixed bug #33
- changed exception type when dar_manager's -D option does not receive an
  integer
  as argument
- fixed bug #34
- added Wesley Leggette's patch to API tutorial
- fixed inconsistencies concerning Native Language Support in Dar
- added gettext NLS domain switch when incoming and exiting from libdar
- fixed bug #30
- changed the way ctermid() system call is used
- updated FAQ

from 2.1.x to 2.2.0
- caching read/write for catalogue to drop the number of Context Switches.
- added -aSI and -abinary options
- added -Q option
- added -G option
- fixed a display bug about archive size, present when listing with -v option
- added -aa / -ac options
- added -M option
- thread safe support for libdar
- added -g option
- added -am option
- added -acase / -an options
- user_interaction can now be based on customized C++ class
- user_interaction_callback now have a context argument
- added feature: dar_manager now restores directory tree recursively
- added feature: dar_manager can receive a range of archive number with -D
  option
- added summary at the end of configure script
- added -j option (--jog) change behavior when virtual memory is exhausted
- added Native Language Support
- added feature that proposes removal of slices of an older archive of same
  basename
- libz is now optional
- libbz2 is now optional
- added openssh's libcrypto dependency
- added blowfish strong encryption
- changed archive format number (version "04"), difference occures only when
  encryption is used
- moved libdar operations (archive creation, listing, testing ...) as method of
  the C++ archive class
- added thread cancelation routine
- added feature : password can be read out of command-line (interactively at
  execution time).
- added programming documentation (thanks to Doxygen)
- optimize CRC computation for speed
- added warning telling [list of path] is deprecated (better use -g option)
- added Todd Vierling's patch for dar to compile under Interix

from 2.1.5 to 2.1.6
- fixed compilation problem with gcc-3.x for dar64
- updated libtool to generate the configure script
- fixed old info in dar's man page

from 2.1.4 to 2.1.5
- added protection code against bad_alloc exception
- new configure option to bypass libdl test
- removed expected exception list in deci, limitint, real_infinint and storage
  modules to improve global robustness
- remove the #pragma implementation/interface directives which tend today to
  become obsolete, and seems to be the cause of compilation problem on
  (recent) Linux kernel 2.6.7 for example.
- added protection code to report bug conditions
- code simplification for filesystem reading (while performing backup)
- fixed bug #29
- fixed code syntax to support gcc-3.4.x

from 2.1.3 to 2.1.4
- fixed bug #27
- improved limitint detection overflow
- fixed bug #28

from 2.1.2 to 2.1.3
- fixed namespace visibility inconsistency for several call to open()
- added "list:" key in conditionnal syntax, to stay coherent with man page
- optimized dar_cp algorithm for speed in case I/O error
- made dar_cp more talkative about events that succeed while copying data
- fixed bug #25
- fixed bug #26

from 2.1.1 to 2.1.2
- fixed bug #24
- added "-w d" option which is equivalent to -w but necessary when dar
  is not compiled with GNU getopt
- updated documentation about GNU getopt() vs non GNU getopt()
- update configure script to have libgnugetopt auto-detection

from 2.1.0 to 2.1.1
- fixed configure script warning when an include file is "present but cannot
  be compiled"
- fixed bug #21
- fixed bug #22
- dar_xform and dar_slave now send their help usage on stdout (instead of
  stderr)
- fixed typo in error message

from 2.0.x to 2.1.0
- fixed bug #17
- API version 2 documentation
- API version 2 implementation
- -E and -F can now be present several time on command line and/or included
  files (dar, dar_slave and dar_xform)
- context (%c in -E and -F) is now transmitted in the pipes from dar to
  dar_slave
- added -wa option
- added -as option
- added -e option
- updated the API to be able to add new encryption protocol later
- root (-R argument) can now be a symbolic link pointing to a directory
- fixed bug #17bis
- added information returned by the system when error during read() to the
  message returned to the user
- fixed bug #18
- documentation about filter mechanism added
- fixed bug #19
- don't fail for a file if permission could not be restored
- fixed bug #20
- configure script does not mess with CXXFLAGS or CFLAGS execpt when using
  debugging options.

from 2.0.3 to 2.0.4
- updated autoconf version used to generate configure script (2.57 -> 2.59) The
  large file support is back with gcc-3 (was only working with gcc-2)

from 2.0.2 to 2.0.3
- fixed bug #20

from 2.0.1 to 2.0.2
- fixed bug #18
- fixed bug #17bis
- documentation about filter mechanism added
- fixed bug #19

from 2.0.0 to 2.0.1
- fixed bug #17

from version 1.3.0 to 2.0.0
- using configure script (built with automake & autoconf)
- creation of the libdar library
- API for libdar (version 1)
- updating TUTORIAL
- added chapter in NOTES for ssh / netcat use with dar
- added -H option
- making documentation for API : DOC_API
- speed optimization for dar_manager
- enclosed libdar sources in libdar namespace
- added libdar dynamic library support (using libtool)
- fixed bug in ui_printf. Bug appeared with the shell_interaction split from
  user_interaction (for libdar)
- fixed bug in dar_manager when creating empty database
- changed hourshift implementation (no static variable used anymore)
- changed code not to have dynamic allocation to take place before main() was
  called
- added compilation time option to replace infinint by 32 bits or 64 bits
  integers
- added special memory allocation (--enable-special-alloc) to better handle
  many small dynamic objects (in the meaning of OOP).
- fix. Dar_manager does no more send all its output to stderr, just interactive
  messages are sent there.
- changed "dar_manager -u" do not display anymore files present in the archive
  which have not saved data or EA in the asked archive.
- removed displaying of command-line used for backup ("dar -v -l ...") as it
  is no more becoming inaccurate due to include files and as it would consume
  too much space if it has to be developed.
- added sample scripts for using dar with Parchive
- now displaying option read from configuration files when using -v option
- added %e and %c for user script parameters
- using UPX to compress binary if available at compilation time
- removed comments put by mistake in 1.3.0 around warning when try to backup
  the archive itself. This revealed a bug, which made the warning be
  issued in some wrong cases.
- removed this previous warning when creating archive on the stdout
- fixed bug #15
- fixed error in libdar sanity checks, where exceptions were not raised (due
  to the lack of the "throw" keyword)
- fixed bug #16
- changed order of argument passed to dar by dar_manager, for the -x <archive>
  be before any other option (in particular -B options).

from version 1.2.1 to 1.3.0
- added parenthesis for a warning to be able to show, when opening a
  scrambled archive
- fixed bug #10
- added feature : --flat option
- improved slice name detection when given in place of archive basename
- added feature : comments in the configuration file given to -B (see
  man page for more).
- added feature : --mincompr option
- fixed a display error when listing a hard link (the name of the first
  hard link seen on an inode was displayed in place of the name of each hard
  link). This did not concern the tree (-T option) listing.
- added standard config files ~/.darrrc and /etc/darrc config files
- conditional statements in included files (using make-like targets)
- added feature : --noconf option
- fixed a bug : warning message issued when th user asks for dar to backup
  the archive in itself, was not displayed in some cases.
- fixed bug #11
- added total files counter in each archive while listing dar_manager database
- fixed bug #12
- improved slicename versus basename substitution warning and replacement.
- changed internal name generation to avoid using std::sstream class
- bzip2 compression implemented (need libbz2 library at compilation time)
- added the --nodump feature
- fixed bug #13
- configuration file can have DOS or UNIX text formating
- now closing files before asking for the last slice, this allow un-mounting
  filesystem in that case.

from version 1.2.0 to version 1.2.1
- minor change to have backward compatibility with old archive (dar < 1.2.0)
generated on 64 bits OS (have to use OS_BITS=32 in Makefile on 64 bits OS).
- adapted Axel Kohlmeyer's patch for RPMS
- adapted Dietrich Rothe's patch for compression level : -z has an optional
  argument which is compression level to use.
- I and -X now available while listing archive contents (-l)
- based on Brian May's patch, dar with EA_SUPPORT avoids complaining when
  reading a filesystem that do not supports EA.
- based on Brian May's other patch, dar now uses by default the <stdint.h>
  integers.
- dar is now built with dynamic linking, and a special version named
  dar_static which is statically linked is also available
- fixed problem on Windows NT & 2000 (fixed by first change above)

from version 1.1.0 to version 1.2.0
- -P option can now accept wild cards
- changed dar output format when listing archive contents to have something
  more similar to the output of tar. -T is provided to get the previous tree
  listing
- fixed bug #6
- user interaction is now possible even if standard input is used (for pipe)
- fixed bug #7
- added some missing #include files for compilation under Windows using Cygwin
- added feature to display name of user and group (when possible) in place of
  uid and gid while listing archive contents.
- added the possibility to launch command between slices (-E and -F options)
  for dar, dar_xform and dar_slave.
- when saving or comparing a directory tree, DAR goes transparently in
  subdirectory not modifying the last_access date of each directory.
- usage text (displayed by -h option) is now generated from xml file
  thanks to Chris Martin's little software named dar-help
- fixed bug concerning the uninstallation of man pages
- changed the place where man pages and documentation go /usr/share/doc
  usr/share/man
  in place of /usr/doc and /usr/man for the RPM package (conform to Filesystem
  Hierarchy Standard)
- changed the place where documentation goes for /usr/local/doc to
  /usr/local/share/doc by default. (Thanks to Jerome Zago)
  (conform to Filesystem Hierarchy Standard)
- added scrambling features (-J and -K options)
- added selective compression (-Y and -Z options)
- added third state for saved data to keep trace in an extracted catalogue of
  what is saved in the reference archive (this opens the door to the archive
  manager)
- added the ability to read configuration file (-B option, -B like "batch").
- if a slice name is given in place of a base name, dar proposes to change
  to the correct base name (strips the extension number and dots).
- fixed bug #8
- added dar_manager command-line program
- replaced integer types by macro that can be adapted to have correct behavior
  on 64 bits platform (in particular to read archive from other platforms).

from version 1.0.0 to version 1.1.0
- added feature: now ignored directory are not stored at all in the archive
      unless -D option is used, in which case ignored directory are recorded as
      empty directory (as it was in 1.0.x)
- added support for hard links. Generated archive format version is now 02, but
      format 01 can still be read, and use as reference.
- fixed bug #1
- fixed bug #2
- fixed bug #3
- added feature: restore only more recent file than existing one (-r option)
- added feature: support for Extended Attributes (activated at compilation)
- added feature: verbose option (-v) with -l (add archive contents)
- modified behavior: -l option without -v is no more interactive
- added feature: archive integrity test (option -t). CRC have been added in
      the archive (format 02), thus even without compression Dar is able to
      detect errors.
- added feature: comparison with filesystem (difference) (option -d)
- modified behavior: non interactive messages goes to stdout, while those
      asking user, goes to stderr (all goes to stderr if stdout is used for
      producing the archive, or for sending orders do dar_slave.
- added feature: DAR automatically goes in non interactive mode if no terminal
      is found on standard input (for example when run from crontab). In that
      case any question make DAR to abort.
- added feature: catalogue extraction to small file: "isolation" (-C option)
- added feature: archive produced on stdout when using -c or -C with "-" as
      filename
- added feature: -V option summarizes version of the binary
- added feature: additional command "dar_xform" to "re-slice" an archive
- added feature: read archive trough a pair of pipes with the help of dar_slave
- added feature: long option are now available (see man page)
- fixed bug #5
- a lot of speed optimization in algorithm
- changed exit codes to positive values in case of error
- dar returns an new error code when an operation is partially successful
  (some filed missed to be saved / restored / tested / compared).
- replace the use of vform() method by a customized simple implementation
  in the ui_printf() routine, this should now allow compilation with gcc-3
- changed long option that used an underscore character (`_') by a dash ('-')
- added -O option to have a better behavior when used with non root user
- added 'make doc' option in the makefile

from version 1.0.2 to version 1.0.3
- bug #5 fixed

from version 1.0.1 to version 1.0.2
- bug #2 fixed
- bug #3 fixed

from version 1.0.0 to version 1.0.1
- correction of few mistakes that lead the compilation to fail with certain
      C++ compilers
- bug #1 fixed.