summaryrefslogtreecommitdiffstats
path: root/meta/classes/sanity.bbclass
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2014-08-22 01:31:27 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-08-23 23:01:57 +0100
commit0ae7b58060f1ee7914dd45d462e48d4b8a3751ad (patch)
tree2b9248123d652fc184969a3ca7cc941a62c493df /meta/classes/sanity.bbclass
parenteb34d6650b14332f2312ab15c8c02bfaadda222c (diff)
downloadpoky-0ae7b58060f1ee7914dd45d462e48d4b8a3751ad.tar.gz
sanity.bbclass: check the format of MIRRORS
Check the format of MIRRORS, PREMIRRORS and SSTATE_MIRRORS: * Each mirror shoudl contain two memebers. * The local "file://" url must use absolute path (file:///). * The protocol must in protocols list. (From OE-Core rev: c8c213bb25b137cf70ba8ce9a45e60065d926735) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/sanity.bbclass')
-rw-r--r--meta/classes/sanity.bbclass33
1 files changed, 33 insertions, 0 deletions
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index 3b40ebec0a..dbcc26b184 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -753,6 +753,39 @@ def check_sanity_everybuild(status, d):
753 if oeroot.find(' ') != -1: 753 if oeroot.find(' ') != -1:
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
757 mir_types = ['MIRRORS', 'PREMIRRORS', 'SSTATE_MIRRORS']
758 protocols = ['http://', 'ftp://', 'file://', 'https://', 'https?$://', \
759 'git://', 'gitsm://', 'hg://', 'osc://', 'p4://', 'svk://', 'svn://', \
760 'bzr://', 'cvs://']
761 for mir_type in mir_types:
762 mirros = (d.getVar(mir_type, True) or '').split('\\n')
763 for mir in mirros:
764 mir_list = mir.split()
765 # Should be two members.
766 if len(mir_list) not in [0, 2]:
767 bb.warn('Invalid %s: %s, should be 2 members, but found %s.' \
768 % (mir_type, mir.strip(), len(mir_list)))
769 elif len(mir_list) == 2:
770 # Each member should start with protocols
771 valid_protocol_0 = False
772 valid_protocol_1 = False
773 file_absolute = True
774 for protocol in protocols:
775 if not valid_protocol_0 and mir_list[0].startswith(protocol):
776 valid_protocol_0 = True
777 if not valid_protocol_1 and mir_list[1].startswith(protocol):
778 valid_protocol_1 = True
779 # The file:// must be an absolute path.
780 if protocol == 'file://' and not mir_list[1].startswith('file:///'):
781 file_absolute = False
782 if valid_protocol_0 and valid_protocol_1:
783 break
784 if not (valid_protocol_0 and valid_protocol_1):
785 bb.warn('Invalid protocol in %s: %s' % (mir_type, mir.strip()))
786 if not file_absolute:
787 bb.warn('Invalid file url in %s: %s, must be absolute path (file:///)' % (mir_type, mir.strip()))
788
756 # Check that TMPDIR hasn't changed location since the last time we were run 789 # Check that TMPDIR hasn't changed location since the last time we were run
757 tmpdir = d.getVar('TMPDIR', True) 790 tmpdir = d.getVar('TMPDIR', True)
758 checkfile = os.path.join(tmpdir, "saved_tmpdir") 791 checkfile = os.path.join(tmpdir, "saved_tmpdir")