From 75fa5ad17cb30cb105282a1a8cfe8fb805d42d8e Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 7 Apr 2020 14:45:55 +0300 Subject: [PATCH 1/2] nodejs: pin python versions and use python3 when possible --- pkgs/development/web/nodejs/nodejs.nix | 6 +++--- pkgs/development/web/nodejs/v10.nix | 7 +++++-- pkgs/development/web/nodejs/v12.nix | 7 +++++-- pkgs/development/web/nodejs/v13.nix | 7 +++++-- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix index dce8479d219..ce872fbcb5e 100644 --- a/pkgs/development/web/nodejs/nodejs.nix +++ b/pkgs/development/web/nodejs/nodejs.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, openssl, python2, zlib, libuv, utillinux, http-parser +{ stdenv, fetchurl, openssl, python, zlib, libuv, utillinux, http-parser , pkgconfig, which # Updater dependencies , writeScript, coreutils, gnugrep, jq, curl, common-updater-scripts, nix, runtimeShell @@ -55,7 +55,7 @@ in buildInputs = optionals stdenv.isDarwin [ CoreServices ApplicationServices ] ++ [ zlib libuv openssl http-parser icu ]; - nativeBuildInputs = [ which utillinux pkgconfig python2 ] + nativeBuildInputs = [ which utillinux pkgconfig python ] ++ optionals stdenv.isDarwin [ xcbuild ]; configureFlags = let @@ -145,5 +145,5 @@ in platforms = platforms.linux ++ platforms.darwin; }; - passthru.python = python2; # to ensure nodeEnv uses the same version + passthru.python = python; # to ensure nodeEnv uses the same version } diff --git a/pkgs/development/web/nodejs/v10.nix b/pkgs/development/web/nodejs/v10.nix index 815b569a7eb..eb39446400c 100644 --- a/pkgs/development/web/nodejs/v10.nix +++ b/pkgs/development/web/nodejs/v10.nix @@ -1,7 +1,10 @@ -{ callPackage, openssl, enableNpm ? true }: +{ callPackage, openssl, icu, python2, enableNpm ? true }: let - buildNodejs = callPackage ./nodejs.nix { inherit openssl; }; + buildNodejs = callPackage ./nodejs.nix { + inherit openssl icu; + python = python2; + }; in buildNodejs { inherit enableNpm; diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix index 3fa5216ccf8..5fe8d431717 100644 --- a/pkgs/development/web/nodejs/v12.nix +++ b/pkgs/development/web/nodejs/v12.nix @@ -1,7 +1,10 @@ -{ callPackage, openssl, icu, enableNpm ? true }: +{ callPackage, openssl, icu, python2, enableNpm ? true }: let - buildNodejs = callPackage ./nodejs.nix { inherit openssl icu; }; + buildNodejs = callPackage ./nodejs.nix { + inherit openssl icu; + python = python2; + }; in buildNodejs { inherit enableNpm; diff --git a/pkgs/development/web/nodejs/v13.nix b/pkgs/development/web/nodejs/v13.nix index 8676214b50b..0728e7fc70f 100644 --- a/pkgs/development/web/nodejs/v13.nix +++ b/pkgs/development/web/nodejs/v13.nix @@ -1,7 +1,10 @@ -{ callPackage, openssl, icu, enableNpm ? true }: +{ callPackage, openssl, icu, python3, enableNpm ? true }: let - buildNodejs = callPackage ./nodejs.nix { inherit openssl icu; }; + buildNodejs = callPackage ./nodejs.nix { + inherit openssl icu; + python = python3; + }; in buildNodejs { inherit enableNpm; From 16243290e2cf5cb6f80c7699e3c37f26d114873f Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 7 Apr 2020 14:46:30 +0300 Subject: [PATCH 2/2] nixos/npm: enable using a specific nodejs package --- nixos/modules/programs/npm.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/nixos/modules/programs/npm.nix b/nixos/modules/programs/npm.nix index b351d80c7ac..f101a44587a 100644 --- a/nixos/modules/programs/npm.nix +++ b/nixos/modules/programs/npm.nix @@ -13,7 +13,14 @@ in programs.npm = { enable = mkEnableOption "npm global config"; - npmrc = lib.mkOption { + package = mkOption { + type = types.path; + description = "The npm package version / flavor to use"; + default = pkgs.nodePackages.npm; + example = literalExample "pkgs.nodePackages_13_x.npm"; + }; + + npmrc = mkOption { type = lib.types.lines; description = '' The system-wide npm configuration. @@ -40,7 +47,7 @@ in environment.variables.NPM_CONFIG_GLOBALCONFIG = "/etc/npmrc"; - environment.systemPackages = [ pkgs.nodePackages.npm ]; + environment.systemPackages = [ cfg.package ]; }; }