Disk ARchive Changelog

What's new in Disk ARchive 2.7.1

May 14, 2021
  • 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

New in Disk ARchive 2.7.0 (Apr 25, 2021)

  • 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.

New in Disk ARchive 2.6.14 (Mar 31, 2021)

  • 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.

New in Disk ARchive 2.6.13 (Mar 31, 2021)

  • 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.

New in Disk ARchive 2.6.12 (Sep 13, 2020)

  • Fixed regression met in 2.6.11 when generating encrypted archives

New in Disk ARchive 2.6.11 (Sep 7, 2020)

  • 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

New in Disk ARchive 2.6.10 (May 31, 2020)

  • 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

New in Disk ARchive 2.6.9 (Mar 23, 2020)

  • 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

New in Disk ARchive 2.6.8 (Feb 10, 2020)

  • 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

New in Disk ARchive 2.6.7 (Jan 13, 2020)

  • 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!

New in Disk ARchive 2.6.6 (Sep 22, 2019)

  • 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

New in Disk ARchive 2.6.5 (Jul 8, 2019)

  • 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

New in Disk ARchive 2.6.4 (May 26, 2019)

  • 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)

New in Disk ARchive 2.6.3 (Mar 31, 2019)

  • 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

New in Disk ARchive 2.6.2 (Feb 11, 2019)

  • 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.

New in Disk ARchive 2.6.1 (Feb 11, 2019)

  • 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

New in Disk ARchive 2.5.16 (Jul 19, 2018)

  • 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)

New in Disk ARchive 2.5.15 (Apr 29, 2018)

  • 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.

New in Disk ARchive 2.5.14 (Dec 21, 2017)

  • 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

New in Disk ARchive 2.5.13 (Oct 29, 2017)

  • 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)

New in Disk ARchive 2.5.12 (Sep 4, 2017)

  • 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

New in Disk ARchive 2.5.11 (Jun 24, 2017)

  • 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

New in Disk ARchive 2.5.10 (Apr 2, 2017)

  • 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

New in Disk ARchive 2.5.9 (Jan 22, 2017)

  • 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.)

New in Disk ARchive 2.5.8 (Jan 22, 2017)

  • 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

New in Disk ARchive 2.5.7 (Oct 30, 2016)

  • 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
  • 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

New in Disk ARchive 2.5.5 (Jun 15, 2016)

  • 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)

New in Disk ARchive 2.4.17 (Feb 3, 2015)

  • 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 ever saved before (considering a filesystem error for that file), while now the ASCII case insensitivity is used as fallback.

New in Disk ARchive 2.4.16 (Jan 20, 2015)

  • 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

New in Disk ARchive 2.4.15 (Sep 9, 2014)

  • 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.

New in Disk ARchive 2.4.14 (Jun 16, 2014)

  • 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'

New in Disk ARchive 2.4.13 (Apr 22, 2014)

  • 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

New in Disk ARchive 2.4.12 (Jan 21, 2014)

  • 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.

New in Disk ARchive 2.4.11 (Aug 27, 2013)

  • 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

New in Disk ARchive 2.4.10 (Mar 11, 2013)

  • 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.

New in Disk ARchive 2.4.8 (Sep 10, 2012)

  • 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

New in Disk ARchive 2.4.7 (Jul 5, 2012)

  • fixing memory allocation bug in crc class, that lead glibc aborting dar (bug is the object of the previous notice in dar-news mailing- list).
  • reviewed code and replaced some remaining occurrences of bzero/bcopy by their recommended replacement functions (memset/memcpy)
  • 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 had changed while it was saved, then saved a second time but had its size modified since the first time it was saved.

New in Disk ARchive 2.4.5 (Apr 17, 2012)

  • 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).

New in Disk ARchive 2.4.3 (Feb 27, 2012)

  • 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

New in Disk ARchive 2.3.10 (Apr 10, 2010)

  • 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)

New in Disk ARchive 2.3.9 (May 25, 2009)

  • 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

New in Disk ARchive 2.3.8 (Jun 21, 2008)

  • 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).

New in Disk ARchive 2.3.7 (Feb 11, 2008)

  • 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)