jeremycx / node-LDAP

LDAP binding for node.js
MIT License
221 stars 43 forks source link

npm install fails in node version 4.1.0 #76

Closed user0403 closed 9 years ago

user0403 commented 9 years ago

npm install LDAP is getting failed in v4.1.0

Following is the error message (similarly getting bunch of errors) In file included from ../src/LDAP.cc:4:0: /home/node_modules/LDAP/.node-gyp/4.1.0/include/node/v8.h:315:27: note: declared here friend Local Undefined(Isolate* isolate); ^ ../src/LDAP.cc: In static member function âstatic int LDAPConnection::SyncSearchEntry(ldap_synct, LDAPMessage, berval, ldap_sync_refresh_t)â: ../src/LDAP.cc:1000:20: error: base operand of â->â has non-pointer type âv8::Persistentv8::Functionâ c->syncentry_cb->Call(Context::GetCurrent()->Global(), 1, args); ^ ../src/LDAP.cc:1000:27: error: âGetCurrentâ is not a member of âv8::Contextâ c->syncentry_cb->Call(Context::GetCurrent()->Global(), 1, args); ^ ../src/LDAP.cc:1002:24: warning: âvoid node::FatalException(const v8::TryCatch&)â is deprecated (declared at /home/node_modules/LDAP/.node-gyp/4.1.0/include/node/node.h:282): Use FatalException(isolate, ...) [-Wdeprecated-declarations] FatalException(tc); ^ ../src/LDAP.cc: In static member function âstatic int LDAPConnection::SyncIntermediate(ldap_synct, LDAPMessage_, BerVarray, ldap_sync_refresh_t)â: ../src/LDAP.cc:1013:7: error: âNewâ is not a member of âv8::Stringâ String::New(ls->ls_cookie.bv_val), ^ ../src/LDAP.cc:1014:39: error: no matching function for call to âv8::Integer::New(ldap_sync_refresh_t&)â Integer::New(ls->ls_refreshPhase) ^ ../src/LDAP.cc:1014:39: note: candidate is: In file included from ../src/LDAP.cc:4:0: /home/nodemodules/LDAP/.node-gyp/4.1.0/include/node/v8.h:2499:25: note: static v8::Localv8::Integer v8::Integer::New(v8::Isolate, int32_t) static Local New(Isolate* isolate, int32_t value); ^ /home/node_modules/LDAP/.node-gyp/4.1.0/include/node/v8.h:2499:25: note: candidate expects 2 arguments, 1 provided ../src/LDAP.cc:1018:27: error: base operand of â->â has non-pointer type âv8::Persistentv8::Functionâ c->syncintermediate_cb->Call(Context::GetCurrent()->Global(), 2, args); ^ ../src/LDAP.cc:1018:34: error: âGetCurrentâ is not a member of âv8::Contextâ c->syncintermediate_cb->Call(Context::GetCurrent()->Global(), 2, args); ^ ../src/LDAP.cc:1020:24: warning: âvoid node::FatalException(const v8::TryCatch&)â is deprecated (declared at /home/node_modules/LDAP/.node-gyp/4.1.0/include/node/node.h:282): Use FatalException(isolate, ...) [-Wdeprecated-declarations] FatalException(tc); ^ ../src/LDAP.cc: In static member function âstatic int LDAPConnection::SyncResult(ldap_synct, LDAPMessage_, int)â: ../src/LDAP.cc:1033:21: error: base operand of â->â has non-pointer type âv8::Persistentv8::Functionâ c->syncresult_cb->Call(Context::GetCurrent()->Global(), 1, args); ^ ../src/LDAP.cc:1033:28: error: âGetCurrentâ is not a member of âv8::Contextâ c->syncresult_cb->Call(Context::GetCurrent()->Global(), 1, args); ^ ../src/LDAP.cc:1035:24: warning: âvoid node::FatalException(const v8::TryCatch&)â is deprecated (declared at /home/node_modules/LDAP/.node-gyp/4.1.0/include/node/node.h:282): Use FatalException(isolate, ...) [-Wdeprecated-declarations] FatalException(tc); ^ In file included from ../src/LDAP.cc:4:0:

How can I fix this :(

huancz commented 9 years ago

Short: you can't.

See duplicate issue #70 - it would need significant rewrite of LDAP internals, because newer nodejs changed it's C++ API... Again... LDAP doesn't build on any node newer than 0.10.x. And if you want LDAP and reliable nodejs, you have to go to v0.8.x - v0.10 series contain bug in new streams code that is triggered when dealing with large data (see https://github.com/nodejs/node-v0.x-archive/issues/6065), and that is "too difficult to fix in v0.10" (last post in linked thread). It may not be relevant for your code, so just a warning, you have good chance of not discovering it until production deployment.

jeremycx commented 9 years ago

New version released.