bcle/fuse4js

Not compiling on most recent Node.JS

ajwinkworth opened this issue · 13 comments

Hi,

I have tried compiling on v0.11.13 and would not compile due to errors.

I then tried v0.8.7 which compiled fine without warnings.

I then tried v0.10.29 which compiled and worked with warnings.
Now using node v0.10.29

Error while using v0.11.13

ubuntu@ajw:~/fuseTest2$ npm install fuse4js
npm http GET https://registry.npmjs.org/fuse4js
npm http 304 https://registry.npmjs.org/fuse4js

> fuse4js@0.1.9 install /home/ubuntu/fuseTest2/node_modules/fuse4js
> node-gyp rebuild

make: Entering directory `/home/ubuntu/fuseTest2/node_modules/fuse4js/build'
  CXX(target) Release/obj.target/fuse4js/fuse4js.o
../fuse4js.cc:60:3: error: ‘uv_async_t’ does not name a type
   uv_async_t async;
   ^
../fuse4js.cc: In function ‘int f4js_rpc(fuseop_t, const char*)’:
../fuse4js.cc:185:23: error: ‘struct’ has no member named ‘async’
   uv_async_send(&f4js.async);
                       ^
../fuse4js.cc:185:28: error: ‘uv_async_send’ was not declared in this scope
   uv_async_send(&f4js.async);
                            ^
../fuse4js.cc: In function ‘void* fuse_thread(void*)’:
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::readlink’ [-Wmissing-field-initializers]
   struct fuse_operations ops = { 0 };
                                    ^
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::getdir’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::mknod’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::mkdir’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::unlink’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::rmdir’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::symlink’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::rename’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::link’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::chmod’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::chown’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::truncate’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::utime’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::open’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::read’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::write’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::statfs’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::flush’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::release’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::fsync’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::setxattr’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::getxattr’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::listxattr’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::removexattr’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::opendir’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::readdir’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::releasedir’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::fsyncdir’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::init’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::destroy’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::access’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::create’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::ftruncate’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::fgetattr’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::lock’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::utimens’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::bmap’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::flag_nullpath_ok’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::flag_nopath’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::flag_utime_omit_ok’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::flag_reserved’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::ioctl’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::poll’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::write_buf’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::read_buf’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::flock’ [-Wmissing-field-initializers]
../fuse4js.cc:376:36: warning: missing initializer for member ‘fuse_operations::fallocate’ [-Wmissing-field-initializers]
../fuse4js.cc: In function ‘void ConvertDate(v8::Handle&, std::string, timespec*)’:
../fuse4js.cc:416:33: error: ‘NewSymbol’ is not a member of ‘v8::String’
   Local prop = stat->Get(String::NewSymbol(name.c_str()));
                                 ^
../fuse4js.cc: At global scope:
../fuse4js.cc:431:31: error: ‘Arguments’ does not name a type
 void ProcessReturnValue(const Arguments& args)
                               ^
../fuse4js.cc:431:42: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
 void ProcessReturnValue(const Arguments& args)
                                          ^
../fuse4js.cc: In function ‘void ProcessReturnValue(const int&)’:
../fuse4js.cc:433:12: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
   if (args.Length() >= 1 && args[0]->IsNumber()) {
            ^
../fuse4js.cc:433:35: error: invalid types ‘const int[int]’ for array subscript
   if (args.Length() >= 1 && args[0]->IsNumber()) {
                                   ^
../fuse4js.cc:434:54: error: invalid types ‘const int[int]’ for array subscript
     Local retval = Local::Cast(args[0]);
                                                      ^
../fuse4js.cc: At global scope:
../fuse4js.cc:441:39: error: ‘Arguments’ does not name a type
 Handle GetAttrCompletion(const Arguments& args)
                                       ^
../fuse4js.cc:441:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
 Handle GetAttrCompletion(const Arguments& args)
                                                  ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h: In function ‘v8::Handle GetAttrCompletion(const int&)’:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:845:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../fuse4js.cc:443:15: error: within this context
   HandleScope scope;
               ^
../fuse4js.cc:445:36: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
   if (f4js_cmd.retval == 0 && args.Length() >= 2 && args[1]->IsObject()) {
                                    ^
../fuse4js.cc:445:59: error: invalid types ‘const int[int]’ for array subscript
   if (f4js_cmd.retval == 0 && args.Length() >= 2 && args[1]->IsObject()) {
                                                           ^
../fuse4js.cc:447:54: error: invalid types ‘const int[int]’ for array subscript
     Handle stat = Handle::Cast(args[1]);
                                                      ^
../fuse4js.cc:449:35: error: ‘NewSymbol’ is not a member of ‘v8::String’
     Local prop = stat->Get(String::NewSymbol("size"));
                                   ^
../fuse4js.cc:455:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("mode"));
                      ^
../fuse4js.cc:461:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("nlink"));
                      ^
../fuse4js.cc:467:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("uid"));
                      ^
../fuse4js.cc:473:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("gid"));
                      ^
../fuse4js.cc:492:16: error: ‘class v8::HandleScope’ has no member named ‘Close’
   return scope.Close(Undefined());
                ^
../fuse4js.cc:492:32: error: too few arguments to function ‘v8::Handle v8::Undefined(v8::Isolate*)’
   return scope.Close(Undefined());
                                ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:336:28: note: declared here
   friend Handle Undefined(Isolate* isolate);
                            ^
../fuse4js.cc: At global scope:
../fuse4js.cc:497:39: error: ‘Arguments’ does not name a type
 Handle ReadDirCompletion(const Arguments& args)
                                       ^
../fuse4js.cc:497:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
 Handle ReadDirCompletion(const Arguments& args)
                                                  ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h: In function ‘v8::Handle ReadDirCompletion(const int&)’:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:845:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../fuse4js.cc:499:15: error: within this context
   HandleScope scope;
               ^
../fuse4js.cc:501:36: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
   if (f4js_cmd.retval == 0 && args.Length() >= 2 && args[1]->IsArray()) {
                                    ^
../fuse4js.cc:501:59: error: invalid types ‘const int[int]’ for array subscript
   if (f4js_cmd.retval == 0 && args.Length() >= 2 && args[1]->IsArray()) {
                                                           ^
../fuse4js.cc:502:50: error: invalid types ‘const int[int]’ for array subscript
     Handle ar = Handle::Cast(args[1]);
                                                  ^
../fuse4js.cc:516:16: error: ‘class v8::HandleScope’ has no member named ‘Close’
   return scope.Close(Undefined());
                ^
../fuse4js.cc:516:32: error: too few arguments to function ‘v8::Handle v8::Undefined(v8::Isolate*)’
   return scope.Close(Undefined());
                                ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:336:28: note: declared here
   friend Handle Undefined(Isolate* isolate);
                            ^
../fuse4js.cc: At global scope:
../fuse4js.cc:521:38: error: ‘Arguments’ does not name a type
 Handle StatfsCompletion(const Arguments& args)
                                      ^
../fuse4js.cc:521:49: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
 Handle StatfsCompletion(const Arguments& args)
                                                 ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h: In function ‘v8::Handle StatfsCompletion(const int&)’:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:845:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../fuse4js.cc:523:15: error: within this context
   HandleScope scope;
               ^
../fuse4js.cc:525:36: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
   if (f4js_cmd.retval == 0 && args.Length() >= 2 && args[1]->IsObject()) {
                                    ^
../fuse4js.cc:525:59: error: invalid types ‘const int[int]’ for array subscript
   if (f4js_cmd.retval == 0 && args.Length() >= 2 && args[1]->IsObject()) {
                                                           ^
../fuse4js.cc:527:54: error: invalid types ‘const int[int]’ for array subscript
     Handle stat = Handle::Cast(args[1]);
                                                      ^
../fuse4js.cc:529:35: error: ‘NewSymbol’ is not a member of ‘v8::String’
     Local prop = stat->Get(String::NewSymbol("bsize"));
                                   ^
../fuse4js.cc:535:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("frsize"));
                      ^
../fuse4js.cc:541:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("blocks"));
                      ^
../fuse4js.cc:547:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("bfree"));
                      ^
../fuse4js.cc:553:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("bavail"));
                      ^
../fuse4js.cc:559:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("files"));
                      ^
../fuse4js.cc:565:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("ffree"));
                      ^
../fuse4js.cc:571:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("favail"));
                      ^
../fuse4js.cc:577:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("fsid"));
                      ^
../fuse4js.cc:583:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("flag"));
                      ^
../fuse4js.cc:589:22: error: ‘NewSymbol’ is not a member of ‘v8::String’
     prop = stat->Get(String::NewSymbol("namemax"));
                      ^
../fuse4js.cc:596:16: error: ‘class v8::HandleScope’ has no member named ‘Close’
   return scope.Close(Undefined());
                ^
../fuse4js.cc:596:32: error: too few arguments to function ‘v8::Handle v8::Undefined(v8::Isolate*)’
   return scope.Close(Undefined());
                                ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:336:28: note: declared here
   friend Handle Undefined(Isolate* isolate);
                            ^
../fuse4js.cc: At global scope:
../fuse4js.cc:601:40: error: ‘Arguments’ does not name a type
 Handle ReadLinkCompletion(const Arguments& args)
                                        ^
../fuse4js.cc:601:51: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
 Handle ReadLinkCompletion(const Arguments& args)
                                                   ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h: In function ‘v8::Handle ReadLinkCompletion(const int&)’:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:845:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../fuse4js.cc:603:15: error: within this context
   HandleScope scope;
               ^
../fuse4js.cc:605:36: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
   if (f4js_cmd.retval == 0 && args.Length() >= 2 && args[1]->IsString()) {
                                    ^
../fuse4js.cc:605:59: error: invalid types ‘const int[int]’ for array subscript
   if (f4js_cmd.retval == 0 && args.Length() >= 2 && args[1]->IsString()) {
                                                           ^
../fuse4js.cc:606:32: error: invalid types ‘const int[int]’ for array subscript
     String::Utf8Value av(args[1]);
                                ^
../fuse4js.cc:613:16: error: ‘class v8::HandleScope’ has no member named ‘Close’
   return scope.Close(Undefined());
                ^
../fuse4js.cc:613:32: error: too few arguments to function ‘v8::Handle v8::Undefined(v8::Isolate*)’
   return scope.Close(Undefined());
                                ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:336:28: note: declared here
   friend Handle Undefined(Isolate* isolate);
                            ^
../fuse4js.cc: At global scope:
../fuse4js.cc:618:39: error: ‘Arguments’ does not name a type
 Handle GenericCompletion(const Arguments& args)
                                       ^
../fuse4js.cc:618:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
 Handle GenericCompletion(const Arguments& args)
                                                  ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h: In function ‘v8::Handle GenericCompletion(const int&)’:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:845:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../fuse4js.cc:620:15: error: within this context
   HandleScope scope;
               ^
../fuse4js.cc:627:15: error: ‘uv_handle_t’ was not declared in this scope
     uv_unref((uv_handle_t*) &f4js.async);
               ^
../fuse4js.cc:627:27: error: expected primary-expression before ‘)’ token
     uv_unref((uv_handle_t*) &f4js.async);
                           ^
../fuse4js.cc:627:35: error: ‘struct’ has no member named ‘async’
     uv_unref((uv_handle_t*) &f4js.async);
                                   ^
../fuse4js.cc:627:40: error: ‘uv_unref’ was not declared in this scope
     uv_unref((uv_handle_t*) &f4js.async);
                                        ^
../fuse4js.cc:631:16: error: ‘class v8::HandleScope’ has no member named ‘Close’
   return scope.Close(Undefined());
                ^
../fuse4js.cc:631:32: error: too few arguments to function ‘v8::Handle v8::Undefined(v8::Isolate*)’
   return scope.Close(Undefined());
                                ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:336:28: note: declared here
   friend Handle Undefined(Isolate* isolate);
                            ^
../fuse4js.cc: At global scope:
../fuse4js.cc:636:42: error: ‘Arguments’ does not name a type
 Handle OpenCreateCompletion(const Arguments& args)
                                          ^
../fuse4js.cc:636:53: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
 Handle OpenCreateCompletion(const Arguments& args)
                                                     ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h: In function ‘v8::Handle OpenCreateCompletion(const int&)’:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:845:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../fuse4js.cc:638:15: error: within this context
   HandleScope scope;
               ^
../fuse4js.cc:640:36: error: request for member ‘Length’ in ‘args’, which is of non-class type ‘const int’
   if (f4js_cmd.retval == 0 && args.Length() >= 2 && args[1]->IsNumber()) {
                                    ^
../fuse4js.cc:640:59: error: invalid types ‘const int[int]’ for array subscript
   if (f4js_cmd.retval == 0 && args.Length() >= 2 && args[1]->IsNumber()) {
                                                           ^
../fuse4js.cc:641:58: error: invalid types ‘const int[int]’ for array subscript
     Local fileHandle = Local::Cast(args[1]);
                                                          ^
../fuse4js.cc:647:16: error: ‘class v8::HandleScope’ has no member named ‘Close’
   return scope.Close(Undefined());
                ^
../fuse4js.cc:647:32: error: too few arguments to function ‘v8::Handle v8::Undefined(v8::Isolate*)’
   return scope.Close(Undefined());
                                ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:336:28: note: declared here
   friend Handle Undefined(Isolate* isolate);
                            ^
../fuse4js.cc: At global scope:
../fuse4js.cc:652:36: error: ‘Arguments’ does not name a type
 Handle ReadCompletion(const Arguments& args)
                                    ^
../fuse4js.cc:652:47: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
 Handle ReadCompletion(const Arguments& args)
                                               ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h: In function ‘v8::Handle ReadCompletion(const int&)’:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:845:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../fuse4js.cc:654:15: error: within this context
   HandleScope scope;
               ^
../fuse4js.cc:657:59: error: no matching function for call to ‘Data(v8::Persistent&)’
     char *buffer_data = node::Buffer::Data(f4js.nodeBuffer);
                                                           ^
../fuse4js.cc:657:59: note: candidates are:
In file included from ../fuse4js.cc:24:0:
/home/ubuntu/.node-gyp/0.11.13/src/node_buffer.h:40:19: note: char* node::Buffer::Data(v8::Handle)
 NODE_EXTERN char* Data(v8::Handle val);
                   ^
/home/ubuntu/.node-gyp/0.11.13/src/node_buffer.h:40:19: note:   no known conversion for argument 1 from ‘v8::Persistent’ to ‘v8::Handle’
/home/ubuntu/.node-gyp/0.11.13/src/node_buffer.h:41:19: note: char* node::Buffer::Data(v8::Handle)
 NODE_EXTERN char* Data(v8::Handle val);
                   ^
/home/ubuntu/.node-gyp/0.11.13/src/node_buffer.h:41:19: note:   no known conversion for argument 1 from ‘v8::Persistent’ to ‘v8::Handle’
../fuse4js.cc:663:19: error: ‘class v8::Persistent’ has no member named ‘Dispose’
   f4js.nodeBuffer.Dispose();
                   ^
../fuse4js.cc:665:16: error: ‘class v8::HandleScope’ has no member named ‘Close’
   return scope.Close(Undefined());
                ^
../fuse4js.cc:665:32: error: too few arguments to function ‘v8::Handle v8::Undefined(v8::Isolate*)’
   return scope.Close(Undefined());
                                ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:336:28: note: declared here
   friend Handle Undefined(Isolate* isolate);
                            ^
../fuse4js.cc: At global scope:
../fuse4js.cc:670:37: error: ‘Arguments’ does not name a type
 Handle WriteCompletion(const Arguments& args)
                                     ^
../fuse4js.cc:670:48: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
 Handle WriteCompletion(const Arguments& args)
                                                ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h: In function ‘v8::Handle WriteCompletion(const int&)’:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:845:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../fuse4js.cc:672:15: error: within this context
   HandleScope scope;
               ^
../fuse4js.cc:674:19: error: ‘class v8::Persistent’ has no member named ‘Dispose’
   f4js.nodeBuffer.Dispose();
                   ^
../fuse4js.cc:676:16: error: ‘class v8::HandleScope’ has no member named ‘Close’
   return scope.Close(Undefined());
                ^
../fuse4js.cc:676:32: error: too few arguments to function ‘v8::Handle v8::Undefined(v8::Isolate*)’
   return scope.Close(Undefined());
                                ^
In file included from /home/ubuntu/.node-gyp/0.11.13/src/node.h:61:0,
                 from ../fuse4js.cc:23:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:336:28: note: declared here
   friend Handle Undefined(Isolate* isolate);
                            ^
../fuse4js.cc: At global scope:
../fuse4js.cc:682:24: error: variable or field ‘DispatchOp’ declared void
 static void DispatchOp(uv_async_t* handle, int status)
                        ^
../fuse4js.cc:682:24: error: ‘uv_async_t’ was not declared in this scope
../fuse4js.cc:682:36: error: ‘handle’ was not declared in this scope
 static void DispatchOp(uv_async_t* handle, int status)
                                    ^
../fuse4js.cc:682:44: error: expected primary-expression before ‘int’
 static void DispatchOp(uv_async_t* handle, int status)
                                            ^
../fuse4js.cc: In function ‘v8::Handle GetAttrCompletion(const int&)’:
../fuse4js.cc:493:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
../fuse4js.cc: In function ‘v8::Handle ReadDirCompletion(const int&)’:
../fuse4js.cc:517:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
../fuse4js.cc: In function ‘v8::Handle StatfsCompletion(const int&)’:
../fuse4js.cc:597:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
../fuse4js.cc: In function ‘v8::Handle ReadLinkCompletion(const int&)’:
../fuse4js.cc:614:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
../fuse4js.cc: In function ‘v8::Handle GenericCompletion(const int&)’:
../fuse4js.cc:632:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
../fuse4js.cc: In function ‘v8::Handle OpenCreateCompletion(const int&)’:
../fuse4js.cc:648:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
../fuse4js.cc: In function ‘v8::Handle ReadCompletion(const int&)’:
../fuse4js.cc:666:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
../fuse4js.cc: In function ‘v8::Handle WriteCompletion(const int&)’:
../fuse4js.cc:677:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
make: *** [Release/obj.target/fuse4js/fuse4js.o] Error 1
make: Leaving directory`/home/ubuntu/fuseTest2/node_modules/fuse4js/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/ubuntu/.nvm/v0.11.13/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1046:12)
gyp ERR! System Linux 3.13.0-24-generic
gyp ERR! command "node" "/home/ubuntu/.nvm/v0.11.13/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/ubuntu/fuseTest2/node_modules/fuse4js
gyp ERR! node -v v0.11.13
gyp ERR! node-gyp -v v0.13.0
gyp ERR! not ok
npm ERR! fuse4js@0.1.9 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the fuse4js@0.1.9 install script.
npm ERR! This is most likely a problem with the fuse4js package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls fuse4js
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.13.0-24-generic
npm ERR! command "/home/ubuntu/.nvm/v0.11.13/bin/node" "/home/ubuntu/.nvm/v0.11.13/bin/npm" "install" "fuse4js"
npm ERR! cwd /home/ubuntu/fuseTest2
npm ERR! node -v v0.11.13
npm ERR! npm -v 1.4.9
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/ubuntu/fuseTest2/npm-debug.log
npm ERR! not ok code 0


