File suse-pkg-config-check.diff of Package rpmlint.17311

--- rpmlint-rpmlint-1.10.orig/TagsCheck.py
+++ rpmlint-rpmlint-1.10/TagsCheck.py
@@ -416,6 +416,7 @@ lib_devel_number_regex = re.compile(r'^l
 invalid_url_regex = re.compile(Config.getOption('InvalidURL'), re.IGNORECASE)
 lib_package_regex = re.compile(r'(?:^(?:compat-)?lib.*?(\.so.*)?|libs?[\d-]*)$', re.IGNORECASE)
 leading_space_regex = re.compile(r'^\s+')
+pkg_config_regex = re.compile(r'^/usr/(?:lib\d*|share)/pkgconfig/')
 license_regex = re.compile(r'\(([^)]+)\)|\s(?:and|or|AND|OR)\s')
 invalid_version_regex = re.compile(r'([0-9](?:rc|alpha|beta|pre).*)', re.IGNORECASE)
 # () are here for grouping purpose in the regexp
@@ -635,10 +636,12 @@ class TagsCheck(AbstractCheck.AbstractCh
                 base = is_devel.group(1)
                 dep = None
                 has_so = False
+                has_pc = False
                 for fname in pkg.files():
                     if fname.endswith('.so'):
                         has_so = True
-                        break
+                    if pkg_config_regex.match(fname) and fname.endswith('.pc'):
+                        has_pc = True
                 if has_so:
                     base_or_libs = base + '/' + base + '-libs/lib' + base
                     # try to match *%_isa as well (e.g. "(x86-64)", "(x86-32)")
@@ -675,6 +678,15 @@ class TagsCheck(AbstractCheck.AbstractCh
                         if prov not in (x[0] for x in pkg.provides()):
                             printWarning(pkg, 'no-provides', prov)
 
+                if has_pc:
+                    found_pkg_config_dep = False
+                    for p in (x[0] for x in pkg.provides()):
+                        if (p.startswith("pkgconfig(")):
+                            found_pkg_config_dep = True
+                            break
+                    if not found_pkg_config_dep:
+                        printWarning(pkg, 'no-pkg-config-provides')
+
         # List of words to ignore in spell check
         ignored_words = set()
         for pf in pkg.files():
@@ -1108,6 +1120,11 @@ once.''',
 'no-url-tag',
 '''The URL tag is missing. Please add a http or ftp link to the project location.''',
 
+'no-pkg-config-provides',
+'''The package installs a .pc file but does not provide pkgconfig(..) provides.
+The most likely reason for that is that it was built without BuildRequires: pkg-config.
+Please double check your build dependencies.''',
+
 'name-repeated-in-summary',
 '''The name of the package is repeated in its summary.  This is often redundant
 information and looks silly in various programs' output.  Make the summary
openSUSE Build Service is sponsored by