Titanium JIRA Archive
Appcelerator Modules (MOD)

[MOD-2339] APS-SDK: Cannot build project

GitHub Issuen/a
TypeStory
PriorityHigh
StatusOpen
ResolutionUnresolved
Affected Version/sn/a
Fix Version/sn/a
Componentsn/a
Labelsn/a
ReporterHans Knöchel
AssigneeUnknown
Created2017-06-10T11:50:29.000+0000
Updated2018-03-06T18:52:16.000+0000

Description

When trying to build the [APS SDK](https://github.com/appcelerator/aps_sdk) from the source (using travis_build.sh or the platform-specific build.js, the build fails during the recompiling of the node-gyp module:
Hans-Macbook-Pro:ios hknoechel$ ./travis_build.sh 

Setting up the node modules for the build scripts

Installing APSCrypto library
./travis_build.sh: line 15: pushd: ios/framework/Libraries/APSCrypto/: No such file or directory

100.0%

./travis_build.sh: line 17: popd: directory stack empty Installing Node modules for Analytics ./travis_build.sh: line 20: cd: ios/support/analytics: No such file or directory npm WARN deprecated wrench@1.5.9: wrench.js is deprecated! You should check out fs-extra (https://github.com/jprichardson/node-fs-extra) for any operations you were using wrench for. Thanks for all the usage over the years. > ref@1.3.4 install /Users/hknoechel/Documents/appcelerator_modules/aps_sdk/ios/node_modules/ref > node-gyp rebuild CXX(target) Release/obj.target/binding/src/binding.o SOLINK_MODULE(target) Release/binding.node clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 [-Wdeprecated] > ffi@1.2.5 install /Users/hknoechel/Documents/appcelerator_modules/aps_sdk/ios/node_modules/ffi > node-gyp rebuild CC(target) Release/obj.target/ffi/deps/libffi/src/prep_cif.o CC(target) Release/obj.target/ffi/deps/libffi/src/types.o CC(target) Release/obj.target/ffi/deps/libffi/src/raw_api.o CC(target) Release/obj.target/ffi/deps/libffi/src/java_raw_api.o CC(target) Release/obj.target/ffi/deps/libffi/src/closures.o CC(target) Release/obj.target/ffi/deps/libffi/src/x86/ffi.o CC(target) Release/obj.target/ffi/deps/libffi/src/x86/ffi64.o CC(target) Release/obj.target/ffi/deps/libffi/src/x86/darwin.o CC(target) Release/obj.target/ffi/deps/libffi/src/x86/darwin64.o LIBTOOL-STATIC Release/libffi.a CXX(target) Release/obj.target/ffi_bindings/src/ffi.o In file included from ../src/ffi.cc:2: ../src/ffi.h:57:43: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'? static Handle<Value> FFIPrepCif(const Arguments& args); ^~~~~~~~~ v8::internal::Arguments /Users/hknoechel/.node-gyp/6.10.2/include/node/v8.h:147:7: note: 'v8::internal::Arguments' declared here class Arguments; ^ In file included from ../src/ffi.cc:2: ../src/ffi.h:58:46: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'? static Handle<Value> FFIPrepCifVar(const Arguments& args); ^~~~~~~~~ v8::internal::Arguments /Users/hknoechel/.node-gyp/6.10.2/include/node/v8.h:147:7: note: 'v8::internal::Arguments' declared here class Arguments; ^ In file included from ../src/ffi.cc:2: ../src/ffi.h:59:40: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'? static Handle<Value> FFICall(const Arguments& args); ^~~~~~~~~ v8::internal::Arguments /Users/hknoechel/.node-gyp/6.10.2/include/node/v8.h:147:7: note: 'v8::internal::Arguments' declared here class Arguments; ^ In file included from ../src/ffi.cc:2: ../src/ffi.h:60:45: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'? static Handle<Value> FFICallAsync(const Arguments& args); ^~~~~~~~~ v8::internal::Arguments /Users/hknoechel/.node-gyp/6.10.2/include/node/v8.h:147:7: note: 'v8::internal::Arguments' declared here class Arguments; ^ In file included from ../src/ffi.cc:2: ../src/ffi.h:64:40: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'? static Handle<Value> Strtoul(const Arguments& args); ^~~~~~~~~ v8::internal::Arguments /Users/hknoechel/.node-gyp/6.10.2/include/node/v8.h:147:7: note: 'v8::internal::Arguments' declared here class Arguments; ^ In file included from ../src/ffi.cc:2: ../src/ffi.h:94:41: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'? static Handle<Value> Callback(const Arguments& args); ^~~~~~~~~ v8::internal::Arguments /Users/hknoechel/.node-gyp/6.10.2/include/node/v8.h:147:7: note: 'v8::internal::Arguments' declared here class Arguments; ^ ../src/ffi.cc:19:15: error: calling a protected constructor of class 'v8::HandleScope' HandleScope scope; ^ /Users/hknoechel/.node-gyp/6.10.2/include/node/v8.h:915:13: note: declared protected here V8_INLINE HandleScope() {} ^ ../src/ffi.cc:21:3: error: unexpected namespace name 'Buffer': expected expression Buffer *buf = Buffer::New(ptr, length, wrap_pointer_cb, user_data); ^ ../src/ffi.cc:21:11: error: use of undeclared identifier 'buf' Buffer *buf = Buffer::New(ptr, length, wrap_pointer_cb, user_data); ^ ../src/ffi.cc:21:17: error: no matching function for call to 'New' Buffer *buf = Buffer::New(ptr, length, wrap_pointer_cb, user_data); ^~~~~~~~~~~ /Users/hknoechel/.node-gyp/6.10.2/include/node/node_buffer.h:34:40: note: candidate function not viable: requires at most 3 arguments, but 4 were provided NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /Users/hknoechel/.node-gyp/6.10.2/include/node/node_buffer.h:46:40: note: candidate function not viable: requires 3 arguments, but 4 were provided NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /Users/hknoechel/.node-gyp/6.10.2/include/node/node_buffer.h:39:40: note: candidate function not viable: requires 5 arguments, but 4 were provided NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /Users/hknoechel/.node-gyp/6.10.2/include/node/node_buffer.h:31:40: note: candidate function not viable: requires 2 arguments, but 4 were provided NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length); ^ ../src/ffi.cc:22:16: error: no member named 'Close' in 'v8::HandleScope' return scope.Close(buf->handle_); ~~~~~ ^ ../src/ffi.cc:22:22: error: use of undeclared identifier 'buf' return scope.Close(buf->handle_); ^ ../src/ffi.cc:28:33: error: too few arguments to function call, single argument 'isolate' was not specified Local<Object> o = Object::New(); ~~~~~~~~~~~ ^ /Users/hknoechel/.node-gyp/6.10.2/include/node/v8.h:3006:3: note: 'New' declared here static Local<Object> New(Isolate* isolate); ^ ../src/ffi.cc:31:18: error: no member named 'NewSymbol' in 'v8::String' o->Set(String::NewSymbol("dlopen"), WrapPointer((char *)dlopen)); ~~~~~~~~^ ../src/ffi.cc:32:18: error: no member named 'NewSymbol' in 'v8::String' o->Set(String::NewSymbol("dlclose"), WrapPointer((char *)dlclose)); ~~~~~~~~^ ../src/ffi.cc:33:18: error: no member named 'NewSymbol' in 'v8::String' o->Set(String::NewSymbol("dlsym"), WrapPointer((char *)dlsym)); ~~~~~~~~^ ../src/ffi.cc:34:18: error: no member named 'NewSymbol' in 'v8::String' o->Set(String::NewSymbol("dlerror"), WrapPointer((char *)dlerror)); ~~~~~~~~^ ../src/ffi.cc:36:23: error: no member named 'NewSymbol' in 'v8::String' target->Set(String::NewSymbol("StaticFunctions"), o); ~~~~~~~~^ ../src/ffi.cc:49:3: error: no matching function for call to 'NODE_SET_METHOD' NODE_SET_METHOD(target, "ffi_prep_cif", FFIPrepCif); ^~~~~~~~~~~~~~~ /Users/hknoechel/.node-gyp/6.10.2/include/node/node.h:269:25: note: expanded from macro 'NODE_SET_METHOD' #define NODE_SET_METHOD node::NODE_SET_METHOD ^~~~~~~~~~~~~~~~~~~~~ /Users/hknoechel/.node-gyp/6.10.2/include/node/node.h:257:13: note: candidate function not viable: no known conversion from 'Handle<v8::Value> (const v8::internal::Arguments &)' (aka 'v8::Local<v8::Value> (const v8::internal::Arguments &)') to 'v8::FunctionCallback' (aka 'void (*)(const FunctionCallbackInfo<v8::Value> &)') for 3rd argument inline void NODE_SET_METHOD(v8::Local<v8::Object> recv, ^ /Users/hknoechel/.node-gyp/6.10.2/include/node/node.h:244:13: note: candidate function not viable: no known conversion from 'Handle<v8::Value> (const v8::internal::Arguments &)' (aka 'v8::Local<v8::Value> (const v8::internal::Arguments &)') to 'v8::FunctionCallback' (aka 'void (*)(const FunctionCallbackInfo<v8::Value> &)') for 3rd argument inline void NODE_SET_METHOD(v8::Local<v8::Template> recv, ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make: *** [Release/obj.target/ffi_bindings/src/ffi.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:276:23) gyp ERR! stack at emitTwo (events.js:106:13) gyp ERR! stack at ChildProcess.emit (events.js:191:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12) gyp ERR! System Darwin 16.6.0 gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /Users/hknoechel/Documents/appcelerator_modules/aps_sdk/ios/node_modules/ffi gyp ERR! node -v v6.10.2 gyp ERR! node-gyp -v v3.4.0 gyp ERR! not ok Appcelerator-Framework@3.0.1 /Users/hknoechel/Documents/appcelerator_modules/aps_sdk/ios ├── colors@1.1.2 ├─┬ commander@2.9.0 │ └── graceful-readlink@1.0.1 ├── fibers@2.0.0 ├─┬ fields@0.1.24 │ ├── colors@0.6.2 │ ├── keypress@0.2.1 │ └── sprintf@0.1.5 ├─┬ program@0.1.0 │ ├── async@0.2.10 │ ├── ini@1.1.0 │ └─┬ tilde-expansion@0.0.0 │ └─┬ etc-passwd@0.0.1 │ └── lazylines@1.0.0 ├── semver@5.3.0 ├── validator@7.0.0 └── wrench@1.5.9 npm WARN Appcelerator-Framework@3.0.1 No repository field. npm WARN Appcelerator-Framework@3.0.1 No license field. npm ERR! Darwin 16.6.0 npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" npm ERR! node v6.10.2 npm ERR! npm v3.10.10 npm ERR! code ELIFECYCLE npm ERR! ffi@1.2.5 install: node-gyp rebuild npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the ffi@1.2.5 install script 'node-gyp rebuild'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the ffi 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 information on how to open an issue for this project with: npm ERR! npm bugs ffi npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls ffi npm ERR! There is likely additional logging output above.
I am using Node 6.10.2 and npm 3.10.10.

Comments

  1. Chris Barber 2017-06-10

    The reason this is failing is because the ffi module apparently doesn't support Node.js 6.10.2. According to the ffi readme, it only supports 0.10 and older, however they do test Node.js 6.x in their Travis CI build: https://travis-ci.org/node-ffi/node-ffi/builds/226530385. I'll have to investigate more when I have some time. Stay tuned.
  2. Chris Barber 2017-06-13

    I'm not sure which dependency is pulling in ffi@1.2.5, but ffi@1.2.5 is 4 years old and does not support Node.js 6. This is likely due to aps_sdk depending on a no-longer-maintained packages. The aps_sdk iOS scripts need to be updated. There are at least 3 NPM dependencies that are no longer maintained and have compatibility problems with newer Node.js versions. Until the scripts can be fixed/updated, you should use Node.js 0.10 and NPM 2 to build aps_sdk.

JSON Source