Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support newer versions of nodejs? #17

Open
wanelo-pair opened this issue Aug 31, 2017 · 1 comment
Open

Support newer versions of nodejs? #17

wanelo-pair opened this issue Aug 31, 2017 · 1 comment

Comments

@wanelo-pair
Copy link

With version 7.5 of nodejs on SmartOS, we are running:

> cd /opt
> sudo git clone https://github.com/postwait/vippy
> cd vippy/
> sudo npm install

And we're getting a crazy long error message that looks like this:

> [email protected] install /opt/vippy/node_modules/ife
> node-gyp rebuild

gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/7.5.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/vippy/node_modules/ife/.node-gyp"
make: Entering directory '/opt/vippy/node_modules/ife/build'
  CXX(target) Release/obj.target/IFEBinding/IFE.o
In file included from ../IFE.cc:12:0:
../IFEheader.h:29:48: error: 'Arguments' in namespace 'v8' does not name a type
     static v8::Handle<v8::Value> New(const v8::Arguments& args);
                                                ^
../IFEheader.h:30:49: error: 'Arguments' in namespace 'v8' does not name a type
     static v8::Handle<v8::Value> list(const v8::Arguments& args);
                                                 ^
../IFEheader.h:31:47: error: 'Arguments' in namespace 'v8' does not name a type
     static v8::Handle<v8::Value> up(const v8::Arguments& args);
                                               ^
../IFEheader.h:32:49: error: 'Arguments' in namespace 'v8' does not name a type
     static v8::Handle<v8::Value> down(const v8::Arguments& args);
                                                 ^
../IFEheader.h:33:52: error: 'Arguments' in namespace 'v8' does not name a type
     static v8::Handle<v8::Value> gratarp(const v8::Arguments& args);
                                                    ^
../IFEheader.h:34:53: error: 'Arguments' in namespace 'v8' does not name a type
     static v8::Handle<v8::Value> arpcache(const v8::Arguments& args);
                                                     ^
In file included from ../IFEheader.h:4:0,
                 from ../IFE.cc:12:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/node_object_wrap.h: In member function 'void node::IFE::emit(v8::Local<v8::Value>*, int)':
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/node_object_wrap.h:106:30: error: 'v8::Persistent<v8::Object> node::ObjectWrap::handle_' is private
   v8::Persistent<v8::Object> handle_;
                              ^
../IFE.cc:27:29: error: within this context
       Local<Value> emit_v = handle_->Get(emit_symbol);
                             ^
../IFE.cc:27:36: error: base operand of '->' has non-pointer type 'v8::Persistent<v8::Object>'
       Local<Value> emit_v = handle_->Get(emit_symbol);
                                    ^
../IFE.cc:30:18: warning: 'v8::TryCatch::TryCatch()' is deprecated (declared at /opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:7015): Use isolate version [-Wdeprecated-declarations]
         TryCatch tc;
                  ^
In file included from ../IFEheader.h:4:0,
                 from ../IFE.cc:12:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/node_object_wrap.h:106:30: error: 'v8::Persistent<v8::Object> node::ObjectWrap::handle_' is private
   v8::Persistent<v8::Object> handle_;
                              ^
../IFE.cc:31:20: error: within this context
         emit->Call(handle_, nargs, args);
                    ^
../IFE.cc:31:40: error: no matching function for call to 'v8::Function::Call(v8::Persistent<v8::Object>&, int&, v8::Local<v8::Value>*&)'
         emit->Call(handle_, nargs, args);
                                        ^
