nodejs: apply patch that allows packages with native dependencies to compile again on darwin by bypassing xcodebuild

wip/yesman
Sander van der Burg 4 years ago
parent 0272df3208
commit bbfc913c6a
  1. 28
      pkgs/development/web/nodejs/bypass-xcodebuild.diff
  2. 3
      pkgs/development/web/nodejs/v10.nix
  3. 3
      pkgs/development/web/nodejs/v12.nix
  4. 3
      pkgs/development/web/nodejs/v14.nix

@ -0,0 +1,28 @@
diff -Naur node-v12.18.4/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py node-v12.18.4-new/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py
--- node-v12.18.4/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py 2020-09-15 09:08:46.000000000 +0200
+++ node-v12.18.4-new/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py 2020-12-03 16:55:43.781860687 +0100
@@ -436,7 +436,14 @@
# Since the CLT has no SDK paths anyway, returning None is the
# most sensible route and should still do the right thing.
try:
- return GetStdoutQuiet(['xcodebuild', '-version', '-sdk', sdk, infoitem])
+ # Return fake data that xcodebuild would normally return
+
+ xcodedata = {
+ "Path": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk",
+ "ProductBuildVersion": "19A547",
+ "ProductVersion": "10.15"
+ }
+ return xcodedata[infoitem]
except GypError:
pass
@@ -1271,7 +1278,7 @@
version = ""
build = ""
try:
- version_list = GetStdoutQuiet(['xcodebuild', '-version']).splitlines()
+ version_list = []
# In some circumstances xcodebuild exits 0 but doesn't return
# the right results; for example, a user on 10.7 or 10.8 with
# a bogus path set via xcode-select

@ -1,4 +1,4 @@
{ callPackage, openssl, icu, python2, enableNpm ? true }:
{ callPackage, openssl, icu, python2, stdenv, enableNpm ? true }:
let
buildNodejs = callPackage ./nodejs.nix {
@ -10,4 +10,5 @@ in
inherit enableNpm;
version = "10.23.0";
sha256 = "07vlqr0493a569i0npwgkxk5wa4vc7j68jsivchg08y2slwn0dgx";
patches = stdenv.lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
}

@ -1,4 +1,4 @@
{ callPackage, openssl, icu, python2, enableNpm ? true }:
{ callPackage, openssl, icu, python2, stdenv, enableNpm ? true }:
let
buildNodejs = callPackage ./nodejs.nix {
@ -10,4 +10,5 @@ in
inherit enableNpm;
version = "12.20.0";
sha256 = "12s2vjrlhgap2r12s7rqf0r2wzh9q2r5dkh3ak9fhrgmk9fgvqv1";
patches = stdenv.lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
}

@ -1,4 +1,4 @@
{ callPackage, openssl, python3, enableNpm ? true }:
{ callPackage, openssl, python3, stdenv, enableNpm ? true }:
let
buildNodejs = callPackage ./nodejs.nix {
@ -10,4 +10,5 @@ in
inherit enableNpm;
version = "14.15.1";
sha256 = "1g61vqsgq3jsipw2fckj68i4a4pi1iz1kbw7mlw8jmzp8rl46q81";
patches = stdenv.lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
}

Loading…
Cancel
Save