fardog/node-osx-audio

Does not compile on Node v4.2.1

Closed this issue · 1 comments

I'm sorry I don't have more time to figure this out, but I'm not a Node person (just using this library for the chromecast-osx-audio package), and I've managed to get this working by just using the Node version specified in the Readme.

npm WARN engine osx-audio@0.2.1: wanted: {"node":">=0.10.30 <0.12"} (current: {"node":"4.2.1","npm":"2.14.7"})

> osx-audio@0.2.1 install /usr/local/lib/node_modules/osx-audio
> node-gyp rebuild

  CXX(target) Release/obj.target/audio/src/bindings.o
../src/bindings.cc:113:42: 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
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:139:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
../src/bindings.cc:129:48: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
                static v8::Handle<v8::Value> OpenInput(const v8::Arguments& args)
                                                             ^~~~~~~~~~~~~
                                                             v8::internal::Arguments
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:139:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
../src/bindings.cc:139:49: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
                static v8::Handle<v8::Value> CloseInput(const v8::Arguments& args)
                                                              ^~~~~~~~~~~~~
                                                              v8::internal::Arguments
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:139:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
../src/bindings.cc:149:45: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
                static v8::Handle<v8::Value> IsOpen(const v8::Arguments& args)
                                                          ^~~~~~~~~~~~~
                                                          v8::internal::Arguments
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:139:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
../src/bindings.cc:43:20: error: calling a protected constructor of class 'v8::HandleScope'
                        v8::HandleScope scope;
                                        ^
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:885:13: note: declared protected here
  V8_INLINE HandleScope() {}
            ^
../src/bindings.cc:45:66: error: cannot initialize a parameter of type 'v8::Isolate *' with an lvalue of type 'v8::Handle<v8::Value>
      (const v8::internal::Arguments &)'
                        v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(New);
                                                                                      ^~~
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:4350:16: note: passing argument to parameter 'isolate' here
      Isolate* isolate, FunctionCallback callback = 0,
               ^
../src/bindings.cc:47:49: error: 'New' is a private member of 'v8::PersistentBase<v8::FunctionTemplate>'
                        s_ct = v8::Persistent<v8::FunctionTemplate>::New(t);
                                                                     ^
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:639:23: note: declared private here
  V8_INLINE static T* New(Isolate* isolate, T* that);
                      ^
../src/bindings.cc:47:11: error: too few arguments to function call, expected 2, have 1; did you mean '::AudioInput::New'?
                        s_ct = v8::Persistent<v8::FunctionTemplate>::New(t);
                               ^~
                               ::AudioInput::New
../src/bindings.cc:113:32: note: '::AudioInput::New' declared here
                static v8::Handle<v8::Value> New(const v8::Arguments& args)
                                             ^
../src/bindings.cc:48:8: error: member reference type 'v8::Persistent<v8::FunctionTemplate>' is not a pointer; maybe you meant to use '.'?
                        s_ct->InstanceTemplate()->SetInternalFieldCount(1);
                        ~~~~^~
                            .
../src/bindings.cc:48:10: error: no member named 'InstanceTemplate' in 'v8::Persistent<v8::FunctionTemplate,
      v8::NonCopyablePersistentTraits<v8::FunctionTemplate> >'
                        s_ct->InstanceTemplate()->SetInternalFieldCount(1);
                        ~~~~  ^
../src/bindings.cc:50:8: error: member reference type 'v8::Persistent<v8::FunctionTemplate>' is not a pointer; maybe you meant to use '.'?
                        s_ct->SetClassName(v8::String::NewSymbol("AudioInput"));
                        ~~~~^~
                            .
../src/bindings.cc:50:10: error: no member named 'SetClassName' in 'v8::Persistent<v8::FunctionTemplate,
      v8::NonCopyablePersistentTraits<v8::FunctionTemplate> >'
                        s_ct->SetClassName(v8::String::NewSymbol("AudioInput"));
                        ~~~~  ^
../src/bindings.cc:50:35: error: no member named 'NewSymbol' in 'v8::String'
                        s_ct->SetClassName(v8::String::NewSymbol("AudioInput"));
                                           ~~~~~~~~~~~~^
../src/bindings.cc:52:30: error: no viable conversion from 'v8::Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate>'
                        NODE_SET_PROTOTYPE_METHOD(s_ct, "openInput", OpenInput);
                                                  ^~~~
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:210:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from
      'v8::Persistent<v8::FunctionTemplate>' to 'const v8::Local<v8::FunctionTemplate> &' for 1st argument
