hack
hack copied to clipboard
warning Error: running install script for optional dependency scrypt
When we run npm install
or yarn
on the Node v12, it omits the Warning.
[4/15] ⠐ scrypt
warning Error running install script for optional dependency: "/workspaces/hack/website/node_modules/scrypt: Command failed.
Exit code: 1
Command: node-gyp rebuild
Arguments:
Directory: /workspaces/hack/website/node_modules/scrypt
Output:
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp info find Python using Python version 2.7.13 found at \"/usr/bin/python\"
gyp info spawn /usr/bin/python
gyp info spawn args [
gyp info spawn args '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/workspaces/hack/website/node_modules/scrypt/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/root/.cache/node-gyp/12.14.1/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/root/.cache/node-gyp/12.14.1',
gyp info spawn args '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/root/.cache/node-gyp/12.14.1/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/workspaces/hack/website/node_modules/scrypt',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/workspaces/hack/website/node_modules/scrypt/build'
SOLINK_MODULE(target) Release/obj.target/copied_files.node
COPY Release/copied_files.node
CC(target) Release/obj.target/scrypt_wrapper/src/util/memlimit.o
CC(target) Release/obj.target/scrypt_wrapper/src/scryptwrapper/keyderivation.o
CC(target) Release/obj.target/scrypt_wrapper/src/scryptwrapper/pickparams.o
CC(target) Release/obj.target/scrypt_wrapper/src/scryptwrapper/hash.o
AR(target) Release/obj.target/scrypt_wrapper.a
COPY Release/scrypt_wrapper.a
CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/lib/crypto/crypto_scrypt.o
CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/lib/crypto/crypto_scrypt_smix.o
CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/libcperciva/util/warnp.o
CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/libcperciva/alg/sha256.o
CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/libcperciva/util/insecure_memzero.o
CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/lib/scryptenc/scryptenc_cpuperf.o
AR(target) Release/obj.target/scrypt_lib.a
COPY Release/scrypt_lib.a
CXX(target) Release/obj.target/scrypt/src/node-boilerplate/scrypt_common.o
CXX(target) Release/obj.target/scrypt/src/node-boilerplate/scrypt_params_async.o
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:0,
from ../src/node-boilerplate/inc/scrypt_params_async.h:28,
from ../src/node-boilerplate/scrypt_params_async.cc:4:
../src/node-boilerplate/inc/scrypt_common.h: In constructor 'NodeScrypt::Params::Params(const v8::Local<v8::Object>&)':
../src/node-boilerplate/inc/scrypt_common.h:39:48: warning: 'v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
N(obj->Get(Nan::New(\"N\").ToLocalChecked())->Uint32Value()),
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0,
from /root/.cache/node-gyp/12.14.1/include/node/v8.h:25,
from /root/.cache/node-gyp/12.14.1/include/node/node.h:63,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:3457:51: note: declared here
V8_DEPRECATED(\"Use maybe version\", Local<Value> Get(Local<Value> key));
^
/root/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:0,
from ../src/node-boilerplate/inc/scrypt_params_async.h:28,
from ../src/node-boilerplate/scrypt_params_async.cc:4:
../src/node-boilerplate/inc/scrypt_common.h:39:63: error: no matching function for call to 'v8::Value::Uint32Value()'
N(obj->Get(Nan::New(\"N\").ToLocalChecked())->Uint32Value()),
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/node.h:63:0,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2611:41: note: candidate: v8::Maybe<unsigned int> v8::Value::Uint32Value(v8::Local<v8::Context>) const
V8_WARN_UNUSED_RESULT Maybe<uint32_t> Uint32Value(
^~~~~~~~~~~
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2611:41: note: candidate expects 1 argument, 0 provided
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:0,
from ../src/node-boilerplate/inc/scrypt_params_async.h:28,
from ../src/node-boilerplate/scrypt_params_async.cc:4:
../src/node-boilerplate/inc/scrypt_common.h:40:48: warning: 'v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
r(obj->Get(Nan::New(\"r\").ToLocalChecked())->Uint32Value()),
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0,
from /root/.cache/node-gyp/12.14.1/include/node/v8.h:25,
from /root/.cache/node-gyp/12.14.1/include/node/node.h:63,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:3457:51: note: declared here
V8_DEPRECATED(\"Use maybe version\", Local<Value> Get(Local<Value> key));
^
/root/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:0,
from ../src/node-boilerplate/inc/scrypt_params_async.h:28,
from ../src/node-boilerplate/scrypt_params_async.cc:4:
../src/node-boilerplate/inc/scrypt_common.h:40:63: error: no matching function for call to 'v8::Value::Uint32Value()'
r(obj->Get(Nan::New(\"r\").ToLocalChecked())->Uint32Value()),
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/node.h:63:0,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2611:41: note: candidate: v8::Maybe<unsigned int> v8::Value::Uint32Value(v8::Local<v8::Context>) const
V8_WARN_UNUSED_RESULT Maybe<uint32_t> Uint32Value(
^~~~~~~~~~~
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2611:41: note: candidate expects 1 argument, 0 provided
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:0,
from ../src/node-boilerplate/inc/scrypt_params_async.h:28,
from ../src/node-boilerplate/scrypt_params_async.cc:4:
../src/node-boilerplate/inc/scrypt_common.h:41:48: warning: 'v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
p(obj->Get(Nan::New(\"p\").ToLocalChecked())->Uint32Value()) {}
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0,
from /root/.cache/node-gyp/12.14.1/include/node/v8.h:25,
from /root/.cache/node-gyp/12.14.1/include/node/node.h:63,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:3457:51: note: declared here
V8_DEPRECATED(\"Use maybe version\", Local<Value> Get(Local<Value> key));
^
/root/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:0,
from ../src/node-boilerplate/inc/scrypt_params_async.h:28,
from ../src/node-boilerplate/scrypt_params_async.cc:4:
../src/node-boilerplate/inc/scrypt_common.h:41:63: error: no matching function for call to 'v8::Value::Uint32Value()'
p(obj->Get(Nan::New(\"p\").ToLocalChecked())->Uint32Value()) {}
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/node.h:63:0,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2611:41: note: candidate: v8::Maybe<unsigned int> v8::Value::Uint32Value(v8::Local<v8::Context>) const
V8_WARN_UNUSED_RESULT Maybe<uint32_t> Uint32Value(
^~~~~~~~~~~
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2611:41: note: candidate expects 1 argument, 0 provided
In file included from ../src/node-boilerplate/inc/scrypt_params_async.h:28:0,
from ../src/node-boilerplate/scrypt_params_async.cc:4:
../src/node-boilerplate/inc/scrypt_async.h: In member function 'virtual void ScryptAsyncWorker::HandleErrorCallback()':
../src/node-boilerplate/inc/scrypt_async.h:53:29: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
callback->Call(1, argv);
^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:1:0:
../../nan/nan.h:1742:3: note: declared here
Call(int argc, v8::Local<v8::Value> argv[]) const {
^~~~
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:0:
../src/node-boilerplate/inc/scrypt_params_async.h: In constructor 'ScryptParamsAsyncWorker::ScryptParamsAsyncWorker(Nan::NAN_METHOD_ARGS_TYPE)':
../src/node-boilerplate/inc/scrypt_params_async.h:35:36: error: no matching function for call to 'v8::Value::NumberValue()'
maxtime(info[0]->NumberValue()),
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/node.h:63:0,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2608:39: note: candidate: v8::Maybe<double> v8::Value::NumberValue(v8::Local<v8::Context>) const
V8_WARN_UNUSED_RESULT Maybe<double> NumberValue(Local<Context> context) const;
^~~~~~~~~~~
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2608:39: note: candidate expects 1 argument, 0 provided
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:0:
../src/node-boilerplate/inc/scrypt_params_async.h:36:39: error: no matching function for call to 'v8::Value::NumberValue()'
maxmemfrac(info[1]->NumberValue()),
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/node.h:63:0,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2608:39: note: candidate: v8::Maybe<double> v8::Value::NumberValue(v8::Local<v8::Context>) const
V8_WARN_UNUSED_RESULT Maybe<double> NumberValue(Local<Context> context) const;
^~~~~~~~~~~
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2608:39: note: candidate expects 1 argument, 0 provided
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:0:
../src/node-boilerplate/inc/scrypt_params_async.h:37:36: error: no matching function for call to 'v8::Value::IntegerValue()'
maxmem(info[2]->IntegerValue()),
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/node.h:63:0,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2609:40: note: candidate: v8::Maybe<long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const
V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
^~~~~~~~~~~~
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2609:40: note: candidate expects 1 argument, 0 provided
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:0:
../src/node-boilerplate/inc/scrypt_params_async.h:38:39: error: no matching function for call to 'v8::Value::IntegerValue()'
osfreemem(info[3]->IntegerValue())
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/node.h:63:0,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2609:40: note: candidate: v8::Maybe<long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const
V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
^~~~~~~~~~~~
/root/.cache/node-gyp/12.14.1/include/node/v8.h:2609:40: note: candidate expects 1 argument, 0 provided
../src/node-boilerplate/scrypt_params_async.cc: In member function 'virtual void ScryptParamsAsyncWorker::HandleOKCallback()':
../src/node-boilerplate/scrypt_params_async.cc:23:67: warning: 'bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
obj->Set(Nan::New(\"N\").ToLocalChecked(), Nan::New<Integer>(logN));
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0,
from /root/.cache/node-gyp/12.14.1/include/node/v8.h:25,
from /root/.cache/node-gyp/12.14.1/include/node/node.h:63,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:3403:22: note: declared here
bool Set(Local<Value> key, Local<Value> value));
^
/root/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/node-boilerplate/scrypt_params_async.cc:24:64: warning: 'bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
obj->Set(Nan::New(\"r\").ToLocalChecked(), Nan::New<Integer>(r));
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0,
from /root/.cache/node-gyp/12.14.1/include/node/v8.h:25,
from /root/.cache/node-gyp/12.14.1/include/node/node.h:63,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:3403:22: note: declared here
bool Set(Local<Value> key, Local<Value> value));
^
/root/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/node-boilerplate/scrypt_params_async.cc:25:64: warning: 'bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)' is deprecated: Use maybe version [-Wdeprecated-declarations]
obj->Set(Nan::New(\"p\").ToLocalChecked(), Nan::New<Integer>(p));
^
In file included from /root/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0,
from /root/.cache/node-gyp/12.14.1/include/node/v8.h:25,
from /root/.cache/node-gyp/12.14.1/include/node/node.h:63,
from ../../nan/nan.h:56,
from ../src/node-boilerplate/scrypt_params_async.cc:1:
/root/.cache/node-gyp/12.14.1/include/node/v8.h:3403:22: note: declared here
bool Set(Local<Value> key, Local<Value> value));
^
/root/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro 'V8_DEPRECATED'
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/node-boilerplate/scrypt_params_async.cc:32:25: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
callback->Call(2, argv);
^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:1:0:
../../nan/nan.h:1742:3: note: declared here
Call(int argc, v8::Local<v8::Value> argv[]) const {
^~~~
scrypt.target.mk:129: recipe for target 'Release/obj.target/scrypt/src/node-boilerplate/scrypt_params_async.o' failed
make: Leaving directory '/workspaces/hack/website/node_modules/scrypt/build'
make: *** [Release/obj.target/scrypt/src/node-boilerplate/scrypt_params_async.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:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:223:5)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 4.19.76-linuxkit
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 /workspaces/hack/website/node_modules/scrypt
success Saved lockfile.
Done in 120.42s.
root@13f6fdd102a8:/workspaces/hack/website#
It's somewhat overwhelming who tries to contribute to the repository. This happens because @aragon/os is specified as a dependency, which uses Nodev8 as a runtime. *Node v10 works
It also happens on the https://github.com/aragon/aragon because of the same reason. There might be other repositories.
We can see on the CI too. In Install dependencies step: https://github.com/aragon/aragon/runs/690392490?check_suite_focus=true
I'm still exploring the repositories, so I can't say the best way to fix it, but I made it as a reminder. If there are any suggestions, I can handle that.
~~Ah yes, we must have updated packages/etc. for this repo to be compatible with node 12 (lots of older crypto libraries broke with node 12 and scrypt
).~~
~~In the meantime, if you use nvm
or another node package manager, you can downgrade to 11 or 10 and it should work! But yes, definitely something for us to fix :).~~
I believe building this on node 12 will work, but just scrypt
complains. It's partly due to the @aragon/os
package containing too much—it shouldn't be bundling the crypto dependencies (truffle-hd-provider, etc.) and that will be fixed soon.
Thanks for the quick response! So it's a popular pitfall:)
Good to hear that it will be fixed!