diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix index b681c3b3570..9c86b17bde7 100644 --- a/pkgs/development/node-packages/default.nix +++ b/pkgs/development/node-packages/default.nix @@ -15,6 +15,10 @@ let ''; }; + "@electron-forge/cli" = super."@electron-forge/cli".override { + buildInputs = [ self.node-pre-gyp self.rimraf ]; + }; + autoprefixer = super.autoprefixer.override { nativeBuildInputs = [ pkgs.makeWrapper ]; postInstall = '' @@ -38,6 +42,11 @@ let ''; }; + bitwarden-cli = super."@bitwarden/cli".override (drv: { + name = "bitwarden-cli-${drv.version}"; + meta.mainProgram = "bw"; + }); + bower2nix = super.bower2nix.override { buildInputs = [ pkgs.makeWrapper ]; postInstall = '' @@ -58,55 +67,6 @@ let ''; }; - deltachat-desktop = super."deltachat-desktop-../../applications/networking/instant-messengers/deltachat-desktop".override { - meta.broken = true; # use the top-level package instead - }; - - fast-cli = super.fast-cli.override { - nativeBuildInputs = [ pkgs.makeWrapper ]; - prePatch = '' - export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 - ''; - postInstall = '' - wrapProgram $out/bin/fast \ - --set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium.outPath}/bin/chromium - ''; - }; - - hyperspace-cli = super."@hyperspace/cli".override { - nativeBuildInputs = with pkgs; [ - makeWrapper - libtool - autoconf - automake - ]; - buildInputs = with pkgs; [ - nodePackages.node-gyp-build - nodejs - ]; - postInstall = '' - wrapProgram "$out/bin/hyp" --prefix PATH : ${ - pkgs.lib.makeBinPath [ pkgs.nodejs ] - } - ''; - }; - - mdctl-cli = super."@medable/mdctl-cli".override { - nativeBuildInputs = with pkgs; with darwin.apple_sdk.frameworks; [ - glib - libsecret - pkg-config - ] ++ lib.optionals stdenv.isDarwin [ - AppKit - Security - ]; - buildInputs = with pkgs; [ - nodePackages.node-gyp-build - nodePackages.node-pre-gyp - nodejs - ]; - }; - coc-imselect = super.coc-imselect.override { meta.broken = since "10"; }; @@ -116,6 +76,10 @@ let meta.broken = since "12"; }; + deltachat-desktop = super."deltachat-desktop-../../applications/networking/instant-messengers/deltachat-desktop".override { + meta.broken = true; # use the top-level package instead + }; + # NOTE: this is a stub package to fetch npm dependencies for # ../../applications/video/epgstation epgstation = super."epgstation-../../applications/video/epgstation".override (drv: { @@ -133,23 +97,25 @@ let }; }); - bitwarden-cli = super."@bitwarden/cli".override (drv: { - name = "bitwarden-cli-${drv.version}"; - meta.mainProgram = "bw"; - }); - - flood = super.flood.override { - buildInputs = [ self.node-pre-gyp ]; - meta.mainProgram = "flood"; - }; - expo-cli = super."expo-cli".override (attrs: { # The traveling-fastlane-darwin optional dependency aborts build on Linux. dependencies = builtins.filter (d: d.packageName != "@expo/traveling-fastlane-${if stdenv.isLinux then "darwin" else "linux"}") attrs.dependencies; }); - "@electron-forge/cli" = super."@electron-forge/cli".override { - buildInputs = [ self.node-pre-gyp self.rimraf ]; + fast-cli = super.fast-cli.override { + nativeBuildInputs = [ pkgs.makeWrapper ]; + prePatch = '' + export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 + ''; + postInstall = '' + wrapProgram $out/bin/fast \ + --set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium.outPath}/bin/chromium + ''; + }; + + flood = super.flood.override { + buildInputs = [ self.node-pre-gyp ]; + meta.mainProgram = "flood"; }; git-ssb = super.git-ssb.override { @@ -161,6 +127,24 @@ let buildInputs = [ self.node-gyp-build pkgs.unbound ]; }; + hyperspace-cli = super."@hyperspace/cli".override { + nativeBuildInputs = with pkgs; [ + makeWrapper + libtool + autoconf + automake + ]; + buildInputs = with pkgs; [ + nodePackages.node-gyp-build + nodejs + ]; + postInstall = '' + wrapProgram "$out/bin/hyp" --prefix PATH : ${ + pkgs.lib.makeBinPath [ pkgs.nodejs ] + } + ''; + }; + ijavascript = super.ijavascript.override (oldAttrs: { preRebuild = '' export NPM_CONFIG_ZMQ_EXTERNAL=true @@ -176,6 +160,22 @@ let meta.license = pkgs.lib.licenses.unfree; }; + joplin = super.joplin.override { + nativeBuildInputs = [ pkgs.pkg-config ]; + buildInputs = with pkgs; [ + # required by sharp + # https://sharp.pixelplumbing.com/install + vips + + libsecret + self.node-gyp-build + self.node-pre-gyp + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.AppKit + darwin.apple_sdk.frameworks.Security + ]; + }; + jsonplaceholder = super.jsonplaceholder.override (drv: { buildInputs = [ nodejs ]; postInstall = '' @@ -218,15 +218,35 @@ let meta.mainProgram = "markdownlint"; }; - node-gyp = super.node-gyp.override { + mdctl-cli = super."@medable/mdctl-cli".override { + nativeBuildInputs = with pkgs; with darwin.apple_sdk.frameworks; [ + glib + libsecret + pkg-config + ] ++ lib.optionals stdenv.isDarwin [ + AppKit + Security + ]; + buildInputs = with pkgs; [ + nodePackages.node-gyp-build + nodePackages.node-pre-gyp + nodejs + ]; + }; + + mermaid-cli = super."@mermaid-js/mermaid-cli".override ( + if stdenv.isDarwin + then {} + else { nativeBuildInputs = [ pkgs.makeWrapper ]; - # Teach node-gyp to use nodejs headers locally rather that download them form https://nodejs.org. - # This is important when build nodejs packages in sandbox. + prePatch = '' + export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 + ''; postInstall = '' - wrapProgram "$out/bin/node-gyp" \ - --set npm_config_nodedir ${nodejs} + wrapProgram $out/bin/mmdc \ + --set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium.outPath}/bin/chromium ''; - }; + }); near-cli = super.near-cli.override { nativeBuildInputs = with pkgs; [ @@ -237,11 +257,25 @@ let ]; }; + node-gyp = super.node-gyp.override { + nativeBuildInputs = [ pkgs.makeWrapper ]; + # Teach node-gyp to use nodejs headers locally rather that download them form https://nodejs.org. + # This is important when build nodejs packages in sandbox. + postInstall = '' + wrapProgram "$out/bin/node-gyp" \ + --set npm_config_nodedir ${nodejs} + ''; + }; + node-inspector = super.node-inspector.override { buildInputs = [ self.node-pre-gyp ]; meta.broken = since "10"; }; + node-red = super.node-red.override { + buildInputs = [ self.node-pre-gyp ]; + }; + node2nix = super.node2nix.override { buildInputs = [ pkgs.makeWrapper ]; # We need to use master because of a fix that replaces git:// url to https://. @@ -257,23 +291,12 @@ let ''; }; - node-red = super.node-red.override { - buildInputs = [ self.node-pre-gyp ]; - }; - - mermaid-cli = super."@mermaid-js/mermaid-cli".override ( - if stdenv.isDarwin - then {} - else { - nativeBuildInputs = [ pkgs.makeWrapper ]; - prePatch = '' - export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 - ''; - postInstall = '' - wrapProgram $out/bin/mmdc \ - --set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium.outPath}/bin/chromium + parcel = super.parcel.override { + buildInputs = [ self.node-gyp-build ]; + preRebuild = '' + sed -i -e "s|#!/usr/bin/env node|#! ${pkgs.nodejs}/bin/node|" node_modules/node-gyp-build/bin.js ''; - }); + }; pnpm = super.pnpm.override { nativeBuildInputs = [ pkgs.makeWrapper ]; @@ -294,13 +317,6 @@ let ''; }; - parcel = super.parcel.override { - buildInputs = [ self.node-gyp-build ]; - preRebuild = '' - sed -i -e "s|#!/usr/bin/env node|#! ${pkgs.nodejs}/bin/node|" node_modules/node-gyp-build/bin.js - ''; - }; - postcss-cli = super.postcss-cli.override { nativeBuildInputs = [ pkgs.makeWrapper ]; postInstall = '' @@ -401,6 +417,11 @@ let }; }); + teck-programmer = super.teck-programmer.override { + nativeBuildInputs = [ self.node-gyp-build ]; + buildInputs = [ pkgs.libusb1 ]; + }; + tedicross = super."tedicross-git+https://github.com/TediCross/TediCross.git#v0.8.7".override { nativeBuildInputs = [ pkgs.makeWrapper ]; postInstall = '' @@ -409,6 +430,16 @@ let ''; }; + thelounge = super.thelounge.override { + buildInputs = [ self.node-pre-gyp ]; + postInstall = '' + echo /var/lib/thelounge > $out/lib/node_modules/thelounge/.thelounge_home + patch -d $out/lib/node_modules/thelounge -p1 < ${./thelounge-packages-path.patch} + ''; + passthru.tests = { inherit (nixosTests) thelounge; }; + meta = super.thelounge.meta // { maintainers = with lib.maintainers; [ winter ]; }; + }; + thelounge-plugin-closepms = super.thelounge-plugin-closepms.override { nativeBuildInputs = [ self.node-pre-gyp ]; }; @@ -421,18 +452,25 @@ let nativeBuildInputs = [ self.node-pre-gyp ]; }; - tsun = super.tsun.overrideAttrs (oldAttrs: { + triton = super.triton.override { + nativeBuildInputs = [ pkgs.installShellFiles ]; + postInstall = '' + installShellCompletion --cmd triton --bash <($out/bin/triton completion) + ''; + }; + + ts-node = super.ts-node.overrideAttrs (oldAttrs: { buildInputs = oldAttrs.buildInputs ++ [ pkgs.makeWrapper ]; postInstall = '' - wrapProgram "$out/bin/tsun" \ + wrapProgram "$out/bin/ts-node" \ --prefix NODE_PATH : ${self.typescript}/lib/node_modules ''; }); - ts-node = super.ts-node.overrideAttrs (oldAttrs: { + tsun = super.tsun.overrideAttrs (oldAttrs: { buildInputs = oldAttrs.buildInputs ++ [ pkgs.makeWrapper ]; postInstall = '' - wrapProgram "$out/bin/ts-node" \ + wrapProgram "$out/bin/tsun" \ --prefix NODE_PATH : ${self.typescript}/lib/node_modules ''; }); @@ -449,11 +487,6 @@ let ''; }; - teck-programmer = super.teck-programmer.override { - nativeBuildInputs = [ self.node-gyp-build ]; - buildInputs = [ pkgs.libusb1 ]; - }; - uppy-companion = super."@uppy/companion".override { name = "uppy-companion"; }; @@ -485,41 +518,19 @@ let }; }; - webtorrent-cli = super.webtorrent-cli.override { - buildInputs = [ self.node-gyp-build ]; - }; - - joplin = super.joplin.override { - nativeBuildInputs = [ pkgs.pkg-config ]; + wavedrom-cli = super.wavedrom-cli.override { + nativeBuildInputs = [ pkgs.pkg-config self.node-pre-gyp ]; + # These dependencies are required by + # https://github.com/Automattic/node-canvas. buildInputs = with pkgs; [ - # required by sharp - # https://sharp.pixelplumbing.com/install - vips - - libsecret - self.node-gyp-build - self.node-pre-gyp - ] ++ lib.optionals stdenv.isDarwin [ - darwin.apple_sdk.frameworks.AppKit - darwin.apple_sdk.frameworks.Security + pixman + cairo + pango ]; }; - thelounge = super.thelounge.override { - buildInputs = [ self.node-pre-gyp ]; - postInstall = '' - echo /var/lib/thelounge > $out/lib/node_modules/thelounge/.thelounge_home - patch -d $out/lib/node_modules/thelounge -p1 < ${./thelounge-packages-path.patch} - ''; - passthru.tests = { inherit (nixosTests) thelounge; }; - meta = super.thelounge.meta // { maintainers = with lib.maintainers; [ winter ]; }; - }; - - triton = super.triton.override { - nativeBuildInputs = [ pkgs.installShellFiles ]; - postInstall = '' - installShellCompletion --cmd triton --bash <($out/bin/triton completion) - ''; + webtorrent-cli = super.webtorrent-cli.override { + buildInputs = [ self.node-gyp-build ]; }; yaml-language-server = super.yaml-language-server.override { @@ -529,16 +540,5 @@ let --prefix NODE_PATH : ${self.prettier}/lib/node_modules ''; }; - - wavedrom-cli = super.wavedrom-cli.override { - nativeBuildInputs = [ pkgs.pkg-config self.node-pre-gyp ]; - # These dependencies are required by - # https://github.com/Automattic/node-canvas. - buildInputs = with pkgs; [ - pixman - cairo - pango - ]; - }; }; in self