From: Jacek Kryszyn Date: Mon, 10 Jun 2024 07:44:10 +0000 (+0200) Subject: scripts: sd_fusing: fixes in check_sfdisk() X-Git-Tag: accepted/tizen/unified/20240614.085106~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=accc1cf3dbea53015f0c0092e8ce11c1ea4b577c;p=platform%2Fkernel%2Fu-boot.git scripts: sd_fusing: fixes in check_sfdisk() sfdisk can have a version number consisting of {major}.{minor} or {major}.{minor}.{patch}. The new version of check_sfdisk() handles this. In case of a wrong version, a nicer error message which explicitly shows minimum required version is printed. Change-Id: I09614eabad8958ec4ac1bcc906ac09c2f5c6cbf2 Signed-off-by: Jacek Kryszyn --- diff --git a/scripts/tizen/sd_fusing.py b/scripts/tizen/sd_fusing.py index 39b83ba7e0..ef0e754896 100755 --- a/scripts/tizen/sd_fusing.py +++ b/scripts/tizen/sd_fusing.py @@ -732,17 +732,32 @@ def device_size(device): return size def check_sfdisk(): + min_major = 2 + min_minor = 26 + min_minor_del = 28 + proc = subprocess.run(['sfdisk', '-v'], stdout=subprocess.PIPE) version = proc.stdout.decode('utf-8').strip() logging.debug(f"Found {version}") - major, minor = [int(x) for x in re.findall('[0-9]+', version)][0:2] + version_tokens = [int(x) for x in re.findall('[0-9]+', version)] + + if len(version_tokens) == 3: + major, minor, patch = version_tokens[0:3] + version_str = f"{major}.{minor}.{patch}" + elif len(version_tokens) == 2: + major, minor = version_tokens[0:2] + version_str = f"{major}.{minor}" + else: + logging.warning("Did not read version of sfdisk correctly.") + return False,False + support_delete = False - if major < 2 or major == 2 and minor < 26: - logging.error(f"Your sfdisk {major}.{minor}.{patch} is too old.") + if major < min_major or major == min_major and minor < min_minor: + logging.error(f"Your sfdisk {version_str} is too old. Please switch to at least {min_major}.{min_minor}") return False,False - elif major == 2 and minor >= 28: + elif major == min_major and minor >= min_minor_del: support_delete = True return True, support_delete