Skip to content

Update dependencies for a Node v6 age #246

@chorrell

Description

@chorrell

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:

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"

Full package.json:

{
    "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?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions