Merge pull request #156804 from jonringer/python-update-sri-hash

This commit is contained in:
Martin Weinelt 2022-01-28 21:54:35 +01:00 committed by GitHub
commit 323d8534da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -340,13 +340,19 @@ def _update_package(path, target):
raise ValueError("no file available for {}.".format(pname))
text = _replace_value('version', new_version, text)
# hashes from pypi are 16-bit encoded sha256's, normalize it to sri to avoid merge conflicts
# sri hashes have been the default format since nix 2.4+
try:
sri_hash = subprocess.check_output(["nix", "hash", "to-sri", "--type", "sha256", new_sha256]).decode('utf-8').strip()
except subprocess.CalledProcessError:
# nix<2.4 compat
sri_hash = subprocess.check_output(["nix", "to-sri", "--type", "sha256", new_sha256]).decode('utf-8').strip()
# fetchers can specify a sha256, or a sri hash
try:
text = _replace_value('sha256', new_sha256, text)
text = _replace_value('sha256', sri_hash, text)
except ValueError:
# hashes from pypi are 16-bit encoded sha256's, need translate to an sri hash if used with "hash"
sri_hash = subprocess.check_output(["nix", "hash", "to-sri", "--type", "sha256", new_sha256]).decode('utf-8').strip()
text = _replace_value('hash', sri_hash, text)
if fetcher == 'fetchFromGitHub':