Commit Graph

95 Commits

Author SHA1 Message Date
Harmen Stoppels
d0cbd056a8
spack.package: wrap llnl.util.tty (#48793)
avoid import of llnl.util.tty in packages
2025-01-31 08:17:29 +01:00
Todd Gamblin
f635337af8
Remove years from license headers (#48352) 2025-01-02 15:40:28 +01:00
Chris White
3589edcc6d
conduit package: Honor compiler extra_rpaths + extras (#46046)
- Honor compiler extra_rpaths (this build bypasses spack wrappers,
  so the RPATHs are added explicitly as CMake options)
- Use root_cmakelists_dir instead of adding it to the command line
- Add BLT as a dependency, allowing different versions outside of what
  is in the tarball
- Put a copy of host-config in the stage directory: this allows
  examination of the host-config when a build fails (before, the
  host-config was just stored in the install directory, which is
  deleted by default on a failed build)
2024-08-29 13:59:15 -07:00
Auriane R.
530639e15f
Use satisfies instead of if ... in spec in b* and c* directories (#45555) 2024-08-04 11:59:13 -06:00
Harmen Stoppels
7b9f8abce5
Add depends_on([c,cxx,fortran]) (#45217)
Add language dependencies `c`, `cxx`, and `fortran`.

These `depends_on` statements are auto-generated based on file extensions found
in source tarballs/zipfiles.

The `# generated` comment can be removed by package maintainers after
validating correctness.
2024-07-17 16:07:43 +02:00
Cyrus Harrison
a31aeed167
conduit: add v0.9.2 (#44308) 2024-05-22 10:05:40 +02:00
Harmen Stoppels
125206d44d
python: always use a venv (#40773)
This commit adds a layer of indirection to improve build isolation with 
and without external Python, as well as usability of environment views.

It adds `python-venv` as a dependency to all packages that `extends("python")`, 
which has the following advantages:

1. Build isolation: only `PYTHONPATH` is considered in builds, not 
   user / system packages
2. Stable install layout: fixes the problem on Debian, RHEL and Fedora where 
   external / system python produces `bin/local` subdirs in Spack install prefixes. 
3. Environment views are Python virtual environments (and if you add 
   `py-pip` things like `pip list` work)

Views work whether they're symlink, hardlink or copy type.

This commit additionally makes `spec["python"].command` return 
`spec["python-venv"].command`. The rationale is that packages in repos we do 
not own do not pass the underlying python to the build system, which could still 
result in incorrectly computed install layouts.

Other attributes like `libs`, `headers` should be on `python` anyways and need no change.
2024-05-06 16:17:35 +02:00
Cyrus Harrison
5d6dec5a5c
conduit: add v0.9.1 (#42510) 2024-02-12 09:30:04 +01:00
Todd Gamblin
3118647802
Update copyright year to 2024 (#41919)
It was time to run `spack license update-copyright-year` again.
2024-01-02 09:21:30 +01:00
Aiden Grossman
19c20563cc Initial License Checkin
This patch adds license information for about 5,300 packages from automated sources.
The license information was obtained from Alpine Linux and PyPI and processed
using tooling available in https://github.com/boomanaiden154/spack-license-utils.
The license field was added in after all other directives in an automated fashion.

Note that while this license information is probably fairly accurate, it is not
guaranteed to be accurate. In addition some of the license strings from Alpine Linux
might not be valid SPDX license strings. Invalid SPDX identifiers can be picked up
and fixed once we have validation/parsing infrastructure in place for the solver,
and issues can be fixed as they come up.
2023-12-27 11:20:45 -08:00
Harmen Stoppels
e51748ee8f
zlib-api: new virtual with zlib/zlib-ng as providers (#37372)
Introduces a new virtual zlib-api, which replaces zlib in most packages.

This allows users to switch to zlib-ng by default for better performance.
2023-08-09 09:22:58 -04:00
Chris White
f017f586df
add conflict for +parmetis when ~mpi (#39050) 2023-07-24 10:54:18 -07:00
Chris White
32d0b5ca97
conduit: remove no longer needed blueos logic (#38698) 2023-07-04 07:52:59 -04:00
Cyrus Harrison
648839dffd
add conduit 0.8.8 release (#37776) 2023-05-19 00:34:19 -04:00
Cyrus Harrison
d82fc158ca
add conduit 0.8.7 release (#36357) 2023-03-30 12:40:35 -04:00
Massimiliano Culpo
ddecf07045
Use the maintainers directive in all packages (#35201) 2023-02-01 21:07:25 -08:00
Harmen Stoppels
fce95e2efb
license year bump (#34921)
* license bump year
* fix black issues of modified files
* mypy
* fix 2021 -> 2023
2023-01-18 14:30:17 -08:00
Cyrus Harrison
4727a9b976
add conduit 0.8.6 release (#34894) 2023-01-13 20:53:21 -08:00
Cyrus Harrison
2b006bb6ec
add conduit 0.8.5 release and caliper variant (#34669) 2023-01-02 16:00:44 +01:00
Chris White
3ea4b53bf6
add utilities and examples variants to conduit (#33804) 2022-11-10 11:05:24 -07:00
Cyrus Harrison
a2bdbfcd24
add conduit 0.8.4 release (#32343) 2022-08-23 21:33:49 -06:00
Axel Huebl
39beafc99a
Ascent, Conduit & VTK-h: don't assume I have Fortran (#32285)
* VTK-h: don't assume I have Fortran

Don't assume I have a working Fortran compiler in my toolchain :)

* Conduit: Do not Assume Fortran

* Ascent: Do not Assume Fortran

* fix style
2022-08-20 10:12:23 -07:00
Todd Gamblin
f52f6e99db black: reformat entire repository with black 2022-07-31 13:29:20 -07:00
Tom Scogland
18c2f1a57a
refactor: packages import spack.package explicitly (#30404)
Explicitly import package utilities in all packages, and corresponding fallout.

This includes:

* rename `spack.package` to `spack.package_base`
* rename `spack.pkgkit` to `spack.package`
* update all packages in builtin, builtin_mock and tutorials to include `from spack.package import *`
* update spack style
  * ensure packages include the import
  * automatically add the new import and remove any/all imports of `spack` and `spack.pkgkit`
    from packages when using `--fix`
  * add support for type-checking packages with mypy when SPACK_MYPY_CHECK_PACKAGES
    is set in the environment
* fix all type checking errors in packages in spack upstream
* update spack create to include the new imports
* update spack repo to inject the new import, injection persists to allow for a deprecation period

Original message below:
 
As requested @adamjstewart, update all packages to use pkgkit.  I ended up using isort to do this,
so repro is easy:

```console
$ isort -a 'from spack.pkgkit import *' --rm 'spack' ./var/spack/repos/builtin/packages/*/package.py
$ spack style --fix
```

There were several line spacing fixups caused either by space manipulation in isort or by packages
that haven't been touched since we added requirements, but there are no functional changes in here.

* [x] add config to isort to make sure this is maintained going forward
2022-05-28 12:55:44 -04:00
Chris White
cfed42ecfc
guard against SPACK_FC possibly not being defined (#30581) 2022-05-10 12:19:03 -05:00
Chris White
2e9da47a2d
Ascent/Conduit: re-add fortran compiler that was mistakenly removed (#30351) 2022-04-28 07:09:40 -07:00
Cyrus Harrison
79be21c8e4
add conduit 0.8.3 release (#30067) 2022-04-14 11:42:31 -06:00
Massimiliano Culpo
d0ad644ea6
Remove custom phases in packages (1/n) (#29968)
* abi-dumper: remove custom phases

* apktool: remove custom phases, add v2.6.1

* aragorn: remove custom phases

* ascent: remove custom phases

* astral: remove custom phases, add v5.7.1

* bigdft: remove redundant phase definitions

* bazel: remove custom phases phase definitions

* blasr: remove custom phases phase definitions

* bmake: remove custom phases phase definitions, add v20220330

* botan: remove custom phases phase definitions

* breakdancer: remove custom phases phase definitions

* dnstracer: remove custom phases phase definitions

* conduit: remove custom phases phase definitions

* eclipse-gcj-parser: remove custom phases phase definitions

* eem: remove custom phases phase definitions

* fasttree: remove custom phases phase definitions

* fleur: remove custom phases phase definitions

* fpm: remove custom phases phase definitions

* genie: remove custom phases phase definitions

* gluegen: remove custom phases phase definitions

* gnat: remove custom phases phase definitions

* hpgmg: remove custom phases phase definitions

* karma: remove custom phases phase definitions

* libc: remove custom phases phase definitions
2022-04-11 11:39:50 +02:00
Adam J. Stewart
5df10c04cd
Use stable URLs and ?full_index=1 for all github patches (#29239)
The number of commit characters in patch files fetched from GitHub can change,
so we should use `full_index=1` to enforce full commit hashes (and a stable
patch `sha256`).

Similarly, URLs for branches like `master` don't give us stable patch files,
because branches are moving targets. Use specific tags or commits for those.

- [x] update all github patch URLs to use `full_index=1`
- [x] don't use `master` or other branches for patches
- [x] add an audit check and a test for `?full_index=1`

Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2022-03-23 08:50:00 +01:00
Seth R. Johnson
5bea24526f
Fix overconstrained HDF5 variants (#29132)
* hdf5: mark +fortran+shared conflict for older version

This version was only activated unintentionally by silo's conflict
statement, but `@1.8.15+shared+fortran+cxx` errors out in configure:

```
CMake Error at CMakeLists.txt:814 (message):
   **** Shared FORTRAN libraries are unsupported ****
```

* silo: refine hdf5 conflicts to avoid building old version

Before this, `silo+hdf5` concretized to 1.10.7 or sometimes 1.8.15. Now
I've verified it works for the following configurations:
```
silo@4.10.2 patches=7b5a1dc,952d3c9
^   hdf5@1.10.7 api=default

silo@4.10.2 patches=7b5a1dc,952d3c9,eb2a3a0
^   hdf5@1.10.8 api=v18

silo@4.10.2 patches=7b5a1dc,952d3c9,eb2a3a0
^   hdf5@1.12.1 api=v110

silo@4.11-bsd patches=eb2a3a0
^   hdf5@1.12.1 api=v110

silo@4.11-bsd patches=eb2a3a0
^   hdf5@1.10.8 api=default

silo@4.11-bsd patches=eb2a3a0
^   hdf5@1.12.1 api=default
```

and verified that the following fail:
```
silo@4.10.2 ^hdf5@1.12.1 api=default
silo@4.11 ^hdf5 api=v18
silo@4.11-bsd ^hdf5@1.13.0 api=v12
silo@4.11-bsd ^hdf5@1.13.0 api=default
```

and have updated the constraints to match. Hdf5 no longer has to be
downgraded to work with Silo.

* silo: fix dependency conflicts

* py-h5py: shorten and add comments to py-h5py hdf5 dependencies

* e4s: remove slightly outdated hdf5 requirement

* e4s: remove excessive hdf5 variant constraints

These I think are holdovers from the old concretizer.

- `hdf5_compat` can be expressed as `+hdf5 ^hdf5@1.8`
- The extra variants on hdf5 shouldn't break conduit
- axom unnecessarily restricts hdf5 version

* conduit: restore hdf5_compat flag
2022-03-08 13:15:10 -05:00
kwryankrattiger
a45c7c185b
Ecp sdk update package contraints (#28693)
* ECP-SDK: Require HDF5 1.12

* ECP-SDK: Require SDK spec for SDK packages
2022-02-11 09:35:30 +01:00
kwryankrattiger
5a640f9063
conduit: convert HDF5 constaint to compile flag (#28735) 2022-02-03 10:43:39 +01:00
Cyrus Harrison
cdf17fdfe5
conduit: add v0.8.2 (#28730) 2022-02-03 10:39:46 +01:00
kwryankrattiger
eb7bc7fc4b
Ascent/Conduit: Update the +fortran build config (#28646)
Do not silently turn off fortran support based on checking if
a fortran compiler exists. Let the build fail if there is no
working fortran compiler.
2022-02-01 07:44:48 -07:00
Cyrus Harrison
3f6d045c53
conduit: add new variant and hcfg entry (#27822) 2022-02-01 13:53:30 +01:00
Gregory Lee
61ea456f5d
conduit: add v0.8.1 and patch to add algorithm for std sort (#28618) 2022-01-27 12:26:18 +01:00
Todd Gamblin
93377942d1 Update copyright year to 2022 2022-01-14 22:50:21 -08:00
Adam J. Stewart
e0f044561e
Python: improve site_packages_dir handling (#28346)
* Python: improve site_packages_dir handling

* Replace all site_packages_dir with purelib/platlib
2022-01-13 20:11:16 -06:00
Harmen Stoppels
dce4f161d4
Drop preferred hdf5 version (#28091)
* Drop preferred hdf5 version

* Fix conduit

* Add compat bound for silo on hdf5

* Update var/spack/repos/builtin/packages/conduit/package.py

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>

* hdf5 <= 1.10 for conduit <= 0.7

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2022-01-04 02:24:37 -08:00
Cyrus Harrison
0863148c4f
conduit: add v0.8.0 release and change def for parmetis var (#28102) 2021-12-24 14:46:56 +01:00
Chuck Atkins
b56f464c29
GCC 11 fixes (#27122)
* adios2: Fix compile errors for gcc 11

* unifyfs: Suppress bogus warnings for gcc 11

* conduit: Fix compile errors for gcc 11
2021-11-01 14:31:39 -06:00
Harmen Stoppels
b9e72557e8
Remove .99 from version ranges (#26422)
In most cases, .99 can be omitted thanks to #26402 .
2021-10-03 09:09:02 -04:00
Shahzeb Siddiqui
ef9967c7f4
Add e4s tags (#23382)
Add 'e4s' tags for all packages according to https://github.com/E4S-Project/e4s/blob/master/E4S_Products.md
2021-09-29 17:57:52 -07:00
Tamara Dahlgren
c348daf4dc
Add 'radiuss' tags to RADIUSS packages (#26212) 2021-09-24 03:20:14 -06:00
Cyrus Harrison
6979a63396
conduit: changes related to hdf5 builds that use cmake (#25719) 2021-09-08 15:53:47 -07:00
Vanessasaurus
8e61f54260
start of work to add spack audit packages-https checker (#25670)
This PR will add a new audit, specifically for spack package homepage urls (and eventually
other kinds I suspect) to see if there is an http address that can be changed to https.

Usage is as follows:

```bash
$ spack audit packages-https <package>
```
And in list view:

```bash
$ spack audit list
generic:
  Generic checks relying on global variables

configs:
  Sanity checks on compilers.yaml
  Sanity checks on packages.yaml

packages:
  Sanity checks on specs used in directives

packages-https:
  Sanity checks on https checks of package urls, etc.
```

I think it would be unwise to include with packages, because when run for all, since we do requests it takes a long time. I also like the idea of more well scoped checks - likely there will be other addresses for http/https within a package that we eventually check. For now, there are two error cases - one is when an https url is tried but there is some SSL error (or other error that means we cannot update to https):

```bash
$ spack audit packages-https zoltan
PKG-HTTPS-DIRECTIVES: 1 issue found
1. Error with attempting https for "zoltan": 
    <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'www.cs.sandia.gov'. (_ssl.c:1125)>
```
This is either not fixable, or could be fixed with a change to the url or (better) contacting the site owners to ask about some certificate or similar.

The second case is when there is an http that needs to be https, which is a huge issue now, but hopefully not after this spack PR.

```bash
$ spack audit packages-https xman
Package "xman" uses http but has a valid https endpoint.
```

And then when a package is fixed:

```bash
$ spack audit packages-https zlib
PKG-HTTPS-DIRECTIVES: 0 issues found.
```
And that's mostly it. :)

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-09-02 08:46:27 +02:00
Cyrus Harrison
db00cf24c0
add parmetis variant to conduit (#25127) 2021-07-28 15:09:19 -07:00
Todd Gamblin
24c01d57cf
imports: sort imports everywhere in Spack (#24695)
* fix remaining flake8 errors

* imports: sort imports everywhere in Spack

We enabled import order checking in #23947, but fixing things manually drives
people crazy. This used `spack style --fix --all` from #24071 to automatically
sort everything in Spack so PR submitters won't have to deal with it.

This should go in after #24071, as it assumes we're using `isort`, not
`flake8-import-order` to order things. `isort` seems to be more flexible and
allows `llnl` mports to be in their own group before `spack` ones, so this
seems like a good switch.
2021-07-08 22:12:30 +00:00
Cyrus Harrison
32b9bea06a
add conduit 0.7.2 release (#23797) 2021-05-19 14:04:29 -07:00
lukebroskop
4a50e35262
CrayPE patch for conduit (#23516)
Pass -ef to the CCE Fortran compiler
2021-05-11 15:25:50 -07:00