Package: duplicity Version: 0.7.07.1-1 Severity: normal Tags: patch Dear Maintainer,
trying to backup files with upoper case letters fails when using "ignorecase". Example: # duplicity --exclude "ignorecase:**/.cache/**" --no-encryption /var/log/ file:///tmp/test Last full backup date: none No signatures found, switching to full backup. Error listing directory /var/log/consolekit Error [Errno 2] No such file or directory: '/var/log/xorg.0.log' getting delta for Xorg.0.log Error [Errno 2] No such file or directory: '/var/log/xorg.0.log.old' getting delta for Xorg.0.log.old Error [Errno 2] No such file or directory: '/var/log/xorg.1.log' getting delta for Xorg.1.log Error [Errno 2] No such file or directory: '/var/log/xorg.1.log.old' getting delta for Xorg.1.log.old The attached patch fixes the issue for me. Hope this makes sense. Regards Malte
--- duplicity/globmatch.py.orig 2016-03-07 22:46:51.000000000 +0100
+++ duplicity/globmatch.py 2016-06-02 16:46:03.360517692 +0200
@@ -49,7 +49,7 @@
return list(map(glob_to_regex, prefixes))
-def path_matches_glob(path, glob_str, include):
+def path_matches_glob(path, glob_str, include, ignore_case = False):
"""Tests whether path matches glob, as per the Unix shell rules, taking as
arguments a path, a glob string and include (0 indicating that the glob
string is an exclude glob and 1 indicating that it is an include glob,
@@ -68,7 +68,11 @@
# string)
glob_str = glob_str[:-1]
- re_comp = lambda r: re.compile(r, re.S)
+ flags = 0
+ if ignore_case:
+ flags = re.IGNORECASE
+
+ re_comp = lambda r: re.compile(r, re.S | flags)
# matches what glob matches and any files in directory
glob_comp_re = re_comp("^%s($|/)" % glob_to_regex(glob_str))
--- duplicity/selection.py.orig 2016-03-07 22:46:51.000000000 +0100
+++ duplicity/selection.py 2016-06-02 16:46:36.641761484 +0200
@@ -545,9 +545,7 @@
raise FilePrefixError(glob_str)
def sel_func(path):
- if ignore_case:
- path.name = path.name.lower()
- return path_matches_glob(path, glob_str, include)
+ return path_matches_glob(path, glob_str, include, ignore_case)
return sel_func
signature.asc
Description: This is a digitally signed message part

