Advertise with Googlier.compages tagged larch
https://blog.liw.fi/tag/larch/
blog.liw.fiikiwikiSat, 30 Nov 2013 17:48:08 +0000Obnam 1.6.1 (backup software) and larch 1.20131130 (B-tree) releases: serious bug fixeshttps://blog.liw.fi/posts/obnam-1.6/
https://blog.liw.fi/posts/obnam-1.6/
announcementlarchobnamSat, 30 Nov 2013 17:46:42 +00002013-11-30T17:48:08Z<p>Backups are fun and exciting! Restores are exciting, in a terrifying
and stressful way. Fixing serious bugs is gratifying, in a depressing
way.</p>
<p>I am glad to announce two software releases: <a href="http://liw.fi/obnam/">Obnam</a> version 1.6.1 and
<a href="http://liw.fi/larch/">larch</a> version 1.20131130. Obnam is my backup application, larch is a
Python copy-on-write B-tree implementation that Obnam uses. I've
uploaded the new versions to Debian unstable and to my own apt
repository at [code.liw.fi] (also for wheezy). (I don't have the
energy to upload to Debian backports: help is welcome there.)</p>
<p>These are mainly bug fix releases, and minor improvements. The larch
release fixes serious problems, and everyone should be upgrading.</p>
<p>NEWS for larch:</p>
<ul>
<li><p>Serious bug fixed: the "KeyError" crash for reference counts. This
was false memory use optimisation, which triggered a rare bug in
related code. Repeatable test case by Rob Kendrick, and helpful
analysis by Itamar Turing-Trauring.</p></li>
<li><p>Serious bug fixed: another "node missing" bug. This crash was
caused by a bug that overwrote on-disk reference count groups
with zeroes. Repeatable test case by Rob Kendrick.</p></li>
<li><p>Fixes to fsck from Antoine Brenner.</p></li>
</ul>
<p>NEWS for Obnam (combining versions 1.6 and 1.6.1, both released
today):</p>
<ul>
<li><p>Fix Debian package dependencies correctly.</p></li>
<li><p>Stop logging paramiko exceptions that get converted into another
type of exception by the SFTP plugin in Obnam.</p></li>
<li><p><code>obnam-benchmark</code> can now use an installed version of larch.
Patch by Lars Kruse.</p></li>
<li><p>Obnam has been ported to FreeBSD by Itamar Turner-Trauring
of HybridCluster.</p></li>
<li><p>Backup progress reporting now reports scanned file data, not just
backed up file data. This will hopefully be less confusing to people.</p></li>
<li><p>The <code>list-keys</code>, <code>client-keys</code>, and <code>list-toplevels</code> commands now
obey a new option, <code>--key-details</code>, to show the usernames attached
to each public key. Patch by Lars Kruse.</p></li>
<li><p>New option <code>--ssh-command</code> to set the command Obnam runs
when invoking ssh. patch by Lars Kruse.</p></li>
<li><p><code>obnam clients</code> can now be used without being an existing client.
Patch by Itamar Turner-Trauring.</p></li>
<li><p>New option <code>--ssh-host-keys-check</code> to better specify how SSH
host keys should be checked. Patch by Itamar Turner-Trauring.</p></li>
</ul>
<p>Bug fixes:</p>
<ul>
<li><p>Fix<code>"obnam list-toplevels</code> so it doesn't give an error when it's
unable to read the per-client directory of another client, when
encryption is used. Fix by Lars Kruse.</p></li>
<li><p>Fix the encryption plugin to give a better error message when it
looks for client directories but fails to find them. Fix by
Lars Kruse.</p></li>
<li><p><code>obnam list-toplevels</code> got confused when the repository contained
extra files, such as "lock" (left there by a previous, crashed Obnam
run). It no longer does. Fix by Lars Kruse.</p></li>
<li><p>The SFTP plugin now handles another error code (EACCESS) when writing
a file and the directory it should go into not existing. Patch by
Armin Größlinger.</p></li>
<li><p>Obnam's manual page now explains about breaking long logical lines
into multiple physical ones.</p></li>
<li><p>The <code>/~/</code> path prefix in SFTP URLs works again, at least with
sufficiently new versions of Paramiko (1.7.7.1 in Debian wheezy is
OK). Reported by Lars Kruse.</p></li>
<li><p>The Nagios plugin to report errors in a way Nagios expects.
Patch by Martijn Grendelman.</p></li>
<li><p>The Nagios plugin for Obnam now correctly handles the case
where a backup repository for a client exists, but does not have
a backup yet. Patch by Lars Kruse.</p></li>
<li><p><code>obnam ls</code> now handles trailing slashes in filename arguments.
Reported by Biltong.</p></li>
<li><p>When restoring a backup, Obnam will now continue past errors,
instead of aborting with the first one. Patch by Itamar
Turner-Trauring.</p></li>
</ul>
Obnam 1.5 (backup software) releasehttps://blog.liw.fi/posts/obnam-1.5/
https://blog.liw.fi/posts/obnam-1.5/
announcementlarchobnamThu, 08 Aug 2013 22:38:57 +00002013-08-08T22:38:57Z<p>I've just pushed out the release files for <a href="http://liw.fi/obnam/">Obnam version
1.5</a>, my backup application, and <a href="http://liw.fi/larch/">Larch,
my B-tree library</a>, which Obnam uses.
They are available via my home page (http://liw.fi/). These
versions have alos been uploaded to Debian unstable.</p>
<p>NEWS for Obnam:</p>
<ul>
<li>Terminal progress reporting now updated only every 0.1 seconds,
instead of 0.01 seconds, to reduce terminal emulator CPU usage.
Reported by Neal Becker.</li>
<li>Empty exclude patterns are ignored. Previously, a configuration file
line such as "exclude = foo, bar," (note trailing comma) would result
in an empty pattern, which would match everything, and therefore
nothing would be backed up. Reported by Sharon Kimble.</li>
<li>A FUSE plugin to access (read-only) data from the backup repository
has been added. Written by Valery Yundin.</li>
</ul>
<p>NEWS for larch:</p>
<ul>
<li>Bug fix in how Larch handles partly-comitted B-tree journals
in read-only mode. Previously, this would result in a crash
if, say, a node had been removed, but the B-tree metadata
hadn't been committed.</li>
</ul>
Obnam 1.4 (backup software) releasehttps://blog.liw.fi/posts/obnam-1.4/
https://blog.liw.fi/posts/obnam-1.4/
announcementlarchobnamSat, 16 Mar 2013 19:26:54 +00002013-03-16T19:26:54Z<p>I've just pushed out the release files for <a href="http://liw.fi/obnam/">Obnam version
1.4</a>, my backup application, and <a href="http://liw.fi/larch/">Larch,
my B-tree library</a>, which Obnam uses.
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 <a href="http://liw.fi/code/">personal apt repository</a>
for intrepid explorers. (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!)</p>
<p>From the Obnam NEWS file:</p>
<ul>
<li>The<code>`ls</code> command now takes filenames as (optional) arguments, instead
of a list of generations. Based on patch by Damien Couroussé.</li>
<li>Even more detailed progress reporting during a backup.</li>
<li>Add --fsck-skip-generations option to tell fsck to not check any
generation metadata.</li>
<li>The default log level is now INFO, instead of DEBUG. This is to be
considered a quantum leap in the continuing rise of the maturity level
of the software. (Actually, the change is there just to save some
disk space and I/O for people who don't want to be involved in Obnam
development and don't want to have massive log files.)</li>
<li>The default sizes for the <code>lru-size</code> and <code>upload-queue-size</code> settings
have been reduced, to reduce the memory impact of Obnam.</li>
<li><code>obnam restore</code> now reports transfer statistics at the end, similarly
to what <code>obnam backup</code> does. Suggested by "S. B.".</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li>If listing extended attributes for a filesystem that does not support
them, Obnam no longer crashes, just silently does not backup extended
attributes. Which aren't there anyway.</li>
<li>A bug in handling stat lookup errors was fixed. Reported by
Peter Palfrader. Symptom: <code>AttributeError: 'exceptions.OSError'
object has no attribute 'st_ino'</code> in an error message or log file.</li>
<li>A bug in a restore crashing when failing to set extended attributes
on the restored file was fixed. Reported by "S. B.".</li>
<li>Made it clearer what is happening when unlocking the repository due to
errors, and fixed it so that a failure to unlock is also an error.
Reported by andrewsh.</li>
<li>The dependency on Larch is now for 1.20121216 or newer, since that is
needed for fsck to work.</li>
<li>The manual page did not document the client name arguments to the
<code>add-key</code> and <code>remove-key</code> subcommands. Reported by Lars Kruse.</li>
<li>Restoring symlinks as root would fail. Reported and fixed by
David Fries.</li>
<li>Only set ssh user/port if explicitily requested, otherwise let ssh
select them. Reported by Michael Goetze, fixed by David Fries.</li>
<li>Fix problem with old version of paramiko and chdir. Fixed by Nick Altmann.</li>
<li>Fix problems with signed vs unsigned values for struct stat fields.
Reported by Henning Verbeek.</li>
</ul>
Obnam 1.3 (backup software) and other releaseshttps://blog.liw.fi/posts/obnam-1.3/
https://blog.liw.fi/posts/obnam-1.3/
announcementcliapplarchobnamMon, 17 Dec 2012 19:57:58 +00002012-12-17T19:57:58Z<p>I've just pushed out the release files for <a href="http://liw.fi/obnam/">Obnam version
1.3</a>, my backup application, as well as <a href="http://liw.fi/larch/">Larch,
my B-tree library</a>, and <a href="http://liw.fi/cliapp/">cliapp, my Python
framework for command line applications</a>. 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 <a href="http://liw.fi/code/">personal apt repository</a>
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!)</p>
<p>From the Obnam NEWS file:</p>
<ul>
<li>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 <code>open(2)</code> system call with
the <code>O_EXCL</code> flag to create the target file. This should allow things
to work with both NFS and VFAT.</li>
<li>More detailed progress reporting during the backup.</li>
<li>Manual page now covers the diff subcommand. Patch by Peter Valdemar Mørch.</li>
<li>Speed optimisation patch for backing up files in inode numbering order,
from Christophe Vu-Brugier.</li>
<li>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.</li>
<li>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.</li>
<li>More frequent fsck progress reporting. Some speed optimisations to fsck.</li>
</ul>
<p>Bug fixes for Obnam:</p>
<ul>
<li>Empty values for extended attributes are now backed up correctly.
Previously they would cause an infinite loop.</li>
<li>Extended attributes without values are now ignored. This is different
from attributes with empty values. Reported by Vladimir Elisseev.</li>
<li>An empty port number in sftp URLs is now handled correctly. Found based
on report by Anton Shevtsov.</li>
<li>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.</li>
<li>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.</li>
<li>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.</li>
<li>Bugs in how Python OSError exceptions were being raises have been fixed.
Error messages should now be somewhat clearer.</li>
<li>Unset or wrongly set variable "full" fixed in "obnam diff". Reported
by ROGERIO DE CARVALHO BASTOS and patched by Peter Valdemar Mørch.</li>
<li>Setuid and setgid bits are now restored correctly, when restore happens
as root. Reported by Pavel Kokolemin.</li>
<li>Obnam now complains if no backup roots have been specfied.</li>
</ul>
<p>NEWS for Larch:</p>
<ul>
<li>Make fsck progress reporting be a bit more fine grained.</li>
</ul>
<p>NEWS for cliapp:</p>
<ul>
<li>Options in option groups are now included in manual page SYNOPSIS and
OPTIONS sections.</li>
<li><code>--log=syslog</code> 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.</li>
<li>Make the default subcommand argument synopsis be an empty string, instead
of None. Reported by Sam Thursfield.</li>
<li>Meliae memory dumping support has been fixed. Reported by Joey Hess.</li>
<li>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.</li>
<li>If there are any subcommands, cliapp now adds a subcommand called <code>help</code>,
unless one already exists.</li>
<li>For every boolean setting foo, there will no be a --no-foo option to be
used on the command line.</li>
</ul>
Larch 1.20120527 (Python B-tree library)https://blog.liw.fi/posts/larch-1.20120527/
https://blog.liw.fi/posts/larch-1.20120527/
announcementlarchSun, 27 May 2012 10:04:04 +00002012-05-27T10:04:04Z<p>It has been a long time since I announced a version of
<a href="http://liw.fi/larch/">Larch</a> on my blog: about 14 months.
A fair bit has happened since then: see the <a href="http://liw.fi/larch/NEWS/">NEWS</a>
file for details. Below is the snippet for today's release.</p>
<p>This is an implementation of particular kind of B-tree, based on research by
Ohad Rodeh. See "B-trees, Shadowing, and Clones" (copied here with permission
of author) for details on the data structure. This is the same data structure
that btrfs uses. Note that my implementation is independent from the btrfs
one, and might differ from what the paper describes.</p>
<p>The distinctive feature of this B-tree is that a node is never modified
(sort-of). Instead, all updates are done by copy-on-write. Among other things,
this makes it easy to clone a tree, and modify only the clone, while other
processes access the original tree. This is utterly wonderful for my
backup application, and that's the reason I wrote larch in the first place.</p>
<p>See the <a href="http://liw.fi/larch/">home page</a> and
<a href="http://liw.fi/larch/README/">README</a> for more information;
the <a href="https://blog.liw.fi/tag/larch/code.liw.fi/larch/docs/">API docs</a> may be amusingly sparse.</p>
<h2>Version 1.20120527, released 2012-05-27</h2>
<ul>
<li>New version scheme. Thank you, Joey Hess.</li>
<li>The on-disk data structures and file formats are now declared frozen.
An automatic test has been added to verify that things do not break.</li>
</ul>
Obnam version 0.15 and 0.15.1, and btree/larch 0.19https://blog.liw.fi/posts/obnam-0.15.1/
https://blog.liw.fi/posts/obnam-0.15.1/
larchobnamMon, 21 Mar 2011 08:53:42 +00002011-03-21T08:53:42Z<p>I've just made a couple of software releases:</p>
<ul>
<li>larch version 0.19. This used to be known as btree, but others are using
that name, so I changed it. This is my copy-on-write B-tree library
for Python.
<ul>
<li>see <a href="http://liw.fi/larch/">http://liw.fi/larch/</a> for more information</li>
<li>see <a href="http://liw.fi/larch/NEWS/">http://liw.fi/larch/NEWS/</a> for changes</li>
</ul>
</li>
<li>obnam version 0.15, and then the obligatory brown paper bag version 0.15.1
to fix a build issue under pbuilder. Obnam is my backup program.
<ul>
<li>see <a href="http://braawi.org/obnam/">http://braawi.org/obnam/</a> for more information</li>
</ul>
</li>
</ul>
<p>This is the first release of Obnam this year. Below is a summary of
the changes.</p>
<p>My <a href="http://liw.fi/code/">apt repository</a> has binary packages for
amd64, i386, and armel. I've started mentoring someone to help me
maintain the Debian packages, and hope to start uploading Obnam and
its dependencies to Debian within a few weeks.</p>
<p>Obnam is still in ALPHA, but the only missing thing for moving to
BETA is <a href="http://braawi.org/obnam/encryption/">encryption</a> support.
There's a bunch of bugs that need to be fixed, but I'm not going to
block the BETA on them. I'd be very interested to hear any feedback
on this version.</p>
<p>Bugs fixed:</p>
<ul>
<li>Manual page GPL copyright blurb is now properly marked up as a comment.
(Thanks, Joey Hess.)</li>
<li>README now links to python-lru correctly. (Thanks, Erik Johansson.)</li>
</ul>
<p>Improvements and other changes:</p>
<ul>
<li>Filenames and directories are backed up in sorted order. This should
make it easier to know how far obnam's gotten.</li>
<li>The location where backups are stored is now called the repository,
instead of the store. Suggested by Joey Hess.</li>
<li>The repository and the target directory for restored data are now
both created by Obnam, if they don't already exist. Suggested by
Joey Hess.</li>
<li>Better control of logging, using the new <code>--trace</code> option.</li>
<li>Manual page now explains making backups a little better.</li>
<li>Default value for <code>--lru-size</code> reduced to 500, for great improvement
in memory used, without, it seems, much decrease in speed.</li>
<li><code>obnam verify</code> now reports success explicitly. Based on question
from Joey Hess.</li>
<li><code>obnam verify</code> now accepts both non-option arguments and the <code>--root</code>
option. Suggested by Joey Hess.</li>
<li><code>obnam forget</code> now accepts "generation specifiers", not just numeric
generation ids. This means that <code>obnam forget latest</code> works.</li>
<li>I/O statistics are logged more systematically.</li>
<li><code>obnam force-lock</code> introduced, to allow breaking a lock left behind
if obnam crashes. But it never does, of course. (Well, except if there's
a bug, like when a file changes at the wrong moment.)</li>
<li><code>obnam genids</code> introduced, to list generation ids without any other data.
The old command <code>obnam generations</code> still works, and lists other info
about each generation as well, but that's sometimes bad for scripting.</li>
<li>The <code>--dump-memory-profile</code> option now accepts the value <code>simple</code>, for
reporting basic memory use. It has such a small impact that it's the
default.</li>
<li>Obnam now stores the version of the on-disk format in the repository.
This should allow it to handle repositories created by a different
version and act suitably (hopefully without wiping all your backups).</li>
</ul>