Open casser opened 9 years ago
@casser @codeshrew I'm having the same issue. I think it might be a compatibility issue their travis logs show which node, npm, and nvm versions they're building off of. They're significantly lower than ours.
$ node --version
v2.5.0
$ npm --version
2.13.2
$ nvm --version
0.23.3
Downgrading to match their versions is probably the easiest solution..
@cdart2 Yeah, works fine when I switch back. Was just logging the compatibility issue here in case anyone wants to look into making Sinopia work with node v4.2+
Same problem on CentOS 7 with Nodejs 4.2.0 and 4.2.1
$ sudo npm install -g sinopia
crypt3@0.1.8 install /usr/lib/node_modules/sinopia/node_modules/crypt3 node-gyp rebuild
make: Entering directory /usr/lib/node_modules/sinopia/node_modules/crypt3/build' CXX(target) Release/obj.target/crypt3/crypt3.o In file included from ../crypt3.cc:7: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: error: ‘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: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous return node::Buffer::New(v8::Isolate::GetCurrent(), data, size); ^ ../node_modules/nan/nan.h:672:67: note: candidates are: In file included from ../node_modules/nan/nan.h:25:0, from ../crypt3.cc:7: /root/.node-gyp/4.2.0/include/node/node_buffer.h:31:40: note: 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, ^ /root/.node-gyp/4.2.0/include/node/node_buffer.h:31:40: note: no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’ /root/.node-gyp/4.2.0/include/node/node_buffer.h:43:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match> NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /root/.node-gyp/4.2.0/include/node/node_buffer.h:43:40: note: no known conversion for argument 2 from ‘const char*’ to ‘char*’ In file included from ../crypt3.cc:7:0: ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’: ../node_modules/nan/nan.h:676:61: 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); ^ ../crypt3.cc: In function ‘void Method(const v8::FunctionCallbackInfo<v8::Value>&)’: ../crypt3.cc:29:59: warning: ‘v8::Local<v8::Value> node::ErrnoException(int, const char*, const char*, const char*)’ is deprecated (declared at /root/.node-gyp/4.2.0/include/node/node.h:99): Use UVException(isolate, ...) [-Wdeprecated-declarations] return NanThrowError(node::ErrnoException(errno, "crypt")); ^ make: *** [Release/obj.target/crypt3/crypt3.o] Error 1 make: Leaving directory
/usr/lib/node_modules/sinopia/node_modules/crypt3/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:270: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 3.10.0-229.14.1.el7.x86_64
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/lib/node_modules/sinopia/node_modules/crypt3
gyp ERR! node -v v4.2.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
fs-ext@0.4.5 install /usr/lib/node_modules/sinopia/node_modules/fs-ext node-gyp configure build
make: Entering directory /usr/lib/node_modules/sinopia/node_modules/fs-ext/build' CXX(target) Release/obj.target/fs-ext/fs-ext.o In file included from ../fs-ext.cc:27: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: error: ‘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: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous return node::Buffer::New(v8::Isolate::GetCurrent(), data, size); ^ ../node_modules/nan/nan.h:672:67: note: candidates are: In file included from ../node_modules/nan/nan.h:25:0, from ../fs-ext.cc:27: /root/.node-gyp/4.2.0/include/node/node_buffer.h:31:40: note: 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, ^ /root/.node-gyp/4.2.0/include/node/node_buffer.h:31:40: note: no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’ /root/.node-gyp/4.2.0/include/node/node_buffer.h:43:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match> NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /root/.node-gyp/4.2.0/include/node/node_buffer.h:43:40: note: no known conversion for argument 2 from ‘const char*’ to ‘char*’ In file included from ../fs-ext.cc:27:0: ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’: ../node_modules/nan/nan.h:676:61: 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); ^ ../fs-ext.cc: In function ‘void EIO_After(uv_work_t*)’: ../fs-ext.cc:108:47: warning: ‘v8::Local<v8::Value> node::ErrnoException(int, const char*, const char*, const char*)’ is deprecated (declared at /root/.node-gyp/4.2.0/include/node/node.h:99): Use UVException(isolate, ...) [-Wdeprecated-declarations] argv[0] = ErrnoException(store_data->error); ^ ../fs-ext.cc:156:29: warning: ‘void node::FatalException(const v8::TryCatch&)’ is deprecated (declared at /root/.node-gyp/4.2.0/include/node/node.h:282): Use FatalException(isolate, ...) [-Wdeprecated-declarations] FatalException(try_catch); ^ ../fs-ext.cc: In function ‘void Flock(const v8::FunctionCallbackInfo<v8::Value>&)’: ../fs-ext.cc:299:58: warning: ‘v8::Local<v8::Value> node::ErrnoException(int, const char*, const char*, const char*)’ is deprecated (declared at /root/.node-gyp/4.2.0/include/node/node.h:99): Use UVException(isolate, ...) [-Wdeprecated-declarations] if (i != 0) return NanThrowError(ErrnoException(errno)); ^ ../fs-ext.cc: In function ‘void Seek(const v8::FunctionCallbackInfo<v8::Value>&)’: ../fs-ext.cc:343:69: warning: ‘v8::Local<v8::Value> node::ErrnoException(int, const char*, const char*, const char*)’ is deprecated (declared at /root/.node-gyp/4.2.0/include/node/node.h:99): Use UVException(isolate, ...) [-Wdeprecated-declarations] if (offs_result == -1) return NanThrowError(ErrnoException(errno)); ^ ../fs-ext.cc: In function ‘void Fcntl(const v8::FunctionCallbackInfo<v8::Value>&)’: ../fs-ext.cc:380:64: warning: ‘v8::Local<v8::Value> node::ErrnoException(int, const char*, const char*, const char*)’ is deprecated (declared at /root/.node-gyp/4.2.0/include/node/node.h:99): Use UVException(isolate, ...) [-Wdeprecated-declarations] if (result == -1) return NanThrowError(ErrnoException(errno)); ^ ../fs-ext.cc: In function ‘void UTime(const v8::FunctionCallbackInfo<v8::Value>&)’: ../fs-ext.cc:439:80: warning: ‘v8::Local<v8::Value> node::ErrnoException(int, const char*, const char*, const char*)’ is deprecated (declared at /root/.node-gyp/4.2.0/include/node/node.h:99): Use UVException(isolate, ...) [-Wdeprecated-declarations] if (ret != 0) return NanThrowError(ErrnoException(errno, "utime", "", *path)); ^ ../fs-ext.cc: In function ‘void StatVFS(const v8::FunctionCallbackInfo<v8::Value>&)’: ../fs-ext.cc:476:82: warning: ‘v8::Local<v8::Value> node::ErrnoException(int, const char*, const char*, const char*)’ is deprecated (declared at /root/.node-gyp/4.2.0/include/node/node.h:99): Use UVException(isolate, ...) [-Wdeprecated-declarations] if (ret != 0) return NanThrowError(ErrnoException(errno, "statvfs", "", *path)); ^ make: *** [Release/obj.target/fs-ext/fs-ext.o] Error 1 make: Leaving directory
/usr/lib/node_modules/sinopia/node_modules/fs-ext/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:270: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 3.10.0-229.14.1.el7.x86_64
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "build"
gyp ERR! cwd /usr/lib/node_modules/sinopia/node_modules/fs-ext
v4.2.0! node -v/
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm WARN optional dep failed, continuing crypt3@0.1.8
npm WARN optional dep failed, continuing fs-ext@0.4.5
\
dtrace-provider@0.4.0 install /usr/lib/node_modules/sinopia/node_modules/bunyan/node_modules/dtrace-provider node scripts/install.js
/usr/bin/sinopia -> /usr/lib/node_modules/sinopia/bin/sinopia sinopia@1.4.0 /usr/lib/node_modules/sinopia ├── sinopia-htpasswd@0.4.5 ├── async@0.9.2 ├── es6-shim@0.21.1 ├── http-errors@1.3.1 (statuses@1.2.1, inherits@2.0.1) ├── commander@2.8.1 (graceful-readlink@1.0.1) ├── cookies@0.5.0 (keygrip@1.0.1) ├── readable-stream@1.1.13 (string_decoder@0.10.31, isarray@0.0.1, core-util-is@1.0.1, inherits@2.0.1) ├── minimatch@1.0.0 (sigmund@1.0.1, lru-cache@2.6.4) ├── jju@1.2.0 ├── mkdirp@0.5.1 (minimist@0.0.8) ├── compression@1.4.4 (vary@1.0.0, on-headers@1.0.0, bytes@1.0.0, compressible@2.0.2, debug@2.2.0, accepts@1.2.7) ├── JSONStream@1.0.3 (through@2.3.7, jsonparse@1.0.0) ├── body-parser@1.12.4 (content-type@1.0.1, bytes@1.0.0, depd@1.0.1, qs@2.4.2, raw-body@2.0.2, on-finished@2.2.1, debug@2.2.0, iconv-lite@0.4.8, type-is@1.6.2) ├── express-json5@0.1.0 (raw-body@1.3.4) ├── express@5.0.0-alpha.1 (utils-merge@1.0.0, merge-descriptors@0.0.2, cookie@0.1.2, fresh@0.2.4, media-typer@0.3.0, serve-static@1.7.2, content-disposition@0.5.0, range-parser@1.0.2, finalhandler@0.3.2, escape-html@1.0.1, cookie-signature@1.0.5, vary@1.0.0, parseurl@1.3.0, path-to-regexp@0.1.3, methods@1.1.0, depd@1.0.1, qs@2.3.2, on-finished@2.1.1, send@0.10.1, debug@2.1.3, proxy-addr@1.0.8, etag@1.5.1, accepts@1.1.4, type-is@1.5.7) ├── semver@4.3.5 ├── lunr@0.5.9 ├── bunyan@1.3.5 (safe-json-stringify@1.0.3, mv@2.0.3, dtrace-provider@0.4.0) ├── request@2.56.0 (forever-agent@0.6.1, aws-sign2@0.5.0, caseless@0.10.0, tunnel-agent@0.4.0, oauth-sign@0.8.0, stringstream@0.0.4, isstream@0.1.2, json-stringify-safe@5.0.1, node-uuid@1.4.3, qs@3.1.0, combined-stream@1.0.3, mime-types@2.0.12, tough-cookie@1.2.0, http-signature@0.11.0, form-data@0.2.0, bl@0.9.4, hawk@2.3.1, har-validator@1.7.1) ├── highlight.js@8.6.0 ├── handlebars@2.0.0 (optimist@0.3.7, uglify-js@2.3.6) ├── render-readme@1.3.0 (sanitize-html@1.6.1, markdown-it@4.2.1) └── js-yaml@3.3.1 (esprima@2.2.0, argparse@1.0.2)
Ditto here, Centos 7, npm 2.14.7, node 4.2.1. I'd include error output, but it's nearly verbatim of the above.
Also of note, on minimal CentOS 7, I had to manually sudo yum -y install gcc-c++
. Seems like something the install process ought to check for and do on its own?
+1
Looks like the underlying problem is with crypt3: https://github.com/sendanor/node-crypt3/pull/10
Edit: actually a library (nan) that crypt3 is dependent on
Workarounds:
[1] Do nothing. The crypt3 depdency is optional anyway: https://github.com/sendanor/node-crypt3/issues/7
[2] Remove the shrinkwrapped nan 1.8 and get sinopia to use a the latest versions of its libraries
npm install
sinopia and let it fail.node_modules/sinopia/npm-shrinkwrap.json
(remember this won't be in your current dir if you installed with -g
)node_modules/sinopia
, run npm install
wow, that bug has been here for a long time
I have this issue on node version 5.6.0 and 5.4.1. I get
Error:
makefailed with exit code: 2
After make was installed just moments ago, I'm on Ubuntu 14.04, installed via apt-get
guys, please use gists to post your logs
Hi guys,
Dependencies crypt3 and fs-ext are native modules that could fail to compile and unavailable on Windows. They are optional and does not affect usage of Sinopia. To avoid errors, you can not install this dependencies with no-optional and no-shrinkwrap options.
npm install sinopia --no-optional --no-shrinkwrap
npm install sinopia --no-optional --no-shrinkwrap
works fine.
ubuntu 16.04, node:4.5 same error solved withnpm install sinopia --no-optional --no-shrinkwrap
I can confirm that npm install sinopia --no-optional --no-shrinkwrap
fixes the same issue on OS X 10.11.4, node 6.2.2
@chrisdukey Thanks! This should be in the README! Works with Ubuntu 14.04, node 6.7.0
Just a tip: this seems like the forward-proof maintained version of Sinopia: https://www.npmjs.com/package/verdaccio
I was testing Sinopia and besides difficult install, there was problem when installing the ava
package because in the meantime npmjs implemented Scoped packages, example @ava.
verdaccio
worked in this case, so far no issues...
this is the storage folder ~/.config/verdaccio/storage
:
drwxr-xr-x 335 david staff 11K Mar 2 16:09 .
drwxr-xr-x 4 david staff 136B Mar 2 16:09 ..
-rw-r--r-- 1 david staff 87B Mar 2 16:09 .sinopia-db.json
drwxr-xr-x 5 david staff 170B Mar 2 16:09 @ava
drwxr-xr-x 3 david staff 102B Mar 2 16:09 ansi-align
drwxr-xr-x 3 david staff 102B Mar 2 16:09 ansi-regex
...
@nicolashemonic Works fine! thx!
@nicolashemonic npm install sinopia --no-optional --no-shrinkwrap worked well. thanks.
@nicolashemonic sudo npm i -g sinopia --no-optional --no-shrinkwrap
works . thanks (on a centOS 7)
I was having problems on OSX and sudo npm i -g sinopia --no-optional --no-shrinkwrap
worked for me. This should be added to the readme for the project.
Same as it ever was ... and the proposed solution still works of course.
Getting install error, probably dependencies for my version of node
Here is stack trace