When installing manta under Node.js v5.3.0 and 3.3.12, there are several errors (non-fatal I think) when installing dtrace-provider.
gyp WARN EACCES user "root" does not have permission to access the dev dir "/Users/christopher/.node-gyp/5.3.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp"
ACTION binding_gyp_libusdt_target_build_libusdt .
Building libusdt for x86_64
rm -f *.gch
rm -f *.o
rm -f libusdt.a
rm -f test_usdt
rm -f test_usdt32
rm -f test_usdt64
rm -f test_mem_usage
gcc -O2 -arch x86_64 -c -o usdt.o usdt.c
usdt.c:212:9: warning: implicit declaration of function 'usdt_dof_section_free' is invalid
in C99 [-Wimplicit-function-declaration]
usdt_dof_section_free(&strtab);
^
usdt.c:238:9: warning: implicit declaration of function 'usdt_dof_file_free' is invalid in
C99 [-Wimplicit-function-declaration]
usdt_dof_file_free(provider->file);
^
2 warnings generated.
gcc -O2 -arch x86_64 -c -o usdt_dof_file.o usdt_dof_file.c
gcc -arch x86_64 -o usdt_tracepoints.o -c usdt_tracepoints_x86_64.s
gcc -O2 -arch x86_64 -c -o usdt_probe.o usdt_probe.c
gcc -O2 -arch x86_64 -c -o usdt_dof.o usdt_dof.c
gcc -O2 -arch x86_64 -c -o usdt_dof_sections.o usdt_dof_sections.c
rm -f libusdt.a
ar cru libusdt.a usdt.o usdt_dof_file.o usdt_tracepoints.o usdt_probe.o usdt_dof.o usdt_dof_sections.o
ranlib libusdt.a
TOUCH Release/obj.target/libusdt.stamp
CXX(target) Release/obj.target/DTraceProviderBindings/dtrace_provider.o
In file included from ../dtrace_provider.cc:1:
../dtrace_provider.h:69:44: error: no type named 'Arguments' in namespace 'v8'; did you mean
'v8::internal::Arguments'?
static v8::Handle<v8::Value> New(const v8::Arguments& args);
^~~~~~~~~~~~~
v8::internal::Arguments
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:139:7: note:
'v8::internal::Arguments' declared here
class Arguments;
^
In file included from ../dtrace_provider.cc:1:
../dtrace_provider.h:70:45: error: no type named 'Arguments' in namespace 'v8'; did you mean
'v8::internal::Arguments'?
static v8::Handle<v8::Value> Fire(const v8::Arguments& args);
^~~~~~~~~~~~~
v8::internal::Arguments
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:139:7: note:
'v8::internal::Arguments' declared here
class Arguments;
^
In file included from ../dtrace_provider.cc:1:
../dtrace_provider.h:87:44: error: no type named 'Arguments' in namespace 'v8'; did you mean
'v8::internal::Arguments'?
static v8::Handle<v8::Value> New(const v8::Arguments& args);
^~~~~~~~~~~~~
v8::internal::Arguments
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:139:7: note:
'v8::internal::Arguments' declared here
class Arguments;
^
In file included from ../dtrace_provider.cc:1:
../dtrace_provider.h:88:49: error: no type named 'Arguments' in namespace 'v8'; did you mean
'v8::internal::Arguments'?
static v8::Handle<v8::Value> AddProbe(const v8::Arguments& args);
^~~~~~~~~~~~~
v8::internal::Arguments
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:139:7: note:
'v8::internal::Arguments' declared here
class Arguments;
^
In file included from ../dtrace_provider.cc:1:
../dtrace_provider.h:89:52: error: no type named 'Arguments' in namespace 'v8'; did you mean
'v8::internal::Arguments'?
static v8::Handle<v8::Value> RemoveProbe(const v8::Arguments& args);
^~~~~~~~~~~~~
v8::internal::Arguments
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:139:7: note:
'v8::internal::Arguments' declared here
class Arguments;
^
In file included from ../dtrace_provider.cc:1:
../dtrace_provider.h:90:47: error: no type named 'Arguments' in namespace 'v8'; did you mean
'v8::internal::Arguments'?
static v8::Handle<v8::Value> Enable(const v8::Arguments& args);
^~~~~~~~~~~~~
v8::internal::Arguments
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:139:7: note:
'v8::internal::Arguments' declared here
class Arguments;
^
In file included from ../dtrace_provider.cc:1:
../dtrace_provider.h:91:48: error: no type named 'Arguments' in namespace 'v8'; did you mean
'v8::internal::Arguments'?
static v8::Handle<v8::Value> Disable(const v8::Arguments& args);
^~~~~~~~~~~~~
v8::internal::Arguments
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:139:7: note:
'v8::internal::Arguments' declared here
class Arguments;
^
In file included from ../dtrace_provider.cc:1:
../dtrace_provider.h:92:45: error: no type named 'Arguments' in namespace 'v8'; did you mean
'v8::internal::Arguments'?
static v8::Handle<v8::Value> Fire(const v8::Arguments& args);
^~~~~~~~~~~~~
v8::internal::Arguments
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:139:7: note:
'v8::internal::Arguments' declared here
class Arguments;
^
../dtrace_provider.cc:23:17: error: calling a protected constructor of class
'v8::HandleScope'
HandleScope scope;
^
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:889:13: note:
declared protected here
V8_INLINE HandleScope() {}
^
../dtrace_provider.cc:25:55: error: cannot initialize a parameter of type 'v8::Isolate *'
with an lvalue of type 'v8::Handle<v8::Value> (const v8::internal::Arguments &)'
Local<FunctionTemplate> t = FunctionTemplate::New(DTraceProvider::New);
^~~~~~~~~~~~~~~~~~~
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:4349:16: note:
passing argument to parameter 'isolate' here
Isolate* isolate, FunctionCallback callback = 0,
^
../dtrace_provider.cc:26:58: error: 'New' is a private member of
'v8::PersistentBase<v8::FunctionTemplate>'
constructor_template = Persistent<FunctionTemplate>::New(t);
^
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:643:23: note:
declared private here
V8_INLINE static T* New(Isolate* isolate, T* that);
^
../dtrace_provider.cc:26:28: error: too few arguments to function call, expected 2, have 1;
did you mean 'DTraceProbe::New'?
constructor_template = Persistent<FunctionTemplate>::New(t);
^~~~~~~~~~
DTraceProbe::New
../dtrace_provider.h:69:34: note: 'DTraceProbe::New' declared here
static v8::Handle<v8::Value> New(const v8::Arguments& args);
^
../dtrace_provider.cc:27:25: error: member reference type 'Persistent<v8::FunctionTemplate>'
is not a pointer; maybe you meant to use '.'?
constructor_template->InstanceTemplate()->SetInternalFieldCount(1);
~~~~~~~~~~~~~~~~~~~~^~
.
../dtrace_provider.cc:27:27: error: no member named 'InstanceTemplate' in
'v8::Persistent<v8::FunctionTemplate,
v8::NonCopyablePersistentTraits<v8::FunctionTemplate> >'
constructor_template->InstanceTemplate()->SetInternalFieldCount(1);
~~~~~~~~~~~~~~~~~~~~ ^
../dtrace_provider.cc:28:25: error: member reference type 'Persistent<v8::FunctionTemplate>'
is not a pointer; maybe you meant to use '.'?
constructor_template->SetClassName(String::NewSymbol("DTraceProvider"));
~~~~~~~~~~~~~~~~~~~~^~
.
../dtrace_provider.cc:28:27: error: no member named 'SetClassName' in
'v8::Persistent<v8::FunctionTemplate,
v8::NonCopyablePersistentTraits<v8::FunctionTemplate> >'
constructor_template->SetClassName(String::NewSymbol("DTraceProvider"));
~~~~~~~~~~~~~~~~~~~~ ^
../dtrace_provider.cc:28:48: error: no member named 'NewSymbol' in 'v8::String'
constructor_template->SetClassName(String::NewSymbol("DTraceProvider"));
~~~~~~~~^
../dtrace_provider.cc:30:31: error: no viable conversion from
'Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate>'
NODE_SET_PROTOTYPE_METHOD(constructor_template, "addProbe", DTraceProvider::AddProbe);
^~~~~~~~~~~~~~~~~~~~
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:210:7: note:
candidate constructor (the implicit copy constructor) not viable: no known conversion
from 'Persistent<v8::FunctionTemplate>' to 'const v8::Local<v8::FunctionTemplate> &'
for 1st argument
class Local {
^
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:210:7: note:
candidate constructor (the implicit move constructor) not viable: no known conversion
from 'Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate> &&' for
1st argument
class Local {
^
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:214:13: note:
candidate template ignored: could not match 'Local' against 'Persistent'
V8_INLINE Local(Local<S> that)
^
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:326:13: note:
candidate template ignored: could not match 'S *' against
'Persistent<v8::FunctionTemplate>'
V8_INLINE Local(S* that)
^
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/node.h:252:71: note:
passing argument to parameter 'recv' here
inline void NODE_SET_PROTOTYPE_METHOD(v8::Local<v8::FunctionTemplate> recv,
^
../dtrace_provider.cc:31:31: error: no viable conversion from
'Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate>'
NODE_SET_PROTOTYPE_METHOD(constructor_template, "removeProbe", DTraceProvider::R...
^~~~~~~~~~~~~~~~~~~~
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:210:7: note:
candidate constructor (the implicit copy constructor) not viable: no known conversion
from 'Persistent<v8::FunctionTemplate>' to 'const v8::Local<v8::FunctionTemplate> &'
for 1st argument
class Local {
^
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:210:7: note:
candidate constructor (the implicit move constructor) not viable: no known conversion
from 'Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate> &&' for
1st argument
class Local {
^
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:214:13: note:
candidate template ignored: could not match 'Local' against 'Persistent'
V8_INLINE Local(Local<S> that)
^
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/v8.h:326:13: note:
candidate template ignored: could not match 'S *' against
'Persistent<v8::FunctionTemplate>'
V8_INLINE Local(S* that)
^
/usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider/.node-gyp/5.3.0/include/node/node.h:252:71: note:
passing argument to parameter 'recv' here
inline void NODE_SET_PROTOTYPE_METHOD(v8::Local<v8::FunctionTemplate> recv,
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [Release/obj.target/DTraceProviderBindings/dtrace_provider.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/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 Darwin 15.2.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/manta/node_modules/restify/node_modules/dtrace-provider
gyp ERR! node -v v5.3.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm WARN install:dtrace-provider@0.2.8 dtrace-provider@0.2.8 install: `node-gyp rebuild`
npm WARN install:dtrace-provider@0.2.8 Exit status 1
Updating bunyan, restify and watershed to the latest versions in package.json seems to resolve this:
"bunyan": "1.5.1"
"restify": "4.0.3"
"watershed": "0.3.1"
{
"name": "manta",
"author": "Joyent (joyent.com)",
"contributors": [
"Dave Eddy"
],
"description": "Manta Client API",
"homepage": "http://apidocs.joyent.com/manta",
"repository": {
"type": "git",
"url": "git://github.com/joyent/node-manta.git"
},
"version": "2.0.5",
"main": "./lib/index.js",
"dependencies": {
"assert-plus": "0.1.5",
"backoff": "2.3.0",
"bunyan": "1.5.1",
"clone": "0.1.11",
"cmdln": "1.3.1",
"dashdash": "1.3.2",
"extsprintf": "1.0.2",
"hogan.js": "2.0.0",
"jsprim": "0.8.0",
"lomstream": "1.1.0",
"lstream": "0.0.3",
"mime": "1.2.11",
"node-uuid": "1.4.1",
"moment": "2.4.0",
"once": "1.3.0",
"path-platform": "0.0.1",
"progbar": "1.0.0",
"readable-stream": "1.1.9",
"restify": "4.0.3",
"showdown": "0.3.1",
"smartdc-auth": "2.3.1",
"tar": "0.1.18",
"vasync": "1.4.0",
"verror": "1.3.6",
"watershed": "0.3.1"
},
"devDependencies": {
"nodeunit": "0.9.0"
},
"directories": {
"bin": "./bin",
"lib": "./lib",
"man": "./man/man1"
},
"engines": {
"node": ">=0.8.14"
},
"scripts": {
"test": "./node_modules/.bin/nodeunit test/*.test.js"
}
}
Not sure what the version should be bumped too. 2.1.0?
When installing manta under Node.js v5.3.0 and 3.3.12, there are several errors (non-fatal I think) when installing dtrace-provider.
For example:
Updating bunyan, restify and watershed to the latest versions in package.json seems to resolve this:
Full package.json:
Not sure what the version should be bumped too. 2.1.0?