diff options
-rw-r--r-- | meta/classes/sanity.bbclass | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass index 7cfc4be79b..f655d8bf61 100644 --- a/meta/classes/sanity.bbclass +++ b/meta/classes/sanity.bbclass | |||
@@ -754,8 +754,9 @@ def check_sanity_everybuild(status, d): | |||
754 | status.addresult("Error, you have a space in your COREBASE directory path. Please move the installation to a directory which doesn't include a space since autotools doesn't support this.") | 754 | status.addresult("Error, you have a space in your COREBASE directory path. Please move the installation to a directory which doesn't include a space since autotools doesn't support this.") |
755 | 755 | ||
756 | # Check the format of MIRRORS, PREMIRRORS and SSTATE_MIRRORS | 756 | # Check the format of MIRRORS, PREMIRRORS and SSTATE_MIRRORS |
757 | import re | ||
757 | mir_types = ['MIRRORS', 'PREMIRRORS', 'SSTATE_MIRRORS'] | 758 | mir_types = ['MIRRORS', 'PREMIRRORS', 'SSTATE_MIRRORS'] |
758 | protocols = ['http://', 'ftp://', 'file://', 'https://', 'https?$://', \ | 759 | protocols = ['http://', 'ftp://', 'file://', 'https://', \ |
759 | 'git://', 'gitsm://', 'hg://', 'osc://', 'p4://', 'svk://', 'svn://', \ | 760 | 'git://', 'gitsm://', 'hg://', 'osc://', 'p4://', 'svk://', 'svn://', \ |
760 | 'bzr://', 'cvs://'] | 761 | 'bzr://', 'cvs://'] |
761 | for mir_type in mir_types: | 762 | for mir_type in mir_types: |
@@ -767,12 +768,19 @@ def check_sanity_everybuild(status, d): | |||
767 | bb.warn('Invalid %s: %s, should be 2 members, but found %s.' \ | 768 | bb.warn('Invalid %s: %s, should be 2 members, but found %s.' \ |
768 | % (mir_type, mir.strip(), len(mir_list))) | 769 | % (mir_type, mir.strip(), len(mir_list))) |
769 | elif len(mir_list) == 2: | 770 | elif len(mir_list) == 2: |
771 | decoded = bb.fetch2.decodeurl(mir_list[0]) | ||
772 | try: | ||
773 | pattern_scheme = re.compile(decoded[0]) | ||
774 | except re.error as exc: | ||
775 | bb.warn('Invalid scheme regex (%s) in %s: %s' % (decoded[0], mir_type, mir.strip())) | ||
776 | continue | ||
777 | |||
770 | # Each member should start with protocols | 778 | # Each member should start with protocols |
771 | valid_protocol_0 = False | 779 | valid_protocol_0 = False |
772 | valid_protocol_1 = False | 780 | valid_protocol_1 = False |
773 | file_absolute = True | 781 | file_absolute = True |
774 | for protocol in protocols: | 782 | for protocol in protocols: |
775 | if not valid_protocol_0 and mir_list[0].startswith(protocol): | 783 | if not valid_protocol_0 and pattern_scheme.match(protocol[:-3]): |
776 | valid_protocol_0 = True | 784 | valid_protocol_0 = True |
777 | if not valid_protocol_1 and mir_list[1].startswith(protocol): | 785 | if not valid_protocol_1 and mir_list[1].startswith(protocol): |
778 | valid_protocol_1 = True | 786 | valid_protocol_1 = True |