* OpenFOAM: rationalize architecture options
- older versions of OpenFOAM had WM_ARCH_OPTION to choose a 32-bit
build on 64-bit architectures. This is not exactly relevant anymore
and has now been largely removed from OpenFOAM.
- simultaneously the newest version of OpenFOAM has rationalized the
handling of special settings for KNL by rolling these into the
compiler options. We now do the same thing here in spack.
1. Reuse the internal variable arch_option to convey processor-specific
optimizations and add these into the C++OPT=... statement.
2. Drop spack support for configuring a 32-bit build on 64-bit
hardware.
These changes can also be applied to older OpenFOAM versions, and to
various OpenFOAM forks without issue.
* update openfoam versions. New release 1906, patched 1812 version.
ncl does not build with newer versions of gdal (or rather proj). This
also needs a small change to gdal, otherwise we end up with both proj@5
and proj@6 in the spec.
* Remove individual font-* packages and add them as resources of the
font-util package
* Update font-util package to Autotools-based package, and call
autoreconf to regenerate the old configure script
* Add font-adobe-utopia-type1
* fmt: Add cxxstd variant, plus cmake/c++ patches
Spack supported versions of fmt default to C++11 for versions
less than 5, C++14 greater than 5, with fmt implementing
fallbacks to whatever compiler supports.
To give better ABI compatibility and use of newer standards, provide
a `cxxstd` variant defaulting to 11 with 98-17 options. Use cmake_args
to set CMAKE_CXX_STANDARD as appropriate, plus use of `FMT_USE_CPP11`
option for C++98 builds. Use `conflicts` to disable use of certain
standards in versions that don't support, or fail the build, with
those standards.
Add patches to unify use of `CMAKE_CXX_STANDARD` in 3.0 versions,
remove hard-coding of compiler flags in `fmt-config.cmake`, and
prevent use of C++11 features in 4.1.0 when in supported C++98
mode.
Default to not building documents as no dependency on Doxygen is
yet present, and they are not part of the "all" build.
* Use CMake to enforce C++ standard support
Fail configure step if fmt tries to build with a cxxstd variant
not supported by the compiler (or known to CMake).
* fmt: New version 5.3.0
* The py-pytables package depends on hdf5-blosc
* Further modifications to py-pytables package
The 3.2.2 version of py-pytables should still build with internal blosc.
The issue with locking in a multithreaded environment has been
fixed/worked around in version 3.3.
Also, add bzip2 and lzo variants.
* new package/py-blessed
* make flake8 happy
* fix docstring
* tab to spaces
* Update var/spack/repos/builtin/packages/py-blessed/package.py
specify dependency version.
Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>
* Update var/spack/repos/builtin/packages/py-blessed/package.py
specify dependency version
Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>
* add setuptools as depedency
Starting with 1.69.0, boost added a bjam option for the default symbol
visibility. Up to 1.68.0, the value was always 'global'. 1.69.0
changed the default to 'hidden' but added an option.
Most packages will work with hidden and won't notice. But some
packages may discover that an interface that they rely on is now
hidden and inaccessible.
https://boostorg.github.io/build/manual/develop/index.html#bbv2.builtin.features.visibility
For resources, it is desirable to use the expanded archive name of
the resource as the name of the directory when adding it to the root
staging area.
#11528 established 'spack-src' as the universal directory where
source files are placed, which also affected the behavior of
resources managed with Stages.
This adds a new property ('srcdir') to Stage to remember the name of
the expanded source directory, and uses this as the default name when
placing a resource directory in the root staging area.
This also:
* Ensures that downloaded sources are archived using the expanded
archive name (otherwise Spack will not be able to determine the
original directory name when using a cached archive).
* Updates working_dir context manager to guarantee restoration of
original working directory when an exception occurs
* Adds a "temp_cwd" context manager which creates a temporary
directory and sets it as the working directory
Starting with 2.1.0, backports.functools_lru_cache replaces functools32
when using python 2.7.x until python2 support is dropped in 3.0.0.
Change-Id: I8db61eac975da0042f6f5babe0f5f0c92807200e
Fixes#11526
The xfd configure script tests for libintl but incorrectly concludes
that no additional library is needed because gettext is provided in
libc. So we add '-lintl' to ldlibs to point to the Spack-installed
gettext. Note that the xfd configure script does not have a
--with-gettext option to do this for us.
Also add version 1.1.3
* xtensor-python: add version 0.23.1
* xtensor-python: update xtensor/xtl dependency version constraints
for 0.23.1
* xtensor-python: remove xtensor/xtl dependency version constraints
for the develop version to favor the latest (develop) version of
these dependencies
* xsimd: add version 7.2.3
* xtensor: add tbb variant to enable TBB parallelization
* xtensor: add version 0.20.7
* xtensor: update CMake args enable xsimd/tbb support based on
variant settings
* xtl: add version 0.6.4
* Added Cinch Spackage and updated Flecsi to Use It
Added spackage for Cinch build system and updated flecsi spackage to use
the external version of cinch
* Flake8 compliance for Cinch and Flecsi
* Fixed Cinch Issue and Requested PR Changes
Swapped cinch back to master branch rather than test branch and style
issues for PR
repeatmasker depended on HMMER but was never actually configured to
use it. The package also had many shebangs pointing to random perl
locations, now patched to use Spack's perl installation.
* Also add version 0.10.0
* Add leading '0' to 0.9.x versions (e.g. 0.09.1) and 0.8.x versions
* Don't mention acts-framework, that package isn't in Spack yet
* Updates to libMesh: added v1.3.1 checksum, added vtk variant, bugfix for enabling petsc when slepc variant is specified
* fixed indentation issues identified by Travis CI
* - updates version number
- added master as a version
- added new variant options for perflog, metaphysicl and blocked storage
-- bug-fix for metis
* fixes for spack indentation errors
* renaming develop to master following review comment of PR.
- A program that generates ASCII pictures of a cow with a message.
- This is used by the ISC19 Singularity tutorial, so we should probably
have it in Spack.
* new package: mutationpp
* Update package.py
* flake8: correct package.py for flake8-python-style
* Update package.py
* modifications as requested by reviewer for #11705
Change 'destination' to 'placement' in the use of resource() for
intel-xed and hpcviewer. Recent commits (1842873f and eb584d89)
changed the directory path for a resource and thus broke the build
for these packages.
#11528 updated Stage to always store a Package's source in a fixed
directory accessible via `Stage.source_path` This left behind a
number of packages which were expecting to access the source code
via `Stage.path`. This Updates those packages to use
`Stage.source_path` instead.
This also updates the name of the fixed directory: The original name
of the fixed directory was "src", so if an expanded archive created a
"src" directory, then users inspecting the directory structure could
see paths like "src/src" (which wasn't wrong but could be confusing).
Therefore this also updates the name of the fixed directory to
"spack-src".
* warpx: only allow master branch, and fix build on darwin
* warpx: Added CXXFLAGS=-std=c++11 for clang
* warpx: further clean up of openmp and c++11 flags
* warpx: Get around the problem with resources
The update uses placement instead of destination
Fixed logic behind flecsi backends to not require legion for an mpi
build and to better support required combinations.
Also made graphviz support and tutorial building optional
* Paraview/VTK: Fix failure on intel builds
Paraview@5.6.0 fails to build with intel compilers on certain platforms.
Error messages have been traced to the optional MotionFX lib.
(see https://discourse.paraview.org/t/error-build-5-6-0-rc1/572)
Turning off motionfx allows for succesful builds on these platforms.
ADIOS2 is the latest implementation of the ADaptable Input Output System,
ADIOS. This brand new architecture was designed to continue supporting the
performance legacy of ADIOS, and extend its current capabilities to address
current and future input/output (IO) challenges in the scientific data
lifecycle through effective research and development (R&D) activities.
ADIOS2 was recently added as a Third Party Library of Trilinos when it
was integrated to IOSS, a library inside the SEACAS package.
Due to the large number of issues this migration has caused, this rolls back
to the older autotools build. However, it still keeps the updates wrt
variants and virtual packages.
* Apply patch to git to make it search for config files from its current location instead of the locations hard coded at install.
* Add provenance info for patch
* Pass needed flags to make
* Environment variables need because of relocation
* Updating the TAU package with 2.28 and public repo
* Cleaning up TAU package and fixing binutils to install extras
The extras variant will install the extra ELF headers needed
by the TAU package. The TAU package has been cleaned up and
extended.
* Adding some comments to the changes in binutils
* Adding correct python support, finding include and lib paths.
* Added PDT 3.25.1.
* Added TAU v2.28.1 with libdwarf and libelf.
* When +libdwarf is activated, +libelf is not automatically activated. It checks separately for libelf.
* Xrootd: set PYTHON_EXECUTABLE with +python variant
When building with python3 PYTHON_EXECUTABLE needs to be set for deprecated FindPythonInterp to work as expected.
* Add comment
* Flake8
* More flake8
* Update package.py
* typo
* Also add versions 0.9.9.104, 0.9.9.52, 0.9.9.0, and 'develop'
* Replace version 0.9.7 with 0.9.7.0
* Update Rose to be an Autotools package
* Update boost dependency to 1.60.0 or later (previously 1.47.0)
* Add EDG binary identifiers for ROSE versions installing from
archives (rather than git)
* Add variants for mvapich2 backend, c++11, debug symbols,
optimization, and ROSE-based projects (codethorn, autopar, and
polyopt)
* Remove patch add_spack_compiler_recognition
* Improve C++ standard computation in ACTS package
* Use a more clever strategy for aligning ACTS cxxstd with ROOT cxxstd
* Add new ACTS releases
* ACTS is not compatible with the new Boost CMake build system yet
* Explain why Boost 1.70 does not work currently
* Add LSF package, which cannot be installed by Spack and must be
system-installed. The package install will fail if no external
LSF is registered in packages.yaml (LSF may not be installed in a
well-known location and the external entry helps Spack locate it
for dependents).
* Add LSF dependency to OpenMPI when schedulers=lsf is chosen
Previously, the vtkm package was adding a "../" option to the
cmake command line. I suppose this was supposed to be pointing
to the source code, but did not. Rather, Spack correctly adds
the source directory as the first argument to cmake. However,
because ../ was added, it used that as the source directory
instead.
Simply remove this argument to make CMake work correctly.
* bump eospac version
* Revert "bump eospac version"
This reverts commit 835b1f822d8c083f6ab9eb17222c00409e8eb3da.
* Add support for new package: unittest-cpp
Add variant 'pic' for including in shared libraries.
Add build dependency on perl. Compiling mbedtls runs several perl
scripts.
Add versions 2.7.10 and 2.16.1, the heads of the two main stable
branches.
This PR implements several refactors requested in #11373, specifically:
- Config scopes are used to handle builtin defaults, command line overrides
and package overrides (`parallel=False`)
- `Package.make_jobs` attribute has been removed; `make_jobs` remains
as a module-scope variable in the build environment.
- The use of the argument `-j` has been rationalized across commands
- move '-j'/'--jobs' argument into `spack.cmd.common.arguments`
- Add unit tests to check that setting parallel jobs works as expected
- add new test to ensure that build job setting is isolated to each build
- Fix packages that used `Package.make_jobs` (i.e. `bazel`)
* When fabrics=auto or schedulers=auto, the intent is to defer to the
OpenMPI configure and let it determine and use what it finds
available on the system. The current behavior for 'with_or_without'
in the case of 'auto' explicitly disables all possible values.
This updates the logic to call 'with_or_without' only when the
value of fabrics/schedulers is not 'auto'.
* To allow explicitly disabling all fabrics/schedulers, each of these
variants has added support for 'none' (which is also the default
value).
* Add a conflict for the loadleveler scheduler for openmpi-3 and
above as it is no longer a valid configure option.
* Update optional-lite and span-lite to use CMakePackage
These packages only have CMake installs on their most recent versions.
Therefore, we overload all of the CMake stages to fallback to the old
versions (no-op for most, copytree for install), and use CMakePackage on
the new versions.
* Add new string-view-lite version with CMake install support
* Only override phases for old versions of *-lite packages
* trilinos: add variant to disable chaco from seacas
keep it OFF by default due to the presence of the global symbol "divide"
that can lead to symbol clash with other libraries, for example see
https://github.com/dealii/dealii/issues/8170#issuecomment-492700787
* dealii: add conflict statement for adol-c and Trilinos SEACAS Chaco
* dyninst: rework the cmake args for version 10.1 and later
Add a separate when() case for the cmake args for Dyninst 10.1.0 and
later. The prereq args have changed enough that this makes things
easier going forward. (My previous commit 26b9369c was inaccurate and
temporary.)
Dyninst 10.1.0 accepts boost 1.70, but earlier dyninst are restricted
to <= 1.69 (not worth back porting every boost change).
Change all the dyninst versions to 3 digits for clarity and
consistency.
* Add version 10.1.0.
* added patch for intel-tbb@2019.1: with old compilers
* sparately specify when @:2018 and @2019
the reason we can't say @:2019 is that would include @2019.1 where the
patch doesn't work.
* should be possible to list when constraint as @:2019
According to my reading of ["Version ranges" in the Spack
docs](https://spack.readthedocs.io/en/latest/packaging_guide.html#version-ranges),
this should apply to up to `2019` but not `2019.1:`
* @:2019.0 appears to be necessary to specify 2019 but not 2019.1
* specifying 2019.1 2019.2 2019.3 2019.4 separately and explcitly
* flake8 fixes for long lines.
* add comments to explain why so many different patch directives
* remove blank like for flake8
* revert spec %gcc@4.8.0:4.99999 -> %gcc@4.8.0:
- CMake is built *very* frequently, and the number of dependencies it has
accumulated can take a very long time on some systems.
- Use +ownlibs by default to avoid the build overhead. This won't
interfere with other packages by introducing conflicting libraries, as
CMake is nearly always a build dependency.
This avoids using Boost 1.70.0, fixes library access in OpenSpeedShop
packages, adds new versions, and updates QT dependency constraints
in CBTF and OpenSpeedShop packages
- Constrain Boost dependency to 1.69.0 or earlier to avoid issues
with 1.70.0 for Open|SpeedShop and CBTF packages
- Update DYNINSTAPI_RT_LIB environment variable to use single library
from "find_libraries" (which returns a list) in OpenSpeedShop
packages
Fixes#11443
- Add version 1.9.3 for CBTF Argo Navis, CBTF Krell, CBTF LANL, and
CBTF packages
- Add version 2.4.1 for OpenSpeedShop Utils and OpenSpeedShop
packages
- Update QT dependency to 5.10.0 or greater for QtGraph and CBTF Argo
Navis packages
This makes several changes to make CDO work with gcc@9:
- Add version 1.9.7rc2
- Add a patch to make version 1.9.7rc2 build with gcc@9:
- Add a conflict with GCC 9 for earlier versions of CDO
It also adds a pkgconfig build dependency as configure checks for it.
* recon: new package at 1.08
* recon: add period
* recon: use proper decorators, better documentation
* recon: fix incorrect os import
* recon: add repeatmasker patch as variant
The source is managed as a set of files in an FTP URL. Since there
are no FetchStrategy's implemented for this setup, the files are
managed as a set of Resource's
Add dependencies to CMake and GnuTLS which would otherwise be
picked up from the system
* Add gnutls as explicit dependency of CMake
* Add new package libidn2 as explicit dependency for gnutls