mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-04-14 05:17:38 +00:00
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:
parent
428aae8c04
commit
b0e6c66ad7
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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
|
Loading…
Reference in New Issue
Block a user