../IFE.cc:31:40: note: candidates are:
In file included from /opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:26:0,
                 from ../IFE.cc:6:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:3299:34: note: v8::Local<v8::Value> v8::Function::Call(v8::Local<v8::Value>, int, v8::Local<v8::Value>*)
                     Local<Value> Call(Local<Value> recv, int argc,
                                  ^
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8config.h:351:48: note: in definition of macro 'V8_DEPRECATE_SOON'
 #define V8_DEPRECATE_SOON(message, declarator) declarator
                                                ^
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:3299:34: note:   no known conversion for argument 1 from 'v8::Persistent<v8::Object>' to 'v8::Local<v8::Value>'
                     Local<Value> Call(Local<Value> recv, int argc,
                                  ^
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8config.h:351:48: note: in definition of macro 'V8_DEPRECATE_SOON'
 #define V8_DEPRECATE_SOON(message, declarator) declarator
                                                ^
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:3301:43: note: v8::MaybeLocal<v8::Value> v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Call(Local<Context> context,
                                           ^
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:3301:43: note:   candidate expects 4 arguments, 3 provided
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h: In static member function 'static void node::IFE::Initialize(v8::Handle<v8::Object>)':
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:882:13: error: 'v8::HandleScope::HandleScope()' is protected
   V8_INLINE HandleScope() {}
             ^
../IFE.cc:40:17: error: within this context
     HandleScope scope;
                 ^
../IFE.cc:42:63: error: no matching function for call to 'v8::FunctionTemplate::New(v8::Handle<v8::Value> (&)(const int&))'
     Local<FunctionTemplate> t = FunctionTemplate::New(IFE::New);
                                                               ^
../IFE.cc:42:63: note: candidate is:
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:4510:34: note: static v8::Local<v8::FunctionTemplate> v8::FunctionTemplate::New(v8::Isolate*, v8::FunctionCallback, v8::Local<v8::Value>, v8::Local<v8::Signature>, int, v8::ConstructorBehavior)
   static Local<FunctionTemplate> New(
                                  ^
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:4510:34: note:   no known conversion for argument 1 from 'v8::Handle<v8::Value>(const int&) {aka v8::Local<v8::Value>(const int&)}' to 'v8::Isolate*'
../IFE.cc:43:63: error: no matching function for call to 'v8::Persistent<v8::FunctionTemplate>::New(v8::Local<v8::FunctionTemplate>&)'
     constructor_template = Persistent<FunctionTemplate>::New(t);
                                                               ^
../IFE.cc:43:63: note: candidate is:
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:7821:4: note: static T* v8::PersistentBase<T>::New(v8::Isolate*, T*) [with T = v8::FunctionTemplate]
 T* PersistentBase<T>::New(Isolate* isolate, T* that) {
    ^
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:7821:4: note:   candidate expects 2 arguments, 1 provided
../IFE.cc:44:25: error: base operand of '->' has non-pointer type 'v8::Persistent<v8::FunctionTemplate>'
     constructor_template->InstanceTemplate()->SetInternalFieldCount(1);
                         ^
../IFE.cc:45:25: error: base operand of '->' has non-pointer type 'v8::Persistent<v8::FunctionTemplate>'
     constructor_template->SetClassName(String::NewSymbol("IFE"));
                         ^
../IFE.cc:45:40: error: 'NewSymbol' is not a member of 'v8::String'
     constructor_template->SetClassName(String::NewSymbol("IFE"));
                                        ^
../IFE.cc:47:70: error: could not convert 'node::IFE::constructor_template' from 'v8::Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate>'
     NODE_SET_PROTOTYPE_METHOD(constructor_template, "list", IFE::list);
                                                                      ^
../IFE.cc:48:66: error: could not convert 'node::IFE::constructor_template' from 'v8::Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate>'
     NODE_SET_PROTOTYPE_METHOD(constructor_template, "up", IFE::up);
                                                                  ^
../IFE.cc:49:70: error: could not convert 'node::IFE::constructor_template' from 'v8::Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate>'
     NODE_SET_PROTOTYPE_METHOD(constructor_template, "down", IFE::down);
                                                                      ^
../IFE.cc:50:76: error: could not convert 'node::IFE::constructor_template' from 'v8::Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate>'
     NODE_SET_PROTOTYPE_METHOD(constructor_template, "gratarp", IFE::gratarp);
                                                                            ^
../IFE.cc:51:78: error: could not convert 'node::IFE::constructor_template' from 'v8::Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate>'
     NODE_SET_PROTOTYPE_METHOD(constructor_template, "arpcache", IFE::arpcache);
                                                                              ^
../IFE.cc:53:38: error: 'NODE_PSYMBOL' was not declared in this scope
     emit_symbol = NODE_PSYMBOL("emit");
                                      ^
../IFE.cc:54:17: error: 'NewSymbol' is not a member of 'v8::String'
     target->Set(String::NewSymbol("IFE"), constructor_template->GetFunction());
                 ^
../IFE.cc:54:63: error: base operand of '->' has non-pointer type 'v8::Persistent<v8::FunctionTemplate>'
     target->Set(String::NewSymbol("IFE"), constructor_template->GetFunction());
                                                               ^
../IFE.cc: At global scope:
../IFE.cc:57:32: error: 'Arguments' does not name a type
   Handle<Value> IFE::New(const Arguments& args) {
                                ^
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h: In static member function 'static v8::Handle<v8::Value> node::IFE::New(const int&)':
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:882:13: error: 'v8::HandleScope::HandleScope()' is protected
   V8_INLINE HandleScope() {}
             ^
../IFE.cc:58:17: error: within this context
     HandleScope scope;
                 ^
../IFE.cc:61:18: error: request for member 'This' in 'args', which is of non-class type 'const int'
     p->Wrap(args.This());
                  ^
../IFE.cc:62:38: error: 'class v8::HandleScope' has no member named 'Close'
     if(if_initialize()) return scope.Close(Undefined());
                                      ^
../IFE.cc:62:54: error: too few arguments to function 'v8::Local<v8::Primitive> v8::Undefined(v8::Isolate*)'
     if(if_initialize()) return scope.Close(Undefined());
                                                      ^
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:325:27: note: declared here
   friend Local<Primitive> Undefined(Isolate* isolate);
                           ^
../IFE.cc:64:14: error: request for member 'Length' in 'args', which is of non-class type 'const int'
     if (args.Length() != 0) {
              ^
../IFE.cc:65:46: error: 'New' is not a member of 'v8::String'
       return ThrowException(Exception::Error(String::New(
                                              ^
../IFE.cc:66:35: error: 'ThrowException' was not declared in this scope
         "Must have no arguments")));
                                   ^
../IFE.cc:69:17: error: request for member 'This' in 'args', which is of non-class type 'const int'
     return args.This();
                 ^
../IFE.cc: At global scope:
../IFE.cc:72:37: error: 'Arguments' does not name a type
   Handle<Value> IFE::arpcache(const Arguments& args) {
                                     ^
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h: In static member function 'static v8::Handle<v8::Value> node::IFE::arpcache(const int&)':
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:882:13: error: 'v8::HandleScope::HandleScope()' is protected
   V8_INLINE HandleScope() {}
             ^
../IFE.cc:73:17: error: within this context
     HandleScope scope;
                 ^
../IFE.cc:79:20: error: 'class v8::HandleScope' has no member named 'Close'
       return scope.Close(Undefined());
                    ^
../IFE.cc:79:36: error: too few arguments to function 'v8::Local<v8::Primitive> v8::Undefined(v8::Isolate*)'
       return scope.Close(Undefined());
                                    ^
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:325:27: note: declared here
   friend Local<Primitive> Undefined(Isolate* isolate);
                           ^
../IFE.cc:80:38: error: no matching function for call to 'v8::Object::New()'
     Handle<Object> obj = Object::New();
                                      ^
../IFE.cc:80:38: note: candidate is:
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:3030:24: note: static v8::Local<v8::Object> v8::Object::New(v8::Isolate*)
   static Local<Object> New(Isolate* isolate);
                        ^
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:3030:24: note:   candidate expects 1 argument, 0 provided
../IFE.cc:84:69: error: 'inet_ntop' was not declared in this scope
       if(inet_ntop(AF_INET, &entries[i].ipaddr, ipstr, sizeof(ipstr)) != NULL) {
                                                                     ^
../IFE.cc:88:18: error: 'New' is not a member of 'v8::String'
         obj->Set(String::New(ipstr), String::New(mac));
                  ^
../IFE.cc:88:38: error: 'New' is not a member of 'v8::String'
         obj->Set(String::New(ipstr), String::New(mac));
                                      ^
../IFE.cc:91:18: error: 'class v8::HandleScope' has no member named 'Close'
     return scope.Close(obj);
                  ^
../IFE.cc: At global scope:
../IFE.cc:94:33: error: 'Arguments' does not name a type
   Handle<Value> IFE::list(const Arguments& args) {
                                 ^
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h: In static member function 'static v8::Handle<v8::Value> node::IFE::list(const int&)':
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:882:13: error: 'v8::HandleScope::HandleScope()' is protected
   V8_INLINE HandleScope() {}
             ^
../IFE.cc:97:17: error: within this context
     HandleScope scope;
                 ^
../IFE.cc:101:39: error: invalid conversion from 'int' to 'v8::Isolate*' [-fpermissive]
     Handle<Array> obj = Array::New(cnt);
                                       ^
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:3063:23: note: initializing argument 1 of 'static v8::Local<v8::Array> v8::Array::New(v8::Isolate*, int)'
   static Local<Array> New(Isolate* isolate, int length = 0);
                       ^
../IFE.cc:104:42: error: no matching function for call to 'v8::Object::New()'
       Handle<Object> iface = Object::New();
                                          ^
../IFE.cc:104:42: note: candidate is:
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:3030:24: note: static v8::Local<v8::Object> v8::Object::New(v8::Isolate*)
   static Local<Object> New(Isolate* isolate);
                        ^
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:3030:24: note:   candidate expects 1 argument, 0 provided
../IFE.cc:105:18: error: 'New' is not a member of 'v8::String'
       iface->Set(String::New("name"), String::New(ifs[i].ifname));
                  ^
../IFE.cc:105:39: error: 'New' is not a member of 'v8::String'
       iface->Set(String::New("name"), String::New(ifs[i].ifname));
                                       ^
../IFE.cc:111:57: error: 'inet_ntop' was not declared in this scope
   inet_ntop(AF_INET6, &ifs[i].attr, ipstr, sizeof(ipstr)); \
                                                         ^
../IFE.cc:116:9: note: in expansion of macro 'SET_IPV6'
         SET_IPV6(ip6addr, "ip");
         ^
../IFE.cc:112:14: error: 'New' is not a member of 'v8::String'
   iface->Set(String::New(name), String::New(ipstr)); \
              ^
../IFE.cc:116:9: note: in expansion of macro 'SET_IPV6'
         SET_IPV6(ip6addr, "ip");
         ^
../IFE.cc:112:33: error: 'New' is not a member of 'v8::String'
   iface->Set(String::New(name), String::New(ipstr)); \
                                 ^
../IFE.cc:116:9: note: in expansion of macro 'SET_IPV6'
         SET_IPV6(ip6addr, "ip");
         ^
../IFE.cc:118:20: error: 'New' is not a member of 'v8::String'
         iface->Set(String::New("prefixlen"), Integer::New(len));
                    ^
../IFE.cc:118:62: error: no matching function for call to 'v8::Integer::New(int&)'
         iface->Set(String::New("prefixlen"), Integer::New(len));
                                                              ^
../IFE.cc:118:62: note: candidate is:
In file included from ../IFE.cc:6:0:
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:2541:25: note: static v8::Local<v8::Integer> v8::Integer::New(v8::Isolate*, int32_t)
   static Local<Integer> New(Isolate* isolate, int32_t value);
                         ^
/opt/vippy/node_modules/ife/.node-gyp/7.5.0/include/node/v8.h:2541:25: note:   candidate expects 2 arguments, 1 provided
../IFE.cc:107:56: error: 'inet_ntop' was not declared in this scope
   inet_ntop(AF_INET, &ifs[i].attr, ipstr, sizeof(ipstr)); \
                                                        ^
../IFE.cc:120:9: note: in expansion of macro 'SET_IPV4'
         SET_IPV4(ipaddr, "ip");
         ^
../IFE.cc:108:14: error: 'New' is not a member of 'v8::String'
   iface->Set(String::New(name), String::New(ipstr)); \
              ^
../IFE.cc:120:9: note: in expansion of macro 'SET_IPV4'
         SET_IPV4(ipaddr, "ip");
         ^
../IFE.cc:108:33: error: 'New' is not a member of 'v8::String'
   iface->Set(String::New(name), String::New(ipstr)); \
                                 ^
../IFE.cc:120:9: note: in expansion of macro 'SET_IPV4'
         SET_IPV4(ipaddr, "ip");
         ^
../IFE.cc:107:56: error: 'inet_ntop' was not declared in this scope
   inet_ntop(AF_INET, &ifs[i].attr, ipstr, sizeof(ipstr)); \
                                                        ^
../IFE.cc:121:9: note: in expansion of macro 'SET_IPV4'
         SET_IPV4(bcast, "broadcast");
         ^
../IFE.cc:108:14: error: 'New' is not a member of 'v8::String'
   iface->Set(String::New(name), String::New(ipstr)); \
              ^
../IFE.cc:121:9: note: in expansion of macro 'SET_IPV4'
         SET_IPV4(bcast, "broadcast");
         ^
../IFE.cc:108:33: error: 'New' is not a member of 'v8::String'
   iface->Set(String::New(name), String::New(ipstr)); \
                                 ^
../IFE.cc:121:9: note: in expansion of macro 'SET_IPV4'
         SET_IPV4(bcast, "broadcast");
         ^
../IFE.cc:107:56: error: 'inet_ntop' was not declared in this scope
IFEBinding.target.mk:95: recipe for target 'Release/obj.target/IFEBinding/IFE.o' failed
make: *** [Release/obj.target/IFEBinding/IFE.o] Error 1
make: Leaving directory '/opt/vippy/node_modules/ife/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/opt/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:192:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System SunOS 5.11
gyp ERR! command "/opt/local/bin/node" "/opt/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /opt/vippy/node_modules/ife
gyp ERR! node -v v7.5.0
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok
[email protected] /opt/vippy
└─┬ [email protected]
  └── [email protected]

npm WARN [email protected] No license field.
npm ERR! SunOS 5.11
npm ERR! argv "/opt/local/bin/node" "/opt/local/bin/npm" "install"
npm ERR! node v7.5.0
npm ERR! npm  v4.1.2
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ife package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ife
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ife
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /opt/vippy/npm-debug.log

We can succesfully install it using a 0.10 version of node, but we're wondering if there are plans to support newer versions of node (or if we're just doing something stupid).

Thanks!

@postwait
Copy link
Owner

postwait commented Sep 6, 2017

I don't have the bandwidth to port this up to the latest Node API. PRs welcome. none of the "ife" sub code should have to change as it is all pure C and those backing APIs are stable. It's just the node interface in IFE.cc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants