OpenBSD 4.8 duplicity port isn’t getting the job done
Trying to use duplicity from the current OpenBSD -stable (4.8) was a non-starter for me. The failure took the form of:
% duplicity -v1 /path/to/files file:///path/to/backups
Traceback (most recent call last):
File "/usr/local/bin/duplicity", line 1236, in
File "/usr/local/bin/duplicity", line 1229, in with_tempdir
File "/usr/local/bin/duplicity", line 1207, in main
File "/usr/local/bin/duplicity", line 416, in full_backup
File "/usr/local/bin/duplicity", line 294, in write_multivol
File "/usr/local/lib/python2.5/site-packages/duplicity/gpg.py", line 278, in GPGWriteFile
bytes_to_go = data_size - get_current_size()
File "/usr/local/lib/python2.5/site-packages/duplicity/gpg.py", line 270, in get_current_size
OSError: [Errno 2] No such file or directory: '/tmp/duplicity-leH-Rr-tempdir/mktemp-nQQHGO-2'
Which turned out to be a terribly confusing and unrelated error message. The error reported in the above stack trace was actually an error in the cleanup process. The actual problem had been masked by duplicity’s gpg fork a long time prior.
So what was the problem?
- pkg_add satisfied duplicity’s gnupg dependency by installing gnupg-2.0.15
- duplicity’s child was attempting to execute gpg, but only gpg2 had been installed by gnupg-2.0.15
That’s right. This problem was solved with
ln -s /usr/local/bin/gpg2 /usr/local/bin/gpg.
Well, at least I had the opportunity to get intimate with the python debugger…