nodePackages.vscode-langservers-extracted not building

Unable to build on latest nixos unstable
It might be related to:

building '/nix/store/c8i8glhpy2gf81gqskmdns3mqp2gdgxc-vscode-langservers-extracted-4.7.0-npm-deps.drv'...
error: builder for '/nix/store/c8i8glhpy2gf81gqskmdns3mqp2gdgxc-vscode-langservers-extracted-4.7.0-npm-deps.drv' failed with exit code 1;
       last 25 log lines:
       > node_modules/p-timeout
       > node_modules/inflight
       > node_modules/listr
       > node_modules/np/node_modules/p-timeout
       > node_modules/inherits
       > node_modules/p-try
       > node_modules/load-json-file
       > node_modules/@babel/helper-function-name
       > node_modules/ini
       > node_modules/@babel/plugin-transform-object-super
       > node_modules/package-json
       > node_modules/locate-path
       > node_modules/inquirer-autosubmit-prompt
       > node_modules/@babel/helper-get-function-arity
       > node_modules/parent-module
       > node_modules/pkg-dir/node_modules/locate-path
       > node_modules/inquirer-autosubmit-prompt/node_modules/inquirer
       > node_modules/load-json-file/node_modules/parse-json
       > node_modules/@babel/helper-hoist-variables
       > node_modules/lodash.debounce
       > node_modules/parse-json
       > Error: https://registry.npmjs.org/commander/-/commander-4.1.1.tgz: Connection Failed: tls connection init failed: Connection reset by peer (os error 104)
       >
       > Caused by:
       >     Connection reset by peer (os error 104)
       For full logs, run 'nix log /nix/store/c8i8glhpy2gf81gqskmdns3mqp2gdgxc-vscode-langservers-extracted-4.7.0-npm-deps.drv'.

“Connection reset by peer” means the server terminated the connection (in a polite way) so this is caused by the npm registry server, not the package. This could merely be rate limiting. Did you build many node packages?

I think 9:

              nodePackages.bash-language-server
              nodePackages.dockerfile-language-server-nodejs
              nodePackages.pyright
              nodePackages.stylelint
              nodePackages.svelte-language-server
              nodePackages.vls
              nodePackages.vim-language-server
              nodePackages.vscode-langservers-extracted
              nodePackages.yaml-language-server

Still not working, I’ll retry tomorrow.

Now it’s building. I guess you were right.
Thank you.

It’s not building for me on darwin

error: builder for '/nix/store/isw32dsxy7pqvg5xh8yckw6fcj7jl16q-vscode-langservers-extracted-4.7.0.drv' failed with exit code 2;
       last 10 log lines:
       > node_modules/read-pkg/node_modules/semver/bin/semver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
       > rebuilt dependencies successfully
       > patching script interpreter paths in node_modules
       > Finished npmConfigHook
       > patchPhase completed in 2 minutes 37 seconds
       > configuring
       > no configure script, doing nothing
       > building
       > babel:
       >   --out-dir requires filenames
       For full logs, run 'nix log /nix/store/isw32dsxy7pqvg5xh8yckw6fcj7jl16q-vscode-langservers-extracted-4.7.0.drv'.
error: 1 dependencies of derivation '/nix/store/nvdaiwr73as8ip2jzggb37cxarj9gs2d-user-environment.drv' failed to build
error: 1 dependencies of derivation '/nix/store/5y61gsjwv0s41a0fyfqrrqpxjb34h18f-etc.drv' failed to build
error: 1 dependencies of derivation '/nix/store/y5nk07c7z3r2ykim8a0kxcafn6h066sw-darwin-system-23.11.20230617.7cc30fd+darwin4.7c16d31.drv' failed to build

It looks like babel works differently on Darwin but I don’t have any darwin machines to test. This inconsistency could be a bug with babel, actually. The problem is this anyway. Could you try overriding the build phase and using --out-file instead? You can see the expected filenames here.

You mean something like this?

nodePackages.vscode-langservers-extracted.overrideAttrs {
  buildPhase = …
}

Could also be an issue with the version of babel used because it seems like a very old babel issue CLI: filenames required for --out-dir · Issue #1307 · babel/babel · GitHub maybe npx babel@latest would help? not really sure…

I am on darwin and have same problem on unstable, 23.05 seems ok

Yes.

I don’t think it’s that old issue since it’s working on linux but that’s worth a try anyway.

@Lord-Valen you are actually running an old version of Babel, v6. Quoting the docs

