summaryrefslogtreecommitdiff
path: root/bin/spack
diff options
context:
space:
mode:
Diffstat (limited to 'bin/spack')
-rwxr-xr-xbin/spack69
1 files changed, 18 insertions, 51 deletions
diff --git a/bin/spack b/bin/spack
index 51dbce695b..171ee0f724 100755
--- a/bin/spack
+++ b/bin/spack
@@ -1,28 +1,10 @@
#!/usr/bin/env python
-##############################################################################
-# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
-# Produced at the Lawrence Livermore National Laboratory.
#
-# This file is part of Spack.
-# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
-# LLNL-CODE-647188
+# Copyright 2013-2018 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
-# For details, see https://github.com/spack/spack
-# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License (as
-# published by the Free Software Foundation) version 2.1, February 1999.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
-# conditions of the GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##############################################################################
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
from __future__ import print_function
import os
@@ -43,38 +25,23 @@ sys.path.insert(0, spack_lib_path)
# Add external libs
spack_external_libs = os.path.join(spack_lib_path, "external")
-sys.path.insert(0, spack_external_libs)
-# Handle vendoring of YAML specially, as it has two versions.
-if sys.version_info[0] == 2:
- spack_yaml_libs = os.path.join(spack_external_libs, "yaml/lib")
-else:
- spack_yaml_libs = os.path.join(spack_external_libs, "yaml/lib3")
-sys.path.insert(0, spack_yaml_libs)
+if sys.version_info[:2] == (2, 6):
+ sys.path.insert(0, os.path.join(spack_external_libs, 'py26'))
-# Quick and dirty check to clean orphaned .pyc files left over from
-# previous revisions. These files were present in earlier versions of
-# Spack, were removed, but shadow system modules that Spack still
-# imports. If we leave them, Spack will fail in mysterious ways.
-# TODO: more elegant solution for orphaned pyc files.
-orphaned_pyc_files = [
- os.path.join(spack_external_libs, 'functools.pyc'),
- os.path.join(spack_external_libs, 'ordereddict.pyc'),
- os.path.join(spack_lib_path, 'spack', 'platforms', 'cray_xc.pyc'),
- os.path.join(spack_lib_path, 'spack', 'cmd', 'package-list.pyc'),
- os.path.join(spack_lib_path, 'spack', 'cmd', 'test-install.pyc'),
- os.path.join(spack_lib_path, 'spack', 'cmd', 'url-parse.pyc'),
- os.path.join(spack_lib_path, 'spack', 'test', 'yaml.pyc')
-]
+sys.path.insert(0, spack_external_libs)
-for pyc_file in orphaned_pyc_files:
- if not os.path.exists(pyc_file):
- continue
- try:
- os.remove(pyc_file)
- except OSError as e:
- print("WARNING: Spack may fail mysteriously. "
- "Couldn't remove orphaned .pyc file: %s" % pyc_file)
+# Here we delete ruamel.yaml in case it has been already imported from site
+# (see #9206 for a broader description of the issue).
+#
+# Briefly: ruamel.yaml produces a .pth file when installed with pip that
+# makes the site installed package the preferred one, even tough sys.path
+# is modified to point to another version of ruamel.yaml.
+if 'ruamel.yaml' in sys.modules:
+ del sys.modules['ruamel.yaml']
+
+if 'ruamel' in sys.modules:
+ del sys.modules['ruamel']
# Once we've set up the system path, run the spack main method
import spack.main # noqa