ports/databases/mongodb/36/patches/python3-SConstruct

220 lines
9.3 KiB
Text

Index: SConstruct
--- SConstruct.orig
+++ SConstruct
@@ -28,8 +28,8 @@ import mongo.platform as mongo_platform
import mongo.toolchain as mongo_toolchain
import mongo.generators as mongo_generators
-EnsurePythonVersion(2, 7)
-EnsureSConsVersion(2, 5)
+EnsurePythonVersion(3, 5)
+EnsureSConsVersion(3, 0, 4)
from buildscripts import utils
from buildscripts import moduleconfig
@@ -389,7 +389,7 @@ win_version_min_choices = {
}
add_option('win-version-min',
- choices=win_version_min_choices.keys(),
+ choices=list(win_version_min_choices.keys()),
default=None,
help='minimum Windows version to support',
type='choice',
@@ -482,7 +482,7 @@ try:
except IOError as e:
# If the file error wasn't because the file is missing, error out
if e.errno != errno.ENOENT:
- print("Error opening version.json: {0}".format(e.strerror))
+ print(("Error opening version.json: {0}".format(e.strerror)))
Exit(1)
version_data = {
@@ -491,14 +491,14 @@ except IOError as e:
}
except ValueError as e:
- print("Error decoding version.json: {0}".format(e))
+ print(("Error decoding version.json: {0}".format(e)))
Exit(1)
# Setup the command-line variables
def variable_shlex_converter(val):
# If the argument is something other than a string, propogate
# it literally.
- if not isinstance(val, basestring):
+ if not isinstance(val, str):
return val
parse_mode = get_option('variable-parse-mode')
if parse_mode == 'auto':
@@ -563,7 +563,7 @@ def variable_distsrc_converter(val):
variables_files = variable_shlex_converter(get_option('variables-files'))
for file in variables_files:
- print("Using variable customization file %s" % file)
+ print(("Using variable customization file %s" % file))
env_vars = Variables(
files=variables_files,
@@ -572,7 +572,7 @@ env_vars = Variables(
sconsflags = os.environ.get('SCONSFLAGS', None)
if sconsflags:
- print("Using SCONSFLAGS environment variable arguments: %s" % sconsflags)
+ print(("Using SCONSFLAGS environment variable arguments: %s" % sconsflags))
env_vars.Add('ABIDW',
help="Configures the path to the 'abidw' (a libabigail) utility")
@@ -691,7 +691,7 @@ env_vars.Add('MONGO_DISTNAME',
def validate_mongo_version(key, val, env):
regex = r'^(\d+)\.(\d+)\.(\d+)-?((?:(rc)(\d+))?.*)?'
if not re.match(regex, val):
- print("Invalid MONGO_VERSION '{}', or could not derive from version.json or git metadata. Please add a conforming MONGO_VERSION=x.y.z[-extra] as an argument to SCons".format(val))
+ print(("Invalid MONGO_VERSION '{}', or could not derive from version.json or git metadata. Please add a conforming MONGO_VERSION=x.y.z[-extra] as an argument to SCons".format(val)))
Exit(1)
env_vars.Add('MONGO_VERSION',
@@ -822,12 +822,12 @@ if installDir[0] not in ['$', '#']:
Exit(1)
sconsDataDir = Dir(buildDir).Dir('scons')
-SConsignFile(str(sconsDataDir.File('sconsign')))
+SConsignFile(str(sconsDataDir.File('sconsign.py3')))
def printLocalInfo():
import sys, SCons
- print( "scons version: " + SCons.__version__ )
- print( "python version: " + " ".join( [ `i` for i in sys.version_info ] ) )
+ print(( "scons version: " + SCons.__version__ ))
+ print(( "python version: " + " ".join( [ repr(i) for i in sys.version_info ] ) ))
printLocalInfo()
@@ -905,12 +905,12 @@ env.AddMethod(mongo_platform.env_os_is_wrapper, 'Targe
env.AddMethod(mongo_platform.env_get_os_name_wrapper, 'GetTargetOSName')
def fatal_error(env, msg, *args):
- print(msg.format(*args))
+ print((msg.format(*args)))
Exit(1)
def conf_error(env, msg, *args):
- print(msg.format(*args))
- print("See {0} for details".format(env.File('$CONFIGURELOG').abspath))
+ print((msg.format(*args)))
+ print(("See {0} for details".format(env.File('$CONFIGURELOG').abspath)))
Exit(1)
env.AddMethod(fatal_error, 'FatalError')
@@ -929,12 +929,12 @@ else:
env.AddMethod(lambda env: env['VERBOSE'], 'Verbose')
if has_option('variables-help'):
- print(env_vars.GenerateHelpText(env))
+ print((env_vars.GenerateHelpText(env)))
Exit(0)
unknown_vars = env_vars.UnknownVariables()
if unknown_vars:
- env.FatalError("Unknown variables specified: {0}", ", ".join(unknown_vars.keys()))
+ env.FatalError("Unknown variables specified: {0}", ", ".join(list(unknown_vars.keys())))
def set_config_header_define(env, varname, varval = 1):
env['CONFIG_HEADER_DEFINES'][varname] = varval
@@ -1019,7 +1019,7 @@ def CheckForProcessor(context, which_arch):
context.Result(ret)
return ret;
- for k in processor_macros.keys():
+ for k in list(processor_macros.keys()):
ret = run_compile_check(k)
if ret:
context.Result('Detected a %s processor' % k)
@@ -1137,7 +1137,7 @@ else:
env['TARGET_ARCH'] = detected_processor
if env['TARGET_OS'] not in os_macros:
- print("No special config for [{0}] which probably means it won't work".format(env['TARGET_OS']))
+ print(("No special config for [{0}] which probably means it won't work".format(env['TARGET_OS'])))
elif not detectConf.CheckForOS(env['TARGET_OS']):
env.ConfError("TARGET_OS ({0}) is not supported by compiler", env['TARGET_OS'])
@@ -1923,7 +1923,7 @@ def doConfigure(myenv):
# form -Wno-xxx (but not -Wno-error=xxx), we also add -Wxxx to the flags. GCC does
# warn on unknown -Wxxx style flags, so this lets us probe for availablity of
# -Wno-xxx.
- for kw in test_mutation.keys():
+ for kw in list(test_mutation.keys()):
test_flags = test_mutation[kw]
for test_flag in test_flags:
if test_flag.startswith("-Wno-") and not test_flag.startswith("-Wno-error="):
@@ -1937,7 +1937,7 @@ def doConfigure(myenv):
# to make them real errors.
cloned.Append(CCFLAGS=['-Werror'])
conf = Configure(cloned, help=False, custom_tests = {
- 'CheckFlag' : lambda(ctx) : CheckFlagTest(ctx, tool, extension, flag)
+ 'CheckFlag' : lambda ctx : CheckFlagTest(ctx, tool, extension, flag)
})
available = conf.CheckFlag()
conf.Finish()
@@ -2409,7 +2409,7 @@ def doConfigure(myenv):
"undefined" : myenv.File("#etc/ubsan.blacklist"),
}
- blackfiles = set([v for (k, v) in blackfiles_map.iteritems() if k in sanitizer_list])
+ blackfiles = {v for (k, v) in blackfiles_map.items() if k in sanitizer_list}
blacklist_options=["-fsanitize-blacklist=%s" % blackfile
for blackfile in blackfiles
if os.stat(blackfile.path).st_size != 0]
@@ -2421,7 +2421,7 @@ def doConfigure(myenv):
llvm_symbolizer = get_option('llvm-symbolizer')
if os.path.isabs(llvm_symbolizer):
if not myenv.File(llvm_symbolizer).exists():
- print("WARNING: Specified symbolizer '%s' not found" % llvm_symbolizer)
+ print(("WARNING: Specified symbolizer '%s' not found" % llvm_symbolizer))
llvm_symbolizer = None
else:
llvm_symbolizer = myenv.WhereIs(llvm_symbolizer)
@@ -2711,7 +2711,7 @@ def doConfigure(myenv):
files = ['ssleay32.dll', 'libeay32.dll']
for extra_file in files:
if not addOpenSslLibraryToDistArchive(extra_file):
- print("WARNING: Cannot find SSL library '%s'" % extra_file)
+ print(("WARNING: Cannot find SSL library '%s'" % extra_file))
# Used to import system certificate keychains
if conf.env.TargetOSIs('darwin'):
@@ -2739,7 +2739,7 @@ def doConfigure(myenv):
# TODO: If we could programmatically extract the paths from the info output
# we could give a better message here, but brew info's machine readable output
# doesn't seem to include the whole 'caveats' section.
- message = subprocess.check_output([brew, "info", "openssl"])
+ message = subprocess.check_output([brew, "info", "openssl"]).decode('utf-8')
advice = textwrap.dedent(
"""\
NOTE: HomeBrew installed to {0} appears to have OpenSSL installed.
@@ -3115,7 +3115,7 @@ def doConfigure(myenv):
outputIndex = next((idx for idx in [0,1] if conf.CheckAltivecVbpermqOutput(idx)), None)
if outputIndex is not None:
- conf.env.SetConfigHeaderDefine("MONGO_CONFIG_ALTIVEC_VEC_VBPERMQ_OUTPUT_INDEX", outputIndex)
+ conf.env.SetConfigHeaderDefine("MONGO_CONFIG_ALTIVEC_VEC_VBPERMQ_OUTPUT_INDEX", outputIndex)
else:
myenv.ConfError("Running on ppc64le, but can't find a correct vec_vbpermq output index. Compiler or platform not supported")
@@ -3177,9 +3177,12 @@ def doLint( env , target , source ):
import buildscripts.pylinters
buildscripts.pylinters.lint_all(None, {}, [])
- import buildscripts.lint
- if not buildscripts.lint.run_lint( [ "src/mongo/" ] ):
- raise Exception( "lint errors" )
+ env.Command(
+ target="#run_lint",
+ source=["buildscripts/lint.py", "src/mongo"],
+ action="$PYTHON $SOURCES[0] $SOURCES[1]",
+ )
+
env.Alias( "lint" , [] , [ doLint ] )
env.AlwaysBuild( "lint" )