Compiler caching was using the `id()` function to refer to configuration dictionary objects. If these objects are garbage-collected, this can produce incorrect results (false positive cache hits). This change replaces `id()` with an object that keeps a reference to the config dictionary so that it is not garbage-collected.
Fixes#11163
The goal of this work is to simplify stage directory structures by eliminating use of symbolic links. This means, among other things, that` $spack/var/spack/stage` will no longer be the core staging directory. Instead, the first accessible `config:build_stage` path will be used.
Spack will no longer automatically append `spack-stage` (or the like) to configured build stage directories so the onus of distinguishing the directory from other work -- so the other work is not automatically removed with a `spack clean` operation -- falls on the user.
* Overhaul PyTorch package
* Flake8
* Distributed requires MPI, NCCL not specified correctly
* Binary was being specified incorrectly
* Run tests at install time
* Disable GLOO in addition to GLOO_IBVERBS
* Add option to disable QTDesigner plugin for qwt
Qt designer shouldn't be necessary to build downstream GUI code.
Currently `qwt^qt~tools` fails to build:
(darwin clang@10.0.1)
```
compiling qwt_designer_plugin.cpp
compiling qwt_designer_plotdialog.cpp
moc qwt_designer_plugin.h
moc qwt_designer_plotdialog.h
rcc qwt_designer_plugin.qrc
qwt_designer_plugin.h:23: Error: Undefined interface
make[1]: *** [moc/moc_qwt_designer_plugin.cpp] Error 1
make[1]: *** Waiting for unfinished jobs....
qwt_designer_plugin.cpp:17:10: fatal error: 'QDesignerFormEditorInterface' file not found
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[1]: *** [obj/qwt_designer_plugin.o] Error 1
make: *** [sub-designer-make_default-ordered] Error 2
```
* Update VTK for newer VisIt and compiler versions
Several changes/enhancements to VTK package
---
Add version 8.1.0 (default version for VisIt 3.x)
---
Tweak VTK options for version 8 and VisIt:
- only add mpi4py version option when mpi4py is enabled
- Require object factory for downstream packages
- Remove OpenGL preference for VTK 8
---
Combine +python3 into +python
The spec for using python3 should just be `+python^python@3:`.
---
Remove unused VTK cmake argument on newer version
---
Patch for Python 3 fails on VTK 6.1 (needed for VisIt 2.x):
```
==> Patch /rnsdhpc/code/spack/var/spack/repos/builtin/packages/vtk/python3.7-const-char.patch failed.
==> Error: ProcessError: Command exited with status 1:
'/usr/bin/patch' '-s' '-p' '1' '-i' '/rnsdhpc/code/spack/var/spack/repos/builtin/packages/vtk/python3.7-const-char.patch' '-d' '.'
```
and as it happens, VisIt 2.13 is incompatible with Python 3 anyway.
---
Fix compiler error:
As spack's configuration warning says, double-quotes can cause trouble:
```
==> [2019-07-29-11:47:55.269653] Warning: Quotes in command arguments can confuse scripts like configure.
The following arguments may cause problems when executed:
-DVTK_REQUIRED_OBJCXX_FLAGS=""
Quotes aren't needed because spack doesn't use a shell.
Consider removing them
```
They were being added to the compile line, causing clang to think it was
asked to compile an empty file:
```
cd /private/var/folders/fy/x2xtwh1n7fn0_0q2kk29xkv9vvmbqb/T/s3j/spack-stage/spack-stage-3nk9bwe_/spack-build/Rendering/OpenGL && /rnsdhpc/code/spack/lib/spack/env/clang/clang++ -DVTK_IN_VTK -DvtkRenderingOpenGL_EXPORTS -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks -DGLX_GLXEXT_LEGACY -O2 -g -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fPIC -fvisibility=hidden -fvisibility-inlines-hidden "" -o CMakeFiles/vtkRenderingOpenGL.dir/vtkCocoaGLView.mm.o -c /rnsdhpc/code/spack/var/spack/stage/vtk-6.1.0-b2mj276iz77fadisv2me365qe27t3gxt/spack-src/Rendering/OpenGL/vtkCocoaGLView.mm
clang: error: no input files
make[2]: *** [Rendering/OpenGL/CMakeFiles/vtkRenderingOpenGL.dir/vtkCocoaGLView.mm.o] Error 1
```
* Modernize/PEP-8 visit package statements
* Add new VisIt version and patches for building on Mac
- VisIt's cmake assumes a 'vtk(tiff|jpeg|png)' *library* target exported by
VTK, but VTK 8.1.x on my configuration seems to have these as header-only
targets with library dependencies.
- Explicitly add QT path to visit configure: Without this, somehow
`${VISIT_QT_DIR}` was being set to empty, so that the build failed with
`missing /bin/moc`.
- VisIt assumes that if it isn't being built statically, QWT has been built as
a mac Framework. QWT actually is built as a framework based on whether QT
itself is.
Error message:
```
-- Looking for QWT
CMake Error at CMake/SetUpThirdParty.cmake:131 (MESSAGE):
Include Directory for QWT (/rnsdhpc/code/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.1-apple/qwt-6.1.3-bmfxirweplzhjoiil4rw632evkyteuwk/lib/qwt.framework/Versions/Current/Headers) does not exist.
Call Stack (most recent call first):
CMake/FindQwt.cmake:57 (SET_UP_THIRD_PARTY)
CMakeLists.txt:1251 (INCLUDE)
```
* ADIOS 2.4.0: Add new Deps
Version 2.4.0 of ADIOS2 added new dependencies that are not
yet listed as `depends_on` and/or disabled otherwise. Add them
now to avoid picking them up from system paths, e.g. `libpng`.
* ADIOS2: Variant Defaults Change
* Python: False by default
* ADIOS1: only used prior to 2.3.0
* UnifyCR: update dependencies and build options
This adds some specifics about dependencies and conflicts and adds
additional build options and variants. UnifyCR now also has limited
fortran support.
* Remove debug statements condition on Spack debug
Change debug print statements to now be turned on when the -g cflag
is found in the flags the user sets.
* add new package: py-python-magic
* tidy up
* Update var/spack/repos/builtin/packages/py-python-magic/package.py
Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>
* add master and dependencies
* remove gcc and make
* add variants, make doc and ch-grow dependencies optional
* capitalize description sentence
* move dependencies and variants below version block
* fix typos
* gromacs: fix simd detection for pre 2018 versions
* pre 2018 the cmake file was named differently
* fixed up post 2018 patch file which was non pretty
* Trim patch
Fixes#12062406c791 addressed "spack module load" for upstream modules but not
the "spack module loads" command. This applies the same fixes from
406c791 to "spack module loads".
* Create package.py
* applied reviewer suggestions
* Update package.py
* remove CamelCase from variant names
* add comment on why fetching package via git
* found typo in variant to cmake-argumentlist translation
* rename variants to ~nonuma ~nompi to be in sync with cmake-args, refine mpi@3-dependency definition
* Revert "rename variants to ~nonuma ~nompi to be in sync with cmake-args, refine mpi@3-dependency definition"
This reverts commit 58e8cf7d93c5665f0b4b50228946857734716cef.
* remove version-preference
* add checksum for singularity release 3.3.0
* update singularity doc URL
URL at the lbl.gov domain has message saying:
"This website is going away soon! Update your bookmarks!"
* add note about build log file for post-install step
* provide links to both 2.x and 3.x security docs
* remove whitespace. Passing flake8 confirmed locally this time :)
* add TODO comment for fakeroot support