Commit Graph

38 Commits

Author SHA1 Message Date
Adam J. Stewart
c5883fffd7
Python: drop EOL versions (#33898)
This PR removes [end of life](https://endoflife.date/python) versions of Python from Spack. Specifically, this includes all versions of Python older than 3.7.

See https://github.com/spack/spack/discussions/31824 for rationale. Deprecated in #32615. And #28003.

For anyone using software that relies on Python 2, you have a few options:

* Upgrade the software to support Python 3. The `3to2` tool may get you most of the way there, although more complex libraries may need manual tweaking.
* Add Python 2 as an [external package](https://spack.readthedocs.io/en/latest/build_settings.html#external-packages). Many Python libraries do not support Python 2, but you may be able to add older versions that did once upon a time.
* Use Spack 0.19. Spack 0.19 is the last release to officially support Python 3.6 and older
* Create and maintain your own [custom repository](https://spack.readthedocs.io/en/latest/repositories.html). Basically, you would need a package for Python 2 and any other Python 2-specific libraries you need.
2022-11-22 15:02:30 -08: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
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
Vanessasaurus
6a26322eb3
fixing "problems in speck" as identified by repology (#25491)
Most of these are perl packages that need to point to the meta docs site,
and then a fair amount of http addresses that need to be https, and then
the rest are usually documentation sites that no longer exist or were
otherwise changes

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

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-08-26 15:05:24 -05: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
Brian Van Essen
9d42381d38
Bugfixes in LBANN software stack identified by clingo (#22554)
* Fixed a bug in the DiHydrogen package where the variant legacy was
changed to distconv and wasn't fully propagated.  Cleaned up the
openmp variants on the blas library packages in DiHydrogen and
Elemental.  Extended support for Aluminum v1.0 in LBANN, Hydrogen, and
DiHydrogen.  Fixed a when clause in the LBANN dependencies.

* Removed the upper range limit for the Aluminum library dependence

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-30 02:25:56 +00:00
Todd Gamblin
a8ccb8e116 copyrights: update all files with license headers for 2021
- [x] add `concretize.lp`, `spack.yaml`, etc. to licensed files
- [x] update all licensed files to say 2013-2021 using
      `spack license update-copyright-year`
- [x] appease mypy with some additions to package.py that needed
      for oneapi.py
2021-01-02 12:12:00 -08:00
Todd Gamblin
4af6303086
copyright: update copyright dates for 2020 (#14328) 2019-12-30 22:36:56 -08:00
Todd Gamblin
62927654dd checksums: use sha256 checksums everywhere
We'd like to use a consistent checksum scheme everywhere so that we can:

    a) incorporate archive checksums into our specs and have a
       consistent hashing algorithm across all specs.

    b) index mirrors with a consistent type of checksum, and not one that
       is dependent on how spack packages are written.

- [x] convert existing md5, sha224, sha512, sha1 checksums to sha256
2019-10-12 07:19:43 -07:00
Todd Gamblin
6f50cd52ed copyright: update license headers for 2013-2019 copyright. 2019-01-01 00:44:28 -08:00
Todd Gamblin
eea786f4e8 relicense: replace LGPL headers with Apache-2.0/MIT SPDX headers
- remove the old LGPL license headers from all files in Spack
- add SPDX headers to all files
  - core and most packages are (Apache-2.0 OR MIT)
  - a very small number of remaining packages are LGPL-2.1-only
2018-10-17 14:42:06 -07:00
Adam J. Stewart
4c6aca533a Add top-level attributes for hg, svn, and git A-L packages 2018-07-25 23:10:10 -07:00
Corey McNeish
c8a3a650fa Fix hydrogen@develop build (#8262)
* Delete support for old versions of Elemental in Hydrogen

* Fix cmake_args versions in lbann

* Remove unused import (again)

* Revert elemental to pre-llnl fork

* Strip tailing whitespace from libgfortran.so

* Fix flake8

* Remove debug print

*  * Add back elemental@develop
 * Prohibit installation of hydrogen previous to 0.99

* Fix flake8

* Change cmake_args error to a conflicts for old versions of Hydrogen

* Use ~ not -
2018-06-07 18:08:23 -05:00
Todd Gamblin
54f97d1dec
Update copyright on LLNL files for 2018. (#7592) 2018-03-24 12:13:52 -07:00
alalazo
e72b69732e Changed keyword argument 'recurse' to 'recursive' 2018-02-13 02:18:28 -08:00
Brian Van Essen
c3034b53e3 Adding support for the Accelerate library on OS X (#7068)
* Adding support for the Accelerate library on OS X

* Fixed guard on variable and added another depends_on statement to make sure that openblas gets selected even when openmp_blas variant is not turned on.
2018-01-31 11:10:42 -08:00
Brian Van Essen
06758fe5cb LBANN OS X (#7105)
* Added a package for the MDAnalysis toolkit.

* Added some flags to fix the build RPATHs and OpenMP for LBANN on OS X.

* Fixed Hydrogen branch of Elemental to find OpenMP on OS X.
2018-01-31 09:38:53 -08:00
Brian Van Essen
1cd03e0f36 new package: essl (#6335)
Added support for the IBM ESSL math library.Updated Elemental to be
able to build with ESSL.
2018-01-26 10:38:37 -08:00
Brian Van Essen
a62e1a0451 Lbann update (#6987)
* Added new link line flag

* Refactored some of the common components out of the different
version's build commands.  Also corrected the when commands to
properly capture non-numeric names such as local.

* Added support to the Elemental package for the Hydrogen branch.
2018-01-23 17:05:54 -08:00
Todd Gamblin
05fa302655
Replace github.com/llnl/spack with github.com/spack/spack (#6142)
We moved to a new GitHub org! Now make the code and docs reflect that.
2017-11-04 17:08:04 -07:00
Brian Van Essen
86b7b84ddf LBANN flags and OpenCV variant (#5951)
* Fixed the datatype flag in the LBANN package.
Fixed where the datatype flag should be set.

* Added variant to OpenCV to disable building DNN support

* Fixed a bug in how the elemental package tries to find its Fortran
library.  The current method does not work with Intel compilers.

* Added necessary paths for cuDNN and CUB.

* Addressed flake8 issues in Elemental package.

* Fixed several flake8 errors.  Added variant to build with or without
support for arbitrary-precision floating point arithmetic.

* Added the proper CMake flag when MPFR support is disabled.

* Fixed a bug in how the cudnn path was being set when there was no
cudnn requested.  Also requested that OpenCV is built without eigen
support.

* Fixed another bug where a dependency may not be there and thus should
not be always checked.
2017-11-01 17:25:28 -07:00
Denis Davydov
7f84de52a0 blas_lapack: add multithreading variant consistent in all implementations. (#5340)
* blas_lapack: add multithreading variant

* elemental: update

* intel-mkl: extend to macOS

* rename multithreading to threads

* intel-mkl: avoid long lines

* intel-mkl: make one install error a conflict

* openblas: fix a minor bug in the test
2017-09-23 13:27:42 -07:00
Denis Davydov
8dd7fa03ea elemental: fix broken Config.cmake (#5331) 2017-09-11 13:27:20 -07:00
Michael Kuhn
84ae7872d3 Update copyright notices for 2017 (#5295) 2017-09-06 17:44:16 -10:00
Denis Davydov
01a9a048ad elemental: fix hardcode libgfortran, use develop and explicitly specify MPI compilers (#5263) 2017-09-06 12:04:32 +02:00
Brian Van Essen
71c5b19464 Elemental fix (#5067)
* Added a package for the MDAnalysis toolkit.

* Added additional packages that Elemental depends on.

* Changed LBANN to not ask for the scalapack variant in Elemental.

* Removed variant control on scalapack
2017-08-11 08:29:24 -05:00
Brian Van Essen
8ca7c77008 Elemental cublas (#4889)
* Added a package for the MDAnalysis toolkit.

* Added a patch that allows Elemental to use cuBLAS internally.

* Added support for LBANN to use the new cuBLAS extension in Elemental.

* Added a proper variant for when LBANN does not want to use cuBLAS in
elemental.

* Added a package for the cnpy project and used it in the lbann package.

* Removed unnecessary comment lines.

* Removed blank lines

* Removed debug variant

* Add support for libjpeg-turbo

* Added additional variants for OpenCV features. Fixed bug when linking
in TIFF support, where libtiff used the regular JPEG library and
OpenCV used libjpeg-turbo.  Now libtiff can use libjpeg-turbo.

* Removed the variant for getting Elemental to use the cublas variant.
Updated the requirements for OpenCV to add new options.

* Fixed a flake8 error in OpenCV and added a path to find cnpy in lbann.

* Fixed line too long flake8 error.

* Added a flag to specify the datatype size in lbann and fixed a flake8 error.

* Added a debug build variant using hte new build_type

* Fixed flake8

* Fixed how the debug build is pushed to Elemental

* Fixed a bug in the Elemental package where the blas search flags were
being overridden by the blas link flags.  Changed how the sequential
initialization variant is implemented in LBANN.

* Added support via a variant to explicitly use mkl or openblas.  This
helps work around variant forwarding problems.

* Updated package files to address pull request comments.
2017-08-07 13:41:13 -05:00
Adam J. Stewart
07aec4366f Add universal build_type variant to CMakePackage (#4797)
* Add universal build_type variant to CMakePackage
* Override build_type in some packages with different possible values
* Remove reference to no longer existent debug variant
* Update CBTF packages with new build_type variant
* Keep note on build size of LLVM
2017-07-25 16:34:43 -07:00
Todd Gamblin
cac4362f64 Make LICENSE recognizable by GitHub. (#4598) 2017-06-24 22:22:55 -07:00
Adam J. Stewart
cc747d6b6f Remove redundant cmake dependencies (#3860) 2017-04-16 12:23:26 -05:00
Brian Van Essen
808e9b4649 Added a package for the MDAnalysis toolkit. (#3576)
* Added a package for the MDAnalysis toolkit.

* Added the dependency on setuptools.

* Added the rest of the dependencies to the py-mdanalysis package.  Also
added the griddataformats and seaborn packages to satisfy requirements.

* Removed seaborn package since it has been recently added.

* Fixed flake8 error

* Removed inadvertent commits.

* Cleaned up reviewers feedback.
2017-04-10 21:02:32 -05:00
Brian Van Essen
acf95c92a6 Fixes the Elemental and LBANN packages to conform to the new syntax (#3382)
introduced by PR https://github.com/LLNL/spack/pull/1875
2017-03-08 14:32:26 -06:00
Adam J. Stewart
a2d70a45fb Allow find_libraries to accept lists or strings (#3363)
* Allow find_libraries to accept lists or strings

* Convert one more example from list to string
2017-03-04 11:23:57 -06:00
Denis Davydov
a36ed7fb9b fix blas/lapack usage after PR 1875 (#3365) 2017-03-04 09:42:02 -06:00
Brian Van Essen
56952aaf1f LBANN (#3049)
* Creating a spack package for LLNL's LBANN (Livermore Big
Artificial Neural Network) training toolkit.

* Recipe for building LBANN toolkit.  Contains limited feature set and
is optimized for building with GNU gcc and OpenBLAS.

* Removed unnecessary dependencies based on reviewers feedback.

* Added support for the int64 data type in the Elemental library.  This
is required for supporting indices for large matrices.

* Added a variant to force a sequential weight matrix initialization.
This is slow, but provides an initialization that is independent of
model parallelism.

* Added a guard to prevent building Elemental with the Intel compiler
for versions that have known bugs.
2017-02-13 11:57:46 -08:00
Brian Van Essen
ffd582b2f6 Elemental (#2991)
* Add a package for the Elemental distributed linear algebra library.
2017-02-06 00:04:41 -08:00