diff --git a/HaikuPorter/Policy.py b/HaikuPorter/Policy.py index 81fcf81..2f246e4 100644 --- a/HaikuPorter/Policy.py +++ b/HaikuPorter/Policy.py @@ -155,6 +155,21 @@ def _checkProvides(self): self._violation('no matching provides "%s" for "%s"' % (name, 'develop/lib/' + entry)) + # pkgconfig entries in develop/lib[]/pkgconfig must be declared as + # pc:*[_] + developLibPkgconfigDir = developLibDir + '/pkgconfig' + if os.path.exists(developLibPkgconfigDir): + for entry in os.listdir(developLibPkgconfigDir): + suffixIndex = entry.find('.pc') + if suffixIndex < 0: + continue + + name = self._normalizeResolvableName( + 'pc:' + entry[:suffixIndex] + self.secondaryArchSuffix) + if name.lower() not in self.provides: + self._violation('no matching provides "%s" for "%s"' + % (name, 'develop/lib' + self.secondaryArchSuffix + '/pkgconfig/' + entry)) + def _normalizeResolvableName(self, name): # make name a valid resolvable name by replacing '-' with '_' return name.replace('-', '_').lower()