From e721b04d3cfd85fb04a8a7bc573b251bd4145143 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Andr=C3=A9=20Vadla=20Ravn=C3=A5s?= Date: Tue, 20 Oct 2026 18:27:40 +0200 Subject: [PATCH] version: Honor FRIDA_VERSION in the environment Builds from release tarballs have no git metadata and reported 0.0.0. Let packaging pass the version it already knows. --- frida_version.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/frida_version.py b/frida_version.py index f4daf87..5d95116 100755 --- a/frida_version.py +++ b/frida_version.py @@ -34,6 +34,10 @@ def main(argv: List[str]): def detect(repo: Path) -> FridaVersion: + override = os.environ.get("FRIDA_VERSION") + if override is not None: + return parse(override) + version_name = "0.0.0" major = 0 minor = 0 @@ -71,7 +75,7 @@ def detect(repo: Path) -> FridaVersion: nano = distance - m = re.match(r"^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$", tag_part) + m = VERSION_PATTERN.match(tag_part) if m is None: raise VersionParseError( f"Tag does not match expected semver pattern: {tag_part!r}" @@ -98,9 +102,18 @@ def detect(repo: Path) -> FridaVersion: return FridaVersion(version_name, major, minor, micro, nano, commit) +def parse(name: str) -> FridaVersion: + m = VERSION_PATTERN.match(name) + if m is None: + raise VersionParseError(f"Version does not match expected semver pattern: {name!r}") + return FridaVersion(name, int(m.group(1)), int(m.group(2)), int(m.group(3)), 0, "") + + class VersionParseError(Exception): pass +VERSION_PATTERN = re.compile(r"^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$") + if __name__ == "__main__": main(sys.argv)