npm install fails npm 1.0.6, node 0.4.7, centos 5.5
$ npm install dcrypt -g
[email protected] preinstall /home/jules/lib/node_modules/dcrypt node-waf clean || true; node-waf configure build
Nothing to clean (project not configured)
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for node path : not found
Checking for node prefix : ok /home/jules
Checking for header openssl/ecdsa.h : not found
Configuring Dcrypt to skip bindings on ECDSA
'configure' finished successfully (0.039s)
Waf: Entering directory /home/jules/lib/node_modules/dcrypt/build' Building Dcrypt without ECDSA support [ 1/14] cxx: src/cipher.cc -> build/default/src/cipher_1.o [ 2/14] cxx: src/common.cc -> build/default/src/common_1.o [ 3/14] cxx: src/decipher.cc -> build/default/src/decipher_1.o [ 4/14] cxx: src/drsa.cc -> build/default/src/drsa_1.o [ 5/14] cxx: src/dx509.cc -> build/default/src/dx509_1.o [ 6/14] cxx: src/encode.cc -> build/default/src/encode_1.o ../src/dx509.cc: In static member function ‘static v8::Handle<v8::Value> DX509::parseCert(const v8::Arguments&)’: ../src/dx509.cc:138: error: ‘EC_KEY’ was not declared in this scope ../src/dx509.cc:138: error: ‘ec_key’ was not declared in this scope ../src/dx509.cc:138: error: ‘EVP_PKEY_get1_EC_KEY’ was not declared in this scope ../src/dx509.cc:141: error: ‘EC_KEY_free’ was not declared in this scope Waf: Leaving directory/home/jules/lib/node_modules/dcrypt/build'
Build failed: -> task failed (err #1):
{task: cxx dx509.cc -> dx509_1.o}
npm ERR! error installing [email protected] Error: [email protected] preinstall: node-waf clean || true; node-waf configure build
npm ERR! error installing [email protected] sh "-c" "node-waf clean || true; node-waf configure build" failed with 1
npm ERR! error installing [email protected] at ChildProcess.node-waf clean || true; node-waf configure build
npm ERR! sh "-c" "node-waf clean || true; node-waf configure build" failed with 1
npm ERR!
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the dcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-waf clean || true; node-waf configure build
npm ERR! You can get their info via:
npm ERR! npm owner ls dcrypt
npm ERR! There is likely additional logging output above.
npm ERR!
npm ERR! System Linux 2.6.18-194.32.1.el5
npm ERR! command "node" "/home/jules/bin/npm" "install" "dcrypt" "-g"
npm ERR!
npm not ok
Sorry I should really have kept the X509 certs in a sandbox. I'll fix this tonight, if you want to get around it in the meantime you can install a newer version of openssl with ECDSA support.
I can't currently test it, but I've made a change that should hopefully block out all the ec based in x509, pull from the latest source and try building that.
wow... that was quick!
Don't worry about it for now, but FYI from the latest source:
Building Dcrypt without ECDSA support [ 2/14] cxx: src/common.cc -> build/default/src/common_1.o [ 1/14] cxx: src/cipher.cc -> build/default/src/cipher_1.o [ 3/14] cxx: src/decipher.cc -> build/default/src/decipher_1.o [ 4/14] cxx: src/drsa.cc -> build/default/src/drsa_1.o [ 5/14] cxx: src/dx509.cc -> build/default/src/dx509_1.o [ 6/14] cxx: src/encode.cc -> build/default/src/encode_1.o [ 7/14] cxx: src/hash.cc -> build/default/src/hash_1.o [ 8/14] cxx: src/hmac.cc -> build/default/src/hmac_1.o [ 9/14] cxx: src/init.cc -> build/default/src/init_1.o [10/14] cxx: src/keypair.cc -> build/default/src/keypair_1.o ../src/structs.h:14: error: ISO C++ forbids declaration of ‘EC_GROUP’ with no type ../src/structs.h:14: error: expected ‘;’ before ‘’ token ../src/structs.h:16: error: ISO C++ forbids declaration of ‘EC_POINT’ with no type ../src/structs.h:16: error: expected ‘;’ before ‘’ token ../src/structs.h:20: error: ‘point_conversion_form_t’ does not name a type ../src/structs.h:28: error: ISO C++ forbids declaration of ‘EC_METHOD’ with no type ../src/structs.h:28: error: expected ‘;’ before ‘’ token ../src/keypair.cc: In static member function ‘static v8::Handlev8::Value KeyPair::New_RSA_KeyPair(const v8::Arguments&)’: ../src/keypair.cc:42: warning: converting to ‘uint’ from ‘double’ ../src/keypair.cc:43: warning: converting to ‘uint’ from ‘double’ ../src/structs.h:14: error: ISO C++ forbids declaration of ‘EC_GROUP’ with no type ../src/structs.h:14: error: expected ‘;’ before ‘’ token ../src/structs.h:16: error: ISO C++ forbids declaration of ‘EC_POINT’ with no type ../src/structs.h:16: error: expected ‘;’ before ‘’ token ../src/structs.h:20: error: ‘point_conversion_form_t’ does not name a type ../src/structs.h:28: error: ISO C++ forbids declaration of ‘EC_METHOD’ with no type ../src/structs.h:28: error: expected ‘;’ before ‘’ token
I might just update OpenSSL
Cheers!
Slightly off topic, but related: I'd like to build a private OpenSSL 1.0 (in /home/build/openssl) so I can compile & link dcrypt against that without interfering with the system-wide OpenSSL libs.
Do you know how that could be achieved with node's build system?