From 99bfeba2aed766eee38997a64c86ac7725168186 Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Fri, 26 Nov 2021 01:56:04 +0000 Subject: [PATCH] Bug 1743033 - Avoid creating mach virtualenv when running confgure standalone. r=mhentges Differential Revision: https://phabricator.services.mozilla.com/D132190 --- configure.py | 22 ++++++++++++++++------ moz.configure | 1 + python/mach/mach/site.py | 4 ++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/configure.py b/configure.py index c0cea063fe35b..1ddf6cd1bb591 100644 --- a/configure.py +++ b/configure.py @@ -19,12 +19,17 @@ sys.path.insert(0, os.path.join(base_dir, "python", "mach")) sys.path.insert(0, os.path.join(base_dir, "python", "mozboot")) sys.path.insert(0, os.path.join(base_dir, "python", "mozbuild")) -sys.path.insert(0, os.path.join(base_dir, "testing", "mozbase", "mozfile")) sys.path.insert(0, os.path.join(base_dir, "third_party", "python", "packaging")) sys.path.insert(0, os.path.join(base_dir, "third_party", "python", "pyparsing")) sys.path.insert(0, os.path.join(base_dir, "third_party", "python", "six")) -from mach.site import CommandSiteManager, MachSiteManager, MozSiteMetadata -from mozboot.util import get_state_dir +from mach.site import ( + CommandSiteManager, + ExternalPythonSite, + MachSiteManager, + MozSiteMetadata, + SitePackagesSource, +) +from mach.requirements import MachEnvRequirements from mozbuild.configure import ( ConfigureSandbox, TRACE, @@ -251,13 +256,18 @@ def _activate_build_virtualenv(): topobjdir = os.path.realpath(".") topsrcdir = os.path.realpath(os.path.dirname(__file__)) - state_dir = get_state_dir() - mach_site = MachSiteManager.from_environment(topsrcdir, state_dir) + mach_site = MachSiteManager( + topsrcdir, + None, + MachEnvRequirements(), + ExternalPythonSite(sys.executable), + SitePackagesSource.NONE, + ) mach_site.activate() build_site = CommandSiteManager.from_environment( topsrcdir, - state_dir, + None, "build", os.path.join(topobjdir, "_virtualenvs"), ) diff --git a/moz.configure b/moz.configure index 46795bd4fe4d5..3d742a8904435 100755 --- a/moz.configure +++ b/moz.configure @@ -341,6 +341,7 @@ def bootstrap_path(path, **kwargs): "Updating" if exists else "Installing", os.path.join(toolchains_base_dir, path_parts[0]), ) + os.makedirs(toolchains_base_dir, exist_ok=True) subprocess.run( [ shell, diff --git a/python/mach/mach/site.py b/python/mach/mach/site.py index 727f3d8216bab..7550c498483fc 100644 --- a/python/mach/mach/site.py +++ b/python/mach/mach/site.py @@ -208,14 +208,14 @@ def __init__( self._external_python = external_python self._site_packages_source = site_packages_source self._requirements = requirements - self._virtualenv_root = os.path.join(state_dir, "_virtualenvs", "mach") + self._virtualenv_root = _mach_virtualenv_root(state_dir) if state_dir else None self._metadata = MozSiteMetadata( sys.hexversion, "mach", site_packages_source, site_packages_source, external_python, - _mach_virtualenv_root(state_dir), + self._virtualenv_root, ) @classmethod