Closed typetetris closed 1 month ago
Considering https://github.com/NixOS/nix/issues/10575 maybe the git tree object for a directory gets replaced when a tarball contains multiple files in different directories in mixed order. Would match to the observation, that only the files in the last mention of lib/x64
are present in the fetchTree
result.
/tmp via 🅶 via v17.0.7 on (eu-central-1)
at 14:47:19 ❯ tar -tvf SpeechSDK-Linux-1.40.0.tar.gz
...
-rw-rw-rw- root/root 251448 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/arm32/libpal_azure_c_shared.so
-rw-rw-rw- root/root 379184 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/arm64/libpal_azure_c_shared.so
-rw-rw-rw- root/root 379456 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/x64/libpal_azure_c_shared.so # <--- MISSING
-rw-rw-rw- root/root 251448 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/arm32/libpal_azure_c_shared_openssl3.so
-rw-rw-rw- root/root 370992 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/arm64/libpal_azure_c_shared_openssl3.so
-rw-rw-rw- root/root 379456 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/x64/libpal_azure_c_shared_openssl3.so # <-- NOT MISSING
-rw-rw-rw- root/root 469184 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/x64/libMicrosoft.CognitiveServices.Speech.extension.kws.so # <--- NOT MISSING
-rw-rw-rw- root/root 1689944 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/x64/libMicrosoft.CognitiveServices.Speech.extension.kws.ort.so # <--- NOT MISSING
-rw-rw-rw- root/root 202144 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/arm32/libMicrosoft.CognitiveServices.Speech.extension.kws.so
-rw-rw-rw- root/root 321504 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/arm64/libMicrosoft.CognitiveServices.Speech.extension.kws.so
-rw-rw-rw- root/root 1059940 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/arm32/libMicrosoft.CognitiveServices.Speech.extension.kws.ort.so
-rw-rw-rw- root/root 1717736 2024-08-10 02:11 SpeechSDK-Linux-1.40.0/lib/arm64/libMicrosoft.CognitiveServices.Speech.extension.kws.ort.so
Describe the bug
fetchTree {type="tarball"; url="https://csspeechstorage.blob.core.windows.net/drop/1.40.0/SpeechSDK-Linux-1.40.0.tar.gz";}
doesn't correctly unpack the fetched tarball.The tarball in question contains files not ordered by paths so files in different subpaths are mixed. It looks like only the last bunch of files for a subdirectory is kept.
Steps To Reproduce
Expected behavior
The tarball should be correctly unpacked, so that all files contained in the tarball are present in
/nix/store/7y7k5xz1ryzzn41vvc5amz2fvziz4zjj-source
or whatever its store path will then be.nix-env --version
outputAdditional context
I deleted
~/.cache/nix
multiple times, while trying around with this. So the tarball cache was also refreshed multiple times. Alsonix-collect-garbage -d
got rid of the store path/nix/store/7y7k5xz1ryzzn41vvc5amz2fvziz4zjj-source
multiple times for me, so hopefully it wasn't just a faulty download sticking to some cache ...Priorities
This makes flake inputs of type
tarball
dangerous for now. So I guess it is pretty severe.Add :+1: to issues you find important.