| 31 Oct 2024 |
pxc | when I tried building utf-8-validate (the latest version) by itself, as part of nodePackages, it worked when I added node-gyp and libtool, but I think the deps needed by the older version pulled in by @microsoft/signalr might be different | 20:00:35 |
pxc | sure thing, 1 sec | 20:00:38 |
pxc | here's the build log: https://pastebin.com/2VP96FLp | 20:02:31 |
pxc | here's an existing Nixpkgs issue that points to a piece of the breakage that was already solved (macOS needs perl in the nativeBuildInputs for bitwarden-cli since utf-8-validate uses perl one-liners in its gyp config: https://github.com/NixOS/nixpkgs/issues/339576 | 20:03:51 |
pxc | and I don't totally know what to make of them, but some of the conditional gyp bindings in different versions of that dep seem instructive somehow. In the latest version of utf-8-validate, binding.gyp looks like this: https://github.com/websockets/utf-8-validate/blob/master/binding.gyp | 20:11:12 |
Lily Foster | In reply to @pxc:matrix.org here's the build log: https://pastebin.com/2VP96FLp it's building the x86_64 validator as aarch64...? | 20:15:17 |
pxc | yeah | 20:15:26 |
pxc | there are a small number of occurrences of this problem in other packages as well, unresolved | 20:15:49 |
pxc | when I got the latest version of utf-8-validate to build by itself, adding libtool to the buildInputs made it stop doing this, it seems | 20:16:10 |
Lily Foster | i can't even tell if the upstream dep is busted at 5.0.10 or if it's darwin sdk fuckery that might be fixed on master as of this morning | 20:16:12 |
pxc | the conditions in binding.gyp seem more sophisticated in that latest version than in some others that appear in the tree | 20:16:48 |
pxc | utf-8-validate is a dependency of @wessberg/ts-evaluator as well but I don't see it in my node_modules when debugging with nix-shell | 20:17:23 |
emily | doesn't look particularly SDK-refactor-related but I strongly encourage rebasing on current master all the same | 20:17:27 |
pxc | * utf-8-validate is a dependency of @wessberg/ts-evaluator as well but I don't see it in my node_modules when debugging with nix-shell/nix develop | 20:17:29 |
Lily Foster | In reply to @pxc:matrix.org the conditions in binding.gyp seem more sophisticated in that latest version than in some others that appear in the tree sophistication isn't what changed. it's that they stopped building "fat" binaries with both x86_64 and aarch64 object code in them at the same time | 20:17:51 |
pxc | here's the old version: https://pastebin.com/XDxvjsgs | 20:18:36 |
pxc | yeah | 20:18:37 |
emily | 10.7 deployment target, nice | 20:18:53 |
pxc | yeah the logs emitted a warning about that but I have no intuitions about whether it's meaningful | 20:19:21 |
emily | shouldn't matter | 20:19:54 |
pxc | current questions:
-
Would it maybe be worthwhile to try building things further down the dependency tree as their own packages, also with buildNpmPackage, just to make it more convenient to see if tweaking their sources (maybe playing with binding.gyp helps)?
-
If I do figure out something that works, how can I override transitive dependencies that have native deps like that?
| 20:22:58 |
pxc | build still fails on master because of missing perl, I'm a dingus. Lemme pull master into my local checkout with that fix instead | 20:23:53 |
pxc | yeah, Darwin SDK changes on master don't seem to affect it | 20:28:02 |
Lily Foster | In reply to @pxc:matrix.org
current questions:
-
Would it maybe be worthwhile to try building things further down the dependency tree as their own packages, also with buildNpmPackage, just to make it more convenient to see if tweaking their sources (maybe playing with binding.gyp helps)?
-
If I do figure out something that works, how can I override transitive dependencies that have native deps like that?
- no
- you can technically intervene if you're crafty, but also it's an optional dep anyway so you can probably just turn those off
| 20:28:12 |
Lily Foster | In reply to @pxc:matrix.org
utf-8-validate is a dependency of @wessberg/ts-evaluator as well but I don't see it in my node_modules when debugging with nix-shell i did actually make a shellHook for buildNpmPackage packages to make that sort of check work, but i'm not contributing to nixpkgs anymore so oh well i guess | 20:29:51 |
pxc | that sucks, but I understand | 20:30:32 |
pxc | it looks like utf-8-validate appears multiple times in the dependency tree, and at least once as just a first-order dependency (and not a devDependency). Are you sure they're all eliminable | 20:31:31 |
Lily Foster | i'd give snippet for disabling optional peer deps in npmInstallFlags or whatever it is, but i'm on mobile rn sadly | 20:31:33 |
pxc | ty! | 20:31:43 |
Lily Foster | In reply to @pxc:matrix.org it looks like utf-8-validate appears multiple times in the dependency tree, and at least once as just a first-order dependency (and not a devDependency). Are you sure they're all eliminable all of the old ones that still try to build fat executables are from optional peer deps from microsoft etc pinning an ancient version of ws for some godawful reason | 20:33:01 |