spack/etc/spack/defaults
Massimiliano Culpo ba907defca
Add a command to generate a local mirror for bootstrapping (#28556)
This PR builds on #28392 by adding a convenience command to create a local mirror that can be used to bootstrap Spack. This is to overcome the inconvenience in setting up this mirror manually, which has been reported when trying to setup Spack on air-gapped systems.

Using this PR the user can create a bootstrapping mirror, on a machine with internet access, by:

% spack bootstrap mirror --binary-packages /opt/bootstrap
==> Adding "clingo-bootstrap@spack+python %apple-clang target=x86_64" and dependencies to the mirror at /opt/bootstrap/local-mirror
==> Adding "gnupg@2.3: %apple-clang target=x86_64" and dependencies to the mirror at /opt/bootstrap/local-mirror
==> Adding "patchelf@0.13.1:0.13.99 %apple-clang target=x86_64" and dependencies to the mirror at /opt/bootstrap/local-mirror
==> Adding binary packages from "https://github.com/alalazo/spack-bootstrap-mirrors/releases/download/v0.1-rc.2/bootstrap-buildcache.tar.gz" to the mirror at /opt/bootstrap/local-mirror

To register the mirror on the platform where it's supposed to be used run the following command(s):
  % spack bootstrap add --trust local-sources /opt/bootstrap/metadata/sources
  % spack bootstrap add --trust local-binaries /opt/bootstrap/metadata/binaries
The mirror has to be moved over to the air-gapped system, and registered using the commands shown at prompt. The command has options to:

1. Add pre-built binaries downloaded from Github (default is not to add them)
2. Add development dependencies for Spack (currently the Python packages needed to use spack style)

* bootstrap: refactor bootstrap.yaml to move sources metadata out

* bootstrap: allow adding/removing custom bootstrapping sources

This operation can be performed from the command line since
new subcommands have been added to `spack bootstrap`

* Add --trust argument to spack bootstrap add

* Add a command to generate a local mirror for bootstrapping

* Add a unit test for mirror creation
2022-05-24 21:33:52 +00:00
..
cray defaults/cray: use modules.yaml from defaults/linux (#23932) 2021-05-26 20:16:13 +00:00
darwin Add fuse virtual dependency, new macfuse package (#23904) 2021-05-27 23:21:11 +02:00
linux apply default linux prefix inspections to all module sets (#24151) 2021-06-04 21:37:20 -06:00
windows Expand external find for Windows (#27588) 2022-03-17 09:01:01 -07:00
bootstrap.yaml Add a command to generate a local mirror for bootstrapping (#28556) 2022-05-24 21:33:52 +00:00
concretizer.yaml Deprecate spack:concretization over concretizer:unify (#30038) 2022-05-23 13:20:34 -07:00
config.yaml Add license dir to config (#30135) 2022-05-18 18:26:42 -07:00
mirrors.yaml Use AWS CloudFront for source mirror (#23978) 2021-05-28 00:18:30 -07:00
modules.yaml Deprecate top-level module config (#28659) 2022-04-08 19:00:35 +00:00
packages.yaml Add a Lua build-system (#28854) 2022-05-10 06:54:38 +02:00
repos.yaml Add "default" configuration scope. 2016-07-19 17:10:17 -07:00