Workaround for nonexistent paths in store-paths.xz

Found around 2023-11, some channels have store-paths.xz with paths that
are nonexistent on cache.nixos.org.

For example, nixos-unstable has 32 paths with name
"texlive-2022-env-man" or "texlive-2022-env-info", of which 31 don't
exist on cache.nixos.org. (Checked 2023-11-20.) This is a hard error for
"nix path-info".

See https://github.com/tuna/issues/issues/1855
This commit is contained in:
dramforever 2023-11-20 18:04:21 +08:00
parent 5e1e9bdd3c
commit 2fda084533

View File

@ -294,6 +294,14 @@ def update_channels(channels):
seen_paths = set()
channel_failure = False
# Workaround to temporarily fix https://github.com/tuna/issues/issues/1855
paths = [
path
for path in paths
if 'texlive-2022-env-man' not in path
and 'texlive-2022-env-info' not in path
]
# Batch paths to avoid E2BIG
for i in range(0, len(paths), PATH_BATCH):
@ -397,6 +405,14 @@ def garbage_collect():
with lzma.open(str(release / 'store-paths.xz')) as f:
paths = [ path.rstrip() for path in f ]
# Workaround to temporarily fix https://github.com/tuna/issues/issues/1855
paths = [
path
for path in paths
if 'texlive-2022-env-man' not in path
and 'texlive-2022-env-info' not in path
]
for i in range(0, len(paths), PATH_BATCH):
batch = paths[i : i + PATH_BATCH]