am I doing this right? X-Gentoo-Bug: 533554 X-Gentoo-Bug-URL: https://bugs.gentoo.org/533554 --- >From 6765f3ac1e77ce743d44f47c5dda79a573b8629c Mon Sep 17 00:00:00 2001 From: Wim Muskee <wimmus...@gmail.com> Date: Sat, 7 Jan 2017 12:02:41 +0100 Subject: [PATCH] repoman: add HOMEPAGE.missingurischeme check
--- repoman/pym/repoman/modules/scan/metadata/ebuild_metadata.py | 11 +++++++++-- repoman/pym/repoman/qa_data.py | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/repoman/pym/repoman/modules/scan/metadata/ebuild_metadata.py b/repoman/pym/repoman/modules/scan/metadata/ebuild_metadata.py index e991a30..3e2cea8 100644 --- a/repoman/pym/repoman/modules/scan/metadata/ebuild_metadata.py +++ b/repoman/pym/repoman/modules/scan/metadata/ebuild_metadata.py @@ -12,7 +12,7 @@ from repoman.qa_data import missingvars NON_ASCII_RE = re.compile(r'[^\x00-\x7f]') - +URISCHEME_RE = re.compile(r'^[a-z\-]+://') class EbuildMetadata(ScanBase): @@ -62,10 +62,17 @@ def virtual(self, **kwargs): self.qatracker.add_error(myqakey, ebuild.relative_path) return False + def homepage_urischeme(self, **kwargs): + ebuild = kwargs.get('ebuild').get() + if kwargs.get('catdir') != "virtual" and \ + URISCHEME_RE.match(ebuild.metadata.get("HOMEPAGE")) is None: + self.qatracker.add_error("HOMEPAGE.missingurischeme", ebuild.relative_path ) + return False + @property def runInPkgs(self): return (False, []) @property def runInEbuilds(self): - return (True, [self.invalidchar, self.missing, self.old_virtual, self.virtual]) + return (True, [self.invalidchar, self.missing, self.old_virtual, self.virtual, self.homepage_urischeme]) diff --git a/repoman/pym/repoman/qa_data.py b/repoman/pym/repoman/qa_data.py index c3f4207..29a95ab 100644 --- a/repoman/pym/repoman/qa_data.py +++ b/repoman/pym/repoman/qa_data.py @@ -115,6 +115,8 @@ "Ebuilds that have a missing or empty HOMEPAGE variable"), "HOMEPAGE.virtual": ( "Virtuals that have a non-empty HOMEPAGE variable"), + "HOMEPAGE.missingurischeme": ( + "HOMEPAGE is missing an URI scheme"), "PDEPEND.suspect": ( "PDEPEND contains a package that usually only belongs in DEPEND."), "LICENSE.syntax": (