From 4318ceb2b3c5d34217769a24a7de039b1759b496 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Wed, 18 Aug 2021 20:14:02 +0200 Subject: Bootstrap clingo from binaries (#22720) * Bootstrap clingo from binaries * Move information on clingo binaries to a JSON file * Add support to bootstrap on Cray Bootstrapping on Cray requires, at the moment, to swap the platform when looking for binaries - due to #22800. * Add SHA256 verification for bootstrapped software Use sha256 verification for binaries necessary to bootstrap the concretizer and gpg for signature verification * patchelf: use Spec._old_concretize() to bootstrap As noted in #24450 we may happen to need the concretizer when bootstrapping clingo. In that case only the old concretizer is available. * Add a schema for bootstrapping methods Two fields have been added to bootstrap.yaml: "sources" which lists the methods available for bootstrapping software "trusted" which records if a source is trusted or not A subcommand has been added to "spack bootstrap" to list the sources currently available. * Methods used for bootstrapping are configurable from bootstrap:sources The function that tries to ensure a given Python module is importable now tries bootstrapping methods in the same order as they are defined in `bootstrap.yaml` * Permit to trust/untrust bootstrapping methods * Add binary tests for MacOS, Ubuntu * Add documentation * Add a note on bash --- share/spack/bootstrap/github-actions/clingo.json | 257 +++++++++++++++++++++++ share/spack/spack-completion.bash | 26 ++- 2 files changed, 281 insertions(+), 2 deletions(-) create mode 100644 share/spack/bootstrap/github-actions/clingo.json (limited to 'share') diff --git a/share/spack/bootstrap/github-actions/clingo.json b/share/spack/bootstrap/github-actions/clingo.json new file mode 100644 index 0000000000..3068ad1f19 --- /dev/null +++ b/share/spack/bootstrap/github-actions/clingo.json @@ -0,0 +1,257 @@ +{ + "verified": [ + { + "binaries": [ + [ + "clingo-bootstrap", + "m4ertsh3ooxdisc5tigglublasu4udfe", + "094548672362306d75012398a6f9b1e8c0f796c833163ca77cf644d84822f25f" + ] + ], + "python": "python@3.5", + "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "iv4gr5vscx2io23ljgdueybwatxlk6wo", + "c8110c68ec339d05155392818b21ba87b27905ad798f5f3f194d6312385dbdc2" + ] + ], + "python": "python@3.6", + "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "rwxcxsohrkp5iai3yushsltkdprjmexb", + "fbee764cac890a29bc03c472d3ba0401e915d6924a7cedac9fd8d961159b70e7" + ] + ], + "python": "python@3.7", + "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "p5on7i4hejl775ezndzfdkhvwra3hatn", + "35e32f7c1f80e99da450b52643800fd2895ee2f895109f708b5cf0da6afbedff" + ] + ], + "python": "python@3.8", + "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "omsvlh5v6fi2saw5qyqvzsbvqpvrf5yw", + "cef0e554737dbf22655094d8ae072c67539cce2a37cba1577aeb5aea18b5747c" + ] + ], + "python": "python@3.9", + "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "qguh44xegb72y4q4lar3ufjddissoumv", + "68d2d0c06690d75a794aa2c50be9d6d501fec1b566784bf87b1fc5611f84f3c9" + ] + ], + "python": "python@3.5", + "spec": "clingo-bootstrap%gcc platform=linux target=aarch64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "tsypkz7hyylmh5pwpykaf7wcmdunrdiv", + "3b8e3e6e21e399a90c4128776cc591734f9d533f0a7e64ed8babd9cbcf616e3d" + ] + ], + "python": "python@3.6", + "spec": "clingo-bootstrap%gcc platform=linux target=aarch64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "2w6b4q5j2zgra6t3zfrjfbvsnoi5yqmk", + "4f335e02641f6ecc7ec7d9d2b8293d07d6e7a7234034531713b760aaa507fa7c" + ] + ], + "python": "python@3.7", + "spec": "clingo-bootstrap%gcc platform=linux target=aarch64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "ij7udwpgeghdfoswljwdtwwaylvudze7", + "b5eedf593f198e523aebf6ce127fd8ffcf3d1c980a920cdf1c5a0d2a335e4892" + ] + ], + "python": "python@3.8", + "spec": "clingo-bootstrap%gcc platform=linux target=aarch64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "a5ppijpzmk7ubjem4i3zttbxp545vjuz", + "8f9755c16c0c99b5c40c420f2c1c6aec2bdff99b25444e001506527af18dd94e" + ] + ], + "python": "python@3.9", + "spec": "clingo-bootstrap%gcc platform=linux target=aarch64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "tsnva2bxjguosntz3tk5mqbdgrjvhfcc", + "bcd093c08110309e705beebccd012260a61215eda12c1d47f3a89d4734ec7170" + ] + ], + "python": "python@3.5", + "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "rfu4la457mdbpoffk2g5hikj2hhoek4s", + "b6417b9b90f3f4e98caaa869393edee08fad3d3c7db37fad8b332c785d0e81e6" + ] + ], + "python": "python@3.6", + "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "qg3utj2csbgtdwc2slqbjmwn25rkor5r", + "a1760e064d41d364cdf53f89248f7824dad9bf97c6b999df18343b57d21c06ed" + ] + ], + "python": "python@3.7", + "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "uxkpc2euofdkgveonftklstnxyha5wsf", + "d6a04e7b15dae05eacce54806fa18356b392a5e2d212a55bf0960116b8e9dfef" + ] + ], + "python": "python@3.8", + "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "i2uoawqsmmkr2uwb42oxfsnt4djzejrj", + "6511837f87e50c40a7f4aab2ec7454e5200594821e4d1fc4a441d3be647b9acb" + ] + ], + "python": "python@3.9", + "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "p3bqplnwqo66lvvolmtaezck77jafrc4", + "436f9483e4028c12c32ba9f4e7e91e944bf9819ef487dfe4e42ddd1d487c93ee" + ] + ], + "python": "python@2.6", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "rpa6yyujr7ilnfcowq2pbmkmh7uzrijp", + "3be0f4ccd412d45506f9f305ef7f6621cd246fbde97aed081595d01dafe3c397" + ] + ], + "python": "python@2.7+ucs4", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "y32mbn7swer3yxvgf6tmkgekpo23uo5z", + "f6e0716bd97f2df123abcd96ec8884c525a9fd10b81e0062784e7b0d2df3f622" + ] + ], + "python": "python@2.7~ucs4", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "ohtmyp5c74xt75csx4llbjs5anobryp6", + "7d613ddbca1640d761311fb00403c0cb65e279534c44a2129b8d9610f6146e78" + ] + ], + "python": "python@3.5", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "vcipwnf57slgoo7busvvkzjkk7vydeb5", + "db5222760045f20ad1e5c194179d31273b8e4bfa6ade38e15cd3182d685cc05b" + ] + ], + "python": "python@3.6", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "ffoyoewfd6pdwbjniodfkqusyvkrbhyi", + "14cea5f6cfd86bcb8de38ad8c1a5e44cc22955de2e7c78b825b617dccd107dbe" + ] + ], + "python": "python@3.7", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "kt74l7kjzrlp3cgtj2576o33mhsrgyrw", + "e71de4beb68bb3e58bd2dcb98dc3be3a375c82781b6f7cb01bc5d552c2240bd2" + ] + ], + "python": "python@3.8", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "hmnv6gk5wha64k6r3s7hid35mzvhkuot", + "b08ff59357fa184ce39b8cc0a17aaf7f0a925a449ab389e1afa4eab6ae026f2e" + ] + ], + "python": "python@3.9", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + } + ] +} \ No newline at end of file diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash index 03e9770c37..1281ca7349 100755 --- a/share/spack/spack-completion.bash +++ b/share/spack/spack-completion.bash @@ -421,7 +421,7 @@ _spack_bootstrap() { then SPACK_COMPREPLY="-h --help" else - SPACK_COMPREPLY="enable disable reset root" + SPACK_COMPREPLY="enable disable reset root list trust untrust" fi } @@ -446,6 +446,28 @@ _spack_bootstrap_root() { fi } +_spack_bootstrap_list() { + SPACK_COMPREPLY="-h --help --scope" +} + +_spack_bootstrap_trust() { + if $list_options + then + SPACK_COMPREPLY="-h --help --scope" + else + SPACK_COMPREPLY="" + fi +} + +_spack_bootstrap_untrust() { + if $list_options + then + SPACK_COMPREPLY="-h --help --scope" + else + SPACK_COMPREPLY="" + fi +} + _spack_build_env() { if $list_options then @@ -476,7 +498,7 @@ _spack_buildcache_create() { _spack_buildcache_install() { if $list_options then - SPACK_COMPREPLY="-h --help -f --force -m --multiple -a --allow-root -u --unsigned -o --otherarch" + SPACK_COMPREPLY="-h --help -f --force -m --multiple -a --allow-root -u --unsigned -o --otherarch --sha256" else _all_packages fi -- cgit v1.2.3-70-g09d2