!NhAsaYbbgmzHtXTPQJ:funklause.de

Nix NodeJS

211 Members
61 Servers

Load older messages


SenderMessageTime
21 May 2023
@lily:lily.flowersLily Foster Also the navidrome update script fails because building .go-modules in general on the derivation fails due to buildGoModule propagating nativeBuildInputs to the fetcher (???) which obviously adds the npm hook which when run, expects to be building npm stuff, not fetching go modules 21:38:51
@lily:lily.flowersLily Foster I would say this is a bug in buildGoModule and not npmConfigHook because I imagine the same would happen with, e.g., the rust hooks 21:39:12
@lily:lily.flowersLily Foster * I would say this is a bug in buildGoModule and not npmConfigHook because I imagine the same would happen with, e.g., the cargo/rust hooks 21:39:16
@hexa:lossy.networkhexahm ok21:39:38
@lily:lily.flowersLily FosterNow for what to do about it, idk21:39:46
@lily:lily.flowersLily Foster There's no comment in the buildGoModule code about why it propagates nativeBuildInputs to the fetcher -- do you know why it would be doing that? 21:40:20
@lily:lily.flowersLily Foster That seems... counterintuitive. Stuff like buildRustPackage don't do that 21:41:11
@lily:lily.flowersLily Foster * That seems... counterintuitive. Stuff like buildRustPackage doesn't do that 21:41:24
@lily:lily.flowersLily Foster (and you can't override the fetcher with buildGoModule either since the fetcher is still not separately exposed...) 21:41:53
@lily:lily.flowersLily Foster Apparently buildGoModule also doesn't propagate unpackPhase or its hooks to the fetcher despite propagating src, which seems sus... 21:48:24
@lily:lily.flowersLily Foster It looks like the evcc derivation has the exact same issue and fixes it via buildGoModule's overrideModAttrs to set a slimmer nativeBuildInputs 21:56:58
@lily:lily.flowersLily Foster

Yeah, adding this to the derivation fixes building .go-modules and fixes the update script hexa:

  overrideModAttrs = oldAttrs: {
    nativeBuildInputs = lib.filter (drv: drv != npmHooks.npmConfigHook) oldAttrs.nativeBuildInputs;
    preBuild = null;
  };
22:03:18
@hexa:lossy.networkhexa
In reply to @lily:lily.flowers
There's no comment in the buildGoModule code about why it propagates nativeBuildInputs to the fetcher -- do you know why it would be doing that?
no idea
22:03:41
@hexa:lossy.networkhexa
In reply to @lily:lily.flowers
It looks like the evcc derivation has the exact same issue and fixes it via buildGoModule's overrideModAttrs to set a slimmer nativeBuildInputs
oh, right 😲
22:04:10
@lily:lily.flowersLily Foster
In reply to @hexa:lossy.network
https://github.com/NixOS/nixpkgs/pull/230991#issuecomment-1552133508
I just realized that was before winter fixed the PR to actually work (which is why it ended up with a pushd/popd)
22:05:11
@lily:lily.flowersLily FosterSo yeah the npmRoot PR needs to a rebase and then I'll merge and deal with further changes in follow-ups, to unblock other stuff22:06:33
@hexa:lossy.networkhexajust the upper pushd hunk needs a massage22:11:08
@lily:lily.flowersLily FosterYep, I've already done it locally. Was gonna get permission from winter before just pushing to the branch myself though22:11:34
22 May 2023
@raitobezarius:matrix.orgraitobezariusis there a way with buildNpmPackage to just "install" the node_modules and be done?11:45:23
@raitobezarius:matrix.orgraitobezariusis dontNpmInstall the option I am looking for? I tried it and I'm not sure I am holding it correctly11:45:40
@lily:lily.flowersLily FosterIs the default install hook over-copying or failing or something?11:48:19
@raitobezarius:matrix.orgraitobezarius
> Executing npmInstallHook
       > npm ERR! Invalid package, must have name and version
11:58:22
@raitobezarius:matrix.orgraitobezariusthis is an invalid Node.js package per se11:58:26
@raitobezarius:matrix.orgraitobezariusbecause they reuse it in some Makefile later on11:58:31
@raitobezarius:matrix.orgraitobezariusAnd they really only need the node deps11:58:35
@lily:lily.flowersLily Foster If the project has custom install logic, just override installPhase and do what you need to do 12:05:52
@lily:lily.flowersLily FosterOr if you want the default stdenv installPhase then dontNpmInstall does what you want12:07:42
@raitobezarius:matrix.orgraitobezariusOkay, thank you!12:09:20
@lily:lily.flowersLily FosterYou may need to prune node_modules first yourself though so you don't end up with dev deps in the output12:10:07
@lily:lily.flowersLily FosterIf the makefile doesn't12:10:17

Show newer messages


Back to Room ListRoom Version: 6