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 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354
|
from 2.8.0 to 2.8.1
- fixed src/python/Makefile.am where CFLAGS was used in C++ compilation
command and should be replaced by CXXFLAGS.
- fixing documentation (remove reference to non-existent option, fixed
typos, spelling and English syntax)
- adding webdar in the list of existing external application relying on
libdar
- adding --enable-thread-stack-size option to the configure script
from 2.7.x to 2.8.0
- added whirlpool hash algorithm (requires librhash library)
- new feature: -anru option leads dar to Never Re-save Uncompressed a
file which compression ratio was bad (compressed data taking more
space than the corresponding uncompressed one).
- extended the syntax of --include-from-file and --exclude-from-file
options to let the user define what are the possible sequences of
chars that can define the end of a line (by default it stays "\n" and
"\r\n" for backward compatibility)
- adding early_memory_release parameter in class archive, this reduces
the memory footprint in many cases, but avoids reusing an opened
archive to perform more than one operation (dar CLI make use of
this feature whenever possible, for example it does not use it for
in-fly isolation),
- using early_memory_release from dar CLI when sequential-read mode is
used
- adding -qcrypto option to disable the warning telling a wrong pass
is not possible to detect...
- extended entrepot classes (entrepot_local and entrepot_libcurl) to
provide directory/non-directory info while listing a directory content
- extended entrepot classes to be able to create a sub-directory upon
user request.
- added implementation of fichier_libcurl::sync_write and using it at
object destruction for sanity purpose.
- adding option -affs option to drive dar to read the first slice rather
than the last slice to fetch archive format when reading an archive
with the help of an external catalog in direct access mode.
- adding -x option to dar_manager (displaying sub-second date
information)
- adding option -afdd to dar to show the sub-second part of dates while
listing a backup content
- exposing build_regex_for_exclude_mask() routine in tools module (was
cli specific in line_tools module).
- updating code to work with autoconf tool version 2.71
- replaced the deprecated use of sys_siglist by strsignal()
- for pertinence, changed the name of function square2 to root2 and
function square3 to root3 when using extended syntax of "--delta sig"
option.
- added the support for -az option into comparison operation
- enhanced display of dar_cp with the ratio of lost data beside the
ratio of read data.
- changed default number of thread used for ciphering, from 1 to 2 at
libdar API level (in coherence with CLI defaults).
- added option -arep to allow catalog isolation of a truncated backup
- signal (like CTRL-C) can now interrupt status where libdar is pending
for a user answer, allowing automatic clean termination of the
backup/archive, in case of UPS signaled power supply failure without
presence of the user.
- added a new get_version() to let the caller specify the amount of
secured memory to reserve while initializing libgcrypt form libdar.
Libgcrypt can still also be initialized outside libdar, in that case
secured memory size will have to be defined outside libdar too.
- adding the ability for dar to restore from a dar_manager database
(-aefd option) making possible and efficient to restore all files of a
backup set from a single dar command, instead of calling dar manually
for the full then differential and/or incremental backups, which may
lead to restoring old data first then overwritten it by more recent one.
The behavior is the same as dar_manager but there is not need to
transfer between dar and dar_manager the list of files to restore at
each backup step, dar directly fetches and pre-computes the information
in the database for better efficiency. Also note that all mask
features of dar stay available (-G/-P/-X/-I/-u/-U/...) something which
lacks when using dar_manager instead.
- while merging two backups, when in-place is a file and to-be-added is
a binary patch, if the policy decision is to "overwrite", instead of
retaining the patch (which is useless alone as was done so far), the
merging operation now applies the patch to the in-place version and
retain the patched/updated version in the resulting backup.
- replaced libcurl by libssh for SFTP repositories. Libcurl is still
used for FTP repositories for now, this may change in the future.
- by default dar_static is no more built, you need to specify
--enable-dar-static to the configure script. This will last until
libcurl can be replaced by an alternative method to provide FTP
support.
- increasing major version of libdar API to version 7, even if the change
from version 6 is little: It mainly concerns the abstraction of
remote sftp/ftp repositories from their implementation (libcurl,
libssh)[see remote_entrepot_api.hpp module part if libdar API].
from 2.7.18 to 2.7.19
- fixed the trailing slash support in path, that was broken by commit
503326bf8735d8eab48d4ff0ab9c000ffa031dec added at version 2.7.17
- leveraging RSmain@github's feedback to modify dar windows packaging for
-E/-F/-~ options to work under Cygwin. See the updated FAQ for more
details.
- Adding documentation on dar's man page on the way dar uses stdin, stdout
and stderr.
- removing too restrictive control of compression level inside libdar,
dar CLI already does that and libzstd/libz/libbz2/... also do that and
triggers an error in case of invalid value.
- handling the case where a binary patch is also a hard link: at restoration
time, the inode is tried to be patched again when a second hard link is
met, which leads dar to report an error and exiting with code 5 (while
restoration was fine).
- fixing dead-lock condition met when dar is about to end due to the fact two
threads unexpectedly access the same object at the same time (which object
is not designed for concurrent accesses). This occurred in sequential mode
with parallel compression and parallel deciphering after data has been
restored, leading dar in dead-lock situation (sleeping forever).
- fixing bug met in sequential read mode when retrieving archive summary
information (dar asked for the last slice and could not find it).
- In some rare conditions gpgme fails upon memory allocation failure, leading
dar to abort but without displaying the root cause. Error message now shows
- fixed bug in sar::truncate() which lead dar to create a hole in the slice
numbering when one of the last file to backup was so badly compressed that
re-saving it uncompressed lead to remove enough slices for the rest of the
backup to need less slices that reached at that time (bug detected with
slices of 1024 bytes). Such archive are still readable in sequential
read mode but end with dar asking for the missing slices at the end of
the process.
- fixing bug met in sequential-read mode lead dar to try restoring file a
second time from differential backup having entries marked as deleted,
which fails (reporting CRC mismatch) as the data of the file is no more
accessible due to the sequential reading mode.
from 2.7.17 to 2.7.18
- fixed bug that broke the ability to repair an archive through ftp/sftp
(repairing stays possible locally on the machine where resides the backup)
- fixed the reading of archive header (in-place field) when the -R path
given at creation time was valid or common unix path (/some//path for
example).
- fixed bug met when reading compressed data with multiple threads (-G
option with argument 2 or larger) in sequential read mode.
- fixed bug avoiding dar to repair archives relying on block compression,
testing the "repaired" archive lead to reporting corrupted data for all
compressed files and compressed EA.
- disabling min-digits checks for auxiliary and reference backups when
they are stored in a remote repository (these checks was avoiding using
remote auxiliary and reference backups).
- fixing bug in libcurl adaptation layer to libdar (fichier_libcurl) where
while reading, the end of file was not detected properly in very rare
context, leading the encryption layer trying (and failing) to decipher
the clear data located at end of archive.
- fixed bug met when reading a ciphered backup in sequential read mode with
the help of an external catalog (the few first data and EA were reported
as corrupted in sequential read mode, not in direct read mode or without
the help of an external catalog).
- fixing bug in non-regression test routines, which, once fixed, revealed
the following bugs (about sequential reading mode):
- reading a encrypted and sliced archive in sequential-read mode lead dar
asking for the an after-last non existing slice at the end of the
operation.
- comparing an archive having binary delta patch for a file failed in
sequential read mode with self reporting bug in cat_file.cpp line 1479
- fixing multi-threaded deciphering when reaching the end of the archive
and if a skip() instruction is given from the master thread to change
reading position (bug type message at parallel_tronconneuse.cpp line 662
was reported).
- fixing bug in archive class implementation met when comparing an archive
with filesystem in sequential read mode with the help of an isolated
catalogue. In such context, the hard linked inode can only be compared
at the first hard link encountered, other occurrence are skipped. The
isolated catalog gave a wrong information as it was read in direct mode
while fetching the data and EA to compare were read in sequential mode
without the ability to skip back to re-read a hard linked inode, this
caused the second time comparison to be reported as failed instead of
being flagged as skipped.
- fixing bug met when restoring gpg signed archive in sequential read
mode, where dar/libdar reported failed restoring EA and/or FSA for some
directories.
- fixing bug met when reading archive summary (-l and -q options) in
sequential read mode on sliced archive (was asking for the last slice
due to skip at end of archive while in sequential read mode)
from 2.7.16 to 2.7.17
- fixed bug where -R path ending with // was breaking the path filtering
mechanism (-P/-g/-[/-] options).
- added FAQ about HOME variable under Windows (John Slattery's feedback)
- fixed bug where repairing failed with sliced backups
- making exceptions thrown from shell_interaction class get their error
message passed and reported to the user.
from 2.7.15 to 2.7.16
- fixed mask building of path exclusion (dar's -P option) when used with
regular expression (problem met while testing or merging a backup)
- adding support for progressive report to repairing operation at API level
- warning before processing to the backup if gnupg signatories are provided
without any gnupg recipient.
- fixing bug reporting the following message:
/Subtracting an "infinint" greater than the first, "infinint" cannot be
negative/. This was due to duplicated counter decrement while merging two
archives and overwriting policy drives entry to be removed from the
resulting archive adding to that, the very specific/rare condition where
the number of removals exceeds more than the half of kept entries...
- adding kdf support for repairing operation instead of using the values of
the archive/backup under reparation.
- fixing bug in thread_cancellation class that led a canceled thread kept
being recorded as canceled forever, leading libdar to abort immediately
when run in a new thread having the the same tid.
- fixing bug in libdar leading an API call to return zero instead of the
total size of the backup/archive (not use in dar CLI).
- applying patch from Gentoo about the "which" command replacement in
scripts
- fixing some non-initialized variables as reported by cppcheck tool.
from 2.7.14 to 2.7.15
- updating libdar about CURLINFO_CONTENT_LENGTH_DOWNLOAD symbol which is
reported as deprecated by recent libcurl libraries.
- fixed compilation problem under MacOS Mojave
- fixed bug that lead the warning about a backup operation about to save
itself, to not show
- removing obsolete call to gcry_control(GCRYCTL_ENABLE_M_GUARD) while
initializing libgcrypt. This led to libgcrypt initialization to fail
with libgcrypt 1.11 and more recent versions.
- fixed listing but about "present but unsaved" FSA status
- fixed dead-lock condition in libdar when used with libcurl > 0.74.0 at
the end of closing sftp session (undocumented changed behavior in
libcurl).
from 2.7.13 to 2.7.14
- adding safe guard in fichier_libcurl destructor to verify all data have
been passed to libcurl *and* libcurl has completed the writing operation
before destroying a fichier_libcurl object.
- adding support for thread cancellation when interacting with libcurl
- updating man page
- fixing some error in the code documentation
- updated FAQ
from 2.7.12 to 2.7.13
- fixing bug auto-reported in "slice_layout.cpp line 48" concerning isolated
catalogs triggered when dar/libdar has been compiled with some version
gcc (gcc >= 11) with optimizations set.
- fixing the configure script to not fail if libargon2 is not present unless
explicitly asked by --enable-libargon2-linking
- added support for cppcheck to reinforce code robustness and sanity
- updating documentation about slice_layout structure and usage in libdar
from 2.7.11 to 2.7.12
- fixed bug avoid restoration fo binary patch when it was based on another
binary patch. Added workaround to read archive format 11.2 (used for
releases 2.7.9 to 2.7.11). Archive format has been updated to 11.3 while
2.7.12 generated backup have the exact same format as from 11.2, this
trick is only used to activate the workaround for badly generated
backups
- adding new condition for overwriting policy (E letter), used to improve
the decremental backup when a file only change concerns its metadata
(inode information, like permission or ownership)
- fixing segmentation fault met when listing an archive content with
-I option
- fixing bug in testing routine that lead regression unseen and released
in 2.7.11.
from 2.7.10 to 2.7.11
- removed set_unexpected() invocation (not useful for years in libdar
and incompatible with C++17)
- fixed generated dynamic libdar binary to include all its dependent libraries
- modified default block size for binary deltas, to be closer to what rsync
uses (more details in man page).
- Improved compression exclusions
- adding support for ronna (10^27) and quetta (10^30) new SI prefixes, R
and Q respectively
- fixing bug in infinint class met when extending underlying storage by zero
bytes
- avoiding delta sig block size calculation when not necessary
from 2.7.9 to 2.7.10
- displaying the slicing information about the archive of reference
stored within a isolated catalogue when using -l and -q options
- cleanup code from obsolete and unused readdir_r invocation
- fixing display bug in dar_manager (shell_interaction class of libdar)
- fixing python binding build system with the John Goerzen's proposal
- replacing the deprecated PYBIND11_OVERLOAD_* by PYBIND11_OVERRIDE_*
equivalents
from 2.7.8 to 2.7.9
- added sanity check in elastic buffer code upon Sviat89@github
feedback.
- fixed bug in block_compressor module found by sviat89 while reading
the code. Seen its context, it does not seem however to have much
chance to express and would lead dar/libdar to loop forever
consuming CPU.
- adding the misc/dar_static_builder_with_musl_voidlinux.bash script
which automatically builds dar_static from source code under
VoidLinux/musl
- fixing bug concerning the restoration in sequential read mode of a
backup containing binary patches
- fixed bug in tuyau_global class that lead to seeking at a wrong
in sequential read mode and the unability to properly rely on a
isolated catalogue to read (test/extract/diff) an backup in sequential
read mode, leading dar to report CRC error.
from 2.7.7 to 2.7.8
- adapted code to workaround clang 10.0.1 bug under FreeBSD 12
- updating code and man page about the way to solve the conflict of
sequentially reading the archive of reference when binary delta is
implicitly present for differential/incremental backups
- added -avc option to surface libcurl verbose messages
- fixed bug in dar where a sanity check about slice min digit detection
was applied to the local filesystem when the backup was stored
remotely, this prevented the reading or remote backups
- exposing libcurl version to the version output (new API call added
for that, leading upgrading libdar API to version 6.5.0)
- remove extra slash (/) found after hostname in URL passed to libcurl
- fixed self test reported error about mycurl_easyhandle_node.cpp
line 176
- improved error message when libcurl fails to connect to an sftp server
- fixed bug in libdar in the way libcurl is called for reading a file
using ftp protocol
- fixed bug in libdar when asking libcurl the size of the file we are
writing (libcurl segfaults with ftp protocol). In addition, we now
record this info during the write process (faster and more efficient).
- fixed bug met when creating a backup on very close and/or high
bandwidth ftp and sftp repos with the --hash option set, triggering a
race condition that led dar to sometime hang unexpectedly.
from 2.7.6 to 2.7.7
- added support for sequential reading more of sliced backup, to
accommodate tape support used with slices (at the opposite of dar_split)
- fixing few typos in doc
- making libdar more tolerant when calls to fadvise fail
from 2.7.5 to 2.7.6
- adding -f option to dar_cp
- adding static version of dar_cp (dar_cp_static) as compilation outcome
- added FAQ for tape usage with dar
- fixing error in libdar header file installation
- fixed bug met when interrupting the creation of a block compressed
backup (always used by lzo compression and by other algorithm only
when performing multi-threaded compression)
- typo fixes in documentation
- fixed message in lax mode used to obtain from the user the archive format
when this information is corrupted in the archive.
- fixing lax mode condition that popped up without being requested
- fixing bug met when reading slice an special block device by mean of
a symlink
- adapting sanity checks to the case of a backup read from a special
device in sequential-read mode.
- fixed bug that lead dar to report CRC error while reading a backup
from a pipe with the help of an isolated catalogue
- adding -V option to dar_split (was using -v) for homogeneity with
other commands
from 2.7.4 to 2.7.5
- fixed double free error met when deciphering an archive with a
wrong password/passphrase and when multi-threading is used.
from 2.7.3 to 2.7.4
- fixed excessive context control that led libdar to report a bug
when an file-system I/O error was returned by the operating system
- fixed mini-digits auto-detection, which only worked when slice number 1
was present, even if subsequent slices could be used to detect its
value
- fixed typos and minor incoherence in documentation
- update version information to display libthreadar barrier implementation
used, info available since its release 1.4.0
from 2.7.2 to 2.7.3
- fixed bug met when restoring files in sequential-read mode and feeding
the backup to dar on its stdin: When dar had to remove a file that had
been deleted at the time of the backup since the backup of reference
was made, dar aborted the restoration reporting it could not skip
backward on a pipe.
- adding call to kill() then join() in destructor of class slave_thread
and fichier_libcurl to avoid the risk of SEGFAULT in rare conditions
under Cygwin (Windows)
- fixed several typos in bug, messages and comments
- fixed script used to build windows binary to match recent cygwin dll
- fix spelling and improved clarity in dar_split messages
from 2.7.1 to 2.7.2
- fixed bug met when a user command returns an error while dar is
saving fsa attributes of inodes (this conjunction make it an infrequent
situation)
- fixed typo in documentation
- fixed remaining bug from 2.7.1 met when compiling dar/libdar with a
compiler (clang-5.0 here) that requires a flag to activate C++14 support
while complaining (for a good reason) when this flag is passed too while
compiling C code.
- fixed self reported bug escape.cpp line 858 met when using lzo compression
or multi-threaded compression while creating a backup to stdout.
- fixed bug met when creating a backup to stdout that lead libdar to corrupt
data when trying to re-save a file uncompressed due to poor compression
result
- fixed minor bug met when setting --mincompr to zero and using
block_compressor (lzo algo or any algo in block compression): empty files
were reported as truncated due to the lack of block header (compressed
empty file being stored as an empty file)
from 2.7.0 to 2.7.1
- fixed compilation script to require support for C++14 due to new features
introduces in 2.7.0 that rely on modern C++ constructions. Updated
documentation accordingly about this updated requirement.
- fixed missing included header for compilation to suceed under MacOS X
- fixed typo in man page
- adding minor feature: storing the backup root (-R option) in the archive
to be able to restore 'in place' thanks to the new -ap option that
sets the -R path to the one stored in the archive.
- merging fixes an enhancements brought by release 2.6.15
from 2.6.x to 2.7.0
- using the truncate system call whenever possible in place of skipping
back in the archive, when file need to re-save uncompressed,
or when file has changed while it was read for backup
- improved slice name versus base name error, now substituting (rather than
just asking the user) the first by the later when else it would lead
to an execution error.
- auto-detecting min-digits at reading time in complement of the feature
listed just above
- added the possibility to specify a gnupg key by mean of its key-id in
addition to the email address it may be associated to, both for
asymmetrical encryption and archive signing.
- added -b option to dar_split to set the I/O block size
- added -r option to dar_split to limit the transfer rate
- added -c option to dar_split to limit the number of tape to read
- new feature: zstd compression algorithm added
- replaced old and experimental multi-threaded implementation by
production grade one. -G option may now receive an argument on
command line for fine tuning. libdar API has been updated
accordingly.
- added multi-threaded compression when using the new per block
compression mode, the legacy streaming compression mode is still
available (see both -G and -z option extended syntax).
- added lz4 compression algorithm.
- removed some deprecated/duplicated old options (--gzip,...)
- enhanced the delta signature calculation providing mean for the user
to adapt the signature block size in regard to the file's size to
delta-sig. "--delta sig" option received an extended syntax.
- increased timestamp precision from microsecond to nanosecond when the
operating system supports it. It is still possible to use configure
--enable-limit-time-accuracy=us at compilation time to use microsecond
or even second accuracy even if the OS can support finer precision.
- added argon2 hashing algorithm for key derivation function (kdf) which
becomes the default if libargon2 is available, else it defaults to sha1
as for 2.6.x. When argon2 is used, kdf default iteration count is
reduced to 10,000 (and stays 200,000 with sha1). This can be tuned
as usual with --kdf-param option.
- adding support for statx() under Linux which let libdar save file's
birthtime. Unfortunately unlike under BSD systems (FreeBSD, MACoS X,
and so on), the utime/utimes/timensat call do not set birthtime, so
you cannot restore birthtime on Linux's unlike under BSD systems
- AES becomes the default when gnupg is used without additional
algorithm.
- new implementation of the libcurl API use for more efficient reuse of
established sessions.
- You can now exclude/include per filesystem rather than just sticking
to the current filesystem or ignoring filesystem boundary. -M option
can now receive arguments.
- new feature: dar_manager can now change the compression algorithm of
an existing database.
- Added a benchmark of dar versus tar and rsync for different use cases.
- documentation review, update, cleanup, restructured and beautification.
from 2.6.15 to 2.6.16
- fixed bug met when restoring files in sequential-read mode and feeding
the backup to dar on its stdin: When dar had to remove a file that had
been deleted at the time of the backup since the backup of reference
was made, dar aborted the restoration reporting it could not skip
backward on a pipe.
- adding call to kill() then join() in destructor of class slave_thread
and fichier_libcurl to avoid the risk of SEGFAULT in rare conditions
under Cygwin (Windows)
- fixed bug met when removing tape marks (-at option) and due to poor
compression, dar skips back to re-save file uncompressed leading to
self reported bug (due to an error in the sanity check).
- fixing error message display by dar when -y option is used with another
command (-c/-t/-l/-d/-x/-+/-C)
from 2.6.14 to 2.6.15
- fixed error message formatting error leading message to contain garbage
in place of system error information.
- fixing bug (internal error) met while trying restoring files and dirs
without sufficient write permission on the destination directory tree
to perform the operation.
- adding minor feature to avoid restoring Unix sockets (-au option)
- fixing dar-catalogue.dtd
from 2.6.13 to 2.6.14
- script used to build dar windows binary has been fixed to have the
official default etc/darrc config file usable and used out of the
box.
- fixed bug met when removing slices of an old backup located on
a remote sftp server
- fixed bug in cache layer met when writing sliced backup to a remote
ftp or sftp repository
- enhancement to the -[ and -] options to work as expected when "DOS"
formatted text file is provided as a file listing.
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 − 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.
|