From: Michael Tremer Date: Sun, 18 Dec 2011 23:05:43 +0000 (+0100) Subject: Fix filtering for regular expressions in dependencies. X-Git-Tag: 0.9.20~32^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=580c6336f3240a11d6d20bbdf6d7a26a183a6710;p=pakfire.git Fix filtering for regular expressions in dependencies. --- diff --git a/python/pakfire/packages/make.py b/python/pakfire/packages/make.py index 9380e3ce5..6d20a6c5c 100644 --- a/python/pakfire/packages/make.py +++ b/python/pakfire/packages/make.py @@ -420,18 +420,37 @@ class MakefilePackage(MakefileBase): if not filters: return deps - filters = filters.splitlines() + _filters = [] filtered_deps = [] + # Compile all filters. + for filter in filters.splitlines(): + # Convert to raw string to make escaping characters + # easy to the user. + try: + _filter = re.compile("%r" % filter) + except re.error: + log.warning(_("Regular experession is invalid and has been skipped: %s") % filter) + continue + + _filters.append(_filter) + + filters = _filters + for dep in deps: filtered = False for filter in filters: + # Search for a match anywhere in the line. m = re.search(filter, dep) if not m: continue + # Let the user know what has been done. + log.info(_("Filter %s filtered %s.") % (filter, dep)) + # Yes, we found a match. filtered = True + break if not filtered: filtered_deps.append(dep)