Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions doc/languages-frameworks/node.section.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ build system it uses. Here are some examples:

After you have identified the correct system, you need to override your package
expression while adding in build system as a build input. For example, `dat`
requires `node-gyp-build`, so we override its expression in `default-v10.nix`:
requires `node-gyp-build`, so we override its expression in `default-v12.nix`:

```nix
dat = nodePackages.dat.override (oldAttrs: {
Expand All @@ -36,14 +36,14 @@ dat = nodePackages.dat.override (oldAttrs: {

To add a package from NPM to nixpkgs:

1. Modify `pkgs/development/node-packages/node-packages-v10.json` to add, update
1. Modify `pkgs/development/node-packages/node-packages-v12.json` to add, update
or remove package entries. (Or `pkgs/development/node-packages/node-packages-v8.json`
for packages depending on Node.js 8.x)
2. Run the script: `(cd pkgs/development/node-packages && ./generate.sh)`.
3. Build your new package to test your changes:
`cd /path/to/nixpkgs && nix-build -A nodePackages.<new-or-updated-package>`.
To build against a specific Node.js version (e.g. 10.x):
`nix-build -A nodePackages_10_x.<new-or-updated-package>`
To build against a specific Node.js version (e.g. 12.x):
`nix-build -A nodePackages_12_x.<new-or-updated-package>`
4. Add and commit all modified and generated files.

For more information about the generation process, consult the
Expand Down
2 changes: 1 addition & 1 deletion pkgs/development/mobile/titaniumenv/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ rec {

buildApp = import ./build-app.nix {
inherit (pkgs) stdenv python which file jdk nodejs;
inherit (pkgs.nodePackages_10_x) alloy titanium;
inherit (pkgs.nodePackages) alloy titanium;
inherit (androidenv) composeAndroidPackages;
inherit (xcodeenv) composeXcodeWrapper;
inherit titaniumsdk;
Expand Down
129 changes: 0 additions & 129 deletions pkgs/development/node-packages/default-v10.nix

This file was deleted.

115 changes: 114 additions & 1 deletion pkgs/development/node-packages/default-v12.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,123 @@ let
};
in
nodePackages // {
node2nix = nodePackages.node2nix.override {
"@angular/cli" = nodePackages."@angular/cli".override {
prePatch = ''
export NG_CLI_ANALYTICS=false
'';
};
bower2nix = nodePackages.bower2nix.override {
buildInputs = [ pkgs.makeWrapper ];
postInstall = ''
for prog in bower2nix fetch-bower; do
wrapProgram "$out/bin/$prog" --prefix PATH : ${stdenv.lib.makeBinPath [ pkgs.git pkgs.nix ]}
done
'';
};

jshint = nodePackages.jshint.override {
buildInputs = [ pkgs.phantomjs2 ];
};

dat = nodePackages.dat.override {
buildInputs = [ nodePackages.node-gyp-build pkgs.libtool pkgs.autoconf pkgs.automake ];
};

dnschain = nodePackages.dnschain.override {
buildInputs = [ pkgs.makeWrapper nodePackages.coffee-script ];
postInstall = ''
wrapProgram $out/bin/dnschain --suffix PATH : ${pkgs.openssl.bin}/bin
'';
};

bitwarden-cli = pkgs.lib.overrideDerivation nodePackages."@bitwarden/cli" (drv: {
name = "bitwarden-cli-${drv.version}";
});

ios-deploy = nodePackages.ios-deploy.override (drv: {
nativeBuildInputs = drv.nativeBuildInputs or [] ++ [ pkgs.buildPackages.rsync ];
preRebuild = ''
LD=$CC
tmp=$(mktemp -d)
ln -s /usr/bin/xcodebuild $tmp
export PATH="$PATH:$tmp"
'';
});

fast-cli = nodePackages."fast-cli-1.x".override {
preRebuild = ''
# Simply ignore the phantomjs --version check. It seems to need a display but it is safe to ignore
sed -i -e "s|console.error('Error verifying phantomjs, continuing', err)|console.error('Error verifying phantomjs, continuing', err); return true;|" node_modules/phantomjs-prebuilt/lib/util.js
'';
buildInputs = [ pkgs.phantomjs2 ];
};

git-ssb = nodePackages.git-ssb.override {
buildInputs = [ nodePackages.node-gyp-build ];
};

insect = nodePackages.insect.override (drv: {
nativeBuildInputs = drv.nativeBuildInputs or [] ++ [ pkgs.psc-package pkgs.purescript nodePackages.pulp ];
});

node-inspector = nodePackages.node-inspector.override {
buildInputs = [ nodePackages.node-pre-gyp ];
};

node2nix = nodePackages.node2nix.override {
buildInputs = [ pkgs.makeWrapper ];
postInstall = ''
wrapProgram "$out/bin/node2nix" --prefix PATH : ${stdenv.lib.makeBinPath [ pkgs.nix ]}
'';
};

pnpm = nodePackages.pnpm.override {
nativeBuildInputs = [ pkgs.makeWrapper ];

preRebuild = ''
sed 's/"link:/"file:/g' --in-place package.json
'';

postInstall = let
pnpmLibPath = stdenv.lib.makeBinPath [
nodejs.passthru.python
nodejs
];
in ''
for prog in $out/bin/*; do
wrapProgram "$prog" --prefix PATH : ${pnpmLibPath}
done
'';
};

ssb-server = nodePackages.ssb-server.override {
buildInputs = [ pkgs.automake pkgs.autoconf nodePackages.node-gyp-build ];
};

tedicross = nodePackages."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"
'';
};

webtorrent-cli = nodePackages.webtorrent-cli.override {
buildInputs = [ nodePackages.node-gyp-build ];
};

joplin = nodePackages.joplin.override {
nativeBuildInputs = [ pkgs.pkg-config ];
buildInputs = with pkgs; [
# required by sharp
# https://sharp.pixelplumbing.com/install
vips

nodePackages.node-pre-gyp
];
};

thelounge = nodePackages.thelounge.override {
buildInputs = [ nodePackages.node-pre-gyp ];
};
}
2 changes: 1 addition & 1 deletion pkgs/development/node-packages/generate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ node2nix=$(nix-build ../../.. --no-out-link -A nodePackages.node2nix)

cd ${DIR}
rm -f ./node-env.nix
for version in 10 12 13; do
for version in 12 13; do
Copy link
Member

@prusnak prusnak May 14, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, maybe we could drop nodejs-13 and use nodejs-14 instead? (That is: we're keeping LTS and latest stable).

Suggested change
for version in 12 13; do
for version in 12 14; do

Or even better have just one set of node_packages as suggest by @marsam above

"${node2nix}/bin/node2nix" --nodejs-$version -i node-packages-v$version.json -o node-packages-v$version.nix -c composition-v$version.nix
done
Loading