summary refs log tree commit diff
path: root/pkgs/development/web
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/web')
-rw-r--r--pkgs/development/web/nodejs/default-arch.patch24
-rw-r--r--pkgs/development/web/nodejs/default.nix7
-rw-r--r--pkgs/development/web/nodejs/no-xcode.patch21
-rw-r--r--pkgs/development/web/nodejs/pkg-libpath.patch13
-rw-r--r--pkgs/development/web/nodejs/v0_10.nix2
5 files changed, 42 insertions, 25 deletions
diff --git a/pkgs/development/web/nodejs/default-arch.patch b/pkgs/development/web/nodejs/default-arch.patch
new file mode 100644
index 000000000000..3c7eb1014dee
--- /dev/null
+++ b/pkgs/development/web/nodejs/default-arch.patch
@@ -0,0 +1,24 @@
+diff -Naur a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_emulation.py
+--- a/tools/gyp/pylib/gyp/xcode_emulation.py	2014-01-23 06:05:51.000000000 +0100
++++ b/tools/gyp/pylib/gyp/xcode_emulation.py	2014-02-04 17:49:48.000000000 +0100
+@@ -1018,12 +1033,16 @@
+     # Since the value returned by this function is only used when ARCHS is not
+     # set, then on iOS we return "i386", as the default xcode project generator
+     # does not set ARCHS if it is not set in the .gyp file.
+-    if self.isIOS:
++    
++    try:
++      if self.isIOS:
++        return 'i386'
++      version, build = self._XcodeVersion()
++      if version >= '0500':
++        return 'x86_64'
+       return 'i386'
+-    version, build = self._XcodeVersion()
+-    if version >= '0500':
++    except:
+       return 'x86_64'
+-    return 'i386'
+ 
+ class MacPrefixHeader(object):
+   """A class that helps with emulating Xcode's GCC_PREFIX_HEADER feature.
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
index 1bd8dbec1e6c..2a4a7244d4d6 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -38,12 +38,13 @@ in stdenv.mkDerivation {
   dontDisableStatic = true;
   prePatch = ''
     patchShebangs .
+    sed -i 's/raise.*No Xcode or CLT version detected.*/version = "7.0.0"/' tools/gyp/pylib/gyp/xcode_emulation.py
   '';
 
-  patches = stdenv.lib.optional stdenv.isDarwin ./no-xcode.patch;
+  patches = stdenv.lib.optionals stdenv.isDarwin [ ./no-xcode.patch ./pkg-libpath.patch ];
 
-  buildInputs = [ python which http-parser zlib libuv openssl python ]
-    ++ (optional stdenv.isLinux utillinux)
+  buildInputs = [ python which zlib libuv openssl python ]
+    ++ optionals stdenv.isLinux [ utillinux http-parser ]
     ++ optionals stdenv.isDarwin [ pkgconfig openssl libtool ];
   setupHook = ./setup-hook.sh;
 
diff --git a/pkgs/development/web/nodejs/no-xcode.patch b/pkgs/development/web/nodejs/no-xcode.patch
index e88168b68a77..244a55e9aebb 100644
--- a/pkgs/development/web/nodejs/no-xcode.patch
+++ b/pkgs/development/web/nodejs/no-xcode.patch
@@ -70,24 +70,3 @@ diff -Naur a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_
  
    def AdjustLibraries(self, libraries, config_name=None):
      """Transforms entries like 'Cocoa.framework' in libraries into entries like
-@@ -1018,12 +1033,16 @@
-     # Since the value returned by this function is only used when ARCHS is not
-     # set, then on iOS we return "i386", as the default xcode project generator
-     # does not set ARCHS if it is not set in the .gyp file.
--    if self.isIOS:
-+    
-+    try:
-+      if self.isIOS:
-+        return 'i386'
-+      version, build = self._XcodeVersion()
-+      if version >= '0500':
-+        return 'x86_64'
-       return 'i386'
--    version, build = self._XcodeVersion()
--    if version >= '0500':
-+    except:
-       return 'x86_64'
--    return 'i386'
- 
- class MacPrefixHeader(object):
-   """A class that helps with emulating Xcode's GCC_PREFIX_HEADER feature.
diff --git a/pkgs/development/web/nodejs/pkg-libpath.patch b/pkgs/development/web/nodejs/pkg-libpath.patch
new file mode 100644
index 000000000000..8ad94c0e3e2f
--- /dev/null
+++ b/pkgs/development/web/nodejs/pkg-libpath.patch
@@ -0,0 +1,13 @@
+diff --git a/configure b/configure
+index d199975..66d903b 100755
+--- a/configure
++++ b/configure
+@@ -734,7 +734,7 @@ def configure_library(lib, output):
+     # libpath needs to be provided ahead libraries
+     if pkg_libpath:
+       output['libraries'] += (
+-          filter(None, map(str.strip, pkg_cflags.split('-L'))))
++          pkg_libpath.split())
+ 
+     default_libs = getattr(options, shared_lib + '_libname')
+     default_libs = map('-l{0}'.format, default_libs.split(','))
diff --git a/pkgs/development/web/nodejs/v0_10.nix b/pkgs/development/web/nodejs/v0_10.nix
index 838f1419f2cc..a5ee621de34a 100644
--- a/pkgs/development/web/nodejs/v0_10.nix
+++ b/pkgs/development/web/nodejs/v0_10.nix
@@ -42,7 +42,7 @@ in stdenv.mkDerivation {
     patchShebangs .
   '';
 
-  patches = stdenv.lib.optional stdenv.isDarwin ./no-xcode.patch;
+  patches = stdenv.lib.optionals stdenv.isDarwin [ ./default-arch.patch ./no-xcode.patch ];
 
   postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
     (cd tools/gyp; patch -Np1 -i ${../../python-modules/gyp/no-darwin-cflags.patch})