modules: check if all dependencies can be satisfied
Verifies if all dependencies are correctly listed in the modinfo.c too and stop the builds if they're not. Signed-off-by: Jose R. Ziviani <jziviani@suse.de> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Jose R. Ziviani <jziviani@suse.de> Message-Id: <20210624103836.2382472-5-kraxel@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
5ebbfecc3e
commit
af19eecf84
@ -59,6 +59,7 @@ def generate(name, lines):
|
|||||||
print_array("deps", deps)
|
print_array("deps", deps)
|
||||||
print_array("opts", opts)
|
print_array("opts", opts)
|
||||||
print("},{");
|
print("},{");
|
||||||
|
return deps
|
||||||
|
|
||||||
def print_pre():
|
def print_pre():
|
||||||
print("/* generated by scripts/modinfo-generate.py */")
|
print("/* generated by scripts/modinfo-generate.py */")
|
||||||
@ -71,14 +72,26 @@ def print_post():
|
|||||||
print("}};")
|
print("}};")
|
||||||
|
|
||||||
def main(args):
|
def main(args):
|
||||||
|
deps = {}
|
||||||
print_pre()
|
print_pre()
|
||||||
for modinfo in args:
|
for modinfo in args:
|
||||||
with open(modinfo) as f:
|
with open(modinfo) as f:
|
||||||
lines = f.readlines()
|
lines = f.readlines()
|
||||||
print(" /* %s */" % modinfo)
|
print(" /* %s */" % modinfo)
|
||||||
(basename, ext) = os.path.splitext(modinfo)
|
(basename, ext) = os.path.splitext(modinfo)
|
||||||
generate(basename, lines)
|
deps[basename] = generate(basename, lines)
|
||||||
print_post()
|
print_post()
|
||||||
|
|
||||||
|
flattened_deps = {flat.strip('" ') for dep in deps.values() for flat in dep}
|
||||||
|
error = False
|
||||||
|
for dep in flattened_deps:
|
||||||
|
if dep not in deps.keys():
|
||||||
|
print("Dependency {} cannot be satisfied".format(dep),
|
||||||
|
file=sys.stderr)
|
||||||
|
error = True
|
||||||
|
|
||||||
|
if error:
|
||||||
|
exit(1)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main(sys.argv[1:])
|
main(sys.argv[1:])
|
||||||
|
Loading…
Reference in New Issue
Block a user