class Local {
      ^
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:210:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from
      'v8::Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate> &&' for 1st argument
class Local {
      ^
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:214:13: note: candidate template ignored: could not match 'Local' against 'Persistent'
  V8_INLINE Local(Local<S> that)
            ^
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:326:13: note: candidate template ignored: could not match 'S *' against 'v8::Persistent<v8::FunctionTemplate>'
  V8_INLINE Local(S* that)
            ^
/Users/dan/.node-gyp/4.2.1/include/node/node.h:252:71: note: passing argument to parameter 'recv' here
inline void NODE_SET_PROTOTYPE_METHOD(v8::Local<v8::FunctionTemplate> recv,
                                                                      ^
../src/bindings.cc:53:30: error: no viable conversion from 'v8::Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate>'
                        NODE_SET_PROTOTYPE_METHOD(s_ct, "closeInput", CloseInput);
                                                  ^~~~
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:210:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from
      'v8::Persistent<v8::FunctionTemplate>' to 'const v8::Local<v8::FunctionTemplate> &' for 1st argument
class Local {
      ^
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:210:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from
      'v8::Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate> &&' for 1st argument
class Local {
      ^
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:214:13: note: candidate template ignored: could not match 'Local' against 'Persistent'
  V8_INLINE Local(Local<S> that)
            ^
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:326:13: note: candidate template ignored: could not match 'S *' against 'v8::Persistent<v8::FunctionTemplate>'
  V8_INLINE Local(S* that)
            ^
/Users/dan/.node-gyp/4.2.1/include/node/node.h:252:71: note: passing argument to parameter 'recv' here
inline void NODE_SET_PROTOTYPE_METHOD(v8::Local<v8::FunctionTemplate> recv,
                                                                      ^
../src/bindings.cc:54:30: error: no viable conversion from 'v8::Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate>'
                        NODE_SET_PROTOTYPE_METHOD(s_ct, "isOpen", IsOpen);
                                                  ^~~~
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:210:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from
      'v8::Persistent<v8::FunctionTemplate>' to 'const v8::Local<v8::FunctionTemplate> &' for 1st argument
class Local {
      ^
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:210:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from
      'v8::Persistent<v8::FunctionTemplate>' to 'v8::Local<v8::FunctionTemplate> &&' for 1st argument
class Local {
      ^
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:214:13: note: candidate template ignored: could not match 'Local' against 'Persistent'
  V8_INLINE Local(Local<S> that)
            ^
/Users/dan/.node-gyp/4.2.1/include/node/v8.h:326:13: note: candidate template ignored: could not match 'S *' against 'v8::Persistent<v8::FunctionTemplate>'
  V8_INLINE Local(S* that)
            ^
/Users/dan/.node-gyp/4.2.1/include/node/node.h:252:71: note: passing argument to parameter 'recv' here
inline void NODE_SET_PROTOTYPE_METHOD(v8::Local<v8::FunctionTemplate> recv,
                                                                      ^
../src/bindings.cc:57:10: error: member reference type 'v8::Persistent<v8::FunctionTemplate>' is not a pointer; maybe you meant to use '.'?
                                        s_ct->GetFunction());
                                        ~~~~^~
                                            .
../src/bindings.cc:57:12: error: no member named 'GetFunction' in 'v8::Persistent<v8::FunctionTemplate,
      v8::NonCopyablePersistentTraits<v8::FunctionTemplate> >'
                                        s_ct->GetFunction());
                                        ~~~~  ^
../src/bindings.cc:56:28: error: no member named 'NewSymbol' in 'v8::String'
                        target->Set(v8::String::NewSymbol("input"),
                                    ~~~~~~~~~~~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [Release/obj.target/audio/src/bindings.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.0.0
gyp ERR! command "/usr/local/Cellar/node/4.2.1/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/osx-audio
gyp ERR! node -v v4.2.1
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok 
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/Cellar/node/4.2.1/bin/node" "/usr/local/bin/npm" "install" "-g" "osx-audio"
npm ERR! node v4.2.1
npm ERR! npm  v2.14.7
npm ERR! code ELIFECYCLE

npm ERR! osx-audio@0.2.1 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the osx-audio@0.2.1 install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the osx-audio 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 their info via:
npm ERR!     npm owner ls osx-audio
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/dan/Code/code_review/backend/npm-debug.log

This is a known issue; only 0.10.x is supported for now, I'm afraid. A new version requires a port of the native bindings to nan but it's not something i'm able to take at this time.

Addressed in #7 (help is wanted!)