about summary refs log tree commit diff
path: root/pkgs/development/web
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2013-05-23 17:46:07 -0400
committerShea Levy <shea@shealevy.com>2013-05-27 02:08:24 -0400
commitb0e6c66ad7532a0ec2983c92035b6f8a559f9f2e (patch)
tree83bc9130e059e31156d152319b8526103070ed12 /pkgs/development/web
parent428aae8c04aa9bd9b591427b67b4ef0470524e1f (diff)
downloadnixlib-b0e6c66ad7532a0ec2983c92035b6f8a559f9f2e.tar
nixlib-b0e6c66ad7532a0ec2983c92035b6f8a559f9f2e.tar.gz
nixlib-b0e6c66ad7532a0ec2983c92035b6f8a559f9f2e.tar.bz2
nixlib-b0e6c66ad7532a0ec2983c92035b6f8a559f9f2e.tar.lz
nixlib-b0e6c66ad7532a0ec2983c92035b6f8a559f9f2e.tar.xz
nixlib-b0e6c66ad7532a0ec2983c92035b6f8a559f9f2e.tar.zst
nixlib-b0e6c66ad7532a0ec2983c92035b6f8a559f9f2e.zip
nodejs: Update to v0.10.8
I removed darwin-specific bits, as I can't test them right now. If
it's broken, let me know and I'll fix on darwin.

Signed-off-by: Shea Levy <shea@shealevy.com>
Diffstat (limited to 'pkgs/development/web')
-rw-r--r--pkgs/development/web/nodejs/default.nix61
-rw-r--r--pkgs/development/web/nodejs/no-arch-flag.patch21
2 files changed, 26 insertions, 56 deletions
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
index f9c3d9d27d3e..f3025c97f167 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -1,54 +1,45 @@
-{ stdenv, fetchurl, openssl, python, zlib, v8, utillinux }:
+{ stdenv, fetchurl, openssl, python, zlib, v8, utillinux, http_parser, c-ares }:
 
-stdenv.mkDerivation rec {
-  version = "0.8.23";
+let
+  version = "0.10.8";
+
+  # !!! Should we also do shared libuv?
+  deps = {
+    inherit v8 openssl zlib;
+    cares = c-ares;
+    http-parser = http_parser;
+  };
+
+  sharedConfigureFlags = name: [
+    "--shared-${name}"
+    "--shared-${name}-includes=${builtins.getAttr name deps}/include"
+    "--shared-${name}-libpath=${builtins.getAttr name deps}/lib"
+  ];
+
+  inherit (stdenv.lib) concatMap optional maintainers licenses platforms;
+in stdenv.mkDerivation {
   name = "nodejs-${version}";
 
   src = fetchurl {
     url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz";
-    sha256 = "17gdvv0q95v5dn9mbwrm3pxcchfgmlwa7pamwsam9hpdi9ik491q";
+    sha256 = "0m43y7ipd6d89dl97nvrwkx1zss3fdb9835509dyziycr1kggxpd";
   };
 
-  configureFlags = [
-    "--openssl-includes=${openssl}/include"
-    "--openssl-libpath=${openssl}/lib"
-  ]
-  ++ (if !stdenv.isDarwin then [ # Shared V8 is broken on Mac OS X. Who can fix V8 on Darwin makes me very happy, but I gave up studying python-gyp.
-    "--shared-v8"
-    "--shared-v8-includes=${v8}/includes"
-    "--shared-v8-libpath=${v8}/lib"
-  ] else []);
-
-  #patches = stdenv.lib.optional stdenv.isDarwin ./no-arch-flag.patch;
-
-  # Expose the host compiler on darwin, which is the only compiler capable of building it
-  preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
-    export OLDPATH=$PATH
-    export PATH=/usr/bin:$PATH
-  '';
+  configureFlags = concatMap sharedConfigureFlags (builtins.attrNames deps);
 
   prePatch = ''
-    sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i tools/{*.py,waf-light,node-waf} configure
+    sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i configure
   '';
 
-  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
-    export PATH=$OLDPATH
-  '' + ''
-    sed -e 's|^#!/usr/bin/env node$|#!'$out'/bin/node|' -i $out/lib/node_modules/npm/bin/npm-cli.js
-  '' /*+ stdenv.lib.optionalString stdenv.isDarwin ''
-    install_name_tool -change libv8.dylib ${v8}/lib/libv8.dylib $out/bin/node
-  ''*/;
-
-  buildInputs = [ python openssl zlib ]
-    ++ stdenv.lib.optional stdenv.isLinux utillinux
-    ++ stdenv.lib.optional (!stdenv.isDarwin) v8;
+  buildInputs = [ python ]
+    ++ optional stdenv.isLinux utillinux;
   setupHook = ./setup-hook.sh;
 
-  meta = with stdenv.lib; {
+  meta = {
     description = "Event-driven I/O framework for the V8 JavaScript engine";
     homepage = http://nodejs.org;
     license = licenses.mit;
-    maintainers = [ maintainers.goibhniu ];
+    maintainers = [ maintainers.goibhniu maintainers.shlevy ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/web/nodejs/no-arch-flag.patch b/pkgs/development/web/nodejs/no-arch-flag.patch
deleted file mode 100644
index bbe96c0c5527..000000000000
--- a/pkgs/development/web/nodejs/no-arch-flag.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Naur node-v0.6.10-orig/wscript node-v0.6.10/wscript
---- node-v0.6.10-orig/wscript	2012-02-02 19:56:42.000000000 -0500
-+++ node-v0.6.10/wscript	2012-02-25 14:18:50.000000000 -0500
-@@ -443,17 +443,6 @@
-   if sys.platform.startswith("darwin"):
-     # used by platform_darwin_*.cc
-     conf.env.append_value('LINKFLAGS', ['-framework','Carbon'])
--    # cross compile for architecture specified by DEST_CPU
--    if 'DEST_CPU' in conf.env:
--      arch = conf.env['DEST_CPU']
--      # map supported_archs to GCC names:
--      arch_mappings = {'ia32': 'i386', 'x64': 'x86_64'}
--      if arch in arch_mappings:
--        arch = arch_mappings[arch]
--      flags = ['-arch', arch]
--      conf.env.append_value('CCFLAGS', flags)
--      conf.env.append_value('CXXFLAGS', flags)
--      conf.env.append_value('LINKFLAGS', flags)
-   if 'DEST_CPU' in conf.env:
-     arch = conf.env['DEST_CPU']
-     # TODO: -m32 is only available on 64 bit machines, so check host type