summaryrefslogtreecommitdiff
path: root/NOTICE
diff options
context:
space:
mode:
authorHarmen Stoppels <me@harmenstoppels.nl>2024-08-24 09:09:25 +0200
committerGitHub <noreply@github.com>2024-08-24 09:09:25 +0200
commit296e5308a7d2cde1226e179c7d695b45ff287c58 (patch)
treef34292db004a82c4465b0aa0695519a663ce97d9 /NOTICE
parent47e79c32fdd820b3ce825f62619c693e4a57d549 (diff)
downloadspack-296e5308a7d2cde1226e179c7d695b45ff287c58.tar.gz
spack-296e5308a7d2cde1226e179c7d695b45ff287c58.tar.bz2
spack-296e5308a7d2cde1226e179c7d695b45ff287c58.tar.xz
spack-296e5308a7d2cde1226e179c7d695b45ff287c58.zip
mirror: fetch by digest (#45809)
Source mirrors store entries by digest and add a human readable alias of the form 'name-version'. If no digest is available, the alias is used as the primary storage location. Spack erroneously fetches by alias when the digest path does not exist. This is problematic if `version(..., sha256=...)` changes in package.py, and the mirror is populated with the old shasum. That would result in an error when a digest is available, but in case of git versions with a modified commit sha, the wrong sources would be fetched without error. With this PR, only the digest path is used, not the alias, in case a digest is available. This is also a small performance optimization, as the number of request is halved for mirrors that don't contain the sources. Further, for git sources the tag was used as a digest, but this is a moving target. Only commit sha is used now. Also whenever the alias already existed, Spack used to keep it in place when updating the mirror cache, which means that aliases would always point to outdated mirror entries whenever digests are modified. With this PR the alias is moved in place. Lastly, fix a recent regression where `Stage.disable_mirrors` disabled mirrors but not the local download cache, which was the intention.
Diffstat (limited to 'NOTICE')
0 files changed, 0 insertions, 0 deletions