openairplay / node_airtunes

node.js AirTunes v2 implementation: stream wirelessly to Apple audio devices.
BSD 2-Clause "Simplified" License
273 stars 84 forks source link

Raspberry Pi Zero, Node 8.9 not working (node-gyp rebuild) #45

Open effem opened 6 years ago

effem commented 6 years ago

Hi,

i tried to install airtunes via npm install airtunes but i only get the following results:

pi@vinylpi:~/airtunes $ npm install airtunes

> airtunes@0.1.7 install /home/pi/airtunes/node_modules/airtunes
> node-gyp rebuild

make: Entering directory '/home/pi/airtunes/node_modules/airtunes/build'
  CXX(target) Release/obj.target/airtunes/src/codec.o
In file included from ../src/../alac/ALACEncoder.h:29:0,
                 from ../src/codec.cc:15:
../src/../alac/ALACAudioTypes.h:64:32: warning: multi-character character constant [-Wmultichar]
     kALACFormatAppleLossless = 'alac',
                                ^~~~~~
../src/../alac/ALACAudioTypes.h:65:28: warning: multi-character character constant [-Wmultichar]
     kALACFormatLinearPCM = 'lpcm'
                            ^~~~~~
../src/../alac/ALACAudioTypes.h:154:22: warning: multi-character character constant [-Wmultichar]
  kALACCodecFormat  = 'alac',
                      ^~~~~~
../src/../alac/ALACAudioTypes.h:182:26: warning: multi-character character constant [-Wmultichar]
  AudioChannelLayoutAID = 'chan'
                          ^~~~~~
../src/codec.cc: In function 'void nodeairtunes::encoder_weak_callback(v8::Persistent<v8::Value>, void*)':
../src/codec.cc:59:15: error: 'v8::HandleScope::HandleScope()' is protected within this context
   HandleScope scope;
               ^~~~~
In file included from /home/pi/.node-gyp/8.9.4/include/node/node.h:63:0,
                 from ../src/codec.cc:1:
/home/pi/.node-gyp/8.9.4/include/node/v8.h:874:13: note: declared protected here
   V8_INLINE HandleScope() {}
             ^~~~~~~~~~~
../src/codec.cc:62:11: error: 'class v8::Persistent<v8::Value>' has no member named 'Dispose'
   wrapper.Dispose();
           ^~~~~~~
