From f8a4ff678ac27794571d7ced9e48b2445f4600ca Mon Sep 17 00:00:00 2001 From: Mats Wichmann Date: Sun, 17 Jul 2022 11:31:04 -0600 Subject: Fix sider-discovered problems Signed-off-by: Mats Wichmann --- CHANGES.txt | 4 ++++ SCons/Tool/__init__.py | 4 ++-- SCons/Utilities/sconsign.py | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index bea5838..aa154cc 100755 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -202,6 +202,10 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER but was not applied to other dialects, and e2e tests explicitly checked that FORTRANFLAGS did not propagate outside the FORTRAN dialect, so the conclusion is that behavior is intentional (issue #2257) + - SCons programmatic importing (tool modules and platform modules) + no longer uses the deprecated (since Py 3.10) importlib.load_module + routine, shifting to the preferred exec_module. Old Python 2 compatible + import fallback (using the imp module) in tool module loading is dropped. From Zhichang Yu: - Added MSVC_USE_SCRIPT_ARGS variable to pass arguments to MSVC_USE_SCRIPT. diff --git a/SCons/Tool/__init__.py b/SCons/Tool/__init__.py index b618b22..2a3ac2c 100644 --- a/SCons/Tool/__init__.py +++ b/SCons/Tool/__init__.py @@ -209,7 +209,7 @@ class Tool: try: import zipimport parent = sys.modules['SCons.Tool'].__path__[0] - tryname = os.path.join(parent, name + '.zip') + tryname = os.path.join(parent, self.name + '.zip') importer = zipimport.zipimporter(tryname) spec = importer.find_spec(full_name) module = importlib.util.module_from_spec(spec) @@ -217,7 +217,7 @@ class Tool: importer.exec_module(module) setattr(SCons.Tool, self.name, module) return module - except zipimporter.ZipImportError as e: + except zipimport.ZipImportError as e: m = "No tool named '%s': %s" % (self.name, e) raise SCons.Errors.SConsEnvironmentError(m) diff --git a/SCons/Utilities/sconsign.py b/SCons/Utilities/sconsign.py index 4cb598d..ae69196 100644 --- a/SCons/Utilities/sconsign.py +++ b/SCons/Utilities/sconsign.py @@ -28,6 +28,7 @@ """Utility script to dump information from SCons signature database.""" import getopt +import importlib import os import sys from dbm import whichdb -- cgit v0.12