@@ -1,4 +1,4 @@
1−{ pkgs, nodejs, stdenv, fetchFromGitHub }:
1+{ pkgs, nodejs, stdenv, applyPatches, fetchFromGitHub, fetchpatch }:
22
33let
44 since = (version: pkgs.lib.versionAtLeast nodejs.version version);
@@ -160,6 +160,31 @@ let
160160
161161 node2nix = super.node2nix.override {
162162 buildInputs = [ pkgs.makeWrapper ];
163+ # We need to apply a patch to the source, but buildNodePackage doesn't allow patches.
164+ # So we pin the patched commit instead. The commit actually contains two other newer commits
165+ # since the last (1.9.0) release, but actually this is a good thing since one of them is a
166+ # Hydra-specific fix.
167+ src = applyPatches {
168+ src = fetchFromGitHub {
169+ owner = "svanderburg";
170+ repo = "node2nix";
171+ rev = "node2nix-1.9.0";
172+ sha256 = "0l4wp1131nhl9c14cn8bwawb8f77h1nfbnswgi5lp5m3kzkb27jn";
173+ };
174+
175+ patches = [
176+ # remove node_ name prefix
177+ (fetchpatch {
178+ url = "https://github.com/svanderburg/node2nix/commit/b54d45207427ff46e90f16f2f32771fdc8bff5a4.patch";
179+ sha256 = "03cg2xwryvdlvg299dg91qxicrw2r43grja80an9zkb875ps8jxh";
180+ })
181+ # set meta platform
182+ (fetchpatch {
183+ url = "https://github.com/svanderburg/node2nix/commit/58736093161f2d237c17e75a96529b018cd0ac64.patch";
184+ sha256 = "1c91qfqa6p4hzyafv5pq6rpgnny2805n007b1443gbqwrz5awz6n";
185+ })
186+ ];
187+ };
163188 postInstall = ''
164189 wrapProgram "$out/bin/node2nix" --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.nix ]}
165190 '';