52 lines
1.7 KiB
Diff
52 lines
1.7 KiB
Diff
From 9e22c0114d010a35128aa67b0dc38cc23f4d873f Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
|
|
<congdanhqx@gmail.com>
|
|
Date: Sun, 17 May 2020 21:53:46 +0700
|
|
Subject: [PATCH 1/5] config/openssl: correct version check
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Current code requires all conditions meet to pass the check, thus,
|
|
return false negative for:
|
|
- 1.0.2 vs 1.1.0
|
|
- 1.1.0 vs 2.0.0
|
|
|
|
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
|
|
---
|
|
config/openssl/__init__.py | 17 ++++++++++-------
|
|
1 file changed, 10 insertions(+), 7 deletions(-)
|
|
|
|
diff --git config/openssl/__init__.py config/openssl/__init__.py
|
|
index 421271cd..e0d3884a 100644
|
|
--- config/openssl/__init__.py
|
|
+++ config/openssl/__init__.py
|
|
@@ -6,15 +6,18 @@ def check_version(context, version):
|
|
context.Message("Checking for openssl version >= %s..." % version)
|
|
|
|
version = version.split('.')
|
|
- src = '#include <openssl/opensslv.h>\nint main() {\nreturn ('
|
|
- src += version[0] + '<= (OPENSSL_VERSION_NUMBER >> 28)'
|
|
+ src = '''
|
|
+ #include <openssl/opensslv.h>
|
|
+ int main() {
|
|
+ return (OPENSSL_VERSION_NUMBER >= '''
|
|
+ src += '(' + version[0] + ' >> 28)'
|
|
if 1 < len(version):
|
|
- src += ' && ' + version[1] + \
|
|
- '<= ((OPENSSL_VERSION_NUMBER >> 20) & 0xf)'
|
|
+ src += ' + (' + version[1] + ' >> 20)'
|
|
if 2 < len(version):
|
|
- src += ' && ' + version[2] + \
|
|
- '<= ((OPENSSL_VERSION_NUMBER >> 12) & 0xf)'
|
|
- src += ') ? 0 : 1;}\n'
|
|
+ src += ' + (' + version[2] + ' >> 12)'
|
|
+ src += ''') ? 0 : 1;
|
|
+ }
|
|
+ '''
|
|
|
|
ret = context.TryRun(src, '.cpp')[0]
|
|
|
|
--
|
|
2.26.2.672.g232c24e857
|
|
|