Open babbaj opened 6 months ago
cc @edolstra . I can confirm this, and https://github.com/NixOS/nix/commit/cabee9815239af426cece729cb765810b8a716ce is a very likely culprit indeed. If we want to keep this git hashing thing, we'll need to be able to bail out of work around this kind of file names that aren't accepted by libgit2
Evidently this is not limited to fetchTarball
... fetchTree
also fails, triggered by call-flake.nix
:
… in the condition of the assert statement
at «nix-internal»/call-flake.nix:79:13:
78| if node.flake or true then
79| assert builtins.isFunction flake.outputs;
| ^
80| result
… while calling the 'isFunction' builtin
at «nix-internal»/call-flake.nix:79:20:
78| if node.flake or true then
79| assert builtins.isFunction flake.outputs;
| ^
80| result
… while calling the 'import' builtin
at «nix-internal»/call-flake.nix:54:19:
53|
54| flake = import (outPath + "/flake.nix");
| ^
55|
… while realising the context of a path
… while calling the 'fetchTree' builtin
at «nix-internal»/call-flake.nix:48:15:
47| # FIXME: remove obsolete node.info.
48| fetchTree (node.info or {} // removeAttrs node.locked ["dir"]);
| ^
49|
… while fetching the input 'github:ipetkov/crane/529c1a0b1f29f0d78fa3086b8f6a134c71ef3aaf?narHash=sha256-k3oiD2z2AAwBFLa4%2BxfU%2B7G5fisRXfkvrMTCJrjZzXo%3D'
error: adding a file to a tree builder: failed to insert entry: invalid object specified - test.yml ```
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/need-help-with-this-git-related-flake-update-error/50538/7
Describe the bug
In my config I've been using fetchTarball to download proton-ge builds but after updating to nix 2.21.0 I am now getting this error from fetchTarball
error: adding a file to a tree builder: failed to insert entry: invalid name for a tree entry - .git
Steps To Reproduce
run
nix repl --expr 'fetchTarball { url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton9-4/GE-Proton9-4.tar.gz"; sha256 = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; }'
(older versions have the same problem)Expected behavior
fetchTarball should be able to unpack the tar file with no errors
nix-env --version
outputAdditional context
There is a .git folder included in the
protonfixes
subdirectory which is probably what is triggering the error. I believe the error comes specifically from here https://github.com/NixOS/nix/blob/8c4c2156bd786156a57219e78aa14a363ca8f041/src/libfetchers/git-utils.cc#L820 It doesn't make sense to me why git is involved in fetchTarball when it should and seemingly has been able to unpack any abitrary files in stable releases.This commit is most likely what introduced this regression. https://github.com/NixOS/nix/commit/cabee9815239af426cece729cb765810b8a716ce
proton-ge was also added to nixpkgs recently and uses
fetchzip
instead offetchTarball
. Usingfetchzip
in place offetchTarball
works fine.Priorities
Add :+1: to issues you find important.