76 lines
2.4 KiB
Python
76 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding:utf-8 -*-
|
|
# Copyright (c) 2020 Huawei Technologies Co.,Ltd.
|
|
#
|
|
# openGauss is licensed under Mulan PSL v2.
|
|
# You can use this software according to the terms
|
|
# and conditions of the Mulan PSL v2.
|
|
# You may obtain a copy of Mulan PSL v2 at:
|
|
#
|
|
# http://license.coscl.org.cn/MulanPSL2
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OF ANY KIND,
|
|
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
# See the Mulan PSL v2 for more details.
|
|
# ----------------------------------------------------------------------------
|
|
import sys
|
|
import sysconfig
|
|
import platform
|
|
import re
|
|
import os
|
|
import subprocess
|
|
|
|
|
|
def check_python_version():
|
|
python_version = sys.version_info[0:2]
|
|
dist_name = platform.platform()
|
|
if python_version < (3, 0):
|
|
raise Exception("[GAUSS-52200] : version of python"
|
|
" is not correct: %s." %
|
|
dist_name + " should use Python 3.*")
|
|
return True
|
|
|
|
def check_python_compiler_option():
|
|
config_args = sysconfig.get_config_var("CONFIG_ARGS")
|
|
if "--enable-shared" not in config_args:
|
|
raise Exception("[GAUSS-52200] : When compiling python, \
|
|
carry the -enable-shared parameters")
|
|
return True
|
|
|
|
def check_os_and_package_arch():
|
|
"""
|
|
check os and package arch
|
|
"""
|
|
clib_path = os.path.realpath(
|
|
os.path.join(os.path.realpath(__file__), "../../clib"))
|
|
package_cmd = "cd " + clib_path + "&& file libcrypto.so.1.1 2>/dev/null"
|
|
(status, output) = subprocess.getstatusoutput(package_cmd)
|
|
if status != 0:
|
|
raise Exception("%s command faile." % (package_cmd))
|
|
package_arch = ""
|
|
if ("x86-64" in output):
|
|
package_arch = "x86_64"
|
|
if ("aarch64" in output):
|
|
package_arch = "aarch64"
|
|
|
|
os_cmd = "uname -p"
|
|
(status, output) = subprocess.getstatusoutput(os_cmd)
|
|
if status != 0:
|
|
raise Exception("%s command failed." % (os_cmd))
|
|
os_arch = output
|
|
|
|
if (package_arch == os_arch):
|
|
return
|
|
raise Exception("System and software package architecture mismatch.\n" +
|
|
"Error: os architecture is %s, package architecture is %s" % (os_arch, package_arch))
|
|
|
|
if __name__ == '__main__':
|
|
try:
|
|
CHECK_PYTHON = check_python_version()
|
|
if CHECK_PYTHON:
|
|
check_python_compiler_option()
|
|
except Exception as e:
|
|
raise Exception(e)
|