diff --git a/Makefile b/Makefile index 3099d35158..5fc7137e5a 100644 --- a/Makefile +++ b/Makefile @@ -1258,7 +1258,7 @@ check-flake8: check-package: find $(TOPDIR) -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' -o -name '*.patch' \) \ - -exec ./utils/check-package --exclude=Sob {} + + -exec ./utils/check-package --exclude=Sob --exclude=HashSpaces {} + include docs/manual/manual.mk -include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk))) diff --git a/utils/checkpackagelib/lib_hash.py b/utils/checkpackagelib/lib_hash.py index 3e381119a5..698d24fd6b 100644 --- a/utils/checkpackagelib/lib_hash.py +++ b/utils/checkpackagelib/lib_hash.py @@ -53,3 +53,19 @@ class HashType(_CheckFunction): .format(self.filename, lineno, self.url_to_manual), text, "expected {} hex digits".format(self.len_of_hash[htype])] + + +class HashSpaces(_CheckFunction): + def check_line(self, lineno, text): + if _empty_line_or_comment(text): + return + + fields = text.split() + if len(fields) != 3: + # Handled by HashNumberOfFields + return + + if not re.match(re.escape("{} {} {}".format(*fields)), text): + return ["{}:{}: separation does not match expectation " + "({}#adding-packages-hash)" + .format(self.filename, lineno, self.url_to_manual), text]