Just read about obnam on lwn and decided to try it! Installed the version on the ubuntu ppa. Unfortunately, I cannot execute the basic backup example:

obnam backup --repository Backup/Obnam-backup Documents/BibFiles
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/cliapp/app.py", line 172, in _run
    self.process_args(args)
  File "/usr/lib/python2.7/dist-packages/obnamlib/app.py", line 127, in process_args
    cliapp.Application.process_args(self, args)
  File "/usr/lib/python2.7/dist-packages/cliapp/app.py", line 407, in process_args
    method(args[1:])
  File "/usr/lib/python2.7/dist-packages/obnamlib/plugins/backup_plugin.py", line         115, in backup
    self.add_client(client_name)
  File "/usr/lib/python2.7/dist-packages/obnamlib/plugins/backup_plugin.py", line         140, in add_client
    if client_name not in self.repo.list_clients():
  File "/usr/lib/python2.7/dist-packages/obnamlib/repo.py", line 201, in list_clients
    listed = set(self.clientlist.list_clients())
  File "/usr/lib/python2.7/dist-packages/obnamlib/clientlist.py", line 78, in list_clients
    if self.init_forest() and self.forest.trees:
  File "/usr/lib/python2.7/dist-packages/obnamlib/repo_tree.py", line 63, in init_forest
    vfs=self.fs)
  File "/usr/lib/python2.7/dist-packages/larch/forest.py", line 167, in open_forest
    assert allow_writes is not None
AssertionError

Here is the log:

2012-06-06 12:59:50 INFO obnam version 0.24.1 starts
2012-06-06 12:59:51 DEBUG Current configuration:
[config]
output = 
log = obnam.log
log-level = debug
log-max = 0
log-keep = 10
log-mode = 0600
dump-memory-profile = simple
repository = /home/callegar/Backup/Obnam-backup
client-name = mandrago
node-size = 262144
chunk-size = 1048576
upload-queue-size = 1024
lru-size = 500
trace = obnamlib
idpath-depth = 3
idpath-bits = 12
idpath-skip = 13
quiet = False
pretend = False
compress-with = none
encrypt-with = 
keyid = 
weak-random = False
symmetric-key-bits = 
root = 
exclude = 
exclude-caches = False
one-file-system = False
checkpoint = 1073741824
chunkids-per-group = 1024
deduplicate = fatalist
sftp-delay = 0
to = 
generation = latest
keep = 
fsck-fix = False
verify-randomly = 0


2012-06-06 12:59:51 INFO Obnam 0.24.1 starts
2012-06-06 12:59:51 INFO Backup starts
2012-06-06 12:59:51 INFO Checkpoints every 1073741824 bytes
2012-06-06 12:59:51 DEBUG Exclude pattern: obnam.log
2012-06-06 12:59:51 DEBUG opening repository (create=True)
2012-06-06 12:59:51 DEBUG vfs_local.py:55:__init__: baseurl=/home/callegar    /Backup/Obnam-backup
2012-06-06 12:59:51 DEBUG vfs_local.py:56:__init__: create=True
2012-06-06 12:59:51 INFO VFS: __init__: baseurl=/home/callegar/Backup/Obnam-backup
2012-06-06 12:59:51 DEBUG vfs_local.py:64:reinit: baseurl=/home/callegar/Backup/Obnam-backup
2012-06-06 12:59:51 DEBUG vfs_local.py:65:reinit: create=True
2012-06-06 12:59:51 DEBUG clientlist.py:49:__init__: new ClientList
2012-06-06 12:59:51 DEBUG chunklist.py:37:__init__: new ChunkList
2012-06-06 12:59:51 DEBUG checksumtree.py:34:__init__: new ChecksumTree name=chunksums
2012-06-06 12:59:51 DEBUG vfs_local.py:192:open: pathname=/home/callegar/Backup/Obnam-backup/metadata/format
2012-06-06 12:59:51 DEBUG vfs_local.py:193:open: mode=rb
2012-06-06 12:59:51 DEBUG repo_tree.py:53:init_forest: initializing forest dirname=clientlist
2012-06-06 12:59:51 CRITICAL Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/cliapp/app.py", line 172, in _run
    self.process_args(args)
  File "/usr/lib/python2.7/dist-packages/obnamlib/app.py", line 127, in process_args
    cliapp.Application.process_args(self, args)
  File "/usr/lib/python2.7/dist-packages/cliapp/app.py", line 407, in process_args
    method(args[1:])
  File "/usr/lib/python2.7/dist-packages/obnamlib/plugins/backup_plugin.py", line 115, in backup
    self.add_client(client_name)
  File "/usr/lib/python2.7/dist-packages/obnamlib/plugins/backup_plugin.py", line 140, in add_client
    if client_name not in self.repo.list_clients():
  File "/usr/lib/python2.7/dist-packages/obnamlib/repo.py", line 201, in list_clients
    listed = set(self.clientlist.list_clients())
  File "/usr/lib/python2.7/dist-packages/obnamlib/clientlist.py", line 78, in list_clients
    if self.init_forest() and self.forest.trees:
  File "/usr/lib/python2.7/dist-packages/obnamlib/repo_tree.py", line 63, in init_forest
    vfs=self.fs)
  File "/usr/lib/python2.7/dist-packages/larch/forest.py", line 167, in open_forest
    assert allow_writes is not None
AssertionError

The Python stack trace is awful for the user, but it's there as a development aid. If a user sees it, something is badly wrong in Obnam.

Are you sure you have the right version of Obnam? How do you check that? Obnam is supposed to report the right version number in the log file or with "obnam --version", and if it isn't 1.0 then something's wrong.

Do you have the right version of the Larch Python library installed? That stack trace looks like there's an old version installed. Are you running on Debian? Ubuntu? Somewhere else? The Ubuntu PPA is in the process of being updated to fix a few problems with wrong versions. If you're on either Ubuntu or Debian, what is the output of "dpkg -l obnam python-larch"?

--liw


Currently Chris's ppa (the one you're referring to in "download" page) seems broken. On ppa's page, it reports build fail for obnam package, in particular. Using that ppa and installing obnam, installs ubuntu precise packaged obnam:

# LANGUAGE=C apt-cache policy obnam 
obnam:
  Installed: 0.24.1-1
  Candidate: 0.24.1-1
  Version table:
 *** 0.24.1-1 0
        500 http://it.archive.ubuntu.com/ubuntu/ precise/universe amd64 Packages
        100 /var/lib/dpkg/status

--negro


The PPA seems to be fixed now. Can you check whether it now works for you? Thanks. --liw

Haven't heard back, but assuming this is OK. done --liw