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]

Reply via email to