summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-12-30bugfix: setgid tests fail when primary group is unknown (#34729)Todd Gamblin1-0/+14
On systems with remote groups, the primary user group may be remote and may not exist on the local system (i.e., it might just be a number). On the CLI, it looks like this: ```console > touch foo > l foo -rw-r--r-- 1 gamblin2 57095 0 Dec 29 22:24 foo > chmod 2000 foo chmod: changing permissions of 'foo': Operation not permitted ``` Here, the local machine doesn't know about per-user groups, so they appear as gids in `ls` output. `57095` is also `gamblin2`'s uid, but the local machine doesn't know that `gamblin2` is in the `57095` group. Unfortunately, it seems that Python's `os.chmod()` just fails silently, setting permissions to `0o0000` instead of `0o2000`. We can avoid this by ensuring that the file has a group the user is known to be a member of. - [x] Add `ensure_known_group()` in the permissions tests. - [x] Call `ensure_known_group()` on tempfile in `test_chmod_real_entries_ignores_suid_sgid`.
2022-12-29docs: avoid errors by using type hints instead of doc types (#34707)Todd Gamblin13-83/+133
There are a number of places in our docstrings where we write "list of X" as the type, even though napoleon doesn't actually support this. It ends up causing warnings when generating docs. Now that we require Python 3, we don't have to rely on type hints in docs -- we can just use Python type hints and omit the types of args and return values from docstrings. We should probably do this for all types in docstrings eventually, but this PR focuses on the ones that generate warnings during doc builds. Some `mypy` annoyances we should consider in the future: 1. Adding some of these type annotations gets you: ``` note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] ``` because they are in unannotated functions (like constructors where we don't really need any annotations). You can silence these with `disable_error_code = "annotation-unchecked"` in `pyproject.toml` 2. Right now we support running `mypy` in Python `3.6`. That means we have to support `mypy` `.971`, which does not support `disable_error_code = "annotation-unchecked"`, so I just filter `[annotation-unchecked]` lines out in `spack style`. 3. I would rather just turn on `check_untyped_defs` and get more `mypy` coverage everywhere, but that will require about 1,000 fixes. We should probably do that eventually. 4. We could also consider only running `mypy` on newer python versions. This is not easy to do while supporting `3.6`, because you have to use `if TYPE_CHECKING` for a lot of things to ensure that 3.6 still parses correctly. If we only supported `3.7` and above we could use [`from __future__ import annotations`](https://mypy.readthedocs.io/en/stable/runtime_troubles.html#future-annotations-import-pep-563), but we have to support 3.6 for now. Sigh. - [x] Convert a number of docstring types to Python type hints - [x] Get rid of "list of" wherever it appears
2022-12-29build(deps): bump actions/setup-python from 4.3.1 to 4.4.0 (#34667)dependabot[bot]4-12/+12
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.3.1 to 4.4.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/2c3dd9e7e29afd70cc0950079bde6c979d1f69f9...5ccb29d8773c3f3f653e1705f474dfaa8a06a912) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-29trinity: add version 2.15.0-FULL (#34666)downloadico1-0/+5
2022-12-29arbor: add v0.8.1 (#34660)Brent Huisman1-4/+14
2022-12-29tamaas: added v2.6.0 (#34676)Lucas Frérot1-0/+1
2022-12-29survey: add v1.0.7 (#34679)Jim Galarowicz1-1/+2
2022-12-29perl-archive-zip: add 1.68 (#34684)Christopher Christofi1-0/+15
2022-12-29boost: apply 'intel-oneapi-linux-jam.patch' to all versions since 1.76 (#34670)Tim Haines1-1/+1
2022-12-29perl-appconfig: add v1.71 (#34685)Christopher Christofi1-0/+16
2022-12-29git-filter-repo: add new package (#34690)Alex Hedges1-0/+31
2022-12-29jq: set -D_REENTRANT for builds on darwin (#34691)David Zmick2-51/+7
2022-12-29libceed: add v0.11.0 (#34694)Jed Brown1-0/+1
2022-12-29AOCC: add v4.0.0 (#33833)AMD Toolchain Support1-32/+43
2022-12-29py-numpy: add v1.24.1 (#34697)Adam J. Stewart1-0/+1
2022-12-29libpsl: new versions through 0.21.2 (#34699)Wouter Deconinck1-3/+14
This adds the final bugfix versions through the 0.21.2 just released. With 0.21.1 the tag name pattern was changed, hence url_for_version.
2022-12-29cernlib: depends_on libxaw libxt (#34448)Wouter Deconinck1-0/+2
Based on the following lines in the top level `CMakeLists.txt` (I can't deep link since gitlab.cern.ch not public), `cernlib` needs an explicit dependency on `libxaw` and `libxt`: ```cmake find_package(X11 REQUIRED) message(STATUS "CERNLIB: X11_Xt_LIB=${X11_Xt_LIB} X11_Xaw_LIB=${X11_Xaw_LIB} X11_LIBRARIES=${X11_LIBRARIES}") ```
2022-12-29singularity, apptainer: --without-conmon into @property config_options (#34474)Wouter Deconinck2-14/+11
Per https://github.com/spack/spack/issues/34192, apptainer does not support `--without-conmon`, so we introduce a base class `config_options` property that can be overridden in the `apptainer` package.
2022-12-29dd4hep: depends_on virtual tbb instead of intel-tbb (#34704)Wouter Deconinck1-1/+2
Recent changes to dd4hep remove the explicit dependency on an older version of intel-tbb. This makes this explicit in the spack package.
2022-12-29veloc: add v1.6 and dependencies (#34706)wspear1-2/+10
2022-12-29Change regex in bacio patch to avoid python re bug (#34668)Alex Richert1-1/+1
2022-12-28bugfix: make texinfo build properly with gettext (#34312)Todd Gamblin1-0/+7
`texinfo` depends on `gettext`, and it builds a perl module that uses gettext via XS module FFI. Unfortunately, the XS modules build asks perl to tell it what compiler to use instead of respecting the one passed to configure. Without this change, the build fails with this error: ``` parsetexi/api.c:33:10: fatal error: 'libintl.h' file not found ^~~~~~~~~~~ ``` We need the gettext dependency and the spack wrappers to ensure XS builds properly. - [x] Add needed `gettext` dependency to `texinfo` - [x] Override XS compiler with `PERL_EXT_CC` Co-authored-by: Paul Kuberry <pakuber@sandia.gov>
2022-12-28Consolidate how Spack uses `git` (#34700)Todd Gamblin26-162/+138
Local `git` tests will fail with `fatal: transport 'file' not allowed` when using git 2.38.1 or higher, due to a fix for `CVE-2022-39253`. This was fixed in CI in #33429, but that doesn't help the issue for anyone's local environment. Instead of fixing this with git config in CI, we should ensure that the tests run anywhere. - [x] Introduce `spack.util.git`. - [x] Use `spack.util.git.get_git()` to get a git executable, instead of `which("git")` everywhere. - [x] Make all `git` tests use a `git` fixture that goes through `spack.util.git.get_git()`. - [x] Add `-c protocol.file.allow=always` to all `git` invocations under `pytest`. - [x] Revert changes from #33429, which are no longer needed.
2022-12-27CPMD: Remove now unused "import"Rémi Lacroix1-2/+0
2022-12-27CPMD: Update for open-source releaseRémi Lacroix1-38/+3
CPMD has been open-sourced on GitHub so manual download is no longer needed. The patches have been included in the new 4.3 release.
2022-12-27spack graph: rework to use Jinja templates and builders (#34637)Massimiliano Culpo6-214/+253
`spack graph` has been reworked to use: - Jinja templates - builder objects to construct the template context when DOT graphs are requested. This allowed to add a new colored output for DOT graphs that highlights both the dependency types and the nodes that are needed at runtime for a given spec.
2022-12-26types: fix type annotations and remove novm annootations for llnl moduleTodd Gamblin2-18/+13
Apparently I forgot to do this in #34305.
2022-12-26timer: pick a single unit based on max duration.Harmen Stoppels3-17/+25
2022-12-26`spack solve`: use consistent units for timeTodd Gamblin2-5/+5
`spack solve` is supposed to show you times you can compare. setup, ground, solve, etc. all in a list. You're also supposed to be able to compare easily across runs. With `pretty_seconds()` (introduced in #33900), it's easy to miss the units, e.g., spot the bottleneck here: ```console > spack solve --timers tcl setup 22.125ms load 16.083ms ground 8.298ms solve 848.055us total 58.615ms ``` It's easier to see what matters if these are all in the same units, e.g.: ``` > spack solve --timers tcl setup 0.0147s load 0.0130s ground 0.0078s solve 0.0008s total 0.0463s ``` And the units won't fluctuate from run to run as you make changes. -[x] make `spack solve` timings consistent like before
2022-12-26qt-base: ~network by default (#34688)Adam J. Stewart1-1/+1
2022-12-24py-pytest-datadir: Init at 1.4.1 (#34692)Rohit Goswami1-0/+21
* py-pytest-datadir: Init at 1.4.1 * py-pytest-data-dir: Fix missing dep Co-authored-by: "Adam J. Stewart" <ajstewart426@gmail.com> Co-authored-by: "Adam J. Stewart" <ajstewart426@gmail.com>
2022-12-24py-uvw: added v0.5.0 (#34677)Lucas Frérot1-0/+1
2022-12-23Update py-meson-python (0.11.0, 0.12.0) and meson (0.64.1, 1.0.0) (#34675)Ralf Gommers2-6/+14
* Update py-meson-python versions (0.11.0, 0.12.0) * Update `meson` to version 0.64.1 * Add Meson 1.0.0 * Apply code review suggestions
2022-12-24tmux: add 3.3a (#34671)David Zmick1-0/+1
2022-12-23QMakeBuilder: fix bug introduced during multi-bs refactor (#34683)Adam J. Stewart1-1/+1
2022-12-22py-kornia: add v0.6.9 (#34652)Adam J. Stewart1-3/+4
2022-12-22libelf: fix build on macOS x86_64 (#34646)Adam J. Stewart1-5/+5
2022-12-22bacio: fix typo in patch method (#34663)Alex Richert1-1/+1
2022-12-22sherpa: add v2.2.13 (#34628)Wouter Deconinck1-0/+1
2022-12-22ML CI: Linux x86_64 (#34299)Adam J. Stewart4-256/+283
* ML CI: Linux x86_64 * Update comments * Rename again * Rename comments * Update to match other arches * No compiler * Compiler was wrong anyway * Faster TF
2022-12-22added py-dynim package (#34651)Loïc Pottier1-0/+26
Signed-off-by: Loïc Pottier <48072795+lpottier@users.noreply.github.com> Signed-off-by: Loïc Pottier <48072795+lpottier@users.noreply.github.com>
2022-12-22Restrict a patch of rhash to versions >=1.3.6 (#34310)Andrew Wood1-1/+1
2022-12-22Fix combine_phase_logs text encoding issues (#34657)Harmen Stoppels2-5/+20
Avoid text decoding and encoding when combining log files, instead combine in binary mode. Also do a buffered copy which is sometimes faster for large log files.
2022-12-22neve: add new package (#34596)Wladimir Arturo Garces Carrillo1-0/+43
Co-authored-by: WladIMirG <WladIMirG@users.noreply.github.com>
2022-12-22Add `--fresh` to docs to actually upgrade spack environments (#34433)Alec Scott1-5/+40
2022-12-22docs: show module documentation before submodules (#34258)Todd Gamblin1-0/+1
Currently, the Spack docs show documentation for submodules *before* documentation for submodules on package doc pages. This means that if you put docs in `__init__.py` in some package, the docs in there will be shown *after* the docs for all submodules of the package instead of at the top as an intro to the package. See, e.g., [the lockfile docs](https://spack.readthedocs.io/en/latest/spack.environment.html#module-spack.environment), which should be at the [top of that page](https://spack.readthedocs.io/en/latest/spack.environment.html). - [x] add the `--module-first` option to sphinx so that it generates module docs at top of page.
2022-12-22docs: remove monitors and analyzers (#34358)Todd Gamblin3-434/+0
These experimental features were removed in #31130, but the docs were not. - [x] remove the `spack monitor` and `spack analyze` docs
2022-12-22librsvg: add 2.40.21, which does not require rust (#34585)Benjamin S. Kirk1-2/+15
* librsvg: add 2.40.21, which does not require rust and has some security backports https://download.gnome.org/sources/librsvg/2.40/librsvg-2.40.21.news * librsvg: prevent finding broken gtkdoc binaries when ~doc is selected. On my CentOS7 hosts, ./configure finds e.g. /bin/gtkdoc-rebase even when ~doc is selected. These tools use Python2, and fail with an error: "ImportError: No module named site" So prevent ./configure from finding these broken tools when not building the +doc variant.
2022-12-22openbabel: add 3.1.0 and 3.1.1 (#34631)Rocco Meli1-0/+4
2022-12-22reframe: rework recipe, add v4.0.0-dev4 (#34584)Vasileios Karakasis1-11/+19