spack/share/spack
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
..
bash Delocalize type output for bash completion (#30360) 2022-04-28 23:24:10 +00:00
bootstrap Add a command to generate a local mirror for bootstrapping (#28556) 2022-05-24 21:33:52 +00:00
csh Update copyright year to 2022 2022-01-14 22:50:21 -08:00
docker Update Dockerfiles and images for Spack v0.18.0 (#30216) 2022-04-22 08:51:26 +02:00
docs/docker/module-file-tutorial Update copyright year to 2022 2022-01-14 22:50:21 -08:00
gitlab Best effort co-concretization (iterative algorithm) (#28941) 2022-05-24 12:13:28 -07:00
keys Update the Public key of the tutorial (#27370) 2021-11-12 11:46:02 +01:00
logo add artisanal handcrafted SVG Spack logo. (#6165) 2017-11-06 22:42:16 -08:00
qa Use the non-deprecated MetaPathFinder interface (#29745) 2022-04-07 15:58:20 -07:00
templates Update Dockerfiles and images for Spack v0.18.0 (#30216) 2022-04-22 08:51:26 +02:00
setup-env.csh Update copyright year to 2022 2022-01-14 22:50:21 -08:00
setup-env.fish Update copyright year to 2022 2022-01-14 22:50:21 -08:00
setup-env.ps1 refactor powershell setup to make it sourceable (#29987) 2022-04-20 17:11:44 -07:00
setup-env.sh Update copyright year to 2022 2022-01-14 22:50:21 -08:00
setup-tutorial-env.sh Update copyright year to 2022 2022-01-14 22:50:21 -08:00
spack-completion.bash Add a command to generate a local mirror for bootstrapping (#28556) 2022-05-24 21:33:52 +00:00