I’ve just pushed out the release files for Obnam version 1.3, my backup application, as well as Larch, my B-tree library, and cliapp, my Python framework for command line applications. They are available via my home page (http://liw.fi/). Since Debian is frozen, I am not uploading packages to Debian, but .deb files are available from my personal apt repository for the intrepid. (I will be uploading to Debian again after the freeze. I am afraid I’m too lazy to upload to experimental, or do backports. Help is welcome!)

From the Obnam NEWS file:

  • When creating files in the backup repository, Obnam tries to avoid NFS synchronisation problems by first writing a temporary file and then creating a hardlink to the actual filename. This works badly on filesystems that do not allow hard links, such as VFAT. If creating the hardlink fails, Obnam now further tries to use the open(2) system call with the O_EXCL flag to create the target file. This should allow things to work with both NFS and VFAT.
  • More detailed progress reporting during the backup.
  • Manual page now covers the diff subcommand. Patch by Peter Valdemar Mørch.
  • Speed optimisation patch for backing up files in inode numbering order, from Christophe Vu-Brugier.
  • A setuid or setgid bit is now not restored if Obnam is not used by root or the same user as the owner of the restored file.
  • Many new settings to control “obnam fsck”, mainly to reduce the amount of checking being done in order to make it faster. However, fsck is has lost some features (checks), which will be added back in a future release.
  • More frequent fsck progress reporting. Some speed optimisations to fsck.

Bug fixes for Obnam:

  • Empty values for extended attributes are now backed up correctly. Previously they would cause an infinite loop.
  • Extended attributes without values are now ignored. This is different from attributes with empty values. Reported by Vladimir Elisseev.
  • An empty port number in sftp URLs is now handled correctly. Found based on report by Anton Shevtsov.
  • A bad performance bug when backing up full systems (starting from the filesystem root directory) has been fixed. At the beginning of each generation, Obnam removes any directories that are not part of the current backup roots. This is necessary so that if you change the backup roots, the old stuff doesn’t hang around forever. However, when the backup root is the filesystem root, due to the now-fixed bug Obnam would first remove everything, and then back it up all over again. This “worked”, but was quite slow. Thanks to Nix for reporting the problem.
  • Obnam now runs GnuPG explicitly with the “no text mode” setting, to override a “text mode” setting in the user’s configuration. The files Obnam encrypts need to be treated as binary, not text files. Reported by Robin Sheat.
  • A shared B-tree concurrency bug has been fixed: If another instance of Obnam was modifying a shared B-tree, Obnam would crash and abort a backup, possibly leaving lock files lying around. Now a failure to look up a chunk via its checksum is ignored, and the backup continues.
  • Bugs in how Python OSError exceptions were being raises have been fixed. Error messages should now be somewhat clearer.
  • Unset or wrongly set variable “full” fixed in “obnam diff”. Reported by ROGERIO DE CARVALHO BASTOS and patched by Peter Valdemar Mørch.
  • Setuid and setgid bits are now restored correctly, when restore happens as root. Reported by Pavel Kokolemin.
  • Obnam now complains if no backup roots have been specfied.

NEWS for Larch:

  • Make fsck progress reporting be a bit more fine grained.

NEWS for cliapp:

  • Options in option groups are now included in manual page SYNOPSIS and OPTIONS sections.
  • --log=syslog message format improvement by Daniel Silverstone. No longer includes a timestamp, since syslog adds it anyway. Also, the process name is now set on Linux.
  • Make the default subcommand argument synopsis be an empty string, instead of None. Reported by Sam Thursfield.
  • Meliae memory dumping support has been fixed. Reported by Joey Hess.
  • Memory profiling reports can now be done at minimum intervals in seconds, rather than every time the code asks for them. This can reduce the overhead of memory profiling quite a lot.
  • If there are any subcommands, cliapp now adds a subcommand called help, unless one already exists.
  • For every boolean setting foo, there will no be a –no-foo option to be used on the command line.