{"action":"created","issue":{"url":"https://api.github.com/repos/apiaryio/protagonist/issues/43","labels_url":"https://api.github.com/repos/apiaryio/protagonist/issues/43/labels{/name}","comments_url":"https://api.github.com/repos/apiaryio/protagonist/issues/43/comments","events_url":"https://api.github.com/repos/apiaryio/protagonist/issues/43/events","html_url":"https://github.com/apiaryio/protagonist/issues/43","id":58468639,"number":43,"title":"`npm install protagonist` files with Node.js 0.12.0 on Arch Linux","user":{"login":"lukebond","id":3177600,"avatar_url":"https://avatars.githubusercontent.com/u/3177600?v=3","gravatar_id":"","url":"https://api.github.com/users/lukebond","html_url":"https://github.com/lukebond","followers_url":"https://api.github.com/users/lukebond/followers","following_url":"https://api.github.com/users/lukebond/following{/other_user}","gists_url":"https://api.github.com/users/lukebond/gists{/gist_id}","starred_url":"https://api.github.com/users/lukebond/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukebond/subscriptions","organizations_url":"https://api.github.com/users/lukebond/orgs","repos_url":"https://api.github.com/users/lukebond/repos","events_url":"https://api.github.com/users/lukebond/events{/privacy}","received_events_url":"https://api.github.com/users/lukebond/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-02-21T18:12:36Z","updated_at":"2015-02-22T15:20:50Z","closed_at":null,"body":"I have a project using Aglio that I cannot `npm install` with my current setup due to protagonist failing.\r\n\r\n```\r\n$ npm install\r\n...\r\n> protagonist@0.17.1 install /home/luke/Development/paz/paz-orchestrator/node_modules/aglio/node_modules/protagonist\r\n> node-gyp rebuild\r\n\r\nchild_process: customFds option is deprecated, use stdio instead.\r\nmake: Entering directory '/home/luke/Development/paz/paz-orchestrator/node_modules/aglio/node_modules/protagonist/build'\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/CBlueprint.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/CBlueprintSourcemap.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/CSourceAnnotation.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/HTTP.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/Section.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/Serialize.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/SerializeJSON.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/SerializeYAML.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/Signature.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/snowcrash.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/csnowcrash.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/UriTemplateParser.o\r\n  CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/posix/RegexMatch.o\r\n  AR(target) Release/obj.target/snowcrash/snowcrash.a\r\n  COPY Release/snowcrash.a\r\n  CXX(target) Release/obj.target/libmarkdownparser/snowcrash/ext/markdown-parser/src/ByteBuffer.o\r\n  CXX(target) Release/obj.target/libmarkdownparser/snowcrash/ext/markdown-parser/src/MarkdownNode.o\r\n  CXX(target) Release/obj.target/libmarkdownparser/snowcrash/ext/markdown-parser/src/MarkdownParser.o\r\n  AR(target) Release/obj.target/snowcrash/markdownparser.a\r\n  COPY Release/markdownparser.a\r\n  CC(target) Release/obj.target/libsundown/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.o\r\n  CC(target) Release/obj.target/libsundown/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.o\r\n  CC(target) Release/obj.target/libsundown/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.o\r\n  CC(target) Release/obj.target/libsundown/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.o\r\n  CC(target) Release/obj.target/libsundown/snowcrash/ext/markdown-parser/ext/sundown/src/stack.o\r\n  CC(target) Release/obj.target/libsundown/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.o\r\n  CC(target) Release/obj.target/libsundown/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.o\r\n  CC(target) Release/obj.target/libsundown/snowcrash/ext/markdown-parser/ext/sundown/html/html.o\r\n  CC(target) Release/obj.target/libsundown/snowcrash/ext/markdown-parser/ext/sundown/html/html_smartypants.o\r\n  AR(target) Release/obj.target/snowcrash/sundown.a\r\n  COPY Release/sundown.a\r\n  CXX(target) Release/obj.target/protagonist/src/annotation.o\r\nIn file included from ../src/annotation.cc:1:0:\r\n../src/protagonist.h:13:47: error: expected class-name before ‘{’ token\r\n     class Blueprint : public node::ObjectWrap {\r\n                                               ^\r\n../src/protagonist.h:28:52: error: ‘Arguments’ in namespace ‘v8’ does not name a type\r\n         static v8::Handle<v8::Value> New(const v8::Arguments& args);\r\n                                                    ^\r\n../src/protagonist.h:35:47: error: expected class-name before ‘{’ token\r\n     class Sourcemap : public node::ObjectWrap {\r\n                                               ^\r\n../src/protagonist.h:50:52: error: ‘Arguments’ in namespace ‘v8’ does not name a type\r\n         static v8::Handle<v8::Value> New(const v8::Arguments& args);\r\n                                                    ^\r\n../src/protagonist.h:57:54: error: expected class-name before ‘{’ token\r\n     class SourceAnnotation : public node::ObjectWrap {\r\n                                                      ^\r\n../src/protagonist.h:69:52: error: ‘Arguments’ in namespace ‘v8’ does not name a type\r\n         static v8::Handle<v8::Value> New(const v8::Arguments& args);\r\n                                                    ^\r\n../src/protagonist.h:76:44: error: expected class-name before ‘{’ token\r\n     class Result : public node::ObjectWrap {\r\n                                            ^\r\n../src/protagonist.h:92:52: error: ‘Arguments’ in namespace ‘v8’ does not name a type\r\n         static v8::Handle<v8::Value> New(const v8::Arguments& args);\r\n                                                    ^\r\n../src/protagonist.h:99:50: error: ‘Arguments’ in namespace ‘v8’ does not name a type\r\n     extern v8::Handle<v8::Value> Parse(const v8::Arguments& args);\r\n                                                  ^\r\nIn file included from /home/luke/.node-gyp/0.12.0/src/node.h:61:0,\r\n                 from ../src/protagonist.h:1,\r\n                 from ../src/annotation.cc:1:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h: In static member function ‘static void protagonist::SourceAnnotation::Init(v8::Handle<v8::Object>)’:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:816:13: error: ‘v8::HandleScope::HandleScope()’ is protected\r\n   V8_INLINE HandleScope() {}\r\n             ^\r\n../src/annotation.cc:19:17: error: within this context\r\n     HandleScope scope;\r\n                 ^\r\n../src/annotation.cc:21:58: error: no matching function for call to ‘v8::FunctionTemplate::New(v8::Handle<v8::Value> (&)(const int&))’\r\n     Local<FunctionTemplate> t = FunctionTemplate::New(New);\r\n                                                          ^\r\n../src/annotation.cc:21:58: note: candidate is:\r\nIn file included from /home/luke/.node-gyp/0.12.0/src/node.h:61:0,\r\n                 from ../src/protagonist.h:1,\r\n                 from ../src/annotation.cc:1:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:3455:34: note: static v8::Local<v8::FunctionTemplate> v8::FunctionTemplate::New(v8::Isolate*, v8::FunctionCallback, v8::Handle<v8::Value>, v8::Handle<v8::Signature>, int)\r\n   static Local<FunctionTemplate> New(\r\n                                  ^\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:3455:34: note:   no known conversion for argument 1 from ‘v8::Handle<v8::Value>(const int&)’ to ‘v8::Isolate*’\r\n../src/annotation.cc:23:21: error: ‘NewSymbol’ is not a member of ‘v8::String’\r\n     t->SetClassName(String::NewSymbol(\"SourceAnnotation\"));\r\n                     ^\r\n../src/annotation.cc:25:61: error: no matching function for call to ‘v8::Persistent<v8::Function>::New(v8::Local<v8::Function>)’\r\n     constructor = Persistent<Function>::New(t->GetFunction());\r\n                                                             ^\r\n../src/annotation.cc:25:61: note: candidate is:\r\nIn file included from /home/luke/.node-gyp/0.12.0/src/node.h:61:0,\r\n                 from ../src/protagonist.h:1,\r\n                 from ../src/annotation.cc:1:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:5809: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/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:5809:4: note:   candidate expects 2 arguments, 1 provided\r\n../src/annotation.cc:26:18: error: ‘NewSymbol’ is not a member of ‘v8::String’\r\n     exports->Set(String::NewSymbol(\"SourceAnnotation\"), constructor);\r\n                  ^\r\n../src/annotation.cc: At global scope:\r\n../src/annotation.cc:29:43: error: ‘Arguments’ does not name a type\r\n Handle<Value> SourceAnnotation::New(const Arguments& args)\r\n                                           ^\r\nIn file included from /home/luke/.node-gyp/0.12.0/src/node.h:61:0,\r\n                 from ../src/protagonist.h:1,\r\n                 from ../src/annotation.cc:1:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h: In static member function ‘static v8::Handle<v8::Value> protagonist::SourceAnnotation::New(const int&)’:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:816:13: error: ‘v8::HandleScope::HandleScope()’ is protected\r\n   V8_INLINE HandleScope() {}\r\n             ^\r\n../src/annotation.cc:31:17: error: within this context\r\n     HandleScope scope;\r\n                 ^\r\n../src/annotation.cc:33:17: error: ‘class protagonist::SourceAnnotation’ has no member named ‘Wrap’\r\n     annotation->Wrap(args.This());\r\n                 ^\r\n../src/annotation.cc:33:27: error: request for member ‘This’ in ‘args’, which is of non-class type ‘const int’\r\n     annotation->Wrap(args.This());\r\n                           ^\r\n../src/annotation.cc:34:18: error: ‘class v8::HandleScope’ has no member named ‘Close’\r\n     return scope.Close(args.This());\r\n                  ^\r\n../src/annotation.cc:34:29: error: request for member ‘This’ in ‘args’, which is of non-class type ‘const int’\r\n     return scope.Close(args.This());\r\n                             ^\r\nIn file included from /home/luke/.node-gyp/0.12.0/src/node.h:61:0,\r\n                 from ../src/protagonist.h:1,\r\n                 from ../src/annotation.cc:1:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h: In static member function ‘static v8::Handle<v8::Value> protagonist::SourceAnnotation::NewInstance()’:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:816:13: error: ‘v8::HandleScope::HandleScope()’ is protected\r\n   V8_INLINE HandleScope() {}\r\n             ^\r\n../src/annotation.cc:39:17: error: within this context\r\n     HandleScope scope;\r\n                 ^\r\n../src/annotation.cc:40:41: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::Function>’\r\n     Local<Object> instance = constructor->NewInstance();\r\n                                         ^\r\n../src/annotation.cc:41:18: error: ‘class v8::HandleScope’ has no member named ‘Close’\r\n     return scope.Close(instance);\r\n                  ^\r\n../src/annotation.cc: In function ‘v8::Local<v8::Object> WrapSourceCharactersRange(const CharactersRange&)’:\r\n../src/annotation.cc:46:45: error: no matching function for call to ‘v8::Object::New()’\r\n     Local<Object> rangeObject = Object::New();\r\n                                             ^\r\n../src/annotation.cc:46:45: note: candidate is:\r\nIn file included from /home/luke/.node-gyp/0.12.0/src/node.h:61:0,\r\n                 from ../src/protagonist.h:1,\r\n                 from ../src/annotation.cc:1:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:2388:24: note: static v8::Local<v8::Object> v8::Object::New(v8::Isolate*)\r\n   static Local<Object> New(Isolate* isolate);\r\n                        ^\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:2388:24: note:   candidate expects 1 argument, 0 provided\r\n../src/annotation.cc:48:22: error: ‘NewSymbol’ is not a member of ‘v8::String’\r\n     rangeObject->Set(String::NewSymbol(\"index\"), Number::New(range.location));\r\n                      ^\r\n../src/annotation.cc:48:76: error: no matching function for call to ‘v8::Number::New(const size_t&)’\r\n     rangeObject->Set(String::NewSymbol(\"index\"), Number::New(range.location));\r\n                                                                            ^\r\n../src/annotation.cc:48:76: note: candidate is:\r\nIn file included from /home/luke/.node-gyp/0.12.0/src/node.h:61:0,\r\n                 from ../src/protagonist.h:1,\r\n                 from ../src/annotation.cc:1:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:1999:24: note: static v8::Local<v8::Number> v8::Number::New(v8::Isolate*, double)\r\n   static Local<Number> New(Isolate* isolate, double value);\r\n                        ^\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:1999:24: note:   candidate expects 2 arguments, 1 provided\r\n../src/annotation.cc:49:22: error: ‘NewSymbol’ is not a member of ‘v8::String’\r\n     rangeObject->Set(String::NewSymbol(\"length\"), Number::New(range.length));\r\n                      ^\r\n../src/annotation.cc:49:75: error: no matching function for call to ‘v8::Number::New(const size_t&)’\r\n     rangeObject->Set(String::NewSymbol(\"length\"), Number::New(range.length));\r\n                                                                           ^\r\n../src/annotation.cc:49:75: note: candidate is:\r\nIn file included from /home/luke/.node-gyp/0.12.0/src/node.h:61:0,\r\n                 from ../src/protagonist.h:1,\r\n                 from ../src/annotation.cc:1:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:1999:24: note: static v8::Local<v8::Number> v8::Number::New(v8::Isolate*, double)\r\n   static Local<Number> New(Isolate* isolate, double value);\r\n                        ^\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:1999:24: note:   candidate expects 2 arguments, 1 provided\r\n../src/annotation.cc: In static member function ‘static v8::Local<v8::Object> protagonist::SourceAnnotation::WrapSourceAnnotation(const snowcrash::SourceAnnotation&)’:\r\n../src/annotation.cc:55:47: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::Function>’\r\n     Local<Object> annotationWrap = constructor->NewInstance();\r\n                                               ^\r\n../src/annotation.cc:57:25: error: ‘NewSymbol’ is not a member of ‘v8::String’\r\n     annotationWrap->Set(String::NewSymbol(\"code\"), Number::New(annotation.code));\r\n                         ^\r\n../src/annotation.cc:57:79: error: no matching function for call to ‘v8::Number::New(const int&)’\r\n     annotationWrap->Set(String::NewSymbol(\"code\"), Number::New(annotation.code));\r\n                                                                               ^\r\n../src/annotation.cc:57:79: note: candidate is:\r\nIn file included from /home/luke/.node-gyp/0.12.0/src/node.h:61:0,\r\n                 from ../src/protagonist.h:1,\r\n                 from ../src/annotation.cc:1:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:1999:24: note: static v8::Local<v8::Number> v8::Number::New(v8::Isolate*, double)\r\n   static Local<Number> New(Isolate* isolate, double value);\r\n                        ^\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:1999:24: note:   candidate expects 2 arguments, 1 provided\r\n../src/annotation.cc:58:25: error: ‘NewSymbol’ is not a member of ‘v8::String’\r\n     annotationWrap->Set(String::NewSymbol(\"message\"), String::New(annotation.message.c_str()));\r\n                         ^\r\n../src/annotation.cc:58:55: error: ‘New’ is not a member of ‘v8::String’\r\n     annotationWrap->Set(String::NewSymbol(\"message\"), String::New(annotation.message.c_str()));\r\n                                                       ^\r\n../src/annotation.cc:60:66: error: invalid conversion from ‘std::vector<mdp::Range, std::allocator<mdp::Range> >::size_type {aka long unsigned int}’ to ‘v8::Isolate*’ [-fpermissive]\r\n     Local<Object> location = Array::New(annotation.location.size());\r\n                                                                  ^\r\nIn file included from /home/luke/.node-gyp/0.12.0/src/node.h:61:0,\r\n                 from ../src/protagonist.h:1,\r\n                 from ../src/annotation.cc:1:\r\n/home/luke/.node-gyp/0.12.0/deps/v8/include/v8.h:2417:23: note: initializing argument 1 of ‘static v8::Local<v8::Array> v8::Array::New(v8::Isolate*, int)’\r\n   static Local<Array> New(Isolate* isolate, int length = 0);\r\n                       ^\r\n../src/annotation.cc:69:25: error: ‘NewSymbol’ is not a member of ‘v8::String’\r\n     annotationWrap->Set(String::NewSymbol(\"location\"), location);    \r\n                         ^\r\n../src/annotation.cc: In static member function ‘static v8::Handle<v8::Value> protagonist::SourceAnnotation::New(const int&)’:\r\n../src/annotation.cc:35:1: warning: control reaches end of non-void function [-Wreturn-type]\r\n }\r\n ^\r\n../src/annotation.cc: In static member function ‘static v8::Handle<v8::Value> protagonist::SourceAnnotation::NewInstance()’:\r\n../src/annotation.cc:42:1: warning: control reaches end of non-void function [-Wreturn-type]\r\n }\r\n ^\r\nprotagonist.target.mk:123: recipe for target 'Release/obj.target/protagonist/src/annotation.o' failed\r\nmake: *** [Release/obj.target/protagonist/src/annotation.o] Error 1\r\nmake: Leaving directory '/home/luke/Development/paz/paz-orchestrator/node_modules/aglio/node_modules/protagonist/build'\r\ngyp ERR! build error \r\ngyp ERR! stack Error: `make` failed with exit code: 2\r\ngyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)\r\ngyp ERR! stack     at ChildProcess.emit (events.js:110:17)\r\ngyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1067:12)\r\ngyp ERR! System Linux 3.18.6-1-ARCH\r\ngyp ERR! command \"node\" \"/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\"\r\ngyp ERR! cwd /home/luke/Development/paz/paz-orchestrator/node_modules/aglio/node_modules/protagonist\r\ngyp ERR! node -v v0.12.0\r\ngyp ERR! node-gyp -v v1.0.2\r\ngyp ERR! not ok \r\nnpm ERR! Linux 3.18.6-1-ARCH\r\nnpm ERR! argv \"/usr/bin/node\" \"/usr/bin/npm\" \"install\"\r\nnpm ERR! node v0.12.0\r\nnpm ERR! npm  v2.5.1\r\nnpm ERR! code ELIFECYCLE\r\n\r\nnpm ERR! protagonist@0.17.1 install: `node-gyp rebuild`\r\nnpm ERR! Exit status 1\r\nnpm ERR! \r\nnpm ERR! Failed at the protagonist@0.17.1 install script 'node-gyp rebuild'.\r\nnpm ERR! This is most likely a problem with the protagonist package,\r\nnpm ERR! not with npm itself.\r\nnpm ERR! Tell the author that this fails on your system:\r\nnpm ERR!     node-gyp rebuild\r\nnpm ERR! You can get their info via:\r\nnpm ERR!     npm owner ls protagonist\r\nnpm ERR! There is likely additional logging output above.\r\n\r\nnpm ERR! Please include the following file with any support request:\r\nnpm ERR!     /home/luke/Development/paz/paz-orchestrator/npm-debug.log\r\n```\r\n\r\nAs the output shows, I'm using Node.js 0.12.0 and npm 2.5.1. gcc version is  4.9.2.\r\n\r\nIf I downgrade to Node.js 0.10.36 it works fine."},"comment":{"url":"https://api.github.com/repos/apiaryio/protagonist/issues/comments/75440058","html_url":"https://github.com/apiaryio/protagonist/issues/43#issuecomment-75440058","issue_url":"https://api.github.com/repos/apiaryio/protagonist/issues/43","id":75440058,"user":{"login":"zdne","id":613617,"avatar_url":"https://avatars.githubusercontent.com/u/613617?v=3","gravatar_id":"","url":"https://api.github.com/users/zdne","html_url":"https://github.com/zdne","followers_url":"https://api.github.com/users/zdne/followers","following_url":"https://api.github.com/users/zdne/following{/other_user}","gists_url":"https://api.github.com/users/zdne/gists{/gist_id}","starred_url":"https://api.github.com/users/zdne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zdne/subscriptions","organizations_url":"https://api.github.com/users/zdne/orgs","repos_url":"https://api.github.com/users/zdne/repos","events_url":"https://api.github.com/users/zdne/events{/privacy}","received_events_url":"https://api.github.com/users/zdne/received_events","type":"User","site_admin":false},"created_at":"2015-02-22T15:20:50Z","updated_at":"2015-02-22T15:20:50Z","body":"Node > v0.11 isn't supported in the stable branch – see https://github.com/apiaryio/protagonist/issues/16 for details – "}}