{"action":"closed","issue":{"url":"https://api.github.com/repos/xdissent/node-pcm-utils/issues/3","labels_url":"https://api.github.com/repos/xdissent/node-pcm-utils/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/xdissent/node-pcm-utils/issues/3/comments","events_url":"https://api.github.com/repos/xdissent/node-pcm-utils/issues/3/events","html_url":"https://github.com/xdissent/node-pcm-utils/issues/3","id":53351450,"number":3,"title":"Can't build on Ubuntu 14.04 TLS","user":{"login":"corentingurtner","id":1526401,"avatar_url":"https://avatars.githubusercontent.com/u/1526401?v=3","gravatar_id":"","url":"https://api.github.com/users/corentingurtner","html_url":"https://github.com/corentingurtner","followers_url":"https://api.github.com/users/corentingurtner/followers","following_url":"https://api.github.com/users/corentingurtner/following{/other_user}","gists_url":"https://api.github.com/users/corentingurtner/gists{/gist_id}","starred_url":"https://api.github.com/users/corentingurtner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/corentingurtner/subscriptions","organizations_url":"https://api.github.com/users/corentingurtner/orgs","repos_url":"https://api.github.com/users/corentingurtner/repos","events_url":"https://api.github.com/users/corentingurtner/events{/privacy}","received_events_url":"https://api.github.com/users/corentingurtner/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-01-04T22:38:24Z","updated_at":"2015-01-07T12:34:12Z","closed_at":"2015-01-07T12:34:12Z","body":"I can't build on Ubuntu 14.04 TLS with node 0.11.14\r\n\r\n    > pcm-utils@0.0.2 install /tmp/node_modules/pcm-utils\r\n    > node-gyp rebuild\r\n\r\n    child_process: customFds option is deprecated, use stdio instead.\r\n    make: Entering directory `/tmp/node_modules/pcm-utils/build'\r\n    CXX(target) Release/obj.target/binding/binding.o\r\n    In file included from ../binding.cc:2:0:\r\n    ../mixer.h:17:33: error: expected class-name before ‘{’ token\r\n    class Mixer : public ObjectWrap {\r\n    ^\r\n    ../mixer.h:39:5: error: ‘uv_work_t’ does not name a type\r\n    uv_work_t request;\r\n    ^\r\n    ../mixer.h:77:34: error: ‘Arguments’ does not name a type\r\n    static Handle<Value> New(const Arguments& args);\r\n     ^\r\n    ../mixer.h:77:45: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]\r\n       static Handle<Value> New(const Arguments& args);\r\n                                                 ^\r\n    ../mixer.h:78:36: error: ‘Arguments’ does not name a type\r\n       static Handle<Value> Write(const Arguments& args);\r\n                                        ^\r\n    ../mixer.h:78:47: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]\r\n       static Handle<Value> Write(const Arguments& args);\r\n                                                   ^\r\n    ../mixer.h:79:70: error: ‘AccessorInfo’ does not name a type\r\n       static Handle<Value> ChannelBuffersGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                          ^\r\n    ../mixer.h:79:84: error: ISO C++ forbids declaration of ‘accessor’ with no type [-fpermissive]\r\n       static Handle<Value> ChannelBuffersGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                                        ^\r\n    ../mixer.h:80:69: error: ‘AccessorInfo’ does not name a type\r\n       static Handle<Value> ChannelsReadyGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                         ^\r\n    ../mixer.h:80:83: error: ISO C++ forbids declaration of ‘accessor’ with no type [-fpermissive]\r\n       static Handle<Value> ChannelsReadyGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                                       ^\r\n    ../mixer.h:81:72: error: ‘AccessorInfo’ does not name a type\r\n       static Handle<Value> SamplesPerBufferGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                            ^\r\n    ../mixer.h:81:86: error: ISO C++ forbids declaration of ‘accessor’ with no type [-fpermissive]\r\n       static Handle<Value> SamplesPerBufferGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                                          ^\r\n    ../mixer.h:82:62: error: ‘AccessorInfo’ does not name a type\r\n       static Handle<Value> MixingGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                  ^\r\n    ../mixer.h:82:76: error: ISO C++ forbids declaration of ‘accessor’ with no type [-fpermissive]\r\n       static Handle<Value> MixingGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                                ^\r\n    ../mixer.h:85:23: error: ‘uv_work_t’ has not been declared\r\n       static void DoWrite(uv_work_t* req);\r\n                           ^\r\n    ../mixer.h:86:26: error: ‘uv_work_t’ has not been declared\r\n       static void AfterWrite(uv_work_t* req);\r\n                              ^\r\n    ../mixer.h:89:21: error: ‘uv_work_t’ has not been declared\r\n       static void DoMix(uv_work_t* req);\r\n                         ^\r\n    ../mixer.h:90:24: error: ‘uv_work_t’ has not been declared\r\n       static void AfterMix(uv_work_t* req);\r\n                            ^\r\n    ../mixer.h: In constructor ‘pcmutils::Mixer::Mixer()’:\r\n    ../mixer.h:22:13: error: class ‘pcmutils::Mixer’ does not have any field named ‘ObjectWrap’\r\n       Mixer() : ObjectWrap(), channels(0), alignment(0), format(0), mixing(false) {\r\n                 ^\r\n    ../mixer.h:23:20: error: ‘class v8::Persistent<v8::Array>’ has no member named ‘Clear’\r\n         channelBuffers.Clear();\r\n                        ^\r\n    ../mixer.h:24:19: error: ‘class v8::Persistent<v8::Array>’ has no member named ‘Clear’\r\n         channelsReady.Clear();\r\n                       ^\r\n    ../mixer.h:25:14: error: ‘class v8::Persistent<v8::Function>’ has no member named ‘Clear’\r\n         callback.Clear();\r\n                  ^\r\n    ../mixer.h: In destructor ‘pcmutils::Mixer::~Mixer()’:\r\n    ../mixer.h:33:20: error: ‘class v8::Persistent<v8::Array>’ has no member named ‘Dispose’\r\n         channelBuffers.Dispose();\r\n                        ^\r\n    ../mixer.h:34:19: error: ‘class v8::Persistent<v8::Array>’ has no member named ‘Dispose’\r\n         channelsReady.Dispose();\r\n                       ^\r\n    ../mixer.h:35:14: error: ‘class v8::Persistent<v8::Function>’ has no member named ‘Dispose’\r\n         callback.Dispose();\r\n                  ^\r\n    ../mixer.h: In constructor ‘pcmutils::Mixer::Baton::Baton(pcmutils::Mixer*)’:\r\n    ../mixer.h:43:12: error: ‘class pcmutils::Mixer’ has no member named ‘Ref’\r\n           mix->Ref();\r\n                ^\r\n    ../mixer.h:44:7: error: ‘request’ was not declared in this scope\r\n           request.data = this;\r\n           ^\r\n    ../mixer.h: In destructor ‘virtual pcmutils::Mixer::Baton::~Baton()’:\r\n    ../mixer.h:47:12: error: ‘class pcmutils::Mixer’ has no member named ‘Unref’\r\n           mix->Unref();\r\n                ^\r\n    ../mixer.h: In constructor ‘pcmutils::Mixer::WriteBaton::WriteBaton(pcmutils::Mixer*, v8::Handle<v8::Function>, int)’:\r\n    ../mixer.h:56:47: error: no matching function for call to ‘v8::Persistent<v8::Function>::New(v8::Handle<v8::Function>&)’\r\n           callback = Persistent<Function>::New(cb_);\r\n                                                   ^\r\n    ../mixer.h:56:47: note: candidate is:\r\n    In file included from /root/.node-gyp/0.11.14/src/node.h:61:0,\r\n                     from ../binding.cc:1:\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note: static T* v8::PersistentBase<T>::New(v8::Isolate*, T*) [with T = v8::Function]\r\n     T* PersistentBase<T>::New(Isolate* isolate, T* that) {\r\n        ^\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note:   candidate expects 2 arguments, 1 provided\r\n    In file included from ../binding.cc:2:0:\r\n    ../mixer.h: In destructor ‘virtual pcmutils::Mixer::WriteBaton::~WriteBaton()’:\r\n    ../mixer.h:59:16: error: ‘class v8::Persistent<v8::Function>’ has no member named ‘Dispose’\r\n           callback.Dispose();\r\n                    ^\r\n    ../mixer.h: In constructor ‘pcmutils::Mixer::MixBaton::MixBaton(pcmutils::Mixer*)’:\r\n    ../mixer.h:67:65: error: ‘malloc’ was not declared in this scope\r\n           channelData = (char**)malloc(mix->channels * sizeof(char*));\r\n                                                                     ^\r\n    ../mixer.h:69:58: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::Array>’\r\n             channelData[i] = Buffer::Data(mix->channelBuffers->Get(i)->ToObject());\r\n                                                              ^\r\n    ../mixer.h: In destructor ‘virtual pcmutils::Mixer::MixBaton::~MixBaton()’:\r\n    ../mixer.h:73:23: error: ‘free’ was not declared in this scope\r\n           free(channelData);\r\n                           ^\r\n    In file included from ../binding.cc:3:0:\r\n    ../unzipper.h: At global scope:\r\n    ../unzipper.h:17:36: error: expected class-name before ‘{’ token\r\n     class Unzipper : public ObjectWrap {\r\n                                        ^\r\n    ../unzipper.h:35:5: error: ‘uv_work_t’ does not name a type\r\n         uv_work_t request;\r\n         ^\r\n    ../unzipper.h:83:34: error: ‘Arguments’ does not name a type\r\n       static Handle<Value> New(const Arguments& args);\r\n                                      ^\r\n    ../unzipper.h:83:45: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]\r\n       static Handle<Value> New(const Arguments& args);\r\n                                                 ^\r\n    ../unzipper.h:84:36: error: ‘Arguments’ does not name a type\r\n       static Handle<Value> Unzip(const Arguments& args);\r\n                                        ^\r\n    ../unzipper.h:84:47: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]\r\n       static Handle<Value> Unzip(const Arguments& args);\r\n                                                   ^\r\n    ../unzipper.h:87:23: error: ‘uv_work_t’ has not been declared\r\n       static void DoUnzip(uv_work_t* req);\r\n                           ^\r\n    ../unzipper.h:88:26: error: ‘uv_work_t’ has not been declared\r\n       static void AfterUnzip(uv_work_t* req);\r\n                              ^\r\n    ../unzipper.h: In constructor ‘pcmutils::Unzipper::Unzipper()’:\r\n    ../unzipper.h:22:16: error: class ‘pcmutils::Unzipper’ does not have any field named ‘ObjectWrap’\r\n       Unzipper() : ObjectWrap(), channels(0), alignment(0), frameAlignment(0), unzipping(false) {\r\n                    ^\r\n    ../unzipper.h:23:20: error: ‘class v8::Persistent<v8::Array>’ has no member named ‘Clear’\r\n         channelBuffers.Clear();\r\n                        ^\r\n    ../unzipper.h: In destructor ‘pcmutils::Unzipper::~Unzipper()’:\r\n    ../unzipper.h:31:20: error: ‘class v8::Persistent<v8::Array>’ has no member named ‘Dispose’\r\n         channelBuffers.Dispose();\r\n                        ^\r\n    ../unzipper.h: In constructor ‘pcmutils::Unzipper::Baton::Baton(pcmutils::Unzipper*)’:\r\n    ../unzipper.h:39:12: error: ‘class pcmutils::Unzipper’ has no member named ‘Ref’\r\n           unz->Ref();\r\n                ^\r\n    ../unzipper.h:40:7: error: ‘request’ was not declared in this scope\r\n           request.data = this;\r\n           ^\r\n    ../unzipper.h: In destructor ‘virtual pcmutils::Unzipper::Baton::~Baton()’:\r\n    ../unzipper.h:43:12: error: ‘class pcmutils::Unzipper’ has no member named ‘Unref’\r\n           unz->Unref();\r\n                ^\r\n    ../unzipper.h: In constructor ‘pcmutils::Unzipper::UnzipBaton::UnzipBaton(pcmutils::Unzipper*, v8::Handle<v8::Function>, v8::Handle<v8::Object>)’:\r\n    ../unzipper.h:59:47: error: no matching function for call to ‘v8::Persistent<v8::Function>::New(v8::Handle<v8::Function>&)’\r\n           callback = Persistent<Function>::New(cb_);\r\n                                                   ^\r\n    ../unzipper.h:59:47: note: candidate is:\r\n    In file included from /root/.node-gyp/0.11.14/src/node.h:61:0,\r\n                     from ../binding.cc:1:\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note: static T* v8::PersistentBase<T>::New(v8::Isolate*, T*) [with T = v8::Function]\r\n     T* PersistentBase<T>::New(Isolate* isolate, T* that) {\r\n        ^\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note:   candidate expects 2 arguments, 1 provided\r\n    In file included from ../binding.cc:3:0:\r\n    ../unzipper.h:61:45: error: no matching function for call to ‘v8::Persistent<v8::Object>::New(v8::Handle<v8::Object>&)’\r\n           chunk = Persistent<Object>::New(chunk_);\r\n                                                 ^\r\n    ../unzipper.h:61:45: note: candidate is:\r\n    In file included from /root/.node-gyp/0.11.14/src/node.h:61:0,\r\n                     from ../binding.cc:1:\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note: static T* v8::PersistentBase<T>::New(v8::Isolate*, T*) [with T = v8::Object]\r\n     T* PersistentBase<T>::New(Isolate* isolate, T* that) {\r\n        ^\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note:   candidate expects 2 arguments, 1 provided\r\n    In file included from ../binding.cc:3:0:\r\n    ../unzipper.h:62:37: error: no matching function for call to ‘Data(v8::Persistent<v8::Object>&)’\r\n           chunkData = Buffer::Data(chunk);\r\n                                         ^\r\n    ../unzipper.h:62:37: note: candidates are:\r\n    In file included from ../mixer.h:5:0,\r\n                     from ../binding.cc:2:\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:40:19: note: char* node::Buffer::Data(v8::Handle<v8::Value>)\r\n     NODE_EXTERN char* Data(v8::Handle<v8::Value> val);\r\n                       ^\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:40:19: note:   no known conversion for argument 1 from ‘v8::Persistent<v8::Object>’ to ‘v8::Handle<v8::Value>’\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:41:19: note: char* node::Buffer::Data(v8::Handle<v8::Object>)\r\n     NODE_EXTERN char* Data(v8::Handle<v8::Object> val);\r\n                       ^\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:41:19: note:   no known conversion for argument 1 from ‘v8::Persistent<v8::Object>’ to ‘v8::Handle<v8::Object>’\r\n    In file included from ../binding.cc:3:0:\r\n    ../unzipper.h:63:41: error: no matching function for call to ‘Length(v8::Persistent<v8::Object>&)’\r\n           chunkLength = Buffer::Length(chunk);\r\n                                             ^\r\n    ../unzipper.h:63:41: note: candidates are:\r\n    In file included from ../mixer.h:5:0,\r\n                     from ../binding.cc:2:\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:42:20: note: size_t node::Buffer::Length(v8::Handle<v8::Value>)\r\n     NODE_EXTERN size_t Length(v8::Handle<v8::Value> val);\r\n                        ^\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:42:20: note:   no known conversion for argument 1 from ‘v8::Persistent<v8::Object>’ to ‘v8::Handle<v8::Value>’\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:43:20: note: size_t node::Buffer::Length(v8::Handle<v8::Object>)\r\n     NODE_EXTERN size_t Length(v8::Handle<v8::Object> val);\r\n                        ^\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:43:20: note:   no known conversion for argument 1 from ‘v8::Persistent<v8::Object>’ to ‘v8::Handle<v8::Object>’\r\n    In file included from ../binding.cc:3:0:\r\n    ../unzipper.h:65:65: error: ‘malloc’ was not declared in this scope\r\n           channelData = (char**)malloc(unz->channels * sizeof(char*));\r\n                                                                     ^\r\n    ../unzipper.h:67:58: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::Array>’\r\n             channelData[i] = Buffer::Data(unz->channelBuffers->Get(i)->ToObject());\r\n                                                              ^\r\n    ../unzipper.h: In destructor ‘virtual pcmutils::Unzipper::UnzipBaton::~UnzipBaton()’:\r\n    ../unzipper.h:77:16: error: ‘class v8::Persistent<v8::Function>’ has no member named ‘Dispose’\r\n           callback.Dispose();\r\n                    ^\r\n    ../unzipper.h:78:13: error: ‘class v8::Persistent<v8::Object>’ has no member named ‘Dispose’\r\n           chunk.Dispose();\r\n                 ^\r\n    ../unzipper.h:79:23: error: ‘free’ was not declared in this scope\r\n           free(channelData);\r\n                           ^\r\n    In file included from ../binding.cc:4:0:\r\n    ../zipper.h: At global scope:\r\n    ../zipper.h:17:34: error: expected class-name before ‘{’ token\r\n     class Zipper : public ObjectWrap {\r\n                                      ^\r\n    ../zipper.h:41:5: error: ‘uv_work_t’ does not name a type\r\n         uv_work_t request;\r\n         ^\r\n    ../zipper.h:79:34: error: ‘Arguments’ does not name a type\r\n       static Handle<Value> New(const Arguments& args);\r\n                                      ^\r\n    ../zipper.h:79:45: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]\r\n       static Handle<Value> New(const Arguments& args);\r\n                                                 ^\r\n    ../zipper.h:80:36: error: ‘Arguments’ does not name a type\r\n       static Handle<Value> Write(const Arguments& args);\r\n                                        ^\r\n    ../zipper.h:80:47: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]\r\n       static Handle<Value> Write(const Arguments& args);\r\n                                                   ^\r\n    ../zipper.h:81:70: error: ‘AccessorInfo’ does not name a type\r\n       static Handle<Value> ChannelBuffersGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                          ^\r\n    ../zipper.h:81:84: error: ISO C++ forbids declaration of ‘accessor’ with no type [-fpermissive]\r\n       static Handle<Value> ChannelBuffersGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                                        ^\r\n    ../zipper.h:82:69: error: ‘AccessorInfo’ does not name a type\r\n       static Handle<Value> ChannelsReadyGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                         ^\r\n    ../zipper.h:82:83: error: ISO C++ forbids declaration of ‘accessor’ with no type [-fpermissive]\r\n       static Handle<Value> ChannelsReadyGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                                       ^\r\n    ../zipper.h:83:72: error: ‘AccessorInfo’ does not name a type\r\n       static Handle<Value> SamplesPerBufferGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                            ^\r\n    ../zipper.h:83:86: error: ISO C++ forbids declaration of ‘accessor’ with no type [-fpermissive]\r\n       static Handle<Value> SamplesPerBufferGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                                          ^\r\n    ../zipper.h:84:63: error: ‘AccessorInfo’ does not name a type\r\n       static Handle<Value> ZippingGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                   ^\r\n    ../zipper.h:84:77: error: ISO C++ forbids declaration of ‘accessor’ with no type [-fpermissive]\r\n       static Handle<Value> ZippingGetter(Local<String> str, const AccessorInfo& accessor);\r\n                                                                                 ^\r\n    ../zipper.h:87:23: error: ‘uv_work_t’ has not been declared\r\n       static void DoWrite(uv_work_t* req);\r\n                           ^\r\n    ../zipper.h:88:26: error: ‘uv_work_t’ has not been declared\r\n       static void AfterWrite(uv_work_t* req);\r\n                              ^\r\n    ../zipper.h:91:21: error: ‘uv_work_t’ has not been declared\r\n       static void DoZip(uv_work_t* req);\r\n                         ^\r\n    ../zipper.h:92:24: error: ‘uv_work_t’ has not been declared\r\n       static void AfterZip(uv_work_t* req);\r\n                            ^\r\n    ../zipper.h: In constructor ‘pcmutils::Zipper::Zipper()’:\r\n    ../zipper.h:22:14: error: class ‘pcmutils::Zipper’ does not have any field named ‘ObjectWrap’\r\n       Zipper() : ObjectWrap(), channels(0), alignment(0), frameAlignment(0), zipping(false), buffer(NULL) {\r\n                  ^\r\n    ../zipper.h:23:20: error: ‘class v8::Persistent<v8::Array>’ has no member named ‘Clear’\r\n         channelBuffers.Clear();\r\n                        ^\r\n    ../zipper.h:24:19: error: ‘class v8::Persistent<v8::Array>’ has no member named ‘Clear’\r\n         channelsReady.Clear();\r\n                       ^\r\n    ../zipper.h:25:14: error: ‘class v8::Persistent<v8::Function>’ has no member named ‘Clear’\r\n         callback.Clear();\r\n                  ^\r\n    ../zipper.h: In destructor ‘pcmutils::Zipper::~Zipper()’:\r\n    ../zipper.h:33:36: error: ‘free’ was not declared in this scope\r\n         if (buffer != NULL) free(buffer);\r\n                                        ^\r\n    ../zipper.h:35:20: error: ‘class v8::Persistent<v8::Array>’ has no member named ‘Dispose’\r\n         channelBuffers.Dispose();\r\n                        ^\r\n    ../zipper.h:36:19: error: ‘class v8::Persistent<v8::Array>’ has no member named ‘Dispose’\r\n         channelsReady.Dispose();\r\n                       ^\r\n    ../zipper.h:37:14: error: ‘class v8::Persistent<v8::Function>’ has no member named ‘Dispose’\r\n         callback.Dispose();\r\n                  ^\r\n    ../zipper.h: In constructor ‘pcmutils::Zipper::Baton::Baton(pcmutils::Zipper*)’:\r\n    ../zipper.h:45:12: error: ‘class pcmutils::Zipper’ has no member named ‘Ref’\r\n           zip->Ref();\r\n                ^\r\n    ../zipper.h:46:7: error: ‘request’ was not declared in this scope\r\n           request.data = this;\r\n           ^\r\n    ../zipper.h: In destructor ‘virtual pcmutils::Zipper::Baton::~Baton()’:\r\n    ../zipper.h:49:12: error: ‘class pcmutils::Zipper’ has no member named ‘Unref’\r\n           zip->Unref();\r\n                ^\r\n    ../zipper.h: In constructor ‘pcmutils::Zipper::WriteBaton::WriteBaton(pcmutils::Zipper*, v8::Handle<v8::Function>, int)’:\r\n    ../zipper.h:58:47: error: no matching function for call to ‘v8::Persistent<v8::Function>::New(v8::Handle<v8::Function>&)’\r\n           callback = Persistent<Function>::New(cb_);\r\n                                                   ^\r\n    ../zipper.h:58:47: note: candidate is:\r\n    In file included from /root/.node-gyp/0.11.14/src/node.h:61:0,\r\n                     from ../binding.cc:1:\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note: static T* v8::PersistentBase<T>::New(v8::Isolate*, T*) [with T = v8::Function]\r\n     T* PersistentBase<T>::New(Isolate* isolate, T* that) {\r\n        ^\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note:   candidate expects 2 arguments, 1 provided\r\n    In file included from ../binding.cc:4:0:\r\n    ../zipper.h: In destructor ‘virtual pcmutils::Zipper::WriteBaton::~WriteBaton()’:\r\n    ../zipper.h:61:16: error: ‘class v8::Persistent<v8::Function>’ has no member named ‘Dispose’\r\n           callback.Dispose();\r\n                    ^\r\n    ../zipper.h: In constructor ‘pcmutils::Zipper::ZipBaton::ZipBaton(pcmutils::Zipper*)’:\r\n    ../zipper.h:69:65: error: ‘malloc’ was not declared in this scope\r\n           channelData = (char**)malloc(zip->channels * sizeof(char*));\r\n                                                                     ^\r\n    ../zipper.h:71:58: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::Array>’\r\n             channelData[i] = Buffer::Data(zip->channelBuffers->Get(i)->ToObject());\r\n                                                              ^\r\n    ../zipper.h: In destructor ‘virtual pcmutils::Zipper::ZipBaton::~ZipBaton()’:\r\n    ../zipper.h:75:23: error: ‘free’ was not declared in this scope\r\n           free(channelData);\r\n                           ^\r\n    In file included from ../binding.cc:5:0:\r\n    ../formatter.h: At global scope:\r\n    ../formatter.h:17:37: error: expected class-name before ‘{’ token\r\n     class Formatter : public ObjectWrap {\r\n                                         ^\r\n    ../formatter.h:37:5: error: ‘uv_work_t’ does not name a type\r\n         uv_work_t request;\r\n         ^\r\n    ../formatter.h:71:34: error: ‘Arguments’ does not name a type\r\n       static Handle<Value> New(const Arguments& args);\r\n                                      ^\r\n    ../formatter.h:71:45: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]\r\n       static Handle<Value> New(const Arguments& args);\r\n                                                 ^\r\n    ../formatter.h:72:37: error: ‘Arguments’ does not name a type\r\n       static Handle<Value> Format(const Arguments& args);\r\n                                         ^\r\n    ../formatter.h:72:48: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]\r\n       static Handle<Value> Format(const Arguments& args);\r\n                                                    ^\r\n    ../formatter.h:75:24: error: ‘uv_work_t’ has not been declared\r\n       static void DoFormat(uv_work_t* req);\r\n                            ^\r\n    ../formatter.h:76:27: error: ‘uv_work_t’ has not been declared\r\n       static void AfterFormat(uv_work_t* req);\r\n                               ^\r\n    ../formatter.h: In constructor ‘pcmutils::Formatter::Formatter()’:\r\n    ../formatter.h:22:17: error: class ‘pcmutils::Formatter’ does not have any field named ‘ObjectWrap’\r\n       Formatter() : ObjectWrap(), inFormat(0), outFormat(0),\r\n                     ^\r\n    ../formatter.h: In destructor ‘pcmutils::Formatter::~Formatter()’:\r\n    ../formatter.h:32:36: error: ‘free’ was not declared in this scope\r\n         if (buffer != NULL) free(buffer);\r\n                                        ^\r\n    ../formatter.h: In constructor ‘pcmutils::Formatter::Baton::Baton(pcmutils::Formatter*)’:\r\n    ../formatter.h:41:12: error: ‘class pcmutils::Formatter’ has no member named ‘Ref’\r\n           fmt->Ref();\r\n                ^\r\n    ../formatter.h:42:7: error: ‘request’ was not declared in this scope\r\n           request.data = this;\r\n           ^\r\n    ../formatter.h: In destructor ‘virtual pcmutils::Formatter::Baton::~Baton()’:\r\n    ../formatter.h:45:12: error: ‘class pcmutils::Formatter’ has no member named ‘Unref’\r\n           fmt->Unref();\r\n                ^\r\n    ../formatter.h: In constructor ‘pcmutils::Formatter::FormatBaton::FormatBaton(pcmutils::Formatter*, v8::Handle<v8::Function>, v8::Handle<v8::Object>)’:\r\n    ../formatter.h:60:47: error: no matching function for call to ‘v8::Persistent<v8::Function>::New(v8::Handle<v8::Function>&)’\r\n           callback = Persistent<Function>::New(cb_);\r\n                                                   ^\r\n    ../formatter.h:60:47: note: candidate is:\r\n    In file included from /root/.node-gyp/0.11.14/src/node.h:61:0,\r\n                     from ../binding.cc:1:\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note: static T* v8::PersistentBase<T>::New(v8::Isolate*, T*) [with T = v8::Function]\r\n     T* PersistentBase<T>::New(Isolate* isolate, T* that) {\r\n        ^\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note:   candidate expects 2 arguments, 1 provided\r\n    In file included from ../binding.cc:5:0:\r\n    ../formatter.h:61:45: error: no matching function for call to ‘v8::Persistent<v8::Object>::New(v8::Handle<v8::Object>&)’\r\n           chunk = Persistent<Object>::New(chunk_);\r\n                                                 ^\r\n    ../formatter.h:61:45: note: candidate is:\r\n    In file included from /root/.node-gyp/0.11.14/src/node.h:61:0,\r\n                     from ../binding.cc:1:\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note: static T* v8::PersistentBase<T>::New(v8::Isolate*, T*) [with T = v8::Object]\r\n     T* PersistentBase<T>::New(Isolate* isolate, T* that) {\r\n        ^\r\n    /root/.node-gyp/0.11.14/deps/v8/include/v8.h:5724:4: note:   candidate expects 2 arguments, 1 provided\r\n    In file included from ../binding.cc:5:0:\r\n    ../formatter.h:62:37: error: no matching function for call to ‘Data(v8::Persistent<v8::Object>&)’\r\n           chunkData = Buffer::Data(chunk);\r\n                                         ^\r\n    ../formatter.h:62:37: note: candidates are:\r\n    In file included from ../mixer.h:5:0,\r\n                     from ../binding.cc:2:\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:40:19: note: char* node::Buffer::Data(v8::Handle<v8::Value>)\r\n     NODE_EXTERN char* Data(v8::Handle<v8::Value> val);\r\n                       ^\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:40:19: note:   no known conversion for argument 1 from ‘v8::Persistent<v8::Object>’ to ‘v8::Handle<v8::Value>’\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:41:19: note: char* node::Buffer::Data(v8::Handle<v8::Object>)\r\n     NODE_EXTERN char* Data(v8::Handle<v8::Object> val);\r\n                       ^\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:41:19: note:   no known conversion for argument 1 from ‘v8::Persistent<v8::Object>’ to ‘v8::Handle<v8::Object>’\r\n    In file included from ../binding.cc:5:0:\r\n    ../formatter.h:63:41: error: no matching function for call to ‘Length(v8::Persistent<v8::Object>&)’\r\n           chunkLength = Buffer::Length(chunk);\r\n                                             ^\r\n    ../formatter.h:63:41: note: candidates are:\r\n    In file included from ../mixer.h:5:0,\r\n                     from ../binding.cc:2:\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:42:20: note: size_t node::Buffer::Length(v8::Handle<v8::Value>)\r\n     NODE_EXTERN size_t Length(v8::Handle<v8::Value> val);\r\n                        ^\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:42:20: note:   no known conversion for argument 1 from ‘v8::Persistent<v8::Object>’ to ‘v8::Handle<v8::Value>’\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:43:20: note: size_t node::Buffer::Length(v8::Handle<v8::Object>)\r\n     NODE_EXTERN size_t Length(v8::Handle<v8::Object> val);\r\n                        ^\r\n    /root/.node-gyp/0.11.14/src/node_buffer.h:43:20: note:   no known conversion for argument 1 from ‘v8::Persistent<v8::Object>’ to ‘v8::Handle<v8::Object>’\r\n    In file included from ../binding.cc:5:0:\r\n    ../formatter.h: In destructor ‘virtual pcmutils::Formatter::FormatBaton::~FormatBaton()’:\r\n    ../formatter.h:66:16: error: ‘class v8::Persistent<v8::Function>’ has no member named ‘Dispose’\r\n           callback.Dispose();\r\n                    ^\r\n    ../formatter.h:67:13: error: ‘class v8::Persistent<v8::Object>’ has no member named ‘Dispose’\r\n           chunk.Dispose();\r\n                 ^\r\n    make: *** [Release/obj.target/binding/binding.o] Error 1\r\n    make: Leaving directory `/tmp/node_modules/pcm-utils/build'\r\n    gyp ERR! build error\r\n    gyp ERR! stack Error: `make` failed with exit code: 2\r\n    gyp ERR! stack     at ChildProcess.onExit (/usr/local/node/node-v0.11.14/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)\r\n    gyp ERR! stack     at ChildProcess.emit (events.js:110:17)\r\n    gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1059:12)\r\n    gyp ERR! System Linux 3.13.0-37-generic\r\n    gyp ERR! command \"node\" \"/usr/local/node/node-v0.11.14/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\"\r\n    gyp ERR! cwd /tmp/node_modules/pcm-utils\r\n    gyp ERR! node -v v0.11.14\r\n    gyp ERR! node-gyp -v v1.0.2\r\n    gyp ERR! not ok\r\n\r\n    npm ERR! Linux 3.13.0-37-generic\r\n    npm ERR! argv \"/usr/local/node/node-v0.11.14/bin/node\" \"/usr/local/node/node-default/bin/npm\" \"install\" \"pcm-utils\"\r\n    npm ERR! node v0.11.14\r\n    npm ERR! npm  v2.0.0\r\n    npm ERR! code ELIFECYCLE\r\n    npm ERR! pcm-utils@0.0.2 install: `node-gyp rebuild`\r\n    npm ERR! Exit status 1\r\n    npm ERR!\r\n    npm ERR! Failed at the pcm-utils@0.0.2 install script.\r\n    npm ERR! This is most likely a problem with the pcm-utils package,\r\n    npm ERR! not with npm itself.\r\n    npm ERR! Tell the author that this fails on your system:\r\n    npm ERR!     node-gyp rebuild\r\n    npm ERR! You can get their info via:\r\n    npm ERR!     npm owner ls pcm-utils\r\n    npm ERR! There is likely additional logging output above.\r\n    root@node-1:/tmp:\r\n\r\nI will try to find a workaround later"}}