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>
This commit is contained in:
Shea Levy 2013-05-23 17:46:07 -04:00
parent 428aae8c04
commit b0e6c66ad7
2 changed files with 26 additions and 56 deletions

View file

@ -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;
};
}

View file

@ -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