| 10 Jul 2023 |
@janne.hess:helsinki-systems.de | Lily Foster: my yarn thingie ended up working btw. It looks like the cache just builds reproducibly. Yarn versions can be fixed by doing yarn set version and copying .yarn into the cache FOD and then copying it to the sandbox in the real build | 10:05:12 |
Lily Foster | In reply to @janne.hess:helsinki-systems.de Lily Foster: my yarn thingie ended up working btw. It looks like the cache just builds reproducibly. Yarn versions can be fixed by doing yarn set version and copying .yarn into the cache FOD and then copying it to the sandbox in the real build Oh cool, can you try it across a few yarn versions? | 10:05:40 |
Lily Foster | (For reproducibility?) | 10:05:54 |
@janne.hess:helsinki-systems.de | Since people actually commit the version for me, I don't actually use yarn set version. I just noticed that since I need it at runtime so it has to be copied to $out as well | 10:06:58 |
@janne.hess:helsinki-systems.de | So the fact that .yarn has to be copied affects me between build and run, not between the FOD and the build | 10:07:26 |
@janne.hess:helsinki-systems.de | (Also kind of related, turborepo and next.js is possibly the worst garbage I have seen in a long time) | 10:07:54 |
| 13 Jul 2023 |
| aktaboot changed their profile picture. | 06:56:51 |
| 14 Jul 2023 |
@janne.hess:helsinki-systems.de | Umm, is this intended? https://github.com/NixOS/nixpkgs/blob/release-23.05/pkgs/build-support/node/build-npm-package/hooks/default.nix#L9 | 15:00:20 |
@janne.hess:helsinki-systems.de | This causes (buildNpmPackage.override { nodejs = nodejs_14; }) to fail horribly | 15:00:37 |
Lily Foster | Yes it's intended. Can you share build log? | 15:00:51 |
Lily Foster | Oh, 14 | 15:00:59 |
Lily Foster | Uhhh one sec while I check | 15:01:02 |
Lily Foster | That | 15:01:03 |
@janne.hess:helsinki-systems.de | Workaround that is even worse: (buildNpmPackage.override { nodejs = nodejs_14; npmHooks = npmHooks.override { buildPackages = buildPackages.extend (self: super: { nodejs = super.nodejs_14; }); }; }) | 15:01:07 |
Lily Foster | Oh I see what you're saying is unintended | 15:01:23 |
@janne.hess:helsinki-systems.de | In reply to @lily:lily.flowers Oh I see what you're saying is unintended Yeah sorry that was super unclear | 15:01:37 |
Lily Foster | We should probably just fish out the correct one from spliced attrs | 15:01:49 |
Lily Foster | I guess | 15:01:52 |
@janne.hess:helsinki-systems.de | or some extra arg like nodeVersion that gets fed into getAttrByPath pkgs? | 15:02:12 |
@janne.hess:helsinki-systems.de | * or some extra arg like nodePackage that gets fed into getAttrByPath pkgs? | 15:02:35 |
Lily Foster | I'd rather keep the ability to specify a whole nodejs derivation and also since you linked 23.05, we want something backwards compatible so it is eligible for backport | 15:02:39 |
Lily Foster | Ugh this sucks, though. Maybe we can have the nodejs derivation itself expose the node-gyp location | 15:04:24 |
Lily Foster | In passthru | 15:04:27 |
Lily Foster | Hold on one sec. I'm wondering if that code is platform-independent | 15:06:09 |
Lily Foster | (probably a bad idea, but I'm gonna have to think on this to come up with a better solution) | 15:06:32 |
Lily Foster | Just to confirm, does this do better for you Janne HeΓ?
diff --git a/pkgs/build-support/node/build-npm-package/hooks/default.nix b/pkgs/build-support/node/build-npm-package/hooks/default.nix
index c34709335ff..1e6d82dc8df 100644
--- a/pkgs/build-support/node/build-npm-package/hooks/default.nix
+++ b/pkgs/build-support/node/build-npm-package/hooks/default.nix
@@ -6,7 +6,7 @@
name = "npm-config-hook";
substitutions = {
nodeSrc = srcOnly nodejs;
- nodeGyp = "${buildPackages.nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js";
+ nodeGyp = "${nodejs.__spliced.buildHost or buildPackages.nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js";
# Specify `diff`, `jq`, and `prefetch-npm-deps` by abspath to ensure that the user's build
# inputs do not cause us to find the wrong binaries.
| 15:09:19 |
@janne.hess:helsinki-systems.de | tbh, I have no idea how __spliced works | 15:09:40 |
@janne.hess:helsinki-systems.de | but probably? | 15:09:43 |
Lily Foster | In reply to @janne.hess:helsinki-systems.de tbh, I have no idea how __spliced works Dark magic mostly. There's a reason a lot of people consider splicing to have been a bit of a mistake... | 15:10:10 |
@janne.hess:helsinki-systems.de | so I have to check spliceReal β mash β merge β value? | 15:10:55 |