| 11 Nov 2025 |
K900 | ...what the fuck | 11:15:18 |
ElvishJerricco | yea, this is great fun :P | 11:15:37 |
ElvishJerricco | so much fun, you can't do the finalAttrs style fix with runCommand | 11:17:18 |
Vladimír Čunát | I looked at that override a while ago, but no ideas why this would happen. | 11:17:28 |
ElvishJerricco | well, presumably it's because the buildEnv' wrapper function in that build-tex-env.nix file is not really passing pathsToLink to buildEnv, but instead replacing it with overrideAttrs, which does not propagate to pathsToLinkJSON | 11:18:25 |
ElvishJerricco | because buildEnv uses rec instead of a finalAttrs type thing | 11:18:42 |
ElvishJerricco | which you can't do with runCommand | 11:18:48 |
Grimmauld (any/all) | queue is basically empty, so i guess its just fixing the channel blockers now? | 11:18:49 |
ElvishJerricco | so I guess I can either figure out how to plumb a finalAttrs into buildEnv to get rid of the rec, or I can just extract the pathsToLink arg and pass it to buildEnv properly | 11:20:16 |
Grimmauld (any/all) | do we even need overrideAttrs, can't we just // most of the things? | 11:20:43 |
ElvishJerricco | yea it's not clear to me why this function was written this way | 11:21:36 |
Vladimír Čunát | I have a workaround for it. | 11:21:46 |
Vladimír Čunát | (fixing some texlive builds at least) | 11:21:59 |
ElvishJerricco | good lord, the thing it does to extract extraOutputsToInstall appears to have been not working this whole time, so that's fun (there needed to be parens) | 11:22:50 |
Vladimír Čunát | Yeah, I'm adding the parens, too. | 11:23:08 |
ElvishJerricco | oh we've done the same fix? :P | 11:23:17 |
ElvishJerricco | buildEnv' =
args:
(buildEnv (
{
inherit (args) name paths;
}
// lib.optionalAttrs (args ? extraOutputsToInstall) { inherit (args) extraOutputsToInstall; }
// lib.optionalAttrs (args ? pathsToLink) { inherit (args) pathsToLink; }
)).overrideAttrs
(
removeAttrs args [
"extraOutputsToInstall"
"pathsToLink"
"name"
"paths"
"pkgs"
]
);
| 11:23:39 |
Vladimír Čunát | Yes, exactly. | 11:24:04 |
Vladimír Čunát | Up to formatting and ordering in the list. | 11:24:14 |
ElvishJerricco | lol | 11:24:19 |
Vladimír Čunát | * Up to formatting and ordering in the list. (I don't care about those) | 11:24:22 |
ElvishJerricco | yea, it does appear to resolve the issue | 11:24:40 |
ElvishJerricco | at the expense of perpetuating this madness | 11:24:46 |
Grimmauld (any/all) | Why not just:
buildEnv' =
args:
buildEnv (
{
inherit (args) name paths;
}
// (removeAttrs args [
"name"
"paths"
"pkgs"
])
);
Do we need the override?
| 11:24:50 |
Vladimír Čunát | I suspect it might better be refactored to pass all args directly except some extra ones defined by buildEnv' | 11:24:57 |
Grimmauld (any/all) | actually wtf why is this wrapper there anyways | 11:25:09 |
ElvishJerricco | probably not but I'm afraid to change it :P | 11:25:08 |
Grimmauld (any/all) | like, that wrapper does nothing? i think? | 11:25:29 |
ElvishJerricco | yea wtf | 11:25:44 |
Grimmauld (any/all) | it removes pkgs, thats about it | 11:25:52 |