use os.path.join instead of join_path in core
- Spack core has long used llnl.util.filesystem.join_path, but os.path.join is pretty much the same thing, and is more efficient. - Use os.path.join in the core Spack code from now on.
This commit is contained in:
parent
f202198777
commit
e9a3e3bfbb
@ -80,7 +80,6 @@
|
|||||||
import platform as py_platform
|
import platform as py_platform
|
||||||
|
|
||||||
from llnl.util.lang import memoized, list_modules, key_ordering
|
from llnl.util.lang import memoized, list_modules, key_ordering
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
|
|
||||||
import spack.paths
|
import spack.paths
|
||||||
@ -271,7 +270,7 @@ def find_compilers(self, *paths):
|
|||||||
filtered_path.append(p)
|
filtered_path.append(p)
|
||||||
|
|
||||||
# Check for a bin directory, add it if it exists
|
# Check for a bin directory, add it if it exists
|
||||||
bin = join_path(p, 'bin')
|
bin = os.path.join(p, 'bin')
|
||||||
if os.path.isdir(bin):
|
if os.path.isdir(bin):
|
||||||
filtered_path.append(os.path.realpath(bin))
|
filtered_path.append(os.path.realpath(bin))
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
from llnl.util.filesystem import mkdirp, join_path, install_tree
|
from llnl.util.filesystem import mkdirp, install_tree
|
||||||
|
|
||||||
import spack
|
import spack
|
||||||
import spack.cmd
|
import spack.cmd
|
||||||
@ -264,9 +264,9 @@ def build_tarball(spec, outdir, force=False, rel=False, unsigned=False,
|
|||||||
"""
|
"""
|
||||||
# set up some paths
|
# set up some paths
|
||||||
tarfile_name = tarball_name(spec, '.tar.gz')
|
tarfile_name = tarball_name(spec, '.tar.gz')
|
||||||
tarfile_dir = join_path(outdir, "build_cache",
|
tarfile_dir = os.path.join(outdir, "build_cache",
|
||||||
tarball_directory_name(spec))
|
tarball_directory_name(spec))
|
||||||
tarfile_path = join_path(tarfile_dir, tarfile_name)
|
tarfile_path = os.path.join(tarfile_dir, tarfile_name)
|
||||||
mkdirp(tarfile_dir)
|
mkdirp(tarfile_dir)
|
||||||
spackfile_path = os.path.join(
|
spackfile_path = os.path.join(
|
||||||
outdir, "build_cache", tarball_path_name(spec, '.spack'))
|
outdir, "build_cache", tarball_path_name(spec, '.spack'))
|
||||||
@ -278,18 +278,18 @@ def build_tarball(spec, outdir, force=False, rel=False, unsigned=False,
|
|||||||
# need to copy the spec file so the build cache can be downloaded
|
# need to copy the spec file so the build cache can be downloaded
|
||||||
# without concretizing with the current spack packages
|
# without concretizing with the current spack packages
|
||||||
# and preferences
|
# and preferences
|
||||||
spec_file = join_path(spec.prefix, ".spack", "spec.yaml")
|
spec_file = os.path.join(spec.prefix, ".spack", "spec.yaml")
|
||||||
specfile_name = tarball_name(spec, '.spec.yaml')
|
specfile_name = tarball_name(spec, '.spec.yaml')
|
||||||
specfile_path = os.path.realpath(
|
specfile_path = os.path.realpath(
|
||||||
join_path(outdir, "build_cache", specfile_name))
|
os.path.join(outdir, "build_cache", specfile_name))
|
||||||
indexfile_path = join_path(outdir, "build_cache", "index.html")
|
indexfile_path = os.path.join(outdir, "build_cache", "index.html")
|
||||||
if os.path.exists(specfile_path):
|
if os.path.exists(specfile_path):
|
||||||
if force:
|
if force:
|
||||||
os.remove(specfile_path)
|
os.remove(specfile_path)
|
||||||
else:
|
else:
|
||||||
raise NoOverwriteException(str(specfile_path))
|
raise NoOverwriteException(str(specfile_path))
|
||||||
# make a copy of the install directory to work with
|
# make a copy of the install directory to work with
|
||||||
workdir = join_path(tempfile.mkdtemp(), os.path.basename(spec.prefix))
|
workdir = os.path.join(tempfile.mkdtemp(), os.path.basename(spec.prefix))
|
||||||
install_tree(spec.prefix, workdir, symlinks=True)
|
install_tree(spec.prefix, workdir, symlinks=True)
|
||||||
|
|
||||||
# create info for later relocation and create tar
|
# create info for later relocation and create tar
|
||||||
@ -512,7 +512,7 @@ def extract_tarball(spec, filename, allow_root=False, unsigned=False,
|
|||||||
# the base of the install prefix is used when creating the tarball
|
# the base of the install prefix is used when creating the tarball
|
||||||
# so the pathname should be the same now that the directory layout
|
# so the pathname should be the same now that the directory layout
|
||||||
# is confirmed
|
# is confirmed
|
||||||
workdir = join_path(tmpdir, os.path.basename(spec.prefix))
|
workdir = os.path.join(tmpdir, os.path.basename(spec.prefix))
|
||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
os.remove(tarfile_path)
|
os.remove(tarfile_path)
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
from subprocess import check_call
|
from subprocess import check_call
|
||||||
|
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
from llnl.util.filesystem import working_dir, join_path, force_remove
|
from llnl.util.filesystem import working_dir, force_remove
|
||||||
from spack.package import PackageBase, run_after, run_before
|
from spack.package import PackageBase, run_after, run_before
|
||||||
from spack.util.executable import Executable
|
from spack.util.executable import Executable
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ def configure_directory(self):
|
|||||||
@property
|
@property
|
||||||
def configure_abs_path(self):
|
def configure_abs_path(self):
|
||||||
# Absolute path to configure
|
# Absolute path to configure
|
||||||
configure_abs_path = join_path(
|
configure_abs_path = os.path.join(
|
||||||
os.path.abspath(self.configure_directory), 'configure'
|
os.path.abspath(self.configure_directory), 'configure'
|
||||||
)
|
)
|
||||||
return configure_abs_path
|
return configure_abs_path
|
||||||
@ -220,7 +220,7 @@ def autoreconf(self, spec, prefix):
|
|||||||
if 'pkgconfig' in spec:
|
if 'pkgconfig' in spec:
|
||||||
autoreconf_args += [
|
autoreconf_args += [
|
||||||
'-I',
|
'-I',
|
||||||
join_path(spec['pkgconfig'].prefix, 'share', 'aclocal'),
|
os.path.join(spec['pkgconfig'].prefix, 'share', 'aclocal'),
|
||||||
]
|
]
|
||||||
autoreconf_args += self.autoreconf_extra_args
|
autoreconf_args += self.autoreconf_extra_args
|
||||||
m.autoreconf(*autoreconf_args)
|
m.autoreconf(*autoreconf_args)
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
import platform
|
import platform
|
||||||
|
|
||||||
import spack.build_environment
|
import spack.build_environment
|
||||||
from llnl.util.filesystem import working_dir, join_path
|
from llnl.util.filesystem import working_dir
|
||||||
from spack.util.environment import filter_system_paths
|
from spack.util.environment import filter_system_paths
|
||||||
from spack.directives import depends_on, variant
|
from spack.directives import depends_on, variant
|
||||||
from spack.package import PackageBase, InstallError, run_after
|
from spack.package import PackageBase, InstallError, run_after
|
||||||
@ -208,7 +208,7 @@ def build_directory(self):
|
|||||||
|
|
||||||
:return: directory where to build the package
|
:return: directory where to build the package
|
||||||
"""
|
"""
|
||||||
return join_path(self.stage.source_path, 'spack-build')
|
return os.path.join(self.stage.source_path, 'spack-build')
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
"""Produces a list containing all the arguments that must be passed to
|
"""Produces a list containing all the arguments that must be passed to
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
import os
|
import os
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
from llnl.util.filesystem import install, join_path
|
from llnl.util.filesystem import install
|
||||||
from spack.package import PackageBase, run_after
|
from spack.package import PackageBase, run_after
|
||||||
from spack.util.executable import Executable
|
from spack.util.executable import Executable
|
||||||
|
|
||||||
@ -109,8 +109,8 @@ def global_license_file(self):
|
|||||||
|
|
||||||
All Intel software shares the same license, so we store it in a
|
All Intel software shares the same license, so we store it in a
|
||||||
common 'intel' directory."""
|
common 'intel' directory."""
|
||||||
return join_path(self.global_license_dir, 'intel',
|
return os.path.join(self.global_license_dir, 'intel',
|
||||||
os.path.basename(self.license_files[0]))
|
os.path.basename(self.license_files[0]))
|
||||||
|
|
||||||
def configure(self, spec, prefix):
|
def configure(self, spec, prefix):
|
||||||
"""Writes the ``silent.cfg`` file used to configure the installation.
|
"""Writes the ``silent.cfg`` file used to configure the installation.
|
||||||
@ -186,7 +186,7 @@ def install(self, spec, prefix):
|
|||||||
@run_after('install')
|
@run_after('install')
|
||||||
def save_silent_cfg(self):
|
def save_silent_cfg(self):
|
||||||
"""Copies the silent.cfg configuration file to ``<prefix>/.spack``."""
|
"""Copies the silent.cfg configuration file to ``<prefix>/.spack``."""
|
||||||
install('silent.cfg', join_path(self.prefix, '.spack'))
|
install('silent.cfg', os.path.join(self.prefix, '.spack'))
|
||||||
|
|
||||||
# Check that self.prefix is there after installation
|
# Check that self.prefix is there after installation
|
||||||
run_after('install')(PackageBase.sanity_check_prefix)
|
run_after('install')(PackageBase.sanity_check_prefix)
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
import inspect
|
import inspect
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
from spack.directives import depends_on, extends
|
from spack.directives import depends_on, extends
|
||||||
from spack.package import PackageBase, run_after
|
from spack.package import PackageBase, run_after
|
||||||
from spack.util.executable import Executable
|
from spack.util.executable import Executable
|
||||||
@ -88,7 +87,7 @@ def configure(self, spec, prefix):
|
|||||||
elif os.path.isfile('Build.PL'):
|
elif os.path.isfile('Build.PL'):
|
||||||
self.build_method = 'Build.PL'
|
self.build_method = 'Build.PL'
|
||||||
self.build_executable = Executable(
|
self.build_executable = Executable(
|
||||||
join_path(self.stage.source_path, 'Build'))
|
os.path.join(self.stage.source_path, 'Build'))
|
||||||
else:
|
else:
|
||||||
raise RuntimeError('Unknown build_method for perl package')
|
raise RuntimeError('Unknown build_method for perl package')
|
||||||
|
|
||||||
|
@ -135,9 +135,9 @@ def default_log_file(spec):
|
|||||||
"""
|
"""
|
||||||
fmt = 'test-{x.name}-{x.version}-{hash}.xml'
|
fmt = 'test-{x.name}-{x.version}-{hash}.xml'
|
||||||
basename = fmt.format(x=spec, hash=spec.dag_hash())
|
basename = fmt.format(x=spec, hash=spec.dag_hash())
|
||||||
dirname = fs.join_path(spack.paths.var_path, 'junit-report')
|
dirname = fs.os.path.join(spack.paths.var_path, 'junit-report')
|
||||||
fs.mkdirp(dirname)
|
fs.mkdirp(dirname)
|
||||||
return fs.join_path(dirname, basename)
|
return fs.os.path.join(dirname, basename)
|
||||||
|
|
||||||
|
|
||||||
def install_spec(cli_args, kwargs, spec):
|
def install_spec(cli_args, kwargs, spec):
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
import itertools
|
import itertools
|
||||||
|
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
|
|
||||||
import spack.error
|
import spack.error
|
||||||
import spack.spec
|
import spack.spec
|
||||||
@ -270,7 +269,7 @@ def _find_matches_in_path(cls, compiler_names, detect_version, *path):
|
|||||||
|
|
||||||
files = os.listdir(directory)
|
files = os.listdir(directory)
|
||||||
for exe in files:
|
for exe in files:
|
||||||
full_path = join_path(directory, exe)
|
full_path = os.path.join(directory, exe)
|
||||||
|
|
||||||
prod = itertools.product(prefixes, compiler_names, suffixes)
|
prod = itertools.product(prefixes, compiler_names, suffixes)
|
||||||
for pre, name, suf in prod:
|
for pre, name, suf in prod:
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
from yaml.error import MarkedYAMLError, YAMLError
|
from yaml.error import MarkedYAMLError, YAMLError
|
||||||
|
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
from llnl.util.filesystem import join_path, mkdirp
|
from llnl.util.filesystem import mkdirp
|
||||||
from llnl.util.lock import Lock, WriteTransaction, ReadTransaction
|
from llnl.util.lock import Lock, WriteTransaction, ReadTransaction
|
||||||
|
|
||||||
import spack.store
|
import spack.store
|
||||||
@ -184,18 +184,18 @@ def __init__(self, root, db_dir=None):
|
|||||||
|
|
||||||
if db_dir is None:
|
if db_dir is None:
|
||||||
# If the db_dir is not provided, default to within the db root.
|
# If the db_dir is not provided, default to within the db root.
|
||||||
self._db_dir = join_path(self.root, _db_dirname)
|
self._db_dir = os.path.join(self.root, _db_dirname)
|
||||||
else:
|
else:
|
||||||
# Allow customizing the database directory location for testing.
|
# Allow customizing the database directory location for testing.
|
||||||
self._db_dir = db_dir
|
self._db_dir = db_dir
|
||||||
|
|
||||||
# Set up layout of database files within the db dir
|
# Set up layout of database files within the db dir
|
||||||
self._old_yaml_index_path = join_path(self._db_dir, 'index.yaml')
|
self._old_yaml_index_path = os.path.join(self._db_dir, 'index.yaml')
|
||||||
self._index_path = join_path(self._db_dir, 'index.json')
|
self._index_path = os.path.join(self._db_dir, 'index.json')
|
||||||
self._lock_path = join_path(self._db_dir, 'lock')
|
self._lock_path = os.path.join(self._db_dir, 'lock')
|
||||||
|
|
||||||
# This is for other classes to use to lock prefix directories.
|
# This is for other classes to use to lock prefix directories.
|
||||||
self.prefix_lock_path = join_path(self._db_dir, 'prefix_lock')
|
self.prefix_lock_path = os.path.join(self._db_dir, 'prefix_lock')
|
||||||
|
|
||||||
# Create needed directories and files
|
# Create needed directories and files
|
||||||
if not os.path.exists(self._db_dir):
|
if not os.path.exists(self._db_dir):
|
||||||
|
@ -54,7 +54,6 @@ class OpenMpi(Package):
|
|||||||
from six import string_types
|
from six import string_types
|
||||||
|
|
||||||
import llnl.util.lang
|
import llnl.util.lang
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
|
|
||||||
import spack
|
import spack
|
||||||
import spack.error
|
import spack.error
|
||||||
@ -530,7 +529,7 @@ def _execute_resource(pkg):
|
|||||||
# Check if the path falls within the main package stage area
|
# Check if the path falls within the main package stage area
|
||||||
test_path = 'stage_folder_root'
|
test_path = 'stage_folder_root'
|
||||||
normalized_destination = os.path.normpath(
|
normalized_destination = os.path.normpath(
|
||||||
join_path(test_path, destination)
|
os.path.join(test_path, destination)
|
||||||
) # Normalized absolute path
|
) # Normalized absolute path
|
||||||
|
|
||||||
if test_path not in normalized_destination:
|
if test_path not in normalized_destination:
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
import yaml
|
import yaml
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from llnl.util.filesystem import join_path, mkdirp
|
from llnl.util.filesystem import mkdirp
|
||||||
|
|
||||||
import spack.config
|
import spack.config
|
||||||
import spack.spec
|
import spack.spec
|
||||||
@ -239,22 +239,22 @@ def read_spec(self, path):
|
|||||||
def spec_file_path(self, spec):
|
def spec_file_path(self, spec):
|
||||||
"""Gets full path to spec file"""
|
"""Gets full path to spec file"""
|
||||||
_check_concrete(spec)
|
_check_concrete(spec)
|
||||||
return join_path(self.metadata_path(spec), self.spec_file_name)
|
return os.path.join(self.metadata_path(spec), self.spec_file_name)
|
||||||
|
|
||||||
def metadata_path(self, spec):
|
def metadata_path(self, spec):
|
||||||
return join_path(self.path_for_spec(spec), self.metadata_dir)
|
return os.path.join(self.path_for_spec(spec), self.metadata_dir)
|
||||||
|
|
||||||
def build_log_path(self, spec):
|
def build_log_path(self, spec):
|
||||||
return join_path(self.path_for_spec(spec), self.metadata_dir,
|
return os.path.join(self.path_for_spec(spec), self.metadata_dir,
|
||||||
self.build_log_name)
|
self.build_log_name)
|
||||||
|
|
||||||
def build_env_path(self, spec):
|
def build_env_path(self, spec):
|
||||||
return join_path(self.path_for_spec(spec), self.metadata_dir,
|
return os.path.join(self.path_for_spec(spec), self.metadata_dir,
|
||||||
self.build_env_name)
|
self.build_env_name)
|
||||||
|
|
||||||
def build_packages_path(self, spec):
|
def build_packages_path(self, spec):
|
||||||
return join_path(self.path_for_spec(spec), self.metadata_dir,
|
return os.path.join(self.path_for_spec(spec), self.metadata_dir,
|
||||||
self.packages_dir)
|
self.packages_dir)
|
||||||
|
|
||||||
def create_install_directory(self, spec):
|
def create_install_directory(self, spec):
|
||||||
_check_concrete(spec)
|
_check_concrete(spec)
|
||||||
@ -302,7 +302,7 @@ def all_specs(self):
|
|||||||
|
|
||||||
path_elems = ["*"] * len(self.path_scheme.split(os.sep))
|
path_elems = ["*"] * len(self.path_scheme.split(os.sep))
|
||||||
path_elems += [self.metadata_dir, self.spec_file_name]
|
path_elems += [self.metadata_dir, self.spec_file_name]
|
||||||
pattern = join_path(self.root, *path_elems)
|
pattern = os.path.join(self.root, *path_elems)
|
||||||
spec_files = glob.glob(pattern)
|
spec_files = glob.glob(pattern)
|
||||||
return [self.read_spec(s) for s in spec_files]
|
return [self.read_spec(s) for s in spec_files]
|
||||||
|
|
||||||
@ -356,8 +356,8 @@ def check_activated(self, spec, ext_spec):
|
|||||||
def extension_file_path(self, spec):
|
def extension_file_path(self, spec):
|
||||||
"""Gets full path to an installed package's extension file"""
|
"""Gets full path to an installed package's extension file"""
|
||||||
_check_concrete(spec)
|
_check_concrete(spec)
|
||||||
return join_path(self.layout.metadata_path(spec),
|
return os.path.join(self.layout.metadata_path(spec),
|
||||||
self.extension_file_name)
|
self.extension_file_name)
|
||||||
|
|
||||||
def extension_map(self, spec):
|
def extension_map(self, spec):
|
||||||
"""Defensive copying version of _extension_map() for external API."""
|
"""Defensive copying version of _extension_map() for external API."""
|
||||||
@ -446,8 +446,8 @@ class YamlViewExtensionsLayout(YamlExtensionsLayout):
|
|||||||
def extension_file_path(self, spec):
|
def extension_file_path(self, spec):
|
||||||
"""Gets the full path to an installed package's extension file."""
|
"""Gets the full path to an installed package's extension file."""
|
||||||
_check_concrete(spec)
|
_check_concrete(spec)
|
||||||
return join_path(self.root, self.layout.metadata_dir, spec.name,
|
return os.path.join(self.root, self.layout.metadata_dir, spec.name,
|
||||||
self.extension_file_name)
|
self.extension_file_name)
|
||||||
|
|
||||||
def extendee_target_directory(self, extendee):
|
def extendee_target_directory(self, extendee):
|
||||||
return self.root
|
return self.root
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
from six import string_types, with_metaclass
|
from six import string_types, with_metaclass
|
||||||
|
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
from llnl.util.filesystem import working_dir, mkdirp, join_path
|
from llnl.util.filesystem import working_dir, mkdirp
|
||||||
|
|
||||||
import spack.config
|
import spack.config
|
||||||
import spack.error
|
import spack.error
|
||||||
@ -1035,12 +1035,12 @@ def store(self, fetcher, relativeDst):
|
|||||||
if isinstance(fetcher, CacheURLFetchStrategy):
|
if isinstance(fetcher, CacheURLFetchStrategy):
|
||||||
return
|
return
|
||||||
|
|
||||||
dst = join_path(self.root, relativeDst)
|
dst = os.path.join(self.root, relativeDst)
|
||||||
mkdirp(os.path.dirname(dst))
|
mkdirp(os.path.dirname(dst))
|
||||||
fetcher.archive(dst)
|
fetcher.archive(dst)
|
||||||
|
|
||||||
def fetcher(self, targetPath, digest, **kwargs):
|
def fetcher(self, targetPath, digest, **kwargs):
|
||||||
path = join_path(self.root, targetPath)
|
path = os.path.join(self.root, targetPath)
|
||||||
return CacheURLFetchStrategy(path, digest, **kwargs)
|
return CacheURLFetchStrategy(path, digest, **kwargs)
|
||||||
|
|
||||||
def destroy(self):
|
def destroy(self):
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
import shutil
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
from llnl.util.link_tree import LinkTree
|
from llnl.util.link_tree import LinkTree
|
||||||
from llnl.util import tty
|
from llnl.util import tty
|
||||||
|
|
||||||
@ -390,8 +389,8 @@ def remove_standalone(self, spec):
|
|||||||
tty.info(self._croot + 'Removed package: %s' % colorize_spec(spec))
|
tty.info(self._croot + 'Removed package: %s' % colorize_spec(spec))
|
||||||
|
|
||||||
def get_all_specs(self):
|
def get_all_specs(self):
|
||||||
dotspack = join_path(self.root,
|
dotspack = os.path.join(self.root,
|
||||||
spack.store.layout.metadata_dir)
|
spack.store.layout.metadata_dir)
|
||||||
if os.path.exists(dotspack):
|
if os.path.exists(dotspack):
|
||||||
return list(filter(None, map(self.get_spec, os.listdir(dotspack))))
|
return list(filter(None, map(self.get_spec, os.listdir(dotspack))))
|
||||||
else:
|
else:
|
||||||
@ -408,14 +407,14 @@ def get_conflicts(self, *specs):
|
|||||||
|
|
||||||
def get_path_meta_folder(self, spec):
|
def get_path_meta_folder(self, spec):
|
||||||
"Get path to meta folder for either spec or spec name."
|
"Get path to meta folder for either spec or spec name."
|
||||||
return join_path(self.root,
|
return os.path.join(self.root,
|
||||||
spack.store.layout.metadata_dir,
|
spack.store.layout.metadata_dir,
|
||||||
getattr(spec, "name", spec))
|
getattr(spec, "name", spec))
|
||||||
|
|
||||||
def get_spec(self, spec):
|
def get_spec(self, spec):
|
||||||
dotspack = self.get_path_meta_folder(spec)
|
dotspack = self.get_path_meta_folder(spec)
|
||||||
filename = join_path(dotspack,
|
filename = os.path.join(dotspack,
|
||||||
spack.store.layout.spec_file_name)
|
spack.store.layout.spec_file_name)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open(filename, "r") as f:
|
with open(filename, "r") as f:
|
||||||
|
@ -42,9 +42,9 @@
|
|||||||
features.
|
features.
|
||||||
"""
|
"""
|
||||||
import imp
|
import imp
|
||||||
|
import os.path
|
||||||
|
|
||||||
import spack.paths
|
import spack.paths
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
from llnl.util.lang import memoized, list_modules
|
from llnl.util.lang import memoized, list_modules
|
||||||
|
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ def all_hook_modules():
|
|||||||
modules = []
|
modules = []
|
||||||
for name in list_modules(spack.paths.hooks_path):
|
for name in list_modules(spack.paths.hooks_path):
|
||||||
mod_name = __name__ + '.' + name
|
mod_name = __name__ + '.' + name
|
||||||
path = join_path(spack.paths.hooks_path, name) + ".py"
|
path = os.path.join(spack.paths.hooks_path, name) + ".py"
|
||||||
mod = imp.load_source(mod_name, path)
|
mod = imp.load_source(mod_name, path)
|
||||||
modules.append(mod)
|
modules.append(mod)
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
import spack
|
import spack
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
from llnl.util.filesystem import join_path, mkdirp
|
from llnl.util.filesystem import mkdirp
|
||||||
|
|
||||||
|
|
||||||
def pre_install(spec):
|
def pre_install(spec):
|
||||||
@ -156,7 +156,7 @@ def symlink_license(pkg):
|
|||||||
"""Create local symlinks that point to the global license file."""
|
"""Create local symlinks that point to the global license file."""
|
||||||
target = pkg.global_license_file
|
target = pkg.global_license_file
|
||||||
for filename in pkg.license_files:
|
for filename in pkg.license_files:
|
||||||
link_name = join_path(pkg.prefix, filename)
|
link_name = os.path.join(pkg.prefix, filename)
|
||||||
link_name = os.path.abspath(link_name)
|
link_name = os.path.abspath(link_name)
|
||||||
license_dir = os.path.dirname(link_name)
|
license_dir = os.path.dirname(link_name)
|
||||||
if not os.path.exists(license_dir):
|
if not os.path.exists(license_dir):
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
from llnl.util.filesystem import mkdirp, join_path
|
from llnl.util.filesystem import mkdirp
|
||||||
|
|
||||||
import spack.config
|
import spack.config
|
||||||
import spack.error
|
import spack.error
|
||||||
@ -97,7 +97,7 @@ def mirror_archive_filename(spec, fetcher, resourceId=None):
|
|||||||
|
|
||||||
def mirror_archive_path(spec, fetcher, resourceId=None):
|
def mirror_archive_path(spec, fetcher, resourceId=None):
|
||||||
"""Get the relative path to the spec's archive within a mirror."""
|
"""Get the relative path to the spec's archive within a mirror."""
|
||||||
return join_path(
|
return os.path.join(
|
||||||
spec.name, mirror_archive_filename(spec, fetcher, resourceId))
|
spec.name, mirror_archive_filename(spec, fetcher, resourceId))
|
||||||
|
|
||||||
|
|
||||||
@ -222,12 +222,12 @@ def add_single_spec(spec, mirror_root, categories, **kwargs):
|
|||||||
fetcher = stage.fetcher
|
fetcher = stage.fetcher
|
||||||
if ii == 0:
|
if ii == 0:
|
||||||
# create a subdirectory for the current package@version
|
# create a subdirectory for the current package@version
|
||||||
archive_path = os.path.abspath(join_path(
|
archive_path = os.path.abspath(os.path.join(
|
||||||
mirror_root, mirror_archive_path(spec, fetcher)))
|
mirror_root, mirror_archive_path(spec, fetcher)))
|
||||||
name = spec.cformat("$_$@")
|
name = spec.cformat("$_$@")
|
||||||
else:
|
else:
|
||||||
resource = stage.resource
|
resource = stage.resource
|
||||||
archive_path = os.path.abspath(join_path(
|
archive_path = os.path.abspath(os.path.join(
|
||||||
mirror_root,
|
mirror_root,
|
||||||
mirror_archive_path(spec, fetcher, resource.name)))
|
mirror_archive_path(spec, fetcher, resource.name)))
|
||||||
name = "{resource} ({pkg}).".format(
|
name = "{resource} ({pkg}).".format(
|
||||||
|
@ -69,7 +69,7 @@
|
|||||||
import spack.multimethod
|
import spack.multimethod
|
||||||
import spack.binary_distribution as binary_distribution
|
import spack.binary_distribution as binary_distribution
|
||||||
|
|
||||||
from llnl.util.filesystem import mkdirp, join_path, touch
|
from llnl.util.filesystem import mkdirp, touch
|
||||||
from llnl.util.filesystem import working_dir, install_tree, install
|
from llnl.util.filesystem import working_dir, install_tree, install
|
||||||
from llnl.util.lang import memoized
|
from llnl.util.lang import memoized
|
||||||
from llnl.util.link_tree import LinkTree
|
from llnl.util.link_tree import LinkTree
|
||||||
@ -1226,17 +1226,17 @@ def do_fake_install(self):
|
|||||||
|
|
||||||
# Install fake command
|
# Install fake command
|
||||||
mkdirp(self.prefix.bin)
|
mkdirp(self.prefix.bin)
|
||||||
touch(join_path(self.prefix.bin, command))
|
touch(os.path.join(self.prefix.bin, command))
|
||||||
chmod('+x', join_path(self.prefix.bin, command))
|
chmod('+x', os.path.join(self.prefix.bin, command))
|
||||||
|
|
||||||
# Install fake header file
|
# Install fake header file
|
||||||
mkdirp(self.prefix.include)
|
mkdirp(self.prefix.include)
|
||||||
touch(join_path(self.prefix.include, header + '.h'))
|
touch(os.path.join(self.prefix.include, header + '.h'))
|
||||||
|
|
||||||
# Install fake shared and static libraries
|
# Install fake shared and static libraries
|
||||||
mkdirp(self.prefix.lib)
|
mkdirp(self.prefix.lib)
|
||||||
for suffix in [dso_suffix, '.a']:
|
for suffix in [dso_suffix, '.a']:
|
||||||
touch(join_path(self.prefix.lib, library + suffix))
|
touch(os.path.join(self.prefix.lib, library + suffix))
|
||||||
|
|
||||||
# Install fake man page
|
# Install fake man page
|
||||||
mkdirp(self.prefix.man.man1)
|
mkdirp(self.prefix.man.man1)
|
||||||
@ -1516,7 +1516,7 @@ def build_process():
|
|||||||
else:
|
else:
|
||||||
source_path = self.stage.source_path
|
source_path = self.stage.source_path
|
||||||
if install_source and os.path.isdir(source_path):
|
if install_source and os.path.isdir(source_path):
|
||||||
src_target = join_path(
|
src_target = os.path.join(
|
||||||
self.spec.prefix, 'share', self.name, 'src')
|
self.spec.prefix, 'share', self.name, 'src')
|
||||||
tty.msg('Copying source to {0}'.format(src_target))
|
tty.msg('Copying source to {0}'.format(src_target))
|
||||||
install_tree(self.stage.source_path, src_target)
|
install_tree(self.stage.source_path, src_target)
|
||||||
@ -1762,7 +1762,7 @@ def build_log_path(self):
|
|||||||
if self.installed:
|
if self.installed:
|
||||||
return spack.store.layout.build_log_path(self.spec)
|
return spack.store.layout.build_log_path(self.spec)
|
||||||
else:
|
else:
|
||||||
return join_path(self.stage.source_path, 'spack-build.out')
|
return os.path.join(self.stage.source_path, 'spack-build.out')
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def module(self):
|
def module(self):
|
||||||
@ -2305,7 +2305,7 @@ def dump_packages(spec, path):
|
|||||||
# Locate the dependency package in the install tree and find
|
# Locate the dependency package in the install tree and find
|
||||||
# its provenance information.
|
# its provenance information.
|
||||||
source = spack.store.layout.build_packages_path(node)
|
source = spack.store.layout.build_packages_path(node)
|
||||||
source_repo_root = join_path(source, node.namespace)
|
source_repo_root = os.path.join(source, node.namespace)
|
||||||
|
|
||||||
# There's no provenance installed for the source package. Skip it.
|
# There's no provenance installed for the source package. Skip it.
|
||||||
# User can always get something current from the builtin repo.
|
# User can always get something current from the builtin repo.
|
||||||
@ -2322,7 +2322,7 @@ def dump_packages(spec, path):
|
|||||||
node.name)
|
node.name)
|
||||||
|
|
||||||
# Create a destination repository
|
# Create a destination repository
|
||||||
dest_repo_root = join_path(path, node.namespace)
|
dest_repo_root = os.path.join(path, node.namespace)
|
||||||
if not os.path.exists(dest_repo_root):
|
if not os.path.exists(dest_repo_root):
|
||||||
spack.repo.create_repo(dest_repo_root)
|
spack.repo.create_repo(dest_repo_root)
|
||||||
repo = spack.repo.Repo(dest_repo_root)
|
repo = spack.repo.Repo(dest_repo_root)
|
||||||
|
@ -30,7 +30,6 @@
|
|||||||
from spack.architecture import Platform, Target, NoPlatformError
|
from spack.architecture import Platform, Target, NoPlatformError
|
||||||
from spack.operating_systems.cray_frontend import CrayFrontend
|
from spack.operating_systems.cray_frontend import CrayFrontend
|
||||||
from spack.operating_systems.cnl import Cnl
|
from spack.operating_systems.cnl import Cnl
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
from spack.util.module_cmd import get_module_cmd, unload_module
|
from spack.util.module_cmd import get_module_cmd, unload_module
|
||||||
|
|
||||||
|
|
||||||
@ -110,7 +109,7 @@ def setup_platform_environment(cls, pkg, env):
|
|||||||
unload_module(module)
|
unload_module(module)
|
||||||
|
|
||||||
env.set('CRAYPE_LINK_TYPE', 'dynamic')
|
env.set('CRAYPE_LINK_TYPE', 'dynamic')
|
||||||
cray_wrapper_names = join_path(build_env_path, 'cray')
|
cray_wrapper_names = os.path.join(build_env_path, 'cray')
|
||||||
|
|
||||||
if os.path.isdir(cray_wrapper_names):
|
if os.path.isdir(cray_wrapper_names):
|
||||||
env.prepend_path('PATH', cray_wrapper_names)
|
env.prepend_path('PATH', cray_wrapper_names)
|
||||||
|
@ -47,7 +47,7 @@
|
|||||||
|
|
||||||
import llnl.util.lang
|
import llnl.util.lang
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
from llnl.util.filesystem import mkdirp, join_path, install
|
from llnl.util.filesystem import mkdirp, install
|
||||||
|
|
||||||
import spack
|
import spack
|
||||||
import spack.config
|
import spack.config
|
||||||
@ -142,7 +142,7 @@ def _create_new_cache(self):
|
|||||||
cache = {}
|
cache = {}
|
||||||
for pkg_name in os.listdir(self.packages_path):
|
for pkg_name in os.listdir(self.packages_path):
|
||||||
# Skip non-directories in the package root.
|
# Skip non-directories in the package root.
|
||||||
pkg_dir = join_path(self.packages_path, pkg_name)
|
pkg_dir = os.path.join(self.packages_path, pkg_name)
|
||||||
|
|
||||||
# Warn about invalid names that look like packages.
|
# Warn about invalid names that look like packages.
|
||||||
if not valid_module_name(pkg_name):
|
if not valid_module_name(pkg_name):
|
||||||
@ -635,18 +635,18 @@ def check(condition, msg):
|
|||||||
raise BadRepoError(msg)
|
raise BadRepoError(msg)
|
||||||
|
|
||||||
# Validate repository layout.
|
# Validate repository layout.
|
||||||
self.config_file = join_path(self.root, repo_config_name)
|
self.config_file = os.path.join(self.root, repo_config_name)
|
||||||
check(os.path.isfile(self.config_file),
|
check(os.path.isfile(self.config_file),
|
||||||
"No %s found in '%s'" % (repo_config_name, root))
|
"No %s found in '%s'" % (repo_config_name, root))
|
||||||
|
|
||||||
self.packages_path = join_path(self.root, packages_dir_name)
|
self.packages_path = os.path.join(self.root, packages_dir_name)
|
||||||
check(os.path.isdir(self.packages_path),
|
check(os.path.isdir(self.packages_path),
|
||||||
"No directory '%s' found in '%s'" % (repo_config_name, root))
|
"No directory '%s' found in '%s'" % (repo_config_name, root))
|
||||||
|
|
||||||
# Read configuration and validate namespace
|
# Read configuration and validate namespace
|
||||||
config = self._read_config()
|
config = self._read_config()
|
||||||
check('namespace' in config, '%s must define a namespace.'
|
check('namespace' in config, '%s must define a namespace.'
|
||||||
% join_path(root, repo_config_name))
|
% os.path.join(root, repo_config_name))
|
||||||
|
|
||||||
self.namespace = config['namespace']
|
self.namespace = config['namespace']
|
||||||
check(re.match(r'[a-zA-Z][a-zA-Z0-9_.]+', self.namespace),
|
check(re.match(r'[a-zA-Z][a-zA-Z0-9_.]+', self.namespace),
|
||||||
@ -899,7 +899,7 @@ def dirname_for_package_name(self, spec):
|
|||||||
"""Get the directory name for a particular package. This is the
|
"""Get the directory name for a particular package. This is the
|
||||||
directory that contains its package.py file."""
|
directory that contains its package.py file."""
|
||||||
self._check_namespace(spec)
|
self._check_namespace(spec)
|
||||||
return join_path(self.packages_path, spec.name)
|
return os.path.join(self.packages_path, spec.name)
|
||||||
|
|
||||||
@_autospec
|
@_autospec
|
||||||
def filename_for_package_name(self, spec):
|
def filename_for_package_name(self, spec):
|
||||||
@ -913,7 +913,7 @@ def filename_for_package_name(self, spec):
|
|||||||
"""
|
"""
|
||||||
self._check_namespace(spec)
|
self._check_namespace(spec)
|
||||||
pkg_dir = self.dirname_for_package_name(spec.name)
|
pkg_dir = self.dirname_for_package_name(spec.name)
|
||||||
return join_path(pkg_dir, package_file_name)
|
return os.path.join(pkg_dir, package_file_name)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def _pkg_checker(self):
|
def _pkg_checker(self):
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
import llnl.util.lock
|
import llnl.util.lock
|
||||||
from llnl.util.filesystem import mkdirp, join_path, can_access
|
from llnl.util.filesystem import mkdirp, can_access
|
||||||
from llnl.util.filesystem import remove_if_dead_link, remove_linked_tree
|
from llnl.util.filesystem import remove_if_dead_link, remove_linked_tree
|
||||||
|
|
||||||
import spack.paths
|
import spack.paths
|
||||||
@ -216,7 +216,7 @@ def __init__(
|
|||||||
if path is not None:
|
if path is not None:
|
||||||
self.path = path
|
self.path = path
|
||||||
else:
|
else:
|
||||||
self.path = join_path(spack.paths.stage_path, self.name)
|
self.path = os.path.join(spack.paths.stage_path, self.name)
|
||||||
|
|
||||||
# Flag to decide whether to delete the stage folder on exit or not
|
# Flag to decide whether to delete the stage folder on exit or not
|
||||||
self.keep = keep
|
self.keep = keep
|
||||||
@ -229,7 +229,7 @@ def __init__(
|
|||||||
if self.name not in Stage.stage_locks:
|
if self.name not in Stage.stage_locks:
|
||||||
sha1 = hashlib.sha1(self.name.encode('utf-8')).digest()
|
sha1 = hashlib.sha1(self.name.encode('utf-8')).digest()
|
||||||
lock_id = prefix_bits(sha1, bit_length(sys.maxsize))
|
lock_id = prefix_bits(sha1, bit_length(sys.maxsize))
|
||||||
stage_lock_path = join_path(spack.paths.stage_path, '.lock')
|
stage_lock_path = os.path.join(spack.paths.stage_path, '.lock')
|
||||||
|
|
||||||
Stage.stage_locks[self.name] = llnl.util.lock.Lock(
|
Stage.stage_locks[self.name] = llnl.util.lock.Lock(
|
||||||
stage_lock_path, lock_id, 1)
|
stage_lock_path, lock_id, 1)
|
||||||
@ -546,7 +546,7 @@ def _add_to_root_stage(self):
|
|||||||
if not isinstance(placement, dict):
|
if not isinstance(placement, dict):
|
||||||
placement = {'': placement}
|
placement = {'': placement}
|
||||||
|
|
||||||
target_path = join_path(
|
target_path = os.path.join(
|
||||||
root_stage.source_path, resource.destination)
|
root_stage.source_path, resource.destination)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -558,8 +558,8 @@ def _add_to_root_stage(self):
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
for key, value in iteritems(placement):
|
for key, value in iteritems(placement):
|
||||||
destination_path = join_path(target_path, value)
|
destination_path = os.path.join(target_path, value)
|
||||||
source_path = join_path(self.source_path, key)
|
source_path = os.path.join(self.source_path, key)
|
||||||
|
|
||||||
if not os.path.exists(destination_path):
|
if not os.path.exists(destination_path):
|
||||||
tty.info('Moving resource stage\n\tsource : '
|
tty.info('Moving resource stage\n\tsource : '
|
||||||
@ -665,7 +665,7 @@ def purge():
|
|||||||
"""Remove all build directories in the top-level stage path."""
|
"""Remove all build directories in the top-level stage path."""
|
||||||
if os.path.isdir(spack.paths.stage_path):
|
if os.path.isdir(spack.paths.stage_path):
|
||||||
for stage_dir in os.listdir(spack.paths.stage_path):
|
for stage_dir in os.listdir(spack.paths.stage_path):
|
||||||
stage_path = join_path(spack.paths.stage_path, stage_dir)
|
stage_path = os.path.join(spack.paths.stage_path, stage_dir)
|
||||||
remove_linked_tree(stage_path)
|
remove_linked_tree(stage_path)
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,16 +26,15 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from spack.paths import build_env_path
|
from spack.paths import build_env_path
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
from spack.build_environment import dso_suffix, _static_to_shared_library
|
from spack.build_environment import dso_suffix, _static_to_shared_library
|
||||||
from spack.util.executable import Executable
|
from spack.util.executable import Executable
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def build_environment():
|
def build_environment():
|
||||||
cc = Executable(join_path(build_env_path, "cc"))
|
cc = Executable(os.path.join(build_env_path, "cc"))
|
||||||
cxx = Executable(join_path(build_env_path, "c++"))
|
cxx = Executable(os.path.join(build_env_path, "c++"))
|
||||||
fc = Executable(join_path(build_env_path, "fc"))
|
fc = Executable(os.path.join(build_env_path, "fc"))
|
||||||
|
|
||||||
realcc = "/bin/mycc"
|
realcc = "/bin/mycc"
|
||||||
prefix = "/spack-test-prefix"
|
prefix = "/spack-test-prefix"
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
from spack.paths import build_env_path
|
from spack.paths import build_env_path
|
||||||
from llnl.util.filesystem import mkdirp, join_path
|
from llnl.util.filesystem import mkdirp
|
||||||
from spack.util.executable import Executable
|
from spack.util.executable import Executable
|
||||||
|
|
||||||
# Complicated compiler test command
|
# Complicated compiler test command
|
||||||
@ -54,11 +54,11 @@
|
|||||||
class CompilerWrapperTest(unittest.TestCase):
|
class CompilerWrapperTest(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.cc = Executable(join_path(build_env_path, "cc"))
|
self.cc = Executable(os.path.join(build_env_path, "cc"))
|
||||||
self.ld = Executable(join_path(build_env_path, "ld"))
|
self.ld = Executable(os.path.join(build_env_path, "ld"))
|
||||||
self.cpp = Executable(join_path(build_env_path, "cpp"))
|
self.cpp = Executable(os.path.join(build_env_path, "cpp"))
|
||||||
self.cxx = Executable(join_path(build_env_path, "c++"))
|
self.cxx = Executable(os.path.join(build_env_path, "c++"))
|
||||||
self.fc = Executable(join_path(build_env_path, "fc"))
|
self.fc = Executable(os.path.join(build_env_path, "fc"))
|
||||||
|
|
||||||
self.realcc = "/bin/mycc"
|
self.realcc = "/bin/mycc"
|
||||||
self.prefix = "/spack-test-prefix"
|
self.prefix = "/spack-test-prefix"
|
||||||
@ -82,20 +82,20 @@ def setUp(self):
|
|||||||
|
|
||||||
# Make some fake dependencies
|
# Make some fake dependencies
|
||||||
self.tmp_deps = tempfile.mkdtemp()
|
self.tmp_deps = tempfile.mkdtemp()
|
||||||
self.dep1 = join_path(self.tmp_deps, 'dep1')
|
self.dep1 = os.path.join(self.tmp_deps, 'dep1')
|
||||||
self.dep2 = join_path(self.tmp_deps, 'dep2')
|
self.dep2 = os.path.join(self.tmp_deps, 'dep2')
|
||||||
self.dep3 = join_path(self.tmp_deps, 'dep3')
|
self.dep3 = os.path.join(self.tmp_deps, 'dep3')
|
||||||
self.dep4 = join_path(self.tmp_deps, 'dep4')
|
self.dep4 = os.path.join(self.tmp_deps, 'dep4')
|
||||||
|
|
||||||
mkdirp(join_path(self.dep1, 'include'))
|
mkdirp(os.path.join(self.dep1, 'include'))
|
||||||
mkdirp(join_path(self.dep1, 'lib'))
|
mkdirp(os.path.join(self.dep1, 'lib'))
|
||||||
|
|
||||||
mkdirp(join_path(self.dep2, 'lib64'))
|
mkdirp(os.path.join(self.dep2, 'lib64'))
|
||||||
|
|
||||||
mkdirp(join_path(self.dep3, 'include'))
|
mkdirp(os.path.join(self.dep3, 'include'))
|
||||||
mkdirp(join_path(self.dep3, 'lib64'))
|
mkdirp(os.path.join(self.dep3, 'lib64'))
|
||||||
|
|
||||||
mkdirp(join_path(self.dep4, 'include'))
|
mkdirp(os.path.join(self.dep4, 'include'))
|
||||||
|
|
||||||
if 'SPACK_DEPENDENCIES' in os.environ:
|
if 'SPACK_DEPENDENCIES' in os.environ:
|
||||||
del os.environ['SPACK_DEPENDENCIES']
|
del os.environ['SPACK_DEPENDENCIES']
|
||||||
|
@ -318,7 +318,7 @@ def test_junit_output_with_failures(tmpdir, exc_typename, msg):
|
|||||||
|
|
||||||
@pytest.mark.disable_clean_stage_check
|
@pytest.mark.disable_clean_stage_check
|
||||||
@pytest.mark.parametrize('exc_typename,msg', [
|
@pytest.mark.parametrize('exc_typename,msg', [
|
||||||
# ('RuntimeError', 'something weird happened'),
|
('RuntimeError', 'something weird happened'),
|
||||||
('KeyboardInterrupt', 'Ctrl-C strikes again')
|
('KeyboardInterrupt', 'Ctrl-C strikes again')
|
||||||
])
|
])
|
||||||
def test_junit_output_with_errors(
|
def test_junit_output_with_errors(
|
||||||
|
@ -28,8 +28,6 @@
|
|||||||
import os
|
import os
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
|
|
||||||
import spack.paths
|
import spack.paths
|
||||||
import spack.repo
|
import spack.repo
|
||||||
from spack.directory_layout import YamlDirectoryLayout
|
from spack.directory_layout import YamlDirectoryLayout
|
||||||
@ -213,7 +211,7 @@ def test_handle_unknown_package(
|
|||||||
# enough to read a spec from the spec file.
|
# enough to read a spec from the spec file.
|
||||||
for spec, path in installed_specs.items():
|
for spec, path in installed_specs.items():
|
||||||
spec_from_file = layout.read_spec(
|
spec_from_file = layout.read_spec(
|
||||||
join_path(path, '.spack', 'spec.yaml'))
|
os.path.join(path, '.spack', 'spec.yaml'))
|
||||||
|
|
||||||
# To satisfy these conditions, directory layouts need to
|
# To satisfy these conditions, directory layouts need to
|
||||||
# read in concrete specs from their install dirs somehow.
|
# read in concrete specs from their install dirs somehow.
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llnl.util.filesystem import working_dir, join_path, touch
|
from llnl.util.filesystem import working_dir, touch
|
||||||
|
|
||||||
import spack.repo
|
import spack.repo
|
||||||
import spack.config
|
import spack.config
|
||||||
@ -103,7 +103,7 @@ def test_fetch(type_of_test,
|
|||||||
with working_dir(pkg.stage.source_path):
|
with working_dir(pkg.stage.source_path):
|
||||||
assert h('HEAD') == h(t.revision)
|
assert h('HEAD') == h(t.revision)
|
||||||
|
|
||||||
file_path = join_path(pkg.stage.source_path, t.file)
|
file_path = os.path.join(pkg.stage.source_path, t.file)
|
||||||
assert os.path.isdir(pkg.stage.source_path)
|
assert os.path.isdir(pkg.stage.source_path)
|
||||||
assert os.path.isfile(file_path)
|
assert os.path.isfile(file_path)
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llnl.util.filesystem import working_dir, join_path, touch
|
from llnl.util.filesystem import working_dir, touch
|
||||||
|
|
||||||
import spack.repo
|
import spack.repo
|
||||||
import spack.config
|
import spack.config
|
||||||
@ -75,7 +75,7 @@ def test_fetch(
|
|||||||
with working_dir(pkg.stage.source_path):
|
with working_dir(pkg.stage.source_path):
|
||||||
assert h() == t.revision
|
assert h() == t.revision
|
||||||
|
|
||||||
file_path = join_path(pkg.stage.source_path, t.file)
|
file_path = os.path.join(pkg.stage.source_path, t.file)
|
||||||
assert os.path.isdir(pkg.stage.source_path)
|
assert os.path.isdir(pkg.stage.source_path)
|
||||||
assert os.path.isfile(file_path)
|
assert os.path.isfile(file_path)
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llnl.util.filesystem import join_path, touch
|
from llnl.util.filesystem import touch
|
||||||
from spack.util.multiproc import Barrier
|
from spack.util.multiproc import Barrier
|
||||||
from llnl.util.lock import Lock, WriteTransaction, ReadTransaction, LockError
|
from llnl.util.lock import Lock, WriteTransaction, ReadTransaction, LockError
|
||||||
|
|
||||||
@ -180,7 +180,7 @@ def private_lock_path(lock_dir):
|
|||||||
|
|
||||||
For other modes, it is the same as a shared lock.
|
For other modes, it is the same as a shared lock.
|
||||||
"""
|
"""
|
||||||
lock_file = join_path(lock_dir, 'lockfile')
|
lock_file = os.path.join(lock_dir, 'lockfile')
|
||||||
if mpi:
|
if mpi:
|
||||||
lock_file += '.%s' % comm.rank
|
lock_file += '.%s' % comm.rank
|
||||||
yield lock_file
|
yield lock_file
|
||||||
@ -189,7 +189,7 @@ def private_lock_path(lock_dir):
|
|||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def lock_path(lock_dir):
|
def lock_path(lock_dir):
|
||||||
"""This lock is shared among all processes in a multiproc test."""
|
"""This lock is shared among all processes in a multiproc test."""
|
||||||
lock_file = join_path(lock_dir, 'lockfile')
|
lock_file = os.path.join(lock_dir, 'lockfile')
|
||||||
yield lock_file
|
yield lock_file
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@
|
|||||||
import tempfile
|
import tempfile
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
from spack.build_environment import MakeExecutable
|
from spack.build_environment import MakeExecutable
|
||||||
from spack.util.environment import path_put_first
|
from spack.util.environment import path_put_first
|
||||||
|
|
||||||
@ -42,7 +41,7 @@ class MakeExecutableTest(unittest.TestCase):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.tmpdir = tempfile.mkdtemp()
|
self.tmpdir = tempfile.mkdtemp()
|
||||||
|
|
||||||
make_exe = join_path(self.tmpdir, 'make')
|
make_exe = os.path.join(self.tmpdir, 'make')
|
||||||
with open(make_exe, 'w') as f:
|
with open(make_exe, 'w') as f:
|
||||||
f.write('#!/bin/sh\n')
|
f.write('#!/bin/sh\n')
|
||||||
f.write('echo "$@"')
|
f.write('echo "$@"')
|
||||||
|
@ -26,8 +26,6 @@
|
|||||||
import os
|
import os
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
|
|
||||||
import spack.repo
|
import spack.repo
|
||||||
import spack.mirror
|
import spack.mirror
|
||||||
import spack.util.executable
|
import spack.util.executable
|
||||||
@ -66,7 +64,7 @@ def set_up_package(name, repository, url_attr):
|
|||||||
|
|
||||||
def check_mirror():
|
def check_mirror():
|
||||||
with Stage('spack-mirror-test') as stage:
|
with Stage('spack-mirror-test') as stage:
|
||||||
mirror_root = join_path(stage.path, 'test-mirror')
|
mirror_root = os.path.join(stage.path, 'test-mirror')
|
||||||
# register mirror with spack config
|
# register mirror with spack config
|
||||||
mirrors = {'spack-mirror-test': 'file://' + mirror_root}
|
mirrors = {'spack-mirror-test': 'file://' + mirror_root}
|
||||||
spack.config.set('mirrors', mirrors)
|
spack.config.set('mirrors', mirrors)
|
||||||
@ -77,7 +75,7 @@ def check_mirror():
|
|||||||
|
|
||||||
# check that there are subdirs for each package
|
# check that there are subdirs for each package
|
||||||
for name in repos:
|
for name in repos:
|
||||||
subdir = join_path(mirror_root, name)
|
subdir = os.path.join(mirror_root, name)
|
||||||
assert os.path.isdir(subdir)
|
assert os.path.isdir(subdir)
|
||||||
|
|
||||||
files = os.listdir(subdir)
|
files = os.listdir(subdir)
|
||||||
@ -96,7 +94,7 @@ def check_mirror():
|
|||||||
original_path = mock_repo.path
|
original_path = mock_repo.path
|
||||||
if 'svn' in name:
|
if 'svn' in name:
|
||||||
# have to check out the svn repo to compare.
|
# have to check out the svn repo to compare.
|
||||||
original_path = join_path(
|
original_path = os.path.join(
|
||||||
mock_repo.path, 'checked_out')
|
mock_repo.path, 'checked_out')
|
||||||
|
|
||||||
svn = which('svn', required=True)
|
svn = which('svn', required=True)
|
||||||
|
@ -22,10 +22,9 @@
|
|||||||
# License along with this program; if not, write to the Free Software
|
# License along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
import os.path
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
|
|
||||||
import spack.repo
|
import spack.repo
|
||||||
from spack.paths import mock_packages_path
|
from spack.paths import mock_packages_path
|
||||||
from spack.util.naming import mod_to_class
|
from spack.util.naming import mod_to_class
|
||||||
@ -45,7 +44,7 @@ def test_package_name(self):
|
|||||||
def test_package_filename(self):
|
def test_package_filename(self):
|
||||||
repo = spack.repo.Repo(mock_packages_path)
|
repo = spack.repo.Repo(mock_packages_path)
|
||||||
filename = repo.filename_for_package_name('mpich')
|
filename = repo.filename_for_package_name('mpich')
|
||||||
assert filename == join_path(
|
assert filename == os.path.join(
|
||||||
mock_packages_path,
|
mock_packages_path,
|
||||||
'packages',
|
'packages',
|
||||||
'mpich',
|
'mpich',
|
||||||
@ -55,7 +54,7 @@ def test_package_filename(self):
|
|||||||
def test_nonexisting_package_filename(self):
|
def test_nonexisting_package_filename(self):
|
||||||
repo = spack.repo.Repo(mock_packages_path)
|
repo = spack.repo.Repo(mock_packages_path)
|
||||||
filename = repo.filename_for_package_name('some-nonexisting-package')
|
filename = repo.filename_for_package_name('some-nonexisting-package')
|
||||||
assert filename == join_path(
|
assert filename == os.path.join(
|
||||||
mock_packages_path,
|
mock_packages_path,
|
||||||
'packages',
|
'packages',
|
||||||
'some-nonexisting-package',
|
'some-nonexisting-package',
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llnl.util.filesystem import join_path, working_dir
|
from llnl.util.filesystem import working_dir
|
||||||
|
|
||||||
import spack.paths
|
import spack.paths
|
||||||
import spack.stage
|
import spack.stage
|
||||||
@ -43,9 +43,9 @@ def check_expand_archive(stage, stage_name, mock_archive):
|
|||||||
assert archive_name in os.listdir(stage_path)
|
assert archive_name in os.listdir(stage_path)
|
||||||
assert archive_dir in os.listdir(stage_path)
|
assert archive_dir in os.listdir(stage_path)
|
||||||
|
|
||||||
assert join_path(stage_path, archive_dir) == stage.source_path
|
assert os.path.join(stage_path, archive_dir) == stage.source_path
|
||||||
|
|
||||||
readme = join_path(stage_path, archive_dir, 'README.txt')
|
readme = os.path.join(stage_path, archive_dir, 'README.txt')
|
||||||
assert os.path.isfile(readme)
|
assert os.path.isfile(readme)
|
||||||
with open(readme) as file:
|
with open(readme) as file:
|
||||||
'hello world!\n' == file.read()
|
'hello world!\n' == file.read()
|
||||||
@ -55,7 +55,7 @@ def check_fetch(stage, stage_name):
|
|||||||
archive_name = 'test-files.tar.gz'
|
archive_name = 'test-files.tar.gz'
|
||||||
stage_path = get_stage_path(stage, stage_name)
|
stage_path = get_stage_path(stage, stage_name)
|
||||||
assert archive_name in os.listdir(stage_path)
|
assert archive_name in os.listdir(stage_path)
|
||||||
assert join_path(stage_path, archive_name) == stage.fetcher.archive_file
|
assert os.path.join(stage_path, archive_name) == stage.fetcher.archive_file
|
||||||
|
|
||||||
|
|
||||||
def check_destroy(stage, stage_name):
|
def check_destroy(stage, stage_name):
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llnl.util.filesystem import join_path, touch, working_dir
|
from llnl.util.filesystem import touch, working_dir
|
||||||
|
|
||||||
import spack.repo
|
import spack.repo
|
||||||
import spack.config
|
import spack.config
|
||||||
@ -75,7 +75,7 @@ def test_fetch(
|
|||||||
with working_dir(pkg.stage.source_path):
|
with working_dir(pkg.stage.source_path):
|
||||||
assert h() == t.revision
|
assert h() == t.revision
|
||||||
|
|
||||||
file_path = join_path(pkg.stage.source_path, t.file)
|
file_path = os.path.join(pkg.stage.source_path, t.file)
|
||||||
assert os.path.isdir(pkg.stage.source_path)
|
assert os.path.isdir(pkg.stage.source_path)
|
||||||
assert os.path.isfile(file_path)
|
assert os.path.isfile(file_path)
|
||||||
|
|
||||||
|
@ -22,15 +22,13 @@
|
|||||||
# License along with this program; if not, write to the Free Software
|
# License along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
import spack
|
|
||||||
from llnl.util.filesystem import join_path
|
|
||||||
from spack.directory_layout import YamlDirectoryLayout
|
|
||||||
from spack.filesystem_view import YamlFilesystemView
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
import spack
|
||||||
|
from spack.directory_layout import YamlDirectoryLayout
|
||||||
|
from spack.filesystem_view import YamlFilesystemView
|
||||||
|
|
||||||
|
|
||||||
class FakeExtensionPackage(object):
|
class FakeExtensionPackage(object):
|
||||||
def __init__(self, name, prefix):
|
def __init__(self, name, prefix):
|
||||||
@ -97,7 +95,7 @@ def python_and_extension_dirs(tmpdir):
|
|||||||
create_dir_structure(ext_prefix, ext_dirs)
|
create_dir_structure(ext_prefix, ext_dirs)
|
||||||
|
|
||||||
easy_install_location = 'lib/python2.7/site-packages/easy-install.pth'
|
easy_install_location = 'lib/python2.7/site-packages/easy-install.pth'
|
||||||
with open(join_path(ext_prefix, easy_install_location), 'w') as F:
|
with open(str(ext_prefix.join(easy_install_location)), 'w') as F:
|
||||||
F.write("""path/to/ext1.egg
|
F.write("""path/to/ext1.egg
|
||||||
path/to/setuptools.egg""")
|
path/to/setuptools.egg""")
|
||||||
|
|
||||||
@ -137,10 +135,10 @@ def test_python_activation_with_files(tmpdir, python_and_extension_dirs):
|
|||||||
python_pkg = python_spec.package
|
python_pkg = python_spec.package
|
||||||
python_pkg.activate(ext_pkg)
|
python_pkg.activate(ext_pkg)
|
||||||
|
|
||||||
assert os.path.exists(join_path(python_prefix, 'bin/py-ext-tool'))
|
assert os.path.exists(os.path.join(python_prefix, 'bin/py-ext-tool'))
|
||||||
|
|
||||||
easy_install_location = 'lib/python2.7/site-packages/easy-install.pth'
|
easy_install_location = 'lib/python2.7/site-packages/easy-install.pth'
|
||||||
with open(join_path(python_prefix, easy_install_location), 'r') as F:
|
with open(os.path.join(python_prefix, easy_install_location), 'r') as F:
|
||||||
easy_install_contents = F.read()
|
easy_install_contents = F.read()
|
||||||
|
|
||||||
assert 'ext1.egg' in easy_install_contents
|
assert 'ext1.egg' in easy_install_contents
|
||||||
@ -163,9 +161,9 @@ def test_python_activation_view(tmpdir, python_and_extension_dirs):
|
|||||||
python_pkg = python_spec.package
|
python_pkg = python_spec.package
|
||||||
python_pkg.activate(ext_pkg, extensions_layout=view.extensions_layout)
|
python_pkg.activate(ext_pkg, extensions_layout=view.extensions_layout)
|
||||||
|
|
||||||
assert not os.path.exists(join_path(python_prefix, 'bin/py-ext-tool'))
|
assert not os.path.exists(os.path.join(python_prefix, 'bin/py-ext-tool'))
|
||||||
|
|
||||||
assert os.path.exists(join_path(view_dir, 'bin/py-ext-tool'))
|
assert os.path.exists(os.path.join(view_dir, 'bin/py-ext-tool'))
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
@ -247,7 +245,7 @@ def test_perl_activation_with_files(tmpdir, perl_and_extension_dirs):
|
|||||||
perl_pkg = perl_spec.package
|
perl_pkg = perl_spec.package
|
||||||
perl_pkg.activate(ext_pkg)
|
perl_pkg.activate(ext_pkg)
|
||||||
|
|
||||||
assert os.path.exists(join_path(perl_prefix, 'bin/perl-ext-tool'))
|
assert os.path.exists(os.path.join(perl_prefix, 'bin/perl-ext-tool'))
|
||||||
|
|
||||||
|
|
||||||
def test_perl_activation_view(tmpdir, perl_and_extension_dirs):
|
def test_perl_activation_view(tmpdir, perl_and_extension_dirs):
|
||||||
@ -266,6 +264,6 @@ def test_perl_activation_view(tmpdir, perl_and_extension_dirs):
|
|||||||
perl_pkg = perl_spec.package
|
perl_pkg = perl_spec.package
|
||||||
perl_pkg.activate(ext_pkg, extensions_layout=view.extensions_layout)
|
perl_pkg.activate(ext_pkg, extensions_layout=view.extensions_layout)
|
||||||
|
|
||||||
assert not os.path.exists(join_path(perl_prefix, 'bin/perl-ext-tool'))
|
assert not os.path.exists(os.path.join(perl_prefix, 'bin/perl-ext-tool'))
|
||||||
|
|
||||||
assert os.path.exists(join_path(view_dir, 'bin/perl-ext-tool'))
|
assert os.path.exists(os.path.join(view_dir, 'bin/perl-ext-tool'))
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
from llnl.util.filesystem import mkdirp, join_path
|
from llnl.util.filesystem import mkdirp
|
||||||
from llnl.util.lock import Lock, ReadTransaction, WriteTransaction
|
from llnl.util.lock import Lock, ReadTransaction, WriteTransaction
|
||||||
|
|
||||||
from spack.error import SpackError
|
from spack.error import SpackError
|
||||||
@ -57,7 +57,7 @@ def __init__(self, root):
|
|||||||
def destroy(self):
|
def destroy(self):
|
||||||
"""Remove all files under the cache root."""
|
"""Remove all files under the cache root."""
|
||||||
for f in os.listdir(self.root):
|
for f in os.listdir(self.root):
|
||||||
path = join_path(self.root, f)
|
path = os.path.join(self.root, f)
|
||||||
if os.path.isdir(path):
|
if os.path.isdir(path):
|
||||||
shutil.rmtree(path, True)
|
shutil.rmtree(path, True)
|
||||||
else:
|
else:
|
||||||
@ -65,14 +65,14 @@ def destroy(self):
|
|||||||
|
|
||||||
def cache_path(self, key):
|
def cache_path(self, key):
|
||||||
"""Path to the file in the cache for a particular key."""
|
"""Path to the file in the cache for a particular key."""
|
||||||
return join_path(self.root, key)
|
return os.path.join(self.root, key)
|
||||||
|
|
||||||
def _lock_path(self, key):
|
def _lock_path(self, key):
|
||||||
"""Path to the file in the cache for a particular key."""
|
"""Path to the file in the cache for a particular key."""
|
||||||
keyfile = os.path.basename(key)
|
keyfile = os.path.basename(key)
|
||||||
keydir = os.path.dirname(key)
|
keydir = os.path.dirname(key)
|
||||||
|
|
||||||
return join_path(self.root, keydir, '.' + keyfile + '.lock')
|
return os.path.join(self.root, keydir, '.' + keyfile + '.lock')
|
||||||
|
|
||||||
def _get_lock(self, key):
|
def _get_lock(self, key):
|
||||||
"""Create a lock for a key, if necessary, and return a lock object."""
|
"""Create a lock for a key, if necessary, and return a lock object."""
|
||||||
|
Loading…
Reference in New Issue
Block a user