File suse-filter-more-verbose.diff of Package rpmlint

From: Some One <nobody@opensuse.org>
Date: Thu, 9 Apr 2015 14:55:38 +0200
Subject: [PATCH] suse-filter-more-verbose.diff

===================================================================
---
 Config.py | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

Index: rpmlint-rpmlint-1.11/Config.py
===================================================================
--- rpmlint-rpmlint-1.11.orig/Config.py
+++ rpmlint-rpmlint-1.11/Config.py
@@ -10,6 +10,7 @@
 import locale
 import os.path
 import re
+import sys
 
 try:
     from __version__ import __version__
@@ -177,7 +178,17 @@ def isFiltered(s):
             if '(' in _filters_non_except[idx]:
                 _non_named_group_re.subn('(:?', _filters_non_except[idx])
             _filters_non_except_re = _filters_non_except_re + '|(?:' + _filters_non_except[idx] +')'
-        _filters_non_except_re = re.compile(_filters_non_except_re)
+        try:
+            _filters_non_except_re = re.compile(_filters_non_except_re)
+        except Exception:
+            # Try to figure out which filter caused the error
+            for f in _filters_non_except[1:]:
+                try:
+                    re.compile(f)
+                except Exception as e:
+                    # can't use Pkg.error/warn here, as that would recurse
+                    print >> sys.stderr, "(none): E: %s in filter '%s'" % (e.message, f)
+                    sys.exit(2)
 
     if _filters_re == None and len(_filters):
         _filters_re = '(?:' + _filters[0] + ')'
@@ -189,7 +200,17 @@ def isFiltered(s):
             if '(' in _filters[idx]:
                 _non_named_group_re.subn('(:?', _filters[idx])
             _filters_re = _filters_re + '|(?:' + _filters[idx] + ')'
-        _filters_re = re.compile(_filters_re)
+        try:
+            _filters_re = re.compile(_filters_re)
+        except Exception:
+            # Try to figure out which filter caused the error
+            for f in _filters[1:]:
+                try:
+                    re.compile(f)
+                except Exception as e:
+                    # can't use Pkg.error/warn here, as that would recurse
+                    print >> sys.stderr, "(none): E: %s in filter '%s'" % (e.message, f)
+                    sys.exit(2)
 
     if _filters_except_re == None and len(_filters_except):
         _filters_except_re = '(?:' + _filters_except[0] + ')'
openSUSE Build Service is sponsored by