I do not yet know enough about native node.js extensions to know where to even start.
Kind Regards
Adam

After some investigation comments in issue #11 suggest integration of Nan would fix this with backwards compatibility. Seems like a reasonable option?

I get a slightly different error log:

bsp@q35:~ $ sudo npm install fuse4js
[sudo] password for bsp:                      
npm http GET https://registry.npmjs.org/fuse4js
npm http 200 https://registry.npmjs.org/fuse4js

> fuse4js@0.1.9 install /home/bsp/node_modules/fuse4js
> node-gyp rebuild

make: Entering directory '/home/bsp/node_modules/fuse4js/build'
  CXX(target) Release/obj.target/fuse4js/fuse4js.o
../fuse4js.cc: In function ‘void* fuse_thread(void*)’:
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::readlink’ [-Wmissing-field-initializers]
   struct fuse_operations ops = { 0 };
                                    ^
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::getdir’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::mknod’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::mkdir’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::unlink’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::rmdir’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::symlink’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::rename’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::link’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::chmod’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::chown’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::truncate’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::utime’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::open’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::read’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::write’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::statfs’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::flush’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::release’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::fsync’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::setxattr’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::getxattr’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::listxattr’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::removexattr’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::opendir’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::readdir’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::releasedir’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::fsyncdir’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::init’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::destroy’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::access’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::create’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::ftruncate’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::fgetattr’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::lock’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::utimens’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::bmap’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::flag_nullpath_ok’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::flag_nopath’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::flag_utime_omit_ok’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::flag_reserved’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::ioctl’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::poll’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::write_buf’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::read_buf’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::flock’ [-Wmissing-field-initializers]
../fuse4js.cc:368:36: warning: missing initializer for member ‘fuse_operations::fallocate’ [-Wmissing-field-initializers]
  SOLINK_MODULE(target) Release/obj.target/fuse4js.node
  SOLINK_MODULE(target) Release/obj.target/fuse4js.node: Finished
  COPY Release/fuse4js.node