Note: Please install @babel/cli and @babel/core first before npx babel , otherwise npx will install out-of-dated babel 6.x. Other than npx, you can also drop it inside of an npm run script or you may instead execute with the relative path instead. ./node_modules/.bin/babel

and this is what I get on Mac when I run npx babel --help

$ npx babel --help
You have mistakenly installed the `babel` package, which is a no-op in Babel 6.
Babel's CLI commands have been moved from the `babel` package to the `babel-cli` package.

    npm uninstall babel
    npm install --save-dev babel-cli

See http://babeljs.io/docs/usage/cli/ for setup instructions.

More info, seems like paths are not the same between Linux and Mac

You can replicate this with shell.nix

with import <nixpkgs> { };
mkShell {
  buildInputs = [
    (pkgs.lib.overrideDerivation nodePackages.vscode-langservers-extracted
      (old: {
        buildPhase =
          let
            extensions = "${vscode}/lib/vscode/resources/app/extensions";
          in
          ''
            ls -al ${extensions}/css-language-features/server/dist/
            # npx babel ${extensions}/css-language-features/server/dist/* --out-dir lib/css-language-server/node/
          '';
      }))
  ];
}

This is the log after it failed to build, notice the last line saying that the folder doesn’t exist.

nix log /nix/store/v3wkjdm0kssl4zy71bfdc4xlw7i4hz5g-vscode-langservers-extracted-4.7.0.drv
warning: The interpretation of store paths arguments ending in `.drv` recently changed. If this command is now failing try again with '/nix/store/v3wkjdm0kssl4zy71bfdc4xlw7i4hz5g-vscode-langservers-extracted-4.7.0.drv^*'
@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking sources
unpacking source archive /nix/store/pgqsk8sdh6gg9kdqi8iijhw6sng6qwiv-source
source root is source
@nix { "action": "setPhase", "phase": "patchPhase" }
patching sources
Executing npmConfigHook
Configuring npm
Validating consistency between /private/tmp/nix-build-vscode-langservers-extracted-4.7.0.drv-0/source/package-lock.json and /nix/store/p49c155m6c3c452vy0mdjcwijk7qnjr1-vscode-langservers-extracted-4.7.0-npm-deps/package-lock.json
Installing dependencies

added 618 packages, and audited 619 packages in 5s

47 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
patching script interpreter paths in node_modules
node_modules/is-docker/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/jsesc/bin/jsesc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/browserslist/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/make-dir/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/import-local/fixtures/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/core-js-compat/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/rimraf/bin.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/typescript/bin/tsserver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/typescript/bin/tsc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/is-ci/bin.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/package-json/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/regjsparser/bin/parser: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/regjsparser/node_modules/jsesc/bin/jsesc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/semver-diff/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/@babel/preset-env/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/@babel/core/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/@babel/cli/bin/babel-external-helpers.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/@babel/cli/bin/babel.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/@babel/cli/node_modules/semver/bin/semver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/@babel/parser/bin/babel-parser.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/@babel/helper-compilation-targets/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/@babel/helper-define-polyfill-provider/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/pidtree/bin/pidtree.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/json5/lib/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/np/source/cli-implementation.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/np/source/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/babel-plugin-polyfill-corejs2/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/vscode-languageserver/bin/installServerIntoExtension: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/npm-run-all/bin/run-p/index.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/npm-run-all/bin/run-s/index.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/npm-run-all/bin/npm-run-all/index.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/npm-run-all/node_modules/semver/bin/semver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/npm-run-all/node_modules/which/bin/which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/@nicolo-ribaudo/chokidar-2/build-chokidar.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/y0sbqh18cqlha5inki7aj6bcncx3fy85-bash-5.2-p15/bin/sh"
node_modules/rc/cli.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/which/bin/node-which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
node_modules/open/xdg-open: interpreter directive changed from "#!/bin/sh" to "/nix/store/y0sbqh18cqlha5inki7aj6bcncx3fy85-bash-5.2-p15/bin/sh"
node_modules/read-pkg/node_modules/semver/bin/semver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/1vlb8v8qgcsgahc88dwb76zvqng732vz-nodejs-18.16.0/bin/node"
rebuilt dependencies successfully
patching script interpreter paths in node_modules
Finished npmConfigHook
@nix { "action": "setPhase", "phase": "configurePhase" }
configuring
no configure script, doing nothing
@nix { "action": "setPhase", "phase": "buildPhase" }
building
ls: cannot access '/nix/store/bsv3a7dhk01cc9g4ffpr90jiizc76rz8-vscode-1.79.2/lib/vscode/resources/app/extensions/css-language-features/server/dist/': No such file or directory

The same happens if I try to do ls -al ${extensions}