From 31c401bdf591249d36f3c71efd0c60443649dceb Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Sat, 16 Dec 2023 13:56:52 +0100 Subject: [PATCH] Mix OpenSSL patch and script version (#60) SwiftPM only allows major.minor.patch version syntax, but we need to avoid collisions. E.g. OpenSSL 3.2.5 and script version 34 (0-99) normalized_patch = (patch + 1) * 100 + script -> 3.2.634 The +1 is necessary because e.g. 3.2.0 with script 34 would translate to 3.2.34, which collides with OpenSSL versioning. In this scheme, the repo tag will be of the form: - .1xx (for 3.2.0) - .2xx (for 3.2.1) - ... which is reversible to infer the OpenSSL patch. E.g. 3.2.434 - Patch is 434 - OpenSSL patch is 434 / 100 - 1 = 3 - Script version is 434 % 100 = 34 (precondition is 0-99) So 3.2.434 is OpenSSL 3.2.3 with script version 34 --- scripts/get-openssl-version.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/get-openssl-version.sh b/scripts/get-openssl-version.sh index e396406..27c5306 100755 --- a/scripts/get-openssl-version.sh +++ b/scripts/get-openssl-version.sh @@ -12,5 +12,8 @@ function get_openssl_version() { echo $normalized_version return fi - echo "${std_version}${script_version}" + local minor_version="${std_version%.*}" + local patch_version="${std_version##*.}" + local normalized_patch_version=$((($patch_version + 1) * 100 + $script_version)) + echo "${minor_version}.${normalized_patch_version}" }