diff options
author | Harmen Stoppels <harmenstoppels@gmail.com> | 2023-08-02 17:06:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-02 17:06:13 +0200 |
commit | 03c0d7413907fc46b82bbc77dd9bd2276b5e070e (patch) | |
tree | e93d6629006a8808afed29262b217766be29527d /etc | |
parent | a14f4b5a028df4a669fbebab1e6a8f2b57288baf (diff) | |
download | spack-03c0d7413907fc46b82bbc77dd9bd2276b5e070e.tar.gz spack-03c0d7413907fc46b82bbc77dd9bd2276b5e070e.tar.bz2 spack-03c0d7413907fc46b82bbc77dd9bd2276b5e070e.tar.xz spack-03c0d7413907fc46b82bbc77dd9bd2276b5e070e.zip |
buildcache extractall: extract directly into spec.prefix (#37441)
- Run `mkdirp` on `spec.prefix`
- Extract directly into `spec.prefix`
1. No need for `$store/tmp.xxx` where we extract the tarball directly, pray that it has one subdir `<name>-<version>-<hash>`, and then `rm -rf` the package prefix followed by `mv`.
2. No need to clean up this temp dir in `spack clean`.
3. Instead figure out package directory prefix from the tarball contents, and strip the tarinfo entries accordingly (kinda like tar --strip-components but more strict)
- Set package dir permissions
- Don't error during error handling when files cannot removed
- No need to "enrich" spec.json with this tarball-toplevel-path
After this PR, we can in fact tarball packages relative to `/` instead of `spec.prefix/..`, which makes it possible to use Spack tarballs as container layers, where relocation is impossible, and rootfs tarballs are expected.
Diffstat (limited to 'etc')
0 files changed, 0 insertions, 0 deletions