diff options
-rw-r--r-- | bitbake/lib/bb/cooker.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index d645454c7c..12b526b40c 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -55,6 +55,11 @@ class NothingToBuild(Exception): | |||
55 | Exception raised when there is nothing to build | 55 | Exception raised when there is nothing to build |
56 | """ | 56 | """ |
57 | 57 | ||
58 | class CollectionError(bb.BBHandledException): | ||
59 | """ | ||
60 | Exception raised when layer configuration is incorrect | ||
61 | """ | ||
62 | |||
58 | class state: | 63 | class state: |
59 | initial, parsing, running, shutdown, stop = range(5) | 64 | initial, parsing, running, shutdown, stop = range(5) |
60 | 65 | ||
@@ -893,6 +898,7 @@ class BBCooker: | |||
893 | 898 | ||
894 | def handleCollections( self, collections ): | 899 | def handleCollections( self, collections ): |
895 | """Handle collections""" | 900 | """Handle collections""" |
901 | errors = False | ||
896 | self.status.bbfile_config_priorities = [] | 902 | self.status.bbfile_config_priorities = [] |
897 | if collections: | 903 | if collections: |
898 | collection_priorities = {} | 904 | collection_priorities = {} |
@@ -907,6 +913,7 @@ class BBCooker: | |||
907 | prio = int(priority) | 913 | prio = int(priority) |
908 | except ValueError: | 914 | except ValueError: |
909 | parselog.error("invalid value for BBFILE_PRIORITY_%s: \"%s\"", c, priority) | 915 | parselog.error("invalid value for BBFILE_PRIORITY_%s: \"%s\"", c, priority) |
916 | errors = True | ||
910 | if min_prio == 0 or prio < min_prio: | 917 | if min_prio == 0 or prio < min_prio: |
911 | min_prio = prio | 918 | min_prio = prio |
912 | collection_priorities[c] = prio | 919 | collection_priorities[c] = prio |
@@ -925,6 +932,7 @@ class BBCooker: | |||
925 | depver = int(depsplit[1]) | 932 | depver = int(depsplit[1]) |
926 | except ValueError: | 933 | except ValueError: |
927 | parselog.error("invalid version value in LAYERDEPENDS_%s: \"%s\"", c, dep) | 934 | parselog.error("invalid version value in LAYERDEPENDS_%s: \"%s\"", c, dep) |
935 | errors = True | ||
928 | continue | 936 | continue |
929 | else: | 937 | else: |
930 | depver = None | 938 | depver = None |
@@ -939,13 +947,17 @@ class BBCooker: | |||
939 | lver = int(layerver) | 947 | lver = int(layerver) |
940 | except ValueError: | 948 | except ValueError: |
941 | parselog.error("invalid value for LAYERVERSION_%s: \"%s\"", c, layerver) | 949 | parselog.error("invalid value for LAYERVERSION_%s: \"%s\"", c, layerver) |
950 | errors = True | ||
942 | continue | 951 | continue |
943 | if lver <> depver: | 952 | if lver <> depver: |
944 | parselog.error("Layer dependency %s of layer %s is at version %d, expected %d", dep, c, lver, depver) | 953 | parselog.error("Layer dependency %s of layer %s is at version %d, expected %d", dep, c, lver, depver) |
954 | errors = True | ||
945 | else: | 955 | else: |
946 | parselog.error("Layer dependency %s of layer %s has no version, expected %d", dep, c, depver) | 956 | parselog.error("Layer dependency %s of layer %s has no version, expected %d", dep, c, depver) |
957 | errors = True | ||
947 | else: | 958 | else: |
948 | parselog.error("Layer dependency %s of layer %s not found", dep, c) | 959 | parselog.error("Layer dependency %s of layer %s not found", dep, c) |
960 | errors = True | ||
949 | collection_depends[c] = depnamelist | 961 | collection_depends[c] = depnamelist |
950 | else: | 962 | else: |
951 | collection_depends[c] = [] | 963 | collection_depends[c] = [] |
@@ -969,13 +981,18 @@ class BBCooker: | |||
969 | regex = self.configuration.data.getVar("BBFILE_PATTERN_%s" % c, 1) | 981 | regex = self.configuration.data.getVar("BBFILE_PATTERN_%s" % c, 1) |
970 | if regex == None: | 982 | if regex == None: |
971 | parselog.error("BBFILE_PATTERN_%s not defined" % c) | 983 | parselog.error("BBFILE_PATTERN_%s not defined" % c) |
984 | errors = True | ||
972 | continue | 985 | continue |
973 | try: | 986 | try: |
974 | cre = re.compile(regex) | 987 | cre = re.compile(regex) |
975 | except re.error: | 988 | except re.error: |
976 | parselog.error("BBFILE_PATTERN_%s \"%s\" is not a valid regular expression", c, regex) | 989 | parselog.error("BBFILE_PATTERN_%s \"%s\" is not a valid regular expression", c, regex) |
990 | errors = True | ||
977 | continue | 991 | continue |
978 | self.status.bbfile_config_priorities.append((c, regex, cre, collection_priorities[c])) | 992 | self.status.bbfile_config_priorities.append((c, regex, cre, collection_priorities[c])) |
993 | if errors: | ||
994 | # We've already printed the actual error(s) | ||
995 | raise CollectionError("Errors during parsing layer configuration") | ||
979 | 996 | ||
980 | def buildSetVars(self): | 997 | def buildSetVars(self): |
981 | """ | 998 | """ |