Signed-off-by: Paolo Bonzini <[email protected]>
---
scripts/get-wraps-from-cargo-registry.py | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/scripts/get-wraps-from-cargo-registry.py
b/scripts/get-wraps-from-cargo-registry.py
index 8b45c1551f5..8114f0731be 100755
--- a/scripts/get-wraps-from-cargo-registry.py
+++ b/scripts/get-wraps-from-cargo-registry.py
@@ -48,6 +48,14 @@ def find_installed_crate(self, namever: str) -> str | None:
matches = sorted(glob.glob(f"{path}.*"))
return os.path.basename(matches[0]) if matches else None
+ def rewrite_source(self, section: configparser.SectionProxy, orig_namever:
str, registry_namever: str) -> bool:
+ # the registry already holds the extracted sources, so Meson does not
+ # download anything: drop the source_* keys.
+ for key in list(section.keys()):
+ if key.startswith("source"):
+ del section[key]
+ return True
+
def compare_build_rs(self, orig_dir: str, source_namever: str) -> None:
"""Warn if the build.rs in the original directory differs from the
registry version."""
orig_build_rs = os.path.join(orig_dir, "build.rs")
@@ -82,7 +90,8 @@ def update_subproject(self, wrap_file: str, source_namever:
str) -> None:
if "wrap-file" not in config:
return
- orig_dir = config["wrap-file"]["directory"]
+ section = config["wrap-file"]
+ orig_dir = section["directory"]
if self.dry_run:
if orig_dir == source_namever:
@@ -92,10 +101,10 @@ def update_subproject(self, wrap_file: str,
source_namever: str) -> None:
self.changes += 1
return
- config["wrap-file"]["directory"] = source_namever
- for key in list(config["wrap-file"].keys()):
- if key.startswith("source"):
- del config["wrap-file"][key]
+ section["directory"] = source_namever
+ if self.rewrite_source(section, orig_dir, source_namever):
+ with open(wrap_file, "w") as f:
+ config.write(f)
with open(wrap_file, "w") as f:
config.write(f)
--
2.55.0