Package: duplicity
Version: 0.6.18-2
Severity: normal
My firefox profile directory is a symlink to an encfs mount point:
[23+0]~$ ls -l .mozilla/firefox/
total 8
drwxr-xr-x 5 itz itz 4096 Jul 21 23:00 failsafe
lrwxrwxrwx 1 itz itz 29 Feb 18 2012 firefox-profile ->
../../Private/firefox-profile
-rw-r--r-- 1 itz itz 167 Jun 1 17:45 profiles.ini
[24+0]~$ mount | grep encfs
encfs on /home/itz/Private/firefox-profile type fuse.encfs
(rw,nosuid,nodev,relatime,user_id=1000,group_id=1000,default_permissions)
encfs is a fuse based filesystem, so that means everything under
firefox-profile is inaccessible to other users, including root.
When I give the --exclude-if-present option to duplicity, it tries to
locate that file underneath the symlink, even if
--exclude-other-filesystems is given as well. Leading to disaster:
[110+0]~# duplicity --encrypt-key C6FF61AD --use-agent
--exclude-other-filesystems --exclude-if-present .nobup --name
'matica!home!itz' /home/itz ssh://foolinux.lan/duplicity
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
No signatures found, switching to full backup.
Traceback (most recent call last):
File "/usr/bin/duplicity", line 1404, in <module>
with_tempdir(main)
File "/usr/bin/duplicity", line 1397, in with_tempdir
fn()
File "/usr/bin/duplicity", line 1372, in main
full_backup(col_stats)
File "/usr/bin/duplicity", line 502, in full_backup
globals.backend)
File "/usr/bin/duplicity", line 380, in write_multivol
globals.gpg_profile, globals.volsize)
File "/usr/lib/python2.7/dist-packages/duplicity/gpg.py", line 320, in
GPGWriteFile
data = block_iter.next(min(block_size, bytes_to_go)).data
File "/usr/lib/python2.7/dist-packages/duplicity/diffdir.py", line 507, in
next
result = self.process(self.input_iter.next(), size)
File "/usr/lib/python2.7/dist-packages/duplicity/diffdir.py", line 188, in
get_delta_iter
for new_path, sig_path in collated:
File "/usr/lib/python2.7/dist-packages/duplicity/diffdir.py", line 281, in
collate2iters
for relem1 in riter1:
File "/usr/lib/python2.7/dist-packages/duplicity/selection.py", line 175, in
Iterate
subpath, val = diryield_stack[-1].next()
File "/usr/lib/python2.7/dist-packages/duplicity/selection.py", line 155, in
diryield
s = self.Select(new_path)
File "/usr/lib/python2.7/dist-packages/duplicity/selection.py", line 209, in
Select
result = sf(path)
File "/usr/lib/python2.7/dist-packages/duplicity/selection.py", line 509, in
exclude_sel_func
if path.append(filename).exists():
File "/usr/lib/python2.7/dist-packages/duplicity/path.py", line 516, in append
return self.__class__(self.base, self.index + (ext,))
File "/usr/lib/python2.7/dist-packages/duplicity/path.py", line 496, in
__init__
self.setdata()
File "/usr/lib/python2.7/dist-packages/duplicity/path.py", line 501, in
setdata
self.stat = os.lstat(self.name)
OSError: [Errno 13] Permission denied:
'/home/itz/.mozilla/firefox/firefox-profile/.nobup'
duplicity should only check for the presence of --exclude-if-present
file under real directories, and not under symlinks to directories. It
should also skip this check if --exclude-other-filesystems is given as
well and the directory is a mountpoint.
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 3.4.9-custom (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages duplicity depends on:
ii libc6 2.13-33
ii librsync1 0.9.7-9
ii python 2.7.3~rc2-1
ii python-gnupginterface 0.3.2-9.1
ii python2.7 2.7.3~rc2-2.1
Versions of packages duplicity recommends:
ii python-paramiko 1.7.7.1-3
ii rsync 3.0.9-3
Versions of packages duplicity suggests:
ii lftp 4.3.6-1
ii ncftp 2:3.2.5-1.1
pn python-boto <none>
pn python-cloudfiles <none>
pn python-gdata <none>
ii python-pexpect 2.4-1
pn tahoe-lafs <none>
-- no debconf information
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]