../src/codec.cc: At global scope:
../src/codec.cc:67:32: error: 'Arguments' does not name a type
 Handle<Value> NewEncoder(const Arguments& args) {
                                ^~~~~~~~~
../src/codec.cc: In function 'v8::Handle<v8::Value> nodeairtunes::NewEncoder(const int&)':
../src/codec.cc:68:15: error: 'v8::HandleScope::HandleScope()' is protected within this context
   HandleScope scope;
               ^~~~~
In file included from /home/pi/.node-gyp/8.9.4/include/node/node.h:63:0,
                 from ../src/codec.cc:1:
/home/pi/.node-gyp/8.9.4/include/node/v8.h:874:13: note: declared protected here
   V8_INLINE HandleScope() {}
             ^~~~~~~~~~~
../src/codec.cc:78:97: warning: 'static v8::Local<v8::ObjectTemplate> v8::ObjectTemplate::New()' is deprecated: Use isolate version [-Wdeprecated-declarations]
   Persistent<ObjectTemplate> encoderClass = Persistent<ObjectTemplate>::New(ObjectTemplate::New());
                                                                                                 ^
In file included from /home/pi/.node-gyp/8.9.4/include/node/v8.h:26:0,
                 from /home/pi/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../src/codec.cc:1:
/home/pi/.node-gyp/8.9.4/include/node/v8.h:5656:69: note: declared here
   static V8_DEPRECATED("Use isolate version", Local<ObjectTemplate> New());
                                                                     ^
/home/pi/.node-gyp/8.9.4/include/node/v8config.h:318:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/codec.cc:78:98: error: no matching function for call to 'v8::Persistent<v8::ObjectTemplate>::New(v8::Local<v8::ObjectTemplate>)'
   Persistent<ObjectTemplate> encoderClass = Persistent<ObjectTemplate>::New(ObjectTemplate::New());
                                                                                                  ^
In file included from /home/pi/.node-gyp/8.9.4/include/node/node.h:63:0,
                 from ../src/codec.cc:1:
/home/pi/.node-gyp/8.9.4/include/node/v8.h:9114:4: note: candidate: static T* v8::PersistentBase<T>::New(v8::Isolate*, T*) [with T = v8::ObjectTemplate]
 T* PersistentBase<T>::New(Isolate* isolate, T* that) {
    ^~~~~~~~~~~~~~~~~
/home/pi/.node-gyp/8.9.4/include/node/v8.h:9114:4: note:   candidate expects 2 arguments, 1 provided
../src/codec.cc:79:15: error: base operand of '->' has non-pointer type 'v8::Persistent<v8::ObjectTemplate>'
   encoderClass->SetInternalFieldCount(1);
               ^~
../src/codec.cc:80:62: error: base operand of '->' has non-pointer type 'v8::Persistent<v8::ObjectTemplate>'
   Persistent<Object> o = Persistent<Object>::New(encoderClass->NewInstance());
                                                              ^~
../src/codec.cc:81:4: error: base operand of '->' has non-pointer type 'v8::Persistent<v8::Object>'
   o->SetPointerInInternalField(0, encoder);
    ^~
../src/codec.cc:82:5: error: 'class v8::Persistent<v8::Object>' has no member named 'MakeWeak'; did you mean 'SetWeak'?
   o.MakeWeak(encoder, encoder_weak_callback);
     ^~~~~~~~
../src/codec.cc:84:16: error: 'class v8::HandleScope' has no member named 'Close'
   return scope.Close(o);
                ^~~~~
../src/codec.cc: At global scope:
../src/codec.cc:87:32: error: 'Arguments' does not name a type
 Handle<Value> EncodeALAC(const Arguments& args) {
                                ^~~~~~~~~
../src/codec.cc: In function 'v8::Handle<v8::Value> nodeairtunes::EncodeALAC(const int&)':
../src/codec.cc:88:15: error: 'v8::HandleScope::HandleScope()' is protected within this context
   HandleScope scope;
               ^~~~~
In file included from /home/pi/.node-gyp/8.9.4/include/node/node.h:63:0,
                 from ../src/codec.cc:1:
/home/pi/.node-gyp/8.9.4/include/node/v8.h:874:13: note: declared protected here
   V8_INLINE HandleScope() {}
             ^~~~~~~~~~~
../src/codec.cc:90:11: error: request for member 'Length' in 'args', which is of non-class type 'const int'
   if(args.Length() < 4) {
           ^~~~~~
../src/codec.cc:92:18: error: 'class v8::HandleScope' has no member named 'Close'
     return scope.Close(Null());
                  ^~~~~
../src/codec.cc:92:29: error: too few arguments to function 'v8::Local<v8::Primitive> v8::Null(v8::Isolate*)'
     return scope.Close(Null());
                             ^
In file included from /home/pi/.node-gyp/8.9.4/include/node/node.h:63:0,
                 from ../src/codec.cc:1:
/home/pi/.node-gyp/8.9.4/include/node/v8.h:313:27: note: declared here
   friend Local<Primitive> Null(Isolate* isolate);
                           ^~~~
../src/codec.cc:95:32: error: invalid types 'const int[int]' for array subscript
   Local<Object>wrapper = args[0]->ToObject();
                                ^
../src/codec.cc:96:49: error: 'class v8::Object' has no member named 'GetPointerFromInternalField'; did you mean 'GetAlignedPointerFromInternalField'?
   ALACEncoder *encoder = (ALACEncoder*)wrapper->GetPointerFromInternalField(0);
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/codec.cc:98:34: error: invalid types 'const int[int]' for array subscript
   Local<Value> pcmBuffer = args[1];
                                  ^
../src/codec.cc:101:35: error: invalid types 'const int[int]' for array subscript
   Local<Value> alacBuffer = args[2];
                                   ^
../src/codec.cc:104:27: error: invalid types 'const int[int]' for array subscript
   int32_t pcmSize = args[3]->Int32Value();
                           ^
../src/codec.cc:113:16: error: 'class v8::HandleScope' has no member named 'Close'
   return scope.Close(Integer::New(alacSize));
                ^~~~~
../src/codec.cc:113:43: error: no matching function for call to 'v8::Integer::New(int32_t&)'
   return scope.Close(Integer::New(alacSize));
                                           ^
In file included from /home/pi/.node-gyp/8.9.4/include/node/node.h:63:0,
                 from ../src/codec.cc:1:
/home/pi/.node-gyp/8.9.4/include/node/v8.h:2914:25: note: candidate: static v8::Local<v8::Integer> v8::Integer::New(v8::Isolate*, int32_t)
   static Local<Integer> New(Isolate* isolate, int32_t value);
                         ^~~
/home/pi/.node-gyp/8.9.4/include/node/v8.h:2914:25: note:   candidate expects 2 arguments, 1 provided
../src/codec.cc: At global scope:
../src/codec.cc:116:32: error: 'Arguments' does not name a type
 Handle<Value> EncryptAES(const Arguments& args) {
                                ^~~~~~~~~
../src/codec.cc: In function 'v8::Handle<v8::Value> nodeairtunes::EncryptAES(const int&)':
../src/codec.cc:117:15: error: 'v8::HandleScope::HandleScope()' is protected within this context
   HandleScope scope;
               ^~~~~
In file included from /home/pi/.node-gyp/8.9.4/include/node/node.h:63:0,
                 from ../src/codec.cc:1:
/home/pi/.node-gyp/8.9.4/include/node/v8.h:874:13: note: declared protected here
   V8_INLINE HandleScope() {}
             ^~~~~~~~~~~
../src/codec.cc:119:11: error: request for member 'Length' in 'args', which is of non-class type 'const int'
   if(args.Length() < 2) {
           ^~~~~~
../src/codec.cc:121:18: error: 'class v8::HandleScope' has no member named 'Close'
     return scope.Close(Null());
                  ^~~~~
../src/codec.cc:121:29: error: too few arguments to function 'v8::Local<v8::Primitive> v8::Null(v8::Isolate*)'
     return scope.Close(Null());
                             ^
In file included from /home/pi/.node-gyp/8.9.4/include/node/node.h:63:0,
                 from ../src/codec.cc:1:
/home/pi/.node-gyp/8.9.4/include/node/v8.h:313:27: note: declared here
   friend Local<Primitive> Null(Isolate* isolate);
                           ^~~~
../src/codec.cc:124:35: error: invalid types 'const int[int]' for array subscript
   Local<Value> alacBuffer = args[0];
                                   ^
../src/codec.cc:126:28: error: invalid types 'const int[int]' for array subscript
   int32_t alacSize = args[1]->Int32Value();
                            ^
../src/codec.cc:149:16: error: 'class v8::HandleScope' has no member named 'Close'
   return scope.Close(Null());
                ^~~~~
../src/codec.cc:149:27: error: too few arguments to function 'v8::Local<v8::Primitive> v8::Null(v8::Isolate*)'
   return scope.Close(Null());
                           ^
In file included from /home/pi/.node-gyp/8.9.4/include/node/node.h:63:0,
                 from ../src/codec.cc:1:
/home/pi/.node-gyp/8.9.4/include/node/v8.h:313:27: note: declared here
   friend Local<Primitive> Null(Isolate* isolate);
                           ^~~~
../src/codec.cc: In function 'void nodeairtunes::InitCodec(v8::Handle<v8::Object>)':
../src/codec.cc:153:51: error: invalid conversion from 'v8::Handle<v8::Value> (*)(const int&) {aka v8::Local<v8::Value> (*)(const int&)}' to 'v8::FunctionCallback {aka void (*)(const v8::FunctionCallbackInfo<v8::Value>&)}' [-fpermissive]
   NODE_SET_METHOD(target, "encodeALAC", EncodeALAC);
                                                   ^
In file included from ../src/codec.cc:1:0:
/home/pi/.node-gyp/8.9.4/include/node/node.h:287:13: note:   initializing argument 3 of 'void node::NODE_SET_METHOD(v8::Local<v8::Object>, const char*, v8::FunctionCallback)'
 inline void NODE_SET_METHOD(v8::Local<v8::Object> recv,
             ^~~~~~~~~~~~~~~
../src/codec.cc:154:51: error: invalid conversion from 'v8::Handle<v8::Value> (*)(const int&) {aka v8::Local<v8::Value> (*)(const int&)}' to 'v8::FunctionCallback {aka void (*)(const v8::FunctionCallbackInfo<v8::Value>&)}' [-fpermissive]
   NODE_SET_METHOD(target, "encryptAES", EncryptAES);
                                                   ^
In file included from ../src/codec.cc:1:0:
/home/pi/.node-gyp/8.9.4/include/node/node.h:287:13: note:   initializing argument 3 of 'void node::NODE_SET_METHOD(v8::Local<v8::Object>, const char*, v8::FunctionCallback)'
 inline void NODE_SET_METHOD(v8::Local<v8::Object> recv,
             ^~~~~~~~~~~~~~~
../src/codec.cc:155:51: error: invalid conversion from 'v8::Handle<v8::Value> (*)(const int&) {aka v8::Local<v8::Value> (*)(const int&)}' to 'v8::FunctionCallback {aka void (*)(const v8::FunctionCallbackInfo<v8::Value>&)}' [-fpermissive]
   NODE_SET_METHOD(target, "newEncoder", NewEncoder);
                                                   ^
In file included from ../src/codec.cc:1:0:
/home/pi/.node-gyp/8.9.4/include/node/node.h:287:13: note:   initializing argument 3 of 'void node::NODE_SET_METHOD(v8::Local<v8::Object>, const char*, v8::FunctionCallback)'
 inline void NODE_SET_METHOD(v8::Local<v8::Object> recv,
             ^~~~~~~~~~~~~~~
airtunes.target.mk:101: recipe for target 'Release/obj.target/airtunes/src/codec.o' failed
make: *** [Release/obj.target/airtunes/src/codec.o] Error 1
make: Leaving directory '/home/pi/airtunes/node_modules/airtunes/build'
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:258:23)
gyp ERR! stack     at emitTwo (events.js:126:13)
gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Linux 4.9.78+
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 /home/pi/airtunes/node_modules/airtunes
gyp ERR! node -v v8.9.4
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN enoent ENOENT: no such file or directory, open '/home/pi/airtunes/package.json'
npm WARN airtunes No description
npm WARN airtunes No repository field.
npm WARN airtunes No README data
npm WARN airtunes No license field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! airtunes@0.1.7 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the airtunes@0.1.7 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/pi/.npm/_logs/2018-01-30T20_06_33_920Z-debug.log

I looked into the other issues but i found no solution to this problem!

Yours, Felix

gearhead commented 6 years ago

Tried to install this on Ubuntu 16.04 and get a similar response:

> airtunes@0.1.7 install /usr/local/lib/node_modules/airtunes
> node-gyp rebuild

make: Entering directory '/usr/local/lib/node_modules/airtunes/build'
  CXX(target) Release/obj.target/airtunes/src/codec.o
In file included from ../src/../alac/ALACEncoder.h:29:0,
                 from ../src/codec.cc:15:
../src/../alac/ALACAudioTypes.h:64:32: warning: multi-character character constant [-Wmultichar]
     kALACFormatAppleLossless = 'alac',
                                ^
../src/../alac/ALACAudioTypes.h:65:28: warning: multi-character character constant [-Wmultichar]
     kALACFormatLinearPCM = 'lpcm'
                            ^
../src/../alac/ALACAudioTypes.h:154:22: warning: multi-character character constant [-Wmultichar]
  kALACCodecFormat  = 'alac',
                      ^
../src/../alac/ALACAudioTypes.h:182:26: warning: multi-character character constant [-Wmultichar]
  AudioChannelLayoutAID = 'chan'
                          ^
In file included from /usr/include/nodejs/src/node.h:42:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h: In function ‘void nodeairtunes::encoder_weak_callback(v8::Persistent<v8::Value>, void*)’:
/usr/include/nodejs/deps/v8/include/v8.h:885:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../src/codec.cc:59:15: error: within this context
   HandleScope scope;
               ^
../src/codec.cc:62:11: error: ‘class v8::Persistent<v8::Value>’ has no member named ‘Dispose’
   wrapper.Dispose();
           ^
../src/codec.cc: At global scope:
../src/codec.cc:67:32: error: ‘Arguments’ does not name a type
 Handle<Value> NewEncoder(const Arguments& args) {
                                ^
In file included from /usr/include/nodejs/src/node.h:42:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h: In function ‘v8::Handle<v8::Value> nodeairtunes::NewEncoder(const int&)’:
/usr/include/nodejs/deps/v8/include/v8.h:885:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../src/codec.cc:68:15: error: within this context
   HandleScope scope;
               ^
../src/codec.cc:78:98: error: no matching function for call to ‘v8::Persistent<v8::ObjectTemplate>::New(v8::Local<v8::ObjectTemplate>)’
   Persistent<ObjectTemplate> encoderClass = Persistent<ObjectTemplate>::New(ObjectTemplate::New());
                                                                                                  ^
In file included from /usr/include/nodejs/src/node.h:42:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:7181:4: note: candidate: static T* v8::PersistentBase<T>::New(v8::Isolate*, T*) [with T = v8::ObjectTemplate]
 T* PersistentBase<T>::New(Isolate* isolate, T* that) {
    ^
/usr/include/nodejs/deps/v8/include/v8.h:7181:4: note:   candidate expects 2 arguments, 1 provided
../src/codec.cc:79:15: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::ObjectTemplate>’
   encoderClass->SetInternalFieldCount(1);
               ^
../src/codec.cc:80:62: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::ObjectTemplate>’
   Persistent<Object> o = Persistent<Object>::New(encoderClass->NewInstance());
                                                              ^
../src/codec.cc:81:4: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::Object>’
   o->SetPointerInInternalField(0, encoder);
    ^
../src/codec.cc:82:5: error: ‘class v8::Persistent<v8::Object>’ has no member named ‘MakeWeak’
   o.MakeWeak(encoder, encoder_weak_callback);
     ^
../src/codec.cc:84:16: error: ‘class v8::HandleScope’ has no member named ‘Close’
   return scope.Close(o);
                ^
../src/codec.cc: At global scope:
../src/codec.cc:87:32: error: ‘Arguments’ does not name a type
 Handle<Value> EncodeALAC(const Arguments& args) {
                                ^
In file included from /usr/include/nodejs/src/node.h:42:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h: In function ‘v8::Handle<v8::Value> nodeairtunes::EncodeALAC(const int&)’:
/usr/include/nodejs/deps/v8/include/v8.h:885:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../src/codec.cc:88:15: error: within this context
   HandleScope scope;
               ^
../src/codec.cc:90:11: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
   if(args.Length() < 4) {
           ^
../src/codec.cc:92:18: error: ‘class v8::HandleScope’ has no member named ‘Close’
     return scope.Close(Null());
                  ^
../src/codec.cc:92:29: error: too few arguments to function ‘v8::Local<v8::Primitive> v8::Null(v8::Isolate*)’
     return scope.Close(Null());
                             ^
In file included from /usr/include/nodejs/src/node.h:42:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:316:27: note: declared here
   friend Local<Primitive> Null(Isolate* isolate);
                           ^
../src/codec.cc:95:32: error: invalid types ‘const int[int]’ for array subscript
   Local<Object>wrapper = args[0]->ToObject();
                                ^
../src/codec.cc:96:49: error: ‘class v8::Object’ has no member named ‘GetPointerFromInternalField’
   ALACEncoder *encoder = (ALACEncoder*)wrapper->GetPointerFromInternalField(0);
                                                 ^
../src/codec.cc:98:34: error: invalid types ‘const int[int]’ for array subscript
   Local<Value> pcmBuffer = args[1];
                                  ^
../src/codec.cc:101:35: error: invalid types ‘const int[int]’ for array subscript
   Local<Value> alacBuffer = args[2];
                                   ^
../src/codec.cc:104:27: error: invalid types ‘const int[int]’ for array subscript
   int32_t pcmSize = args[3]->Int32Value();
                           ^
../src/codec.cc:113:16: error: ‘class v8::HandleScope’ has no member named ‘Close’
   return scope.Close(Integer::New(alacSize));
                ^
../src/codec.cc:113:43: error: no matching function for call to ‘v8::Integer::New(int32_t&)’
   return scope.Close(Integer::New(alacSize));
                                           ^
In file included from /usr/include/nodejs/src/node.h:42:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:2499:25: note: candidate: static v8::Local<v8::Integer> v8::Integer::New(v8::Isolate*, int32_t)
   static Local<Integer> New(Isolate* isolate, int32_t value);
                         ^
/usr/include/nodejs/deps/v8/include/v8.h:2499:25: note:   candidate expects 2 arguments, 1 provided
../src/codec.cc: At global scope:
../src/codec.cc:116:32: error: ‘Arguments’ does not name a type
 Handle<Value> EncryptAES(const Arguments& args) {
                                ^
In file included from /usr/include/nodejs/src/node.h:42:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h: In function ‘v8::Handle<v8::Value> nodeairtunes::EncryptAES(const int&)’:
/usr/include/nodejs/deps/v8/include/v8.h:885:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../src/codec.cc:117:15: error: within this context
   HandleScope scope;
               ^
../src/codec.cc:119:11: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
   if(args.Length() < 2) {
           ^
../src/codec.cc:121:18: error: ‘class v8::HandleScope’ has no member named ‘Close’
     return scope.Close(Null());
                  ^
../src/codec.cc:121:29: error: too few arguments to function ‘v8::Local<v8::Primitive> v8::Null(v8::Isolate*)’
     return scope.Close(Null());
                             ^
In file included from /usr/include/nodejs/src/node.h:42:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:316:27: note: declared here
   friend Local<Primitive> Null(Isolate* isolate);
                           ^
../src/codec.cc:124:35: error: invalid types ‘const int[int]’ for array subscript
   Local<Value> alacBuffer = args[0];
                                   ^
../src/codec.cc:126:28: error: invalid types ‘const int[int]’ for array subscript
   int32_t alacSize = args[1]->Int32Value();
                            ^
../src/codec.cc:149:16: error: ‘class v8::HandleScope’ has no member named ‘Close’
   return scope.Close(Null());
                ^
../src/codec.cc:149:27: error: too few arguments to function ‘v8::Local<v8::Primitive> v8::Null(v8::Isolate*)’
   return scope.Close(Null());
                           ^
In file included from /usr/include/nodejs/src/node.h:42:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:316:27: note: declared here
   friend Local<Primitive> Null(Isolate* isolate);
                           ^
../src/codec.cc: In function ‘void nodeairtunes::InitCodec(v8::Handle<v8::Object>)’:
../src/codec.cc:153:51: error: no matching function for call to ‘NODE_SET_METHOD(v8::Handle<v8::Object>&, const char [11], v8::Handle<v8::Value> (&)(const int&))’
   NODE_SET_METHOD(target, "encodeALAC", EncodeALAC);
                                                   ^
In file included from ../src/codec.cc:1:0:
/usr/include/nodejs/src/node.h:236:13: note: candidate: template<class TypeName> void node::NODE_SET_METHOD(const TypeName&, const char*, v8::FunctionCallback)
 inline void NODE_SET_METHOD(const TypeName& recv,
             ^
/usr/include/nodejs/src/node.h:236:13: note:   template argument deduction/substitution failed:
../src/codec.cc:153:51: note:   cannot convert ‘nodeairtunes::EncodeALAC’ (type ‘v8::Handle<v8::Value>(const int&) {aka v8::Local<v8::Value>(const int&)}’) to type ‘v8::FunctionCallback {aka void (*)(const v8::FunctionCallbackInfo<v8::Value>&)}’
   NODE_SET_METHOD(target, "encodeALAC", EncodeALAC);
                                                   ^
../src/codec.cc:154:51: error: no matching function for call to ‘NODE_SET_METHOD(v8::Handle<v8::Object>&, const char [11], v8::Handle<v8::Value> (&)(const int&))’
   NODE_SET_METHOD(target, "encryptAES", EncryptAES);
                                                   ^
In file included from ../src/codec.cc:1:0:
/usr/include/nodejs/src/node.h:236:13: note: candidate: template<class TypeName> void node::NODE_SET_METHOD(const TypeName&, const char*, v8::FunctionCallback)
 inline void NODE_SET_METHOD(const TypeName& recv,
             ^
/usr/include/nodejs/src/node.h:236:13: note:   template argument deduction/substitution failed:
../src/codec.cc:154:51: note:   cannot convert ‘nodeairtunes::EncryptAES’ (type ‘v8::Handle<v8::Value>(const int&) {aka v8::Local<v8::Value>(const int&)}’) to type ‘v8::FunctionCallback {aka void (*)(const v8::FunctionCallbackInfo<v8::Value>&)}’
   NODE_SET_METHOD(target, "encryptAES", EncryptAES);
                                                   ^
../src/codec.cc:155:51: error: no matching function for call to ‘NODE_SET_METHOD(v8::Handle<v8::Object>&, const char [11], v8::Handle<v8::Value> (&)(const int&))’
   NODE_SET_METHOD(target, "newEncoder", NewEncoder);
                                                   ^
In file included from ../src/codec.cc:1:0:
/usr/include/nodejs/src/node.h:236:13: note: candidate: template<class TypeName> void node::NODE_SET_METHOD(const TypeName&, const char*, v8::FunctionCallback)
 inline void NODE_SET_METHOD(const TypeName& recv,
             ^
/usr/include/nodejs/src/node.h:236:13: note:   template argument deduction/substitution failed:
../src/codec.cc:155:51: note:   cannot convert ‘nodeairtunes::NewEncoder’ (type ‘v8::Handle<v8::Value>(const int&) {aka v8::Local<v8::Value>(const int&)}’) to type ‘v8::FunctionCallback {aka void (*)(const v8::FunctionCallbackInfo<v8::Value>&)}’
   NODE_SET_METHOD(target, "newEncoder", NewEncoder);
                                                   ^
airtunes.target.mk:98: recipe for target 'Release/obj.target/airtunes/src/codec.o' failed
make: *** [Release/obj.target/airtunes/src/codec.o] Error 1
make: Leaving directory '/usr/local/lib/node_modules/airtunes/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:269: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 4.4.0-116-generic
gyp ERR! command "/usr/bin/nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/airtunes
gyp ERR! node -v v4.2.6
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok 
/usr/local/lib
└── clone@2.1.1 

npm ERR! Linux 4.4.0-116-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "i" "-g" "clone" "https://github.com/lperrin/node_airtunes.git"
npm ERR! node v4.2.6
npm ERR! npm  v3.5.2
npm ERR! code ELIFECYCLE

npm ERR! airtunes@0.1.7 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the airtunes@0.1.7 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 airtunes 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 airtunes
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls airtunes
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/kmgrider/npm-debug.log
ajkessel commented 5 years ago

Similar problem here on Debian. Any suggestions?

gyp info it worked if it ends with ok
gyp info using node-gyp@3.8.0
gyp info using node@10.15.0 | linux | ia32
gyp info spawn /usr/bin/python2
gyp info spawn args [ '/usr/share/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/mnt/md0/home/adam/src/node_airtunes/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/share/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/include/nodejs/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/usr/include/nodejs',
gyp info spawn args   '-Dnode_gyp_dir=/usr/share/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/usr/include/nodejs/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/mnt/md0/home/adam/src/node_airtunes',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/mnt/md0/home/adam/src/node_airtunes/build'
  CXX(target) Release/obj.target/airtunes/src/codec.o
In file included from ../src/../alac/ALACEncoder.h:29:0,
                 from ../src/codec.cc:15:
../src/../alac/ALACAudioTypes.h:64:32: warning: multi-character character constant [-Wmultichar]
     kALACFormatAppleLossless = 'alac',
                                ^~~~~~
../src/../alac/ALACAudioTypes.h:65:28: warning: multi-character character constant [-Wmultichar]
     kALACFormatLinearPCM = 'lpcm'
                            ^~~~~~
../src/../alac/ALACAudioTypes.h:154:22: warning: multi-character character constant [-Wmultichar]
  kALACCodecFormat  = 'alac',
                      ^~~~~~
../src/../alac/ALACAudioTypes.h:182:26: warning: multi-character character constant [-Wmultichar]
  AudioChannelLayoutAID = 'chan'
                          ^~~~~~
../src/codec.cc: In function 'void nodeairtunes::encoder_weak_callback(v8::Persistent<v8::Value>, void*)':
../src/codec.cc:59:15: error: 'v8::HandleScope::HandleScope()' is protected within this context
   HandleScope scope;
               ^~~~~
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:883:13: note: declared protected here
   V8_INLINE HandleScope() {}
             ^~~~~~~~~~~
../src/codec.cc:62:11: error: 'class v8::Persistent<v8::Value>' has no member named 'Dispose'
   wrapper.Dispose();
           ^~~~~~~
../src/codec.cc: At global scope:
../src/codec.cc:67:32: error: 'Arguments' does not name a type
 Handle<Value> NewEncoder(const Arguments& args) {
                                ^~~~~~~~~
../src/codec.cc: In function 'v8::Handle<v8::Value> nodeairtunes::NewEncoder(const int&)':
../src/codec.cc:68:15: error: 'v8::HandleScope::HandleScope()' is protected within this context
   HandleScope scope;
               ^~~~~
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:883:13: note: declared protected here
   V8_INLINE HandleScope() {}
             ^~~~~~~~~~~
../src/codec.cc:78:97: error: no matching function for call to 'v8::ObjectTemplate::New()'
   Persistent<ObjectTemplate> encoderClass = Persistent<ObjectTemplate>::New(ObjectTemplate::New());
                                                                                                 ^
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:5914:32: note: candidate: static v8::Local<v8::ObjectTemplate> v8::ObjectTemplate::New(v8::Isolate*, v8::Local<v8::FunctionTemplate>)
   static Local<ObjectTemplate> New(
                                ^~~
/usr/include/nodejs/deps/v8/include/v8.h:5914:32: note:   candidate expects 2 arguments, 0 provided
/usr/include/nodejs/deps/v8/include/v8.h:6121:32: note: candidate: static v8::Local<v8::ObjectTemplate> v8::ObjectTemplate::New(v8::internal::Isolate*, v8::Local<v8::FunctionTemplate>)
   static Local<ObjectTemplate> New(internal::Isolate* isolate,
                                ^~~
/usr/include/nodejs/deps/v8/include/v8.h:6121:32: note:   candidate expects 2 arguments, 0 provided
../src/codec.cc:79:15: error: base operand of '->' has non-pointer type 'v8::Persistent<v8::ObjectTemplate>'
   encoderClass->SetInternalFieldCount(1);
               ^~
../src/codec.cc:80:62: error: base operand of '->' has non-pointer type 'v8::Persistent<v8::ObjectTemplate>'
   Persistent<Object> o = Persistent<Object>::New(encoderClass->NewInstance());
                                                              ^~
../src/codec.cc:81:4: error: base operand of '->' has non-pointer type 'v8::Persistent<v8::Object>'
   o->SetPointerInInternalField(0, encoder);
    ^~
../src/codec.cc:82:5: error: 'class v8::Persistent<v8::Object>' has no member named 'MakeWeak'; did you mean 'SetWeak'?
   o.MakeWeak(encoder, encoder_weak_callback);
     ^~~~~~~~
../src/codec.cc:84:16: error: 'class v8::HandleScope' has no member named 'Close'
   return scope.Close(o);
                ^~~~~
../src/codec.cc: At global scope:
../src/codec.cc:87:32: error: 'Arguments' does not name a type
 Handle<Value> EncodeALAC(const Arguments& args) {
                                ^~~~~~~~~
../src/codec.cc: In function 'v8::Handle<v8::Value> nodeairtunes::EncodeALAC(const int&)':
../src/codec.cc:88:15: error: 'v8::HandleScope::HandleScope()' is protected within this context
   HandleScope scope;
               ^~~~~
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:883:13: note: declared protected here
   V8_INLINE HandleScope() {}
             ^~~~~~~~~~~
../src/codec.cc:90:11: error: request for member 'Length' in 'args', which is of non-class type 'const int'
   if(args.Length() < 4) {
           ^~~~~~
../src/codec.cc:92:18: error: 'class v8::HandleScope' has no member named 'Close'
     return scope.Close(Null());
                  ^~~~~
../src/codec.cc:92:29: error: too few arguments to function 'v8::Local<v8::Primitive> v8::Null(v8::Isolate*)'
     return scope.Close(Null());
                             ^
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:322:27: note: declared here
   friend Local<Primitive> Null(Isolate* isolate);
                           ^~~~
../src/codec.cc:95:32: error: invalid types 'const int[int]' for array subscript
   Local<Object>wrapper = args[0]->ToObject();
                                ^
../src/codec.cc:96:49: error: 'class v8::Object' has no member named 'GetPointerFromInternalField'; did you mean 'GetAlignedPointerFromInternalField'?
   ALACEncoder *encoder = (ALACEncoder*)wrapper->GetPointerFromInternalField(0);
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/codec.cc:98:34: error: invalid types 'const int[int]' for array subscript
   Local<Value> pcmBuffer = args[1];
                                  ^
../src/codec.cc:99:77: warning: 'v8::Local<v8::Object> v8::Value::ToObject() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
   unsigned char* pcmData = (unsigned char*)Buffer::Data(pcmBuffer->ToObject());
                                                                             ^
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
../src/codec.cc:101:35: error: invalid types 'const int[int]' for array subscript
   Local<Value> alacBuffer = args[2];
                                   ^
../src/codec.cc:102:79: warning: 'v8::Local<v8::Object> v8::Value::ToObject() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
   unsigned char* alacData = (unsigned char*)Buffer::Data(alacBuffer->ToObject());
                                                                               ^
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
../src/codec.cc:104:27: error: invalid types 'const int[int]' for array subscript
   int32_t pcmSize = args[3]->Int32Value();
                           ^
../src/codec.cc:113:16: error: 'class v8::HandleScope' has no member named 'Close'
   return scope.Close(Integer::New(alacSize));
                ^~~~~
../src/codec.cc:113:43: error: no matching function for call to 'v8::Integer::New(int32_t&)'
   return scope.Close(Integer::New(alacSize));
                                           ^
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:3048:25: note: candidate: static v8::Local<v8::Integer> v8::Integer::New(v8::Isolate*, int32_t)
   static Local<Integer> New(Isolate* isolate, int32_t value);
                         ^~~
/usr/include/nodejs/deps/v8/include/v8.h:3048:25: note:   candidate expects 2 arguments, 1 provided
../src/codec.cc: At global scope:
../src/codec.cc:116:32: error: 'Arguments' does not name a type
 Handle<Value> EncryptAES(const Arguments& args) {
                                ^~~~~~~~~
../src/codec.cc: In function 'v8::Handle<v8::Value> nodeairtunes::EncryptAES(const int&)':
../src/codec.cc:117:15: error: 'v8::HandleScope::HandleScope()' is protected within this context
   HandleScope scope;
               ^~~~~
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:883:13: note: declared protected here
   V8_INLINE HandleScope() {}
             ^~~~~~~~~~~
../src/codec.cc:119:11: error: request for member 'Length' in 'args', which is of non-class type 'const int'
   if(args.Length() < 2) {
           ^~~~~~
../src/codec.cc:121:18: error: 'class v8::HandleScope' has no member named 'Close'
     return scope.Close(Null());
                  ^~~~~
../src/codec.cc:121:29: error: too few arguments to function 'v8::Local<v8::Primitive> v8::Null(v8::Isolate*)'
     return scope.Close(Null());
                             ^
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:322:27: note: declared here
   friend Local<Primitive> Null(Isolate* isolate);
                           ^~~~
../src/codec.cc:124:35: error: invalid types 'const int[int]' for array subscript
   Local<Value> alacBuffer = args[0];
                                   ^
../src/codec.cc:125:79: warning: 'v8::Local<v8::Object> v8::Value::ToObject() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
   unsigned char* alacData = (unsigned char*)Buffer::Data(alacBuffer->ToObject());
                                                                               ^
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:10046:15: note: declared here
 Local<Object> Value::ToObject() const {
               ^~~~~
../src/codec.cc:126:28: error: invalid types 'const int[int]' for array subscript
   int32_t alacSize = args[1]->Int32Value();
                            ^
../src/codec.cc:149:16: error: 'class v8::HandleScope' has no member named 'Close'
   return scope.Close(Null());
                ^~~~~
../src/codec.cc:149:27: error: too few arguments to function 'v8::Local<v8::Primitive> v8::Null(v8::Isolate*)'
   return scope.Close(Null());
                           ^
In file included from /usr/include/nodejs/src/node.h:63:0,
                 from ../src/codec.cc:1:
/usr/include/nodejs/deps/v8/include/v8.h:322:27: note: declared here
   friend Local<Primitive> Null(Isolate* isolate);
                           ^~~~
../src/codec.cc: In function 'void nodeairtunes::InitCodec(v8::Handle<v8::Object>)':
../src/codec.cc:153:51: error: invalid conversion from 'v8::Handle<v8::Value> (*)(const int&) {aka v8::Local<v8::Value> (*)(const int&)}' to 'v8::FunctionCallback {aka void (*)(const v8::FunctionCallbackInfo<v8::Value>&)}' [-fpermissive]
   NODE_SET_METHOD(target, "encodeALAC", EncodeALAC);
                                                   ^
In file included from ../src/codec.cc:1:0:
/usr/include/nodejs/src/node.h:383:13: note:   initializing argument 3 of 'void node::NODE_SET_METHOD(v8::Local<v8::Object>, const char*, v8::FunctionCallback)'
 inline void NODE_SET_METHOD(v8::Local<v8::Object> recv,
             ^~~~~~~~~~~~~~~
../src/codec.cc:154:51: error: invalid conversion from 'v8::Handle<v8::Value> (*)(const int&) {aka v8::Local<v8::Value> (*)(const int&)}' to 'v8::FunctionCallback {aka void (*)(const v8::FunctionCallbackInfo<v8::Value>&)}' [-fpermissive]
   NODE_SET_METHOD(target, "encryptAES", EncryptAES);
                                                   ^
In file included from ../src/codec.cc:1:0:
/usr/include/nodejs/src/node.h:383:13: note:   initializing argument 3 of 'void node::NODE_SET_METHOD(v8::Local<v8::Object>, const char*, v8::FunctionCallback)'
 inline void NODE_SET_METHOD(v8::Local<v8::Object> recv,
             ^~~~~~~~~~~~~~~
../src/codec.cc:155:51: error: invalid conversion from 'v8::Handle<v8::Value> (*)(const int&) {aka v8::Local<v8::Value> (*)(const int&)}' to 'v8::FunctionCallback {aka void (*)(const v8::FunctionCallbackInfo<v8::Value>&)}' [-fpermissive]
   NODE_SET_METHOD(target, "newEncoder", NewEncoder);
                                                   ^
In file included from ../src/codec.cc:1:0:
/usr/include/nodejs/src/node.h:383:13: note:   initializing argument 3 of 'void node::NODE_SET_METHOD(v8::Local<v8::Object>, const char*, v8::FunctionCallback)'
 inline void NODE_SET_METHOD(v8::Local<v8::Object> recv,
             ^~~~~~~~~~~~~~~
airtunes.target.mk:111: recipe for target 'Release/obj.target/airtunes/src/codec.o' failed
make: *** [Release/obj.target/airtunes/src/codec.o] Error 1
make: Leaving directory '/mnt/md0/home/adam/src/node_airtunes/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
gyp ERR! System Linux 4.9.0-8-686-pae
gyp ERR! command "/usr/bin/node" "/usr/bin/node-gyp" "configure" "build"
gyp ERR! cwd /mnt/md0/home/adam/src/node_airtunes
gyp ERR! node -v v10.15.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok