I compiled libav 9.10 from source (with the same configuration that successfully compiled on ubuntu), and navcodec failed to compile. Here are the logs.
> navcodec@0.3.7 install /Users/dscanlon/Dropbox/Present/dev/transcoder-worker/node_modules/navcodec
> node-gyp rebuild
CXX(target) Release/obj.target/navcodec/src/navcodec.o
../src/navcodec.cpp:59:70: warning: 'New' is deprecated [-Wdeprecated-declarations]
target->Set(String::NewSymbol("relocateMoov"), FunctionTemplate::New(RelocateMoov)->GetFunction());
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3354:48: note: 'New' declared here
V8_DEPRECATED(static Local<FunctionTemplate> New(
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
^
1 warning generated.
CXX(target) Release/obj.target/navcodec/src/navcodeccontext.o
../src/navcodeccontext.cpp:57:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
templ->SetAccessor(String::New("codec_type"), GetType, NoopSet);
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
V8_DEPRECATED(void SetAccessor(Handle<String> name,
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
^
../src/navcodeccontext.cpp:58:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
templ->SetAccessor(String::New("width"), GetWidth, NoopSet);
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
V8_DEPRECATED(void SetAccessor(Handle<String> name,
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
^
../src/navcodeccontext.cpp:59:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
templ->SetAccessor(String::New("height"), GetHeight, NoopSet);
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
V8_DEPRECATED(void SetAccessor(Handle<String> name,
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
^
../src/navcodeccontext.cpp:60:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
templ->SetAccessor(String::New("bit_rate"), GetBitRate, NoopSet);
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
V8_DEPRECATED(void SetAccessor(Handle<String> name,
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
^
../src/navcodeccontext.cpp:61:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
templ->SetAccessor(String::New("sample_fmt"), GetSampleFmt, NoopSet);
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
V8_DEPRECATED(void SetAccessor(Handle<String> name,
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
^
../src/navcodeccontext.cpp:62:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
templ->SetAccessor(String::New("sample_rate"), GetSampleRate, NoopSet);
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
V8_DEPRECATED(void SetAccessor(Handle<String> name,
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
^
../src/navcodeccontext.cpp:63:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
templ->SetAccessor(String::New("channels"), GetChannels, NoopSet);
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
V8_DEPRECATED(void SetAccessor(Handle<String> name,
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
^
../src/navcodeccontext.cpp:64:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
templ->SetAccessor(String::New("framerate"), GetFramerate, NoopSet);
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
V8_DEPRECATED(void SetAccessor(Handle<String> name,
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
^
../src/navcodeccontext.cpp:69:56: error: 'New' is a private member of 'v8::Persistent<v8::ObjectTemplate>'
NAVCodecContext::templ = Persistent<ObjectTemplate>::New(templ);
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:795:23: note: declared private here
V8_INLINE(static T* New(Isolate* isolate, T* that));
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:83:69: note: expanded from macro 'V8_INLINE'
#define V8_INLINE(declarator) inline __attribute__((always_inline)) declarator
^
../src/navcodeccontext.cpp:69:65: error: too few arguments to function call, expected 2, have 1
NAVCodecContext::templ = Persistent<ObjectTemplate>::New(templ);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:795:3: note: 'New' declared here
V8_INLINE(static T* New(Isolate* isolate, T* that));
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:83:31: note: expanded from macro 'V8_INLINE'
#define V8_INLINE(declarator) inline __attribute__((always_inline)) declarator
^
../src/navcodeccontext.cpp:75:45: error: 'operator->' is a private member of 'v8::Persistent<v8::ObjectTemplate>'
Local<Object> obj = NAVCodecContext::templ->NewInstance();
~~~~~~~~~~~~~~~~~~~~~~^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:784:16: note: declared private here
V8_INLINE(T* operator->() const) { return val_; }
^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:83:69: note: expanded from macro 'V8_INLINE'
#define V8_INLINE(declarator) inline __attribute__((always_inline)) declarator
^
../src/navcodeccontext.cpp:80:3: error: no matching function for call to 'NODE_SET_METHOD'
NODE_SET_METHOD(obj, "open", Open);
^~~~~~~~~~~~~~~
/Users/dscanlon/.node-gyp/0.11.6/src/node.h:159:25: note: expanded from macro 'NODE_SET_METHOD'
#define NODE_SET_METHOD node::NODE_SET_METHOD
^~~~~~~~~~~~~~~~~~~~~
/Users/dscanlon/.node-gyp/0.11.6/src/node.h:148:13: note: candidate function [with TypeName = v8::Local<v8::Object>]
not viable: no known conversion from 'Handle<v8::Value> (const v8::Arguments &)' to 'v8::FunctionCallback' (aka
'void (*)(const FunctionCallbackInfo<v8::Value> &)') for 3rd argument
inline void NODE_SET_METHOD(const TypeName& recv,
^
8 warnings and 4 errors generated.
make: *** [Release/obj.target/navcodec/src/navcodeccontext.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:106:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:790:12)
gyp ERR! System Darwin 13.0.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/dscanlon/Dropbox/Present/dev/transcoder-worker/node_modules/navcodec
gyp ERR! node -v v0.11.6
gyp ERR! node-gyp -v v0.10.9
gyp ERR! not ok
npm ERR! weird error 1
npm ERR! not ok code 0
I compiled libav 9.10 from source (with the same configuration that successfully compiled on ubuntu), and navcodec failed to compile. Here are the logs.
Any ideas what the issue could be?