From 0026d60b607f4e6ab67026dfe1126cfcc6afe1c4 Mon Sep 17 00:00:00 2001
From: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Date: Tue, 3 Aug 2021 16:53:40 +0200
Subject: Test bootstrapping in a workflow (#25138)

Add a workflow to test bootstrapping clingo on
different platforms so that we can detect changes
that break it.

Compute `site_packages_dir` in `bootstrap.py` as it was
before #24095, until we figure a better way to override
that attribute.
---
 lib/spack/spack/bootstrap.py | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

(limited to 'lib')

diff --git a/lib/spack/spack/bootstrap.py b/lib/spack/spack/bootstrap.py
index 92bbb2fa42..09088c3eb6 100644
--- a/lib/spack/spack/bootstrap.py
+++ b/lib/spack/spack/bootstrap.py
@@ -92,15 +92,19 @@ def make_module_available(module, spec=None, install=False):
     installed_specs = spack.store.db.query(spec, installed=True)
 
     for ispec in installed_specs:
-        # TODO: make sure run-environment is appropriate
-        module_path = ispec['python'].package.get_python_lib(prefix=ispec.prefix)
+        lib_spd = ispec['python'].package.default_site_packages_dir
+        lib64_spd = lib_spd.replace('lib/', 'lib64/')
+        module_paths = [
+            os.path.join(ispec.prefix, lib_spd),
+            os.path.join(ispec.prefix, lib64_spd)
+        ]
         try:
-            sys.path.append(module_path)
+            sys.path.extend(module_paths)
             __import__(module)
             return
         except ImportError:
             tty.warn("Spec %s did not provide module %s" % (ispec, module))
-            sys.path = sys.path[:-1]
+            sys.path = sys.path[:-2]
 
     def _raise_error(module_name, module_spec):
         error_msg = 'cannot import module "{0}"'.format(module_name)
@@ -117,13 +121,18 @@ def make_module_available(module, spec=None, install=False):
         spec.concretize()
     spec.package.do_install()
 
-    module_path = spec['python'].package.get_python_lib(prefix=spec.prefix)
+    lib_spd = spec['python'].package.default_site_packages_dir
+    lib64_spd = lib_spd.replace('lib/', 'lib64/')
+    module_paths = [
+        os.path.join(spec.prefix, lib_spd),
+        os.path.join(spec.prefix, lib64_spd)
+    ]
     try:
-        sys.path.append(module_path)
+        sys.path.extend(module_paths)
         __import__(module)
         return
     except ImportError:
-        sys.path = sys.path[:-1]
+        sys.path = sys.path[:-2]
         _raise_error(module, spec)
 
 
-- 
cgit v1.2.3-70-g09d2