Merge pull request #171863 from malob/nodePackages-mainProgram
nodePackages: cleanup overrides and add meta.mainProgram to many packagesmain
commit
af49adccd7
@ -1,544 +1,23 @@ |
|||||||
{ pkgs, nodejs, stdenv, applyPatches, fetchFromGitHub, fetchpatch, fetchurl, nixosTests }: |
{ pkgs, lib, nodejs, stdenv}: |
||||||
|
|
||||||
let |
let |
||||||
inherit (pkgs) lib; |
inherit (lib) composeManyExtensions extends makeExtensible mapAttrs; |
||||||
since = version: pkgs.lib.versionAtLeast nodejs.version version; |
|
||||||
before = version: pkgs.lib.versionOlder nodejs.version version; |
nodePackages = final: import ./composition.nix { |
||||||
super = import ./composition.nix { |
|
||||||
inherit pkgs nodejs; |
inherit pkgs nodejs; |
||||||
inherit (stdenv.hostPlatform) system; |
inherit (stdenv.hostPlatform) system; |
||||||
}; |
}; |
||||||
self = super // { |
|
||||||
"@angular/cli" = super."@angular/cli".override { |
|
||||||
prePatch = '' |
|
||||||
export NG_CLI_ANALYTICS=false |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
autoprefixer = super.autoprefixer.override { |
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ]; |
|
||||||
postInstall = '' |
|
||||||
wrapProgram "$out/bin/autoprefixer" \ |
|
||||||
--prefix NODE_PATH : ${self.postcss}/lib/node_modules |
|
||||||
''; |
|
||||||
passthru.tests = { |
|
||||||
simple-execution = pkgs.callPackage ./package-tests/autoprefixer.nix { inherit (self) autoprefixer; }; |
|
||||||
}; |
|
||||||
}; |
|
||||||
|
|
||||||
aws-azure-login = super.aws-azure-login.override { |
|
||||||
meta.platforms = pkgs.lib.platforms.linux; |
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ]; |
|
||||||
prePatch = '' |
|
||||||
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 |
|
||||||
''; |
|
||||||
postInstall = '' |
|
||||||
wrapProgram $out/bin/aws-azure-login \ |
|
||||||
--set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium}/bin/chromium |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
bower2nix = super.bower2nix.override { |
|
||||||
buildInputs = [ pkgs.makeWrapper ]; |
|
||||||
postInstall = '' |
|
||||||
for prog in bower2nix fetch-bower; do |
|
||||||
wrapProgram "$out/bin/$prog" --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.git pkgs.nix ]} |
|
||||||
done |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
carbon-now-cli = super.carbon-now-cli.override { |
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ]; |
|
||||||
prePatch = '' |
|
||||||
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 |
|
||||||
''; |
|
||||||
postInstall = '' |
|
||||||
wrapProgram $out/bin/carbon-now \ |
|
||||||
--set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium.outPath}/bin/chromium |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
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"; |
|
||||||
}; |
|
||||||
|
|
||||||
dat = super.dat.override { |
|
||||||
buildInputs = [ self.node-gyp-build pkgs.libtool pkgs.autoconf pkgs.automake ]; |
|
||||||
meta.broken = since "12"; |
|
||||||
}; |
|
||||||
|
|
||||||
# NOTE: this is a stub package to fetch npm dependencies for |
|
||||||
# ../../applications/video/epgstation |
|
||||||
epgstation = super."epgstation-../../applications/video/epgstation".override (drv: { |
|
||||||
buildInputs = [ self.node-pre-gyp self.node-gyp-build ]; |
|
||||||
meta = drv.meta // { |
|
||||||
platforms = pkgs.lib.platforms.none; |
|
||||||
}; |
|
||||||
}); |
|
||||||
|
|
||||||
# NOTE: this is a stub package to fetch npm dependencies for |
|
||||||
# ../../applications/video/epgstation/client |
|
||||||
epgstation-client = super."epgstation-client-../../applications/video/epgstation/client".override (drv: { |
|
||||||
meta = drv.meta // { |
|
||||||
platforms = pkgs.lib.platforms.none; |
|
||||||
}; |
|
||||||
}); |
|
||||||
|
|
||||||
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 ]; |
|
||||||
}; |
|
||||||
|
|
||||||
git-ssb = super.git-ssb.override { |
|
||||||
buildInputs = [ self.node-gyp-build ]; |
|
||||||
meta.broken = since "10"; |
|
||||||
}; |
|
||||||
|
|
||||||
hsd = super.hsd.override { |
|
||||||
buildInputs = [ self.node-gyp-build pkgs.unbound ]; |
|
||||||
}; |
|
||||||
|
|
||||||
ijavascript = super.ijavascript.override (oldAttrs: { |
|
||||||
preRebuild = '' |
|
||||||
export NPM_CONFIG_ZMQ_EXTERNAL=true |
|
||||||
''; |
|
||||||
buildInputs = oldAttrs.buildInputs ++ [ self.node-gyp-build pkgs.zeromq ]; |
|
||||||
}); |
|
||||||
|
|
||||||
insect = super.insect.override (drv: { |
|
||||||
nativeBuildInputs = drv.nativeBuildInputs or [] ++ [ pkgs.psc-package self.pulp ]; |
|
||||||
}); |
|
||||||
|
|
||||||
intelephense = super.intelephense.override { |
|
||||||
meta.license = pkgs.lib.licenses.unfree; |
|
||||||
}; |
|
||||||
|
|
||||||
jsonplaceholder = super.jsonplaceholder.override (drv: { |
|
||||||
buildInputs = [ nodejs ]; |
|
||||||
postInstall = '' |
|
||||||
exe=$out/bin/jsonplaceholder |
|
||||||
mkdir -p $out/bin |
|
||||||
cat >$exe <<EOF |
|
||||||
#!${pkgs.runtimeShell} |
|
||||||
exec -a jsonplaceholder ${nodejs}/bin/node $out/lib/node_modules/jsonplaceholder/index.js |
|
||||||
EOF |
|
||||||
chmod a+x $exe |
|
||||||
''; |
|
||||||
}); |
|
||||||
|
|
||||||
makam = super.makam.override { |
|
||||||
buildInputs = [ pkgs.nodejs pkgs.makeWrapper ]; |
|
||||||
postFixup = '' |
|
||||||
wrapProgram "$out/bin/makam" --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.nodejs ]} |
|
||||||
${ |
|
||||||
if stdenv.isLinux |
|
||||||
then "patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 \"$out/lib/node_modules/makam/makam-bin-linux64\"" |
|
||||||
else "" |
|
||||||
} |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
manta = super.manta.override { |
|
||||||
nativeBuildInputs = with pkgs; [ nodejs-14_x installShellFiles ]; |
|
||||||
postInstall = '' |
|
||||||
# create completions, following upstream procedure https://github.com/joyent/node-manta/blob/v5.2.3/Makefile#L85-L91 |
|
||||||
completion_cmds=$(find ./bin -type f -printf "%f\n") |
|
||||||
|
|
||||||
node ./lib/create_client.js |
|
||||||
for cmd in $completion_cmds; do |
|
||||||
installShellCompletion --cmd $cmd --bash <(./bin/$cmd --completion) |
|
||||||
done |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
markdownlint-cli = super.markdownlint-cli.override { |
|
||||||
meta.mainProgram = "markdownlint"; |
|
||||||
}; |
|
||||||
|
|
||||||
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} |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
near-cli = super.near-cli.override { |
|
||||||
nativeBuildInputs = with pkgs; [ |
|
||||||
libusb1 |
|
||||||
nodePackages.prebuild-install |
|
||||||
nodePackages.node-gyp-build |
|
||||||
pkg-config |
|
||||||
]; |
|
||||||
}; |
|
||||||
|
|
||||||
node-inspector = super.node-inspector.override { |
|
||||||
buildInputs = [ self.node-pre-gyp ]; |
|
||||||
meta.broken = since "10"; |
|
||||||
}; |
|
||||||
|
|
||||||
node2nix = super.node2nix.override { |
|
||||||
buildInputs = [ pkgs.makeWrapper ]; |
|
||||||
# We need to use master because of a fix that replaces git:// url to https://. |
|
||||||
src = fetchFromGitHub { |
|
||||||
owner = "svanderburg"; |
|
||||||
repo = "node2nix"; |
|
||||||
rev = "68f5735f9a56737e3fedceb182705985e3ab8799"; |
|
||||||
sha256 = "sha256-NK6gDTkGx0GG7yPTwgtFC4ttQZPfcLaLp8W8OOMO6bg="; |
|
||||||
}; |
|
||||||
|
|
||||||
postInstall = '' |
|
||||||
wrapProgram "$out/bin/node2nix" --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.nix ]} |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
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 |
|
||||||
''; |
|
||||||
}); |
|
||||||
|
|
||||||
pnpm = super.pnpm.override { |
mainProgramOverrides = final: prev: |
||||||
nativeBuildInputs = [ pkgs.makeWrapper ]; |
mapAttrs (pkgName: mainProgram: |
||||||
|
prev.${pkgName}.override (oldAttrs: { |
||||||
preRebuild = '' |
meta = oldAttrs.meta // { inherit mainProgram; }; |
||||||
sed 's/"link:/"file:/g' --in-place package.json |
}) |
||||||
''; |
) (import ./main-programs.nix); |
||||||
|
|
||||||
postInstall = let |
extensions = composeManyExtensions [ |
||||||
pnpmLibPath = pkgs.lib.makeBinPath [ |
mainProgramOverrides |
||||||
nodejs.passthru.python |
(import ./overrides.nix { inherit pkgs nodejs; }) |
||||||
nodejs |
]; |
||||||
]; |
in |
||||||
in '' |
makeExtensible (extends extensions nodePackages) |
||||||
for prog in $out/bin/*; do |
|
||||||
wrapProgram "$prog" --prefix PATH : ${pnpmLibPath} |
|
||||||
done |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
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 = '' |
|
||||||
wrapProgram "$out/bin/postcss" \ |
|
||||||
--prefix NODE_PATH : ${self.postcss}/lib/node_modules \ |
|
||||||
--prefix NODE_PATH : ${self.autoprefixer}/lib/node_modules |
|
||||||
ln -s '${self.postcss}/lib/node_modules/postcss' "$out/lib/node_modules/postcss" |
|
||||||
''; |
|
||||||
passthru.tests = { |
|
||||||
simple-execution = pkgs.callPackage ./package-tests/postcss-cli.nix { |
|
||||||
inherit (self) postcss-cli; |
|
||||||
}; |
|
||||||
}; |
|
||||||
meta = { |
|
||||||
mainProgram = "postcss"; |
|
||||||
maintainers = with lib.maintainers; [ Luflosi ]; |
|
||||||
}; |
|
||||||
}; |
|
||||||
|
|
||||||
# To update prisma, please first update prisma-engines to the latest |
|
||||||
# version. Then change the correct hash to this package. The PR should hold |
|
||||||
# two commits: one for the engines and the other one for the node package. |
|
||||||
prisma = super.prisma.override rec { |
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ]; |
|
||||||
|
|
||||||
inherit (pkgs.prisma-engines) version; |
|
||||||
|
|
||||||
src = fetchurl { |
|
||||||
url = "https://registry.npmjs.org/prisma/-/prisma-${version}.tgz"; |
|
||||||
sha512 = "sha512-l9MOgNCn/paDE+i1K2fp9NZ+Du4trzPTJsGkaQHVBufTGqzoYHuNk8JfzXuIn0Gte6/ZjyKj652Jq/Lc1tp2yw=="; |
|
||||||
}; |
|
||||||
postInstall = with pkgs; '' |
|
||||||
wrapProgram "$out/bin/prisma" \ |
|
||||||
--set PRISMA_MIGRATION_ENGINE_BINARY ${prisma-engines}/bin/migration-engine \ |
|
||||||
--set PRISMA_QUERY_ENGINE_BINARY ${prisma-engines}/bin/query-engine \ |
|
||||||
--set PRISMA_QUERY_ENGINE_LIBRARY ${lib.getLib prisma-engines}/lib/libquery_engine.node \ |
|
||||||
--set PRISMA_INTROSPECTION_ENGINE_BINARY ${prisma-engines}/bin/introspection-engine \ |
|
||||||
--set PRISMA_FMT_BINARY ${prisma-engines}/bin/prisma-fmt |
|
||||||
''; |
|
||||||
|
|
||||||
passthru.tests = { |
|
||||||
simple-execution = pkgs.callPackage ./package-tests/prisma.nix { |
|
||||||
inherit (self) prisma; |
|
||||||
}; |
|
||||||
}; |
|
||||||
}; |
|
||||||
|
|
||||||
pulp = super.pulp.override { |
|
||||||
# tries to install purescript |
|
||||||
npmFlags = "--ignore-scripts"; |
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ]; |
|
||||||
postInstall = '' |
|
||||||
wrapProgram "$out/bin/pulp" --suffix PATH : ${pkgs.lib.makeBinPath [ |
|
||||||
pkgs.purescript |
|
||||||
]} |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
reveal-md = super.reveal-md.override ( |
|
||||||
lib.optionalAttrs (!stdenv.isDarwin) { |
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ]; |
|
||||||
prePatch = '' |
|
||||||
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 |
|
||||||
''; |
|
||||||
postInstall = '' |
|
||||||
wrapProgram $out/bin/reveal-md \ |
|
||||||
--set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium.outPath}/bin/chromium |
|
||||||
''; |
|
||||||
} |
|
||||||
); |
|
||||||
|
|
||||||
ssb-server = super.ssb-server.override { |
|
||||||
buildInputs = [ pkgs.automake pkgs.autoconf self.node-gyp-build ]; |
|
||||||
meta.broken = since "10"; |
|
||||||
}; |
|
||||||
|
|
||||||
stf = super.stf.override { |
|
||||||
meta.broken = since "10"; |
|
||||||
}; |
|
||||||
|
|
||||||
tailwindcss = super.tailwindcss.overrideAttrs (oldAttrs: { |
|
||||||
plugins = [ ]; |
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ]; |
|
||||||
postInstall = '' |
|
||||||
nodePath="" |
|
||||||
for p in "$out" "${self.postcss}" $plugins; do |
|
||||||
nodePath="$nodePath''${nodePath:+:}$p/lib/node_modules" |
|
||||||
done |
|
||||||
wrapProgram "$out/bin/tailwind" \ |
|
||||||
--prefix NODE_PATH : "$nodePath" |
|
||||||
wrapProgram "$out/bin/tailwindcss" \ |
|
||||||
--prefix NODE_PATH : "$nodePath" |
|
||||||
unset nodePath |
|
||||||
''; |
|
||||||
passthru.tests = { |
|
||||||
simple-execution = pkgs.callPackage ./package-tests/tailwindcss.nix { inherit (self) tailwindcss; }; |
|
||||||
}; |
|
||||||
}); |
|
||||||
|
|
||||||
tedicross = super."tedicross-git+https://github.com/TediCross/TediCross.git#v0.8.7".override { |
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ]; |
|
||||||
postInstall = '' |
|
||||||
makeWrapper '${nodejs}/bin/node' "$out/bin/tedicross" \ |
|
||||||
--add-flags "$out/lib/node_modules/tedicross/main.js" |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
thelounge-plugin-closepms = super.thelounge-plugin-closepms.override { |
|
||||||
nativeBuildInputs = [ self.node-pre-gyp ]; |
|
||||||
}; |
|
||||||
|
|
||||||
thelounge-theme-flat-blue = super.thelounge-theme-flat-blue.override { |
|
||||||
nativeBuildInputs = [ self.node-pre-gyp ]; |
|
||||||
}; |
|
||||||
|
|
||||||
thelounge-theme-flat-dark = super.thelounge-theme-flat-dark.override { |
|
||||||
nativeBuildInputs = [ self.node-pre-gyp ]; |
|
||||||
}; |
|
||||||
|
|
||||||
tsun = super.tsun.overrideAttrs (oldAttrs: { |
|
||||||
buildInputs = oldAttrs.buildInputs ++ [ pkgs.makeWrapper ]; |
|
||||||
postInstall = '' |
|
||||||
wrapProgram "$out/bin/tsun" \ |
|
||||||
--prefix NODE_PATH : ${self.typescript}/lib/node_modules |
|
||||||
''; |
|
||||||
}); |
|
||||||
|
|
||||||
ts-node = super.ts-node.overrideAttrs (oldAttrs: { |
|
||||||
buildInputs = oldAttrs.buildInputs ++ [ pkgs.makeWrapper ]; |
|
||||||
postInstall = '' |
|
||||||
wrapProgram "$out/bin/ts-node" \ |
|
||||||
--prefix NODE_PATH : ${self.typescript}/lib/node_modules |
|
||||||
''; |
|
||||||
}); |
|
||||||
|
|
||||||
typescript = super.typescript.overrideAttrs (oldAttrs: { |
|
||||||
meta = oldAttrs.meta // { mainProgram = "tsc"; }; |
|
||||||
}); |
|
||||||
|
|
||||||
typescript-language-server = super.typescript-language-server.override { |
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ]; |
|
||||||
postInstall = '' |
|
||||||
wrapProgram "$out/bin/typescript-language-server" \ |
|
||||||
--suffix PATH : ${pkgs.lib.makeBinPath [ self.typescript ]} |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
teck-programmer = super.teck-programmer.override { |
|
||||||
nativeBuildInputs = [ self.node-gyp-build ]; |
|
||||||
buildInputs = [ pkgs.libusb1 ]; |
|
||||||
}; |
|
||||||
|
|
||||||
uppy-companion = super."@uppy/companion".override { |
|
||||||
name = "uppy-companion"; |
|
||||||
}; |
|
||||||
|
|
||||||
vega-cli = super.vega-cli.override { |
|
||||||
nativeBuildInputs = [ pkgs.pkg-config ]; |
|
||||||
buildInputs = with pkgs; [ |
|
||||||
super.node-pre-gyp |
|
||||||
pixman |
|
||||||
cairo |
|
||||||
pango |
|
||||||
libjpeg |
|
||||||
]; |
|
||||||
}; |
|
||||||
|
|
||||||
vega-lite = super.vega-lite.override { |
|
||||||
postInstall = '' |
|
||||||
cd node_modules |
|
||||||
for dep in ${self.vega-cli}/lib/node_modules/vega-cli/node_modules/*; do |
|
||||||
if [[ ! -d $dep ]]; then |
|
||||||
ln -s "${self.vega-cli}/lib/node_modules/vega-cli/node_modules/$dep" |
|
||||||
fi |
|
||||||
done |
|
||||||
''; |
|
||||||
passthru.tests = { |
|
||||||
simple-execution = pkgs.callPackage ./package-tests/vega-lite.nix { |
|
||||||
inherit (self) vega-lite; |
|
||||||
}; |
|
||||||
}; |
|
||||||
}; |
|
||||||
|
|
||||||
webtorrent-cli = super.webtorrent-cli.override { |
|
||||||
buildInputs = [ self.node-gyp-build ]; |
|
||||||
}; |
|
||||||
|
|
||||||
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 |
|
||||||
]; |
|
||||||
}; |
|
||||||
|
|
||||||
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) |
|
||||||
''; |
|
||||||
}; |
|
||||||
|
|
||||||
yaml-language-server = super.yaml-language-server.override { |
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ]; |
|
||||||
postInstall = '' |
|
||||||
wrapProgram "$out/bin/yaml-language-server" \ |
|
||||||
--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 |
|
||||||
|
@ -0,0 +1,74 @@ |
|||||||
|
# Use this file to add `meta.mainProgram` to packages in `nodePackages`, that don't provide an |
||||||
|
# executable that matches that packages name, so that they'll work with `nix run`. |
||||||
|
{ |
||||||
|
# Packages that provide multiple executables where one is clearly the `mainProgram`. |
||||||
|
typescript = "tsc"; |
||||||
|
|
||||||
|
# Packages that provide a single executable whose name differs from the package's `name`. |
||||||
|
"@angular/cli" = "ng"; |
||||||
|
"@antora/cli" = "antora"; |
||||||
|
"@astrojs/language-server" = "astro-ls"; |
||||||
|
"@bitwarden/cli" = "bw"; |
||||||
|
"@commitlint/cli" = "commitlint"; |
||||||
|
"@gitbeaker/cli" = "gitbeaker"; |
||||||
|
"@google/clasp" = "clasp"; |
||||||
|
"@hyperspace/cli" = "hyp"; |
||||||
|
"@medable/mdctl-cli" = "mdctl"; |
||||||
|
"@mermaid-js/mermaid-cli" = "mmdc"; |
||||||
|
"@nerdwallet/shepherd" = "shepherd"; |
||||||
|
"@nestjs/cli" = "nest"; |
||||||
|
"@prisma/language-server" = "prisma-language-server"; |
||||||
|
"@tailwindcss/language-server" = "tailwindcss-language-server"; |
||||||
|
"@uppy/companion" = "companion"; |
||||||
|
"@vue/cli" = "vue"; |
||||||
|
"@webassemblyjs/repl" = "wasm"; |
||||||
|
"@webassemblyjs/wasm-strip" = "wasm-strip"; |
||||||
|
"@webassemblyjs/wasm-text-gen" = "wasmgen"; |
||||||
|
"@webassemblyjs/wast-refmt" = "wast-refmt"; |
||||||
|
balanceofsatoshis = "bos"; |
||||||
|
carbon-now-cli = "carbon-now"; |
||||||
|
cdk8s-cli = "cdk8s"; |
||||||
|
cdktf-cli = "cdktf"; |
||||||
|
clean-css-cli = "cleancss"; |
||||||
|
clipboard-cli = "clipboard"; |
||||||
|
clubhouse-cli = "club"; |
||||||
|
conventional-changelog-cli = "conventional-changelog"; |
||||||
|
cpy-cli = "cpy"; |
||||||
|
dockerfile-language-server-nodejs = "docker-langserver"; |
||||||
|
fast-cli = "fast"; |
||||||
|
fauna-shell = "fauna"; |
||||||
|
firebase-tools = "firebase"; |
||||||
|
fkill-cli = "fkill"; |
||||||
|
fleek-cli = "fleek"; |
||||||
|
git-run = "gr"; |
||||||
|
gitmoji-cli = "gitmoji"; |
||||||
|
graphql-cli = "graphql"; |
||||||
|
grunt-cli = "grunt"; |
||||||
|
gulp-cli = "gulp"; |
||||||
|
kaput-cli = "kaput"; |
||||||
|
leetcode-cli = "leetcode"; |
||||||
|
less = "lessc"; |
||||||
|
lua-fmt = "luafmt"; |
||||||
|
markdownlint-cli = "markdownlint"; |
||||||
|
near-cli = "near"; |
||||||
|
neovim = "neovim-node-host"; |
||||||
|
parcel-bundler = "parcel"; |
||||||
|
parsoid = "parse.js"; |
||||||
|
poor-mans-t-sql-formatter-cli = "sqlformat"; |
||||||
|
postcss-cli = "postcss"; |
||||||
|
purescript-psa = "psa"; |
||||||
|
react-native-cli = "react-native"; |
||||||
|
react-tools = "jsx"; |
||||||
|
remod-cli = "remod"; |
||||||
|
s3http = "s3http.js"; |
||||||
|
svelte-language-server = "svelteserver"; |
||||||
|
teck-programmer = "teck-firmware-upgrade"; |
||||||
|
uglify-js = "uglifyjs"; |
||||||
|
undollar = "$"; |
||||||
|
vsc-leetcode-cli = "leetcode"; |
||||||
|
vscode-css-languageserver-bin = "css-languageserver"; |
||||||
|
vscode-html-languageserver-bin = "html-languageserver"; |
||||||
|
vscode-json-languageserver-bin = "json-languageserver"; |
||||||
|
vue-language-server = "vls"; |
||||||
|
webtorrent-cli = "webtorrent"; |
||||||
|
} |
@ -0,0 +1,533 @@ |
|||||||
|
# Do not use overrides in this file to add `meta.mainProgram` to packges. Use `./main-programs.nix` |
||||||
|
# instead. |
||||||
|
{ pkgs, nodejs }: |
||||||
|
|
||||||
|
let |
||||||
|
inherit (pkgs) |
||||||
|
stdenv |
||||||
|
lib |
||||||
|
callPackage |
||||||
|
fetchFromGitHub |
||||||
|
fetchurl |
||||||
|
nixosTests; |
||||||
|
|
||||||
|
since = version: lib.versionAtLeast nodejs.version version; |
||||||
|
before = version: lib.versionOlder nodejs.version version; |
||||||
|
in |
||||||
|
|
||||||
|
final: prev: { |
||||||
|
"@angular/cli" = prev."@angular/cli".override { |
||||||
|
prePatch = '' |
||||||
|
export NG_CLI_ANALYTICS=false |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
"@electron-forge/cli" = prev."@electron-forge/cli".override { |
||||||
|
buildInputs = [ final.node-gyp-build ]; |
||||||
|
}; |
||||||
|
|
||||||
|
"@hyperspace/cli" = prev."@hyperspace/cli".override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
buildInputs = [ final.node-gyp-build ]; |
||||||
|
postInstall = ''wrapProgram "$out/bin/hyp" --prefix PATH : ${ lib.makeBinPath [ nodejs ] }''; |
||||||
|
}; |
||||||
|
hyperspace-cli = final."@hyperspace/cli"; |
||||||
|
|
||||||
|
"@medable/mdctl-cli" = prev."@medable/mdctl-cli".override { |
||||||
|
nativeBuildInputs = with pkgs; with darwin.apple_sdk.frameworks; [ |
||||||
|
glib |
||||||
|
libsecret |
||||||
|
pkg-config |
||||||
|
] ++ lib.optionals stdenv.isDarwin [ |
||||||
|
AppKit |
||||||
|
Security |
||||||
|
]; |
||||||
|
buildInputs = [ |
||||||
|
final.node-gyp-build |
||||||
|
final.node-pre-gyp |
||||||
|
nodejs |
||||||
|
]; |
||||||
|
}; |
||||||
|
mdctl-cli = final."@medable/mdctl-cli"; |
||||||
|
|
||||||
|
autoprefixer = prev.autoprefixer.override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
postInstall = '' |
||||||
|
wrapProgram "$out/bin/autoprefixer" \ |
||||||
|
--prefix NODE_PATH : ${final.postcss}/lib/node_modules |
||||||
|
''; |
||||||
|
passthru.tests = { |
||||||
|
simple-execution = callPackage ./package-tests/autoprefixer.nix { inherit (final) autoprefixer; }; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
aws-azure-login = prev.aws-azure-login.override (oldAttrs: { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
prePatch = '' |
||||||
|
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 |
||||||
|
''; |
||||||
|
postInstall = '' |
||||||
|
wrapProgram $out/bin/aws-azure-login \ |
||||||
|
--set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium}/bin/chromium |
||||||
|
''; |
||||||
|
meta = oldAttrs.meta // { platforms = lib.platforms.linux; }; |
||||||
|
}); |
||||||
|
|
||||||
|
bitwarden-cli = prev."@bitwarden/cli".override { |
||||||
|
name = "bitwarden-cli"; |
||||||
|
}; |
||||||
|
|
||||||
|
bower2nix = prev.bower2nix.override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
postInstall = '' |
||||||
|
for prog in bower2nix fetch-bower; do |
||||||
|
wrapProgram "$out/bin/$prog" --prefix PATH : ${lib.makeBinPath [ pkgs.git pkgs.nix ]} |
||||||
|
done |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
carbon-now-cli = prev.carbon-now-cli.override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
prePatch = '' |
||||||
|
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 |
||||||
|
''; |
||||||
|
postInstall = '' |
||||||
|
wrapProgram $out/bin/carbon-now \ |
||||||
|
--set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium.outPath}/bin/chromium |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
coc-imselect = prev.coc-imselect.override (oldAttrs: { |
||||||
|
meta = oldAttrs.meta // { broken = since "10"; }; |
||||||
|
}); |
||||||
|
|
||||||
|
dat = prev.dat.override (oldAttrs: { |
||||||
|
buildInputs = [ final.node-gyp-build pkgs.libtool pkgs.autoconf pkgs.automake ]; |
||||||
|
meta = oldAttrs.meta // { broken = since "12"; }; |
||||||
|
}); |
||||||
|
|
||||||
|
deltachat-desktop = prev."deltachat-desktop-../../applications/networking/instant-messengers/deltachat-desktop".override (oldAttrs: { |
||||||
|
meta = oldAttrs.meta // { broken = true; }; # use the top-level package instead |
||||||
|
}); |
||||||
|
|
||||||
|
# NOTE: this is a stub package to fetch npm dependencies for |
||||||
|
# ../../applications/video/epgstation |
||||||
|
epgstation = prev."epgstation-../../applications/video/epgstation".override (oldAttrs: { |
||||||
|
buildInputs = [ final.node-pre-gyp final.node-gyp-build ]; |
||||||
|
meta = oldAttrs.meta // { platforms = lib.platforms.none; }; |
||||||
|
}); |
||||||
|
|
||||||
|
# NOTE: this is a stub package to fetch npm dependencies for |
||||||
|
# ../../applications/video/epgstation/client |
||||||
|
epgstation-client = prev."epgstation-client-../../applications/video/epgstation/client".override (oldAttrs: { |
||||||
|
meta = oldAttrs.meta // { platforms = lib.platforms.none; }; |
||||||
|
}); |
||||||
|
|
||||||
|
expo-cli = prev."expo-cli".override (oldAttrs: { |
||||||
|
# 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"}") oldAttrs.dependencies; |
||||||
|
}); |
||||||
|
|
||||||
|
fast-cli = prev.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 = prev.flood.override { |
||||||
|
buildInputs = [ final.node-pre-gyp ]; |
||||||
|
}; |
||||||
|
|
||||||
|
git-ssb = prev.git-ssb.override (oldAttrs: { |
||||||
|
buildInputs = [ final.node-gyp-build ]; |
||||||
|
meta = oldAttrs.meta // { broken = since "10"; }; |
||||||
|
}); |
||||||
|
|
||||||
|
hsd = prev.hsd.override { |
||||||
|
buildInputs = [ final.node-gyp-build pkgs.unbound ]; |
||||||
|
}; |
||||||
|
|
||||||
|
ijavascript = prev.ijavascript.override (oldAttrs: { |
||||||
|
preRebuild = '' |
||||||
|
export NPM_CONFIG_ZMQ_EXTERNAL=true |
||||||
|
''; |
||||||
|
buildInputs = oldAttrs.buildInputs ++ [ final.node-gyp-build pkgs.zeromq ]; |
||||||
|
}); |
||||||
|
|
||||||
|
insect = prev.insect.override (oldAttrs: { |
||||||
|
nativeBuildInputs = oldAttrs.nativeBuildInputs or [] ++ [ pkgs.psc-package final.pulp ]; |
||||||
|
}); |
||||||
|
|
||||||
|
intelephense = prev.intelephense.override (oldAttrs: { |
||||||
|
meta = oldAttrs.meta // { license = lib.licenses.unfree; }; |
||||||
|
}); |
||||||
|
|
||||||
|
joplin = prev.joplin.override { |
||||||
|
nativeBuildInputs = [ pkgs.pkg-config ]; |
||||||
|
buildInputs = with pkgs; [ |
||||||
|
# required by sharp |
||||||
|
# https://sharp.pixelplumbing.com/install |
||||||
|
vips |
||||||
|
|
||||||
|
libsecret |
||||||
|
final.node-gyp-build |
||||||
|
final.node-pre-gyp |
||||||
|
] ++ lib.optionals stdenv.isDarwin [ |
||||||
|
darwin.apple_sdk.frameworks.AppKit |
||||||
|
darwin.apple_sdk.frameworks.Security |
||||||
|
]; |
||||||
|
}; |
||||||
|
|
||||||
|
jsonplaceholder = prev.jsonplaceholder.override { |
||||||
|
buildInputs = [ nodejs ]; |
||||||
|
postInstall = '' |
||||||
|
exe=$out/bin/jsonplaceholder |
||||||
|
mkdir -p $out/bin |
||||||
|
cat >$exe <<EOF |
||||||
|
#!${pkgs.runtimeShell} |
||||||
|
exec -a jsonplaceholder ${nodejs}/bin/node $out/lib/node_modules/jsonplaceholder/index.js |
||||||
|
EOF |
||||||
|
chmod a+x $exe |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
makam = prev.makam.override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
postFixup = '' |
||||||
|
wrapProgram "$out/bin/makam" --prefix PATH : ${lib.makeBinPath [ nodejs ]} |
||||||
|
${ |
||||||
|
if stdenv.isLinux |
||||||
|
then "patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 \"$out/lib/node_modules/makam/makam-bin-linux64\"" |
||||||
|
else "" |
||||||
|
} |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
manta = prev.manta.override { |
||||||
|
nativeBuildInputs = with pkgs; [ nodejs-14_x installShellFiles ]; |
||||||
|
postInstall = '' |
||||||
|
# create completions, following upstream procedure https://github.com/joyent/node-manta/blob/v5.2.3/Makefile#L85-L91 |
||||||
|
completion_cmds=$(find ./bin -type f -printf "%f\n") |
||||||
|
|
||||||
|
node ./lib/create_client.js |
||||||
|
for cmd in $completion_cmds; do |
||||||
|
installShellCompletion --cmd $cmd --bash <(./bin/$cmd --completion) |
||||||
|
done |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
mermaid-cli = prev."@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 |
||||||
|
''; |
||||||
|
}); |
||||||
|
|
||||||
|
near-cli = prev.near-cli.override { |
||||||
|
nativeBuildInputs = with pkgs; [ |
||||||
|
libusb1 |
||||||
|
final.prebuild-install |
||||||
|
final.node-gyp-build |
||||||
|
pkg-config |
||||||
|
]; |
||||||
|
}; |
||||||
|
|
||||||
|
node-gyp = prev.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 = prev.node-inspector.override (oldAttrs: { |
||||||
|
buildInputs = [ final.node-pre-gyp ]; |
||||||
|
meta = oldAttrs.meta // { broken = since "10"; }; |
||||||
|
}); |
||||||
|
|
||||||
|
node-red = prev.node-red.override { |
||||||
|
buildInputs = [ final.node-pre-gyp ]; |
||||||
|
}; |
||||||
|
|
||||||
|
node2nix = prev.node2nix.override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
# We need to use master because of a fix that replaces git:// url to https://. |
||||||
|
src = fetchFromGitHub { |
||||||
|
owner = "svanderburg"; |
||||||
|
repo = "node2nix"; |
||||||
|
rev = "68f5735f9a56737e3fedceb182705985e3ab8799"; |
||||||
|
sha256 = "sha256-NK6gDTkGx0GG7yPTwgtFC4ttQZPfcLaLp8W8OOMO6bg="; |
||||||
|
}; |
||||||
|
|
||||||
|
postInstall = '' |
||||||
|
wrapProgram "$out/bin/node2nix" --prefix PATH : ${lib.makeBinPath [ pkgs.nix ]} |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
parcel = prev.parcel.override { |
||||||
|
buildInputs = [ final.node-gyp-build ]; |
||||||
|
preRebuild = '' |
||||||
|
sed -i -e "s|#!/usr/bin/env node|#! ${nodejs}/bin/node|" node_modules/node-gyp-build/bin.js |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
pnpm = prev.pnpm.override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
|
||||||
|
preRebuild = '' |
||||||
|
sed 's/"link:/"file:/g' --in-place package.json |
||||||
|
''; |
||||||
|
|
||||||
|
postInstall = let |
||||||
|
pnpmLibPath = lib.makeBinPath [ |
||||||
|
nodejs.passthru.python |
||||||
|
nodejs |
||||||
|
]; |
||||||
|
in '' |
||||||
|
for prog in $out/bin/*; do |
||||||
|
wrapProgram "$prog" --prefix PATH : ${pnpmLibPath} |
||||||
|
done |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
postcss-cli = prev.postcss-cli.override (oldAttrs: { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
postInstall = '' |
||||||
|
wrapProgram "$out/bin/postcss" \ |
||||||
|
--prefix NODE_PATH : ${final.postcss}/lib/node_modules \ |
||||||
|
--prefix NODE_PATH : ${final.autoprefixer}/lib/node_modules |
||||||
|
ln -s '${final.postcss}/lib/node_modules/postcss' "$out/lib/node_modules/postcss" |
||||||
|
''; |
||||||
|
passthru.tests = { |
||||||
|
simple-execution = callPackage ./package-tests/postcss-cli.nix { |
||||||
|
inherit (final) postcss-cli; |
||||||
|
}; |
||||||
|
}; |
||||||
|
meta = oldAttrs.meta // { maintainers = with lib.maintainers; [ Luflosi ]; }; |
||||||
|
}); |
||||||
|
|
||||||
|
# To update prisma, please first update prisma-engines to the latest |
||||||
|
# version. Then change the correct hash to this package. The PR should hold |
||||||
|
# two commits: one for the engines and the other one for the node package. |
||||||
|
prisma = prev.prisma.override rec { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
|
||||||
|
inherit (pkgs.prisma-engines) version; |
||||||
|
|
||||||
|
src = fetchurl { |
||||||
|
url = "https://registry.npmjs.org/prisma/-/prisma-${version}.tgz"; |
||||||
|
sha512 = "sha512-l9MOgNCn/paDE+i1K2fp9NZ+Du4trzPTJsGkaQHVBufTGqzoYHuNk8JfzXuIn0Gte6/ZjyKj652Jq/Lc1tp2yw=="; |
||||||
|
}; |
||||||
|
postInstall = with pkgs; '' |
||||||
|
wrapProgram "$out/bin/prisma" \ |
||||||
|
--set PRISMA_MIGRATION_ENGINE_BINARY ${prisma-engines}/bin/migration-engine \ |
||||||
|
--set PRISMA_QUERY_ENGINE_BINARY ${prisma-engines}/bin/query-engine \ |
||||||
|
--set PRISMA_QUERY_ENGINE_LIBRARY ${lib.getLib prisma-engines}/lib/libquery_engine.node \ |
||||||
|
--set PRISMA_INTROSPECTION_ENGINE_BINARY ${prisma-engines}/bin/introspection-engine \ |
||||||
|
--set PRISMA_FMT_BINARY ${prisma-engines}/bin/prisma-fmt |
||||||
|
''; |
||||||
|
|
||||||
|
passthru.tests = { |
||||||
|
simple-execution = pkgs.callPackage ./package-tests/prisma.nix { |
||||||
|
inherit (final) prisma; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
pulp = prev.pulp.override { |
||||||
|
# tries to install purescript |
||||||
|
npmFlags = "--ignore-scripts"; |
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
postInstall = '' |
||||||
|
wrapProgram "$out/bin/pulp" --suffix PATH : ${lib.makeBinPath [ |
||||||
|
pkgs.purescript |
||||||
|
]} |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
reveal-md = prev.reveal-md.override ( |
||||||
|
lib.optionalAttrs (!stdenv.isDarwin) { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
prePatch = '' |
||||||
|
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 |
||||||
|
''; |
||||||
|
postInstall = '' |
||||||
|
wrapProgram $out/bin/reveal-md \ |
||||||
|
--set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium.outPath}/bin/chromium |
||||||
|
''; |
||||||
|
} |
||||||
|
); |
||||||
|
|
||||||
|
ssb-server = prev.ssb-server.override (oldAttrs: { |
||||||
|
buildInputs = [ pkgs.automake pkgs.autoconf final.node-gyp-build ]; |
||||||
|
meta = oldAttrs.meta // { broken = since "10"; }; |
||||||
|
}); |
||||||
|
|
||||||
|
stf = prev.stf.override (oldAttrs: { |
||||||
|
meta = oldAttrs.meta // { broken = since "10"; }; |
||||||
|
}); |
||||||
|
|
||||||
|
tailwindcss = prev.tailwindcss.override { |
||||||
|
plugins = [ ]; |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
postInstall = '' |
||||||
|
nodePath="" |
||||||
|
for p in "$out" "${final.postcss}" $plugins; do |
||||||
|
nodePath="$nodePath''${nodePath:+:}$p/lib/node_modules" |
||||||
|
done |
||||||
|
wrapProgram "$out/bin/tailwind" \ |
||||||
|
--prefix NODE_PATH : "$nodePath" |
||||||
|
wrapProgram "$out/bin/tailwindcss" \ |
||||||
|
--prefix NODE_PATH : "$nodePath" |
||||||
|
unset nodePath |
||||||
|
''; |
||||||
|
passthru.tests = { |
||||||
|
simple-execution = callPackage ./package-tests/tailwindcss.nix { |
||||||
|
inherit (final) tailwindcss; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
teck-programmer = prev.teck-programmer.override { |
||||||
|
nativeBuildInputs = [ final.node-gyp-build ]; |
||||||
|
buildInputs = [ pkgs.libusb1 ]; |
||||||
|
}; |
||||||
|
|
||||||
|
tedicross = prev."tedicross-git+https://github.com/TediCross/TediCross.git#v0.8.7".override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
postInstall = '' |
||||||
|
makeWrapper '${nodejs}/bin/node' "$out/bin/tedicross" \ |
||||||
|
--add-flags "$out/lib/node_modules/tedicross/main.js" |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
thelounge = prev.thelounge.override (oldAttrs: { |
||||||
|
buildInputs = [ final.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 = oldAttrs.meta // { maintainers = with lib.maintainers; [ winter ]; }; |
||||||
|
}); |
||||||
|
|
||||||
|
thelounge-plugin-closepms = prev.thelounge-plugin-closepms.override { |
||||||
|
nativeBuildInputs = [ final.node-pre-gyp ]; |
||||||
|
}; |
||||||
|
|
||||||
|
thelounge-plugin-giphy = prev.thelounge-plugin-giphy.override { |
||||||
|
nativeBuildInputs = [ final.node-pre-gyp ]; |
||||||
|
}; |
||||||
|
|
||||||
|
thelounge-theme-flat-blue = prev.thelounge-theme-flat-blue.override { |
||||||
|
nativeBuildInputs = [ final.node-pre-gyp ]; |
||||||
|
}; |
||||||
|
|
||||||
|
thelounge-theme-flat-dark = prev.thelounge-theme-flat-dark.override { |
||||||
|
nativeBuildInputs = [ final.node-pre-gyp ]; |
||||||
|
}; |
||||||
|
|
||||||
|
triton = prev.triton.override { |
||||||
|
nativeBuildInputs = [ pkgs.installShellFiles ]; |
||||||
|
postInstall = '' |
||||||
|
installShellCompletion --cmd triton --bash <($out/bin/triton completion) |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
ts-node = prev.ts-node.override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
postInstall = '' |
||||||
|
wrapProgram "$out/bin/ts-node" \ |
||||||
|
--prefix NODE_PATH : ${final.typescript}/lib/node_modules |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
tsun = prev.tsun.override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
postInstall = '' |
||||||
|
wrapProgram "$out/bin/tsun" \ |
||||||
|
--prefix NODE_PATH : ${final.typescript}/lib/node_modules |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
typescript-language-server = prev.typescript-language-server.override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
postInstall = '' |
||||||
|
wrapProgram "$out/bin/typescript-language-server" \ |
||||||
|
--suffix PATH : ${lib.makeBinPath [ final.typescript ]} |
||||||
|
''; |
||||||
|
}; |
||||||
|
|
||||||
|
uppy-companion = prev."@uppy/companion".override { |
||||||
|
name = "uppy-companion"; |
||||||
|
}; |
||||||
|
|
||||||
|
vega-cli = prev.vega-cli.override { |
||||||
|
nativeBuildInputs = [ pkgs.pkg-config ]; |
||||||
|
buildInputs = with pkgs; [ |
||||||
|
final.node-pre-gyp |
||||||
|
pixman |
||||||
|
cairo |
||||||
|
pango |
||||||
|
libjpeg |
||||||
|
] ++ lib.optionals stdenv.isDarwin [ |
||||||
|
darwin.apple_sdk.frameworks.CoreText |
||||||
|
]; |
||||||
|
}; |
||||||
|
|
||||||
|
vega-lite = prev.vega-lite.override { |
||||||
|
postInstall = '' |
||||||
|
cd node_modules |
||||||
|
for dep in ${final.vega-cli}/lib/node_modules/vega-cli/node_modules/*; do |
||||||
|
if [[ ! -d $dep ]]; then |
||||||
|
ln -s "${final.vega-cli}/lib/node_modules/vega-cli/node_modules/$dep" |
||||||
|
fi |
||||||
|
done |
||||||
|
''; |
||||||
|
passthru.tests = { |
||||||
|
simple-execution = callPackage ./package-tests/vega-lite.nix { |
||||||
|
inherit (final) vega-lite; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
wavedrom-cli = prev.wavedrom-cli.override { |
||||||
|
nativeBuildInputs = [ pkgs.pkg-config final.node-pre-gyp ]; |
||||||
|
# These dependencies are required by |
||||||
|
# https://github.com/Automattic/node-canvas. |
||||||
|
buildInputs = with pkgs; [ |
||||||
|
pixman |
||||||
|
cairo |
||||||
|
pango |
||||||
|
] ++ lib.optionals stdenv.isDarwin [ |
||||||
|
darwin.apple_sdk.frameworks.CoreText |
||||||
|
]; |
||||||
|
}; |
||||||
|
|
||||||
|
webtorrent-cli = prev.webtorrent-cli.override { |
||||||
|
buildInputs = [ final.node-gyp-build ]; |
||||||
|
}; |
||||||
|
|
||||||
|
yaml-language-server = prev.yaml-language-server.override { |
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ]; |
||||||
|
postInstall = '' |
||||||
|
wrapProgram "$out/bin/yaml-language-server" \ |
||||||
|
--prefix NODE_PATH : ${final.prettier}/lib/node_modules |
||||||
|
''; |
||||||
|
}; |
||||||
|
} |
Loading…
Reference in new issue