[MOD-2339] APS-SDK: Cannot build project
GitHub Issue | n/a |
---|---|
Type | Story |
Priority | High |
Status | Open |
Resolution | Unresolved |
Affected Version/s | n/a |
Fix Version/s | n/a |
Components | n/a |
Labels | n/a |
Reporter | Hans Knöchel |
Assignee | Unknown |
Created | 2017-06-10T11:50:29.000+0000 |
Updated | 2018-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.
The reason this is failing is because the
ffi
module apparently doesn't support Node.js 6.10.2. According to theffi
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.I'm not sure which dependency is pulling in
ffi@1.2.5
, butffi@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.