#8223 replaced regex-based makefile target parsing with an invocation of
"make -q". #8818 discovered that "make -q" can result in an error for some
packages.
Also, the "make -q" strategy relied on interpreting the error code, which only
worked for GNU Make and not BSD Make (which was deemed acceptable at
the time). As an added bonus, this implementation ignores the exit code and
instead parses STDERR for any indications that the target does not exist; this
works for both GNU Make and BSD Make.
#8223 also updated ninja target detection to use "ninja -t targets". This does
not change that behavior but makes it more-explicit with "ninja -t targets all"
This also adds tests for detection of "make" and "ninja" targets.
This replaces the single github issue-reporting template with templates for the
following types of issues:
* Build issues
* Spack command errors
* Feature request
Each template includes suggestions which are generally useful for the type of
issue encountered.
* Add latest release 3.0.2
https://www.open-mpi.org/software/ompi/v3.0/:x
Signed-off-by: Daniel Topa <dantopa@lanl.gov>
* 1. Added correct md5 sum for Open MPI v3.1.1 (https://www.open-mpi.org//software/ompi/v3.1/)
2. Made v3.1.1 the default version
3. Added libmpiso versions for v3.1.1 and 3.0.2
Signed-off-by: Daniel Topa <dantopa@lanl.gov>
* Added Open MPI v2.14 to version list; Tested build; Added libmpi.so version
Signed-off-by: Daniel Topa <dantopa@lanl.gov>
* QMCPACK now supports QE 6.3. Dropped QE 5.3 due to incompatibilities.
* QMCPACK general clean-up of depends_on.
* Add QMCPACK 3.5.0
* More robust support of MKL detection in QMCPACK.
Fixes#9001#8289 added support for install_tree and copy_tree to merge into an existing
directory structure. However, it did not properly handle relative symlinks and
also removed support for the 'ignore' keyword. Additionally, some of the tests
were overly-strict when checking the permissions on the copied files.
This updates the install_tree/copy_tree methods and their tests:
* copy_tree/install_tree now preserve relative link targets (if the symlink in the
source directory structure is relative, the symlink created in the destination
will be relative)
* Added support for 'ignore' argument back to copy_tree/install_tree (removed
in #8289). It is no longer the object output by shutil.ignore_patterns: you pass a
function that accepts a path relative to the source and returns whether that
path should be copied.
* The openfoam packages (currently the only ones making use of the 'ignore'
argument) are updated for the new API
* When a symlink target is absolute, copy_tree and install_tree now rewrite the
source prefix to be the destination prefix
* copy_tree tests no longer check permissions: copy_tree doesn't enforce
anything about permissions so its tests don't check for that
* install_tree tests no longer check for exact permission matching since it can add
file permissions
* libunwind: add version 1.3-rc1 and variant xz
Version 1.3-rc1 is the latest published snapshot from libunwind.
Variant xz adds spack-built support for reading compressed symbol
tables, or else disables this feature. Without the variant, libunwind
will look for liblzma in /usr/lib.
* Add preferred=True to version 1.2.1 as the last official stable
release.
* gperftools@2.7: new version
* gperftools: update homepage & url
The URL in the homepage field of the gperftools package redirects to
its GitHub repo, and the URL for version 2.3 returns a 404 error. This
commit updates both fields to the most recent sensible values.
* gperftools: update commit hashes to sha256
This commit deletes the url field for all listed versions because it
is no longer needed as a result of updating the package url field. In
addition, all commit hashes are updated to SHA256.
- `imp` is deprecated and seems to have started having some weird
issues on certain Linux versions.
- In particular, the file argument to `load_source` is ignored on
arch linux with Python 3.7.
- `imp` is the only way to do imports in 2.6, so we'll keep it around for
now and use it if importlib won't work.
- `importlib` is the new import system, and it allows us to get
lower-level access to the import implementation.
- This consolidates all import logic into `spack.util.imp`, and make it
use `importlib` if it's avialable.
Replace use of `shutil.copytree` with `copy_tree` and `install_tree` functions in `llnl.util.filesystem`.
- `copy_tree` copies without setting permissions. It should be used to copy files around in the build directory.
- `install_tree` copies files and sets permissions. It should be used to copy files into the installation directory.
- `install` and `copy` are analogous single-file functions.
- add more extensive tests for these functions
- update packages to use these functions.
* zoltan: fix building with Intel compilers
- building with the Intel compilers may require explicit linking
with the Intel Fortran library (libifcore)
* simplify code; get rid of format() for static strings
- dependency patching test didn't attempt to apply patches; just to see
whether they were on the spec.
- it applies the patch now and verifies that that patch was applied.