Firefox.outPath no longer evaluates on latest nixpkgs

#412
Opened by aspen at 2024-07-29T02·06+00

This appears to be a longstanding tvix bug, since nix 2.3 evaluates it just fine:

tvix-repl> (import ../. {}).third_party.nixpkgs.firefox.outPath
⠈ Evaluating…                                                                                          (11s)       0/0      note: while evaluating this Nix code
   --> [code]:1:1
    |
1   | (import ../. {}).third_party.nixpkgs.firefox.outPath
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (force)
   --> <src-builtins/derivation.nix>:26:19
    |
26  |         outPath = builtins.getAttr outputName strict;
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (force)
   --> <src-builtins/derivation.nix>:14:12
    |
14  |   strict = derivationStrict drvAttrs;
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (force)
   --> /nix/store/fpl1r6gqz3zcf3vwl8jqc7rnbdx5p6ng-nixpkgs-src/pkgs/applications/networking/browsers/firefox/wrapper.nix:246:22
    |
246 |         buildCommand = ''
    |  ______________________^
247 | |         if [ ! -x "${browser}/bin/${applicationName}" ]
248 | |         then
249 | |             echo "cannot find executable file \`${browser}/bin/${applicationName}'"
...   |
406 | |         #############################
407 | |       '';
    | |________^
note: while evaluating this as native code (coerce_to_string)
   --> <src-builtins/derivation.nix>:26:19
    |
26  |         outPath = builtins.getAttr outputName strict;
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (force)
   --> <src-builtins/derivation.nix>:14:12
    |
14  |   strict = derivationStrict drvAttrs;
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (force)
   --> /nix/store/fpl1r6gqz3zcf3vwl8jqc7rnbdx5p6ng-nixpkgs-src/pkgs/applications/networking/browsers/firefox/common.nix:287:13
    |
287 |   HOST_CC = "${llvmPackagesBuildBuild.stdenv.cc}/bin/cc";
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (coerce_to_string)
   --> <src-builtins/derivation.nix>:26:19
    |
26  |         outPath = builtins.getAttr outputName strict;
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (force)
   --> <src-builtins/derivation.nix>:14:12
    |
14  |   strict = derivationStrict drvAttrs;
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (coerce_to_string)
   --> <src-builtins/derivation.nix>:26:19
    |
26  |         outPath = builtins.getAttr outputName strict;
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (force)
   --> <src-builtins/derivation.nix>:14:12
    |
14  |   strict = derivationStrict drvAttrs;
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (coerce_to_string)
   --> <src-builtins/derivation.nix>:26:19
    |
26  |         outPath = builtins.getAttr outputName strict;
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (force)
   --> <src-builtins/derivation.nix>:14:12
    |
14  |   strict = derivationStrict drvAttrs;
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
note: while evaluating this as native code (coerce_to_string)
   --> /nix/store/fpl1r6gqz3zcf3vwl8jqc7rnbdx5p6ng-nixpkgs-src/pkgs/development/compilers/llvm/common/default.nix:74:7
    |
74  | /       builtins.path {
75  | |         name = builtins.baseNameOf p;
76  | |         path = "${metadata.versionDir}/${p}";
77  | |       };
    | |_______^
error[E006]: expected value of type 'path', but found a 'string'
   --> /nix/store/fpl1r6gqz3zcf3vwl8jqc7rnbdx5p6ng-nixpkgs-src/pkgs/development/compilers/llvm/common/default.nix:74:7
    |
74  | /       builtins.path {
75  | |         name = builtins.baseNameOf p;
76  | |         path = "${metadata.versionDir}/${p}";
77  | |       };
    | |_______^

  1. bisect shows 80e3c2c5d0d2138fad54896a19dc64260a066304 is the first commit that broke tvix

    aspen at 2024-07-29T02·17+00

  2. I think this might basically just be "the path argument to builtins.path can be a string":

    nix-repl> builtins.path { name = "def"; path = "/home/aspen/code/depot/default.nix"; }
    "/nix/store/n872ya18v59pf3cf2n5i2nnxn5n6p0wk-def"
    

    tvix-repl> builtins.path { name = "def"; path = "/home/aspen/code/depot/default.nix"; } ⠁ Evaluating… (0s) 0/0 note: while evaluating this Nix code --> [code]:1:1 | 1 | builtins.path { name = "def"; path = "/home/aspen/code/depot/default.nix"; } | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E006]: expected value of type 'path', but found a 'string' --> [code]:1:1 | 1 | builtins.path { name = "def"; path = "/home/aspen/code/depot/default.nix"; } | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    
    

    aspen at 2024-07-29T02·24+00

  3. Fixed by https://cl.tvl.fyi/c/depot/+/12053gT

    aspen at 2024-07-29T02·46+00

  4. aspen closed this issue at 2024-07-29T02·46+00