make: Leaving directory '/home/bsp/node_modules/fuse4js/build'
fuse4js@0.1.9 node_modules/fuse4js

Is this related?

Any help is greatly appreciated. Trying to run https://github.com/mafintosh/torrent-mount without success so far. (nodejs 0.10.29~dfsg-1)

I'm also seeing this. Any luck finding a workaround?

+1 I have the same issue.

Same issue with Ubuntu 14.04 64bit using NodeJS v0.10.33 and NPM v1.4.28

I have the same issue with Ubuntu 14.04 64bit and nodeJs v0.10.33, too

I have found a fix on Mac OS Yosemite.

xcode-select --install

Thanks @jfroffice. That fixed if for me on Mavericks

So I've done most of the transfer to Nan because I'd like to see this work in 0.11/0.12.
EricTheMagician/fuse4js@0d0916b

I still have some compilation problems, but
I've opened an issue with nodejs/nan#220

Since it doesn't compile yet, it's not clear if I've broken anything while converting it to NAN.
So hopefully, this will work soon.

So, I got to compile on OSX with node 0.11.14 :)
Now on to testing
EricTheMagician/fuse4js@224d591

Any progress on this? I'm not able to build against v0.11.14 on Arch Linux. I can build against v0.10.29 and it seems to work.

thejinx0r's 0.11 branch builds fine for me on Arch Linux!

https://github.com/thejinx0r/fuse4js/tree/0.11

Try that one if you're having problems.

(Note: Once you've cloned the repo, you have to switch to the "0.11" branch by typing git checkout -b 0.11 origin/0.11)

Can this be merged?

Looks like somebody's already merged all the fixes into a single pull request! #31