getkaiwa / kaiwa

[UNMAINTAINED] A modern XMPP Web client
http://getkaiwa.com
MIT License
1.34k stars 154 forks source link

npm install fails with nodejs 5.1.1 #75

Closed ilpianista closed 7 years ago

ilpianista commented 8 years ago

This isn't directly kaiwa's fault, but node-stringprep instead (see https://github.com/node-xmpp/node-stringprep/issues/75).

$ npm install
loadDep:node-stringprep → ▐ ╢████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟

> node-stringprep@0.7.3 install /srv/http/jabber/kaiwa/node_modules/node-stringprep
> node-gyp rebuild

make: Entering directory '/srv/http/jabber/kaiwa/node_modules/node-stringprep/build'
  CXX(target) Release/obj.target/node_stringprep/node-stringprep.o
In file included from ../node-stringprep.cc:1:0:
../node_modules/nan/nan.h:261:25: error: redefinition of ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Local<T>)’
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {
                         ^
../node_modules/nan/nan.h:256:25: note: ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Handle<T>)’ previously declared here
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {
                         ^
../node_modules/nan/nan.h:661:13: error: ‘node::smalloc’ has not been declared
     , node::smalloc::FreeCallback callback
             ^
../node_modules/nan/nan.h:661:35: error: expected ‘,’ or ‘...’ before ‘callback’
     , node::smalloc::FreeCallback callback
                                   ^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’:
../node_modules/nan/nan.h:665:50: error: ‘callback’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                  ^
../node_modules/nan/nan.h:665:60: error: ‘hint’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                            ^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’:
../node_modules/nan/nan.h:672:67: error: no matching function for call to ‘New(v8::Isolate*, const char*&, uint32_t&)’
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
In file included from ../node_modules/nan/nan.h:25:0,
                 from ../node-stringprep.cc:1:
/srv/http/jabber/.node-gyp/5.1.1/include/node/node_buffer.h:31:40: note: candidate: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/srv/http/jabber/.node-gyp/5.1.1/include/node/node_buffer.h:31:40: note:   conversion of argument 3 would be ill-formed:
In file included from ../node-stringprep.cc:1:0:
../node_modules/nan/nan.h:672:67: error: invalid conversion from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’ [-fpermissive]
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
In file included from ../node_modules/nan/nan.h:25:0,
                 from ../node-stringprep.cc:1:
/srv/http/jabber/.node-gyp/5.1.1/include/node/node_buffer.h:43:40: note: candidate: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/srv/http/jabber/.node-gyp/5.1.1/include/node/node_buffer.h:43:40: note:   conversion of argument 2 would be ill-formed:
In file included from ../node-stringprep.cc:1:0:
../node_modules/nan/nan.h:672:67: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’:
../node_modules/nan/nan.h:676:29: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’
     return node::Buffer::New(v8::Isolate::GetCurrent(), size);
                             ^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’:
../node_modules/nan/nan.h:683:12: error: ‘Use’ is not a member of ‘node::Buffer’
     return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
            ^
../node-stringprep.cc: In function ‘void ToUnicode(const v8::FunctionCallbackInfo<v8::Value>&)’:
../node-stringprep.cc:212:48: warning: ‘int32_t uidna_toUnicode_56(const UChar*, int32_t, UChar*, int32_t, int32_t, UParseError*, UErrorCode*)’ is deprecated [-Wdeprecated-declarations]
                                    NULL, &error);
                                                ^
In file included from /usr/include/unicode/platform.h:23:0,
                 from /usr/include/unicode/ptypes.h:50,
                 from /usr/include/unicode/umachine.h:44,
                 from /usr/include/unicode/utypes.h:36,
                 from /usr/include/unicode/unistr.h:29,
                 from ../node-stringprep.cc:2:
/usr/include/unicode/uidna.h:622:1: note: declared here
 uidna_toUnicode(const UChar* src, int32_t srcLength,
 ^
../node-stringprep.cc: In function ‘void ToASCII(const v8::FunctionCallbackInfo<v8::Value>&)’:
../node-stringprep.cc:257:48: warning: ‘int32_t uidna_toASCII_56(const UChar*, int32_t, UChar*, int32_t, int32_t, UParseError*, UErrorCode*)’ is deprecated [-Wdeprecated-declarations]
                                    NULL, &error);
                                                ^
In file included from /usr/include/unicode/platform.h:23:0,
                 from /usr/include/unicode/ptypes.h:50,
                 from /usr/include/unicode/umachine.h:44,
                 from /usr/include/unicode/utypes.h:36,
                 from /usr/include/unicode/unistr.h:29,
                 from ../node-stringprep.cc:2:
/usr/include/unicode/uidna.h:574:1: note: declared here
 uidna_toASCII(const UChar* src, int32_t srcLength, 
 ^
../node-stringprep.cc:267:35: warning: ‘int32_t uidna_toASCII_56(const UChar*, int32_t, UChar*, int32_t, int32_t, UParseError*, UErrorCode*)’ is deprecated [-Wdeprecated-declarations]
                       NULL, &error);
                                   ^
In file included from /usr/include/unicode/platform.h:23:0,
                 from /usr/include/unicode/ptypes.h:50,
                 from /usr/include/unicode/umachine.h:44,
                 from /usr/include/unicode/utypes.h:36,
                 from /usr/include/unicode/unistr.h:29,
                 from ../node-stringprep.cc:2:
/usr/include/unicode/uidna.h:574:1: note: declared here
 uidna_toASCII(const UChar* src, int32_t srcLength, 
 ^
node_stringprep.target.mk:88: recipe for target 'Release/obj.target/node_stringprep/node-stringprep.o' failed
make: *** [Release/obj.target/node_stringprep/node-stringprep.o] Error 1
make: Leaving directory '/srv/http/jabber/kaiwa/node_modules/node-stringprep/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 4.2.5-1-ARCH
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /srv/http/jabber/kaiwa/node_modules/node-stringprep
gyp ERR! node -v v5.1.1
gyp ERR! node-gyp -v v3.2.0
gyp ERR! not ok 
npm ERR! Linux 4.2.5-1-ARCH
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install"
npm ERR! node v5.1.1
npm ERR! npm  v3.5.1
npm ERR! code ELIFECYCLE

npm ERR! node-stringprep@0.7.3 install: `node-gyp rebuild`
npm ERR! Exit status 1

However the problem is I cannot install kaiwa client on my host because of this. I see you provide docker images for both server and client, but I'm interested to the client only. I'm missing something?

ChALkeR commented 8 years ago

node-stringprep uses an old version of nan that is not compatible with Node.js ≥ 4.0.

They should at least upgrade to nan 2.x. I have not verified that that's the only problem here, though.