diff options
author | Wim Muskee <wimmuskee@gmail.com> | 2017-01-07 12:02:41 +0100 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2017-01-13 09:25:39 -0800 |
commit | 55dedaa865334543e51693838700dcf5e72754d2 (patch) | |
tree | dc1b9e21ecbeba686a514d7244ec513f610c4a05 | |
parent | repoman: define long for python3 (diff) | |
download | portage-55dedaa865334543e51693838700dcf5e72754d2.tar.gz portage-55dedaa865334543e51693838700dcf5e72754d2.tar.bz2 portage-55dedaa865334543e51693838700dcf5e72754d2.zip |
repoman: add HOMEPAGE.missingurischeme check (bug 533554)
X-Gentoo-Bug: 533554
X-Gentoo-Bug-URL: https://bugs.gentoo.org/533554
-rw-r--r-- | repoman/man/repoman.1 | 3 | ||||
-rw-r--r-- | repoman/pym/repoman/modules/scan/metadata/ebuild_metadata.py | 17 | ||||
-rw-r--r-- | repoman/pym/repoman/qa_data.py | 2 |
3 files changed, 20 insertions, 2 deletions
diff --git a/repoman/man/repoman.1 b/repoman/man/repoman.1 index f99197bea..3b3aec27e 100644 --- a/repoman/man/repoman.1 +++ b/repoman/man/repoman.1 @@ -170,6 +170,9 @@ Ebuilds that have an unsupported EAPI version (you must upgrade portage) .B HOMEPAGE.missing Ebuilds that have a missing or empty HOMEPAGE variable .TP +.B HOMEPAGE.missingurischeme +HOMEPAGE is missing an URI scheme +.TP .B HOMEPAGE.virtual Virtuals that have a non-empty HOMEPAGE variable .TP diff --git a/repoman/pym/repoman/modules/scan/metadata/ebuild_metadata.py b/repoman/pym/repoman/modules/scan/metadata/ebuild_metadata.py index e991a30b3..cba8ec5e2 100644 --- a/repoman/pym/repoman/modules/scan/metadata/ebuild_metadata.py +++ b/repoman/pym/repoman/modules/scan/metadata/ebuild_metadata.py @@ -11,8 +11,10 @@ if sys.hexversion >= 0x3000000: from repoman.modules.scan.scanbase import ScanBase from repoman.qa_data import missingvars -NON_ASCII_RE = re.compile(r'[^\x00-\x7f]') +from portage.dep import use_reduce +NON_ASCII_RE = re.compile(r'[^\x00-\x7f]') +URISCHEME_RE = re.compile(r'^[a-z][0-9a-z\-\.\+]+://') class EbuildMetadata(ScanBase): @@ -62,10 +64,21 @@ class EbuildMetadata(ScanBase): 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": + for homepage in use_reduce(ebuild.metadata["HOMEPAGE"], + matchall=True,flat=True): + if URISCHEME_RE.match(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 c3f42072e..29a95abf6 100644 --- a/repoman/pym/repoman/qa_data.py +++ b/repoman/pym/repoman/qa_data.py @@ -115,6 +115,8 @@ qahelp = { "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": ( |