fuse4js
fuse4js copied to clipboard
Not compiling on most recent Node.JS
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
> [email protected] 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<:object>&, 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<:value> 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
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
> [email protected] 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'
[email protected] 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. thejinx0r/fuse4js@0d0916b3661cac4ec498b562870f5bdc54bce5f2
I still have some compilation problems, but I've opened an issue with rvagg/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 thejinx0r/fuse4js@224d591bef8b25f4d6dd587d0df9c71150732951
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