Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fetchTarball fails after downloading proton-ge #10575

Open
babbaj opened this issue Apr 21, 2024 · 3 comments
Open

fetchTarball fails after downloading proton-ge #10575

babbaj opened this issue Apr 21, 2024 · 3 comments
Labels
bug regression Something doesn't work anymore

Comments

@babbaj
Copy link

babbaj commented Apr 21, 2024

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 output

babbaj@nixos:~ ❯ nix --version
nix (Nix) 2.21.0

Additional 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

throw Error("adding a file to a tree builder: %s", git_error_last()->message);

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.
cabee98

proton-ge was also added to nixpkgs recently and uses fetchzip instead of fetchTarball. Using fetchzip in place of fetchTarball works fine.

Priorities

Add 👍 to issues you find important.

@babbaj babbaj added the bug label Apr 21, 2024
@thufschmitt thufschmitt added the regression Something doesn't work anymore label Apr 23, 2024
@thufschmitt
Copy link
Member

cc @edolstra . I can confirm this, and cabee98 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

@pluiedev
Copy link

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 ```

@nixos-discourse
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug regression Something doesn't work anymore
Projects
None yet
Development

No branches or pull requests

4 participants