npm install xud and npm install -g xud both end up in:
```bash
[email protected] install /home/kilrau/node_modules/grpc
node-pre-gyp install --fallback-to-build --library=static_library
node-pre-gyp WARN Using needle for node-pre-gyp https download
[grpc] Success: "/home/kilrau/node_modules/grpc/src/node/extension_binary/node-v64-linux-x64-glibc/grpc_node.node" is installed via remote
[email protected] install /home/kilrau/node_modules/secp256k1
npm run rebuild || echo "Secp256k1 bindings compilation fail. Pure JS implementation will be used."
[email protected] rebuild /home/kilrau/node_modules/secp256k1
node-gyp rebuild
make: Entering directory '/home/kilrau/node_modules/secp256k1/build'
CXX(target) Release/obj.target/secp256k1/src/addon.o
CXX(target) Release/obj.target/secp256k1/src/privatekey.o
../src/privatekey.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE privateKeyNegate(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/privatekey.cc:73:30: warning: ignoring return value of ‘int secp256k1_ec_privkey_negate(const secp256k1_context, unsigned char)’, declared with attribute warn_unused_result [-Wunused-result]
secp256k1_ec_privkey_negate(secp256k1ctx, &private_key[0]);
~~~~~^~~~~~~
CXX(target) Release/obj.target/secp256k1/src/publickey.o
CXX(target) Release/obj.target/secp256k1/src/signature.o
CXX(target) Release/obj.target/secp256k1/src/ecdsa.o
CXX(target) Release/obj.target/secp256k1/src/ecdh.o
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/src/secp256k1.o
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ec_pubkey_parse’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘pubkey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:154:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(pubkey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘input’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:156:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(input != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ec_pubkey_serialize’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘output’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:175:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(output != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘outputlen’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:171:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(outputlen != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘pubkey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:177:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(pubkey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_signature_parse_der’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘sig’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:216:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(sig != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘input’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:217:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(input != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_signature_parse_compact’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘sig’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:234:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(sig != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘input64’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:235:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(input64 != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_signature_serialize_der’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘output’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:253:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(output != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘outputlen’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:254:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(outputlen != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘sig’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:255:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(sig != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_signature_serialize_compact’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘output64’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:265:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(output64 != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘sig’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:266:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(sig != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_signature_normalize’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘sigin’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:279:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(sigin != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_verify’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘sig’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:300:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(sig != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘msg32’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:299:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(msg32 != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘pubkey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:301:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(pubkey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_sign’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘signature’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:353:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(signature != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘msg32’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:352:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(msg32 != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘seckey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:354:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(seckey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ec_seckey_verify’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘seckey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:396:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(seckey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ec_pubkey_create’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘pubkey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:411:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(pubkey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘seckey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:414:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(seckey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ec_privkey_negate’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘seckey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:430:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(seckey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ec_pubkey_negate’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘pubkey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:443:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(pubkey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ec_privkey_tweak_add’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘seckey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:460:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(seckey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘tweak’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:461:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(tweak != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ec_pubkey_tweak_add’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘pubkey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:484:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(pubkey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘tweak’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:485:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(tweak != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ec_privkey_tweak_mul’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘seckey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:507:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(seckey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘tweak’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:508:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(tweak != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ec_pubkey_tweak_mul’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘pubkey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:530:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(pubkey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘tweak’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:531:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(tweak != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ec_pubkey_combine’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘pubnonce’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:559:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(pubnonce != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘pubnonces’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/secp256k1.c:562:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(pubnonces != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_recoverable_signature_parse_compact’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘sig’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:44:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(sig != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘input64’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:45:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(input64 != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_recoverable_signature_serialize_compact’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘output64’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:64:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(output64 != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘recid’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:66:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(recid != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘sig’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:65:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(sig != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_recoverable_signature_convert’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘sig’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:79:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(sig != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘sigin’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:80:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(sigin != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_sign_recoverable’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘signature’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:132:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(signature != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘msg32’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:131:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(msg32 != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘seckey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:133:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(seckey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c: In function ‘secp256k1_ecdsa_recover’:
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘pubkey’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:179:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(pubkey != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘signature’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:178:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(signature != NULL);
^~~
../src/secp256k1-src/src/secp256k1.c:22:8: warning: nonnull argument ‘msg32’ compared to NULL [-Wnonnull-compare]
if (EXPECT(!(cond), 0)) { \
^
../src/secp256k1-src/src/modules/recovery/main_impl.h:177:5: note: in expansion of macro ‘ARG_CHECK’
ARG_CHECK(msg32 != NULL);
^~~
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/contrib/lax_der_parsing.o
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/contrib/lax_der_privatekey_parsing.o
SOLINK_MODULE(target) Release/obj.target/secp256k1.node
COPY Release/secp256k1.node
make: Leaving directory '/home/kilrau/node_modules/secp256k1/build'
[email protected] postinstall /home/kilrau/node_modules/xud
npm run compile
[email protected] compile /home/kilrau/node_modules/xud
cross-os precompile && tsc && cross-os postcompile
lib/grpc/webproxy/GrpcWebProxyServer.ts:36:7 - error TS2532: Object is possibly 'undefined'.
36 this.server.on('error', (err) => {
~~~
lib/p2p/Pool.ts:230:15 - error TS2459: Type 'string | AddressInfo' has no property 'address' and no string index signature.
230 const { address, port } = this.server.address();
~~~
lib/p2p/Pool.ts:230:24 - error TS2459: Type 'string | AddressInfo' has no property 'port' and no string index signature.
230 const { address, port } = this.server.address();
~~~~
lib/proto/annotations_pb.d.ts:4:23 - error TS2307: Cannot find module 'google-protobuf'.
4 import * as jspb from "google-protobuf";
~~~~~
lib/proto/annotations_pb.d.ts:6:48 - error TS2307: Cannot find module 'google-protobuf/google/protobuf/descriptor_pb'.
6 import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb";
~~~~~~~~~~~
lib/proto/google/api/http_pb.d.ts:4:23 - error TS2307: Cannot find module 'google-protobuf'.
4 import * as jspb from "google-protobuf";
~~~~~
lib/proto/google/protobuf/descriptor_pb.d.ts:4:23 - error TS2307: Cannot find module 'google-protobuf'.
4 import * as jspb from "google-protobuf";
~~~~~
lib/proto/lndrpc_pb.d.ts:4:23 - error TS2307: Cannot find module 'google-protobuf'.
4 import * as jspb from "google-protobuf";
~~~~~
lib/proto/xudrpc_pb.d.ts:4:23 - error TS2307: Cannot find module 'google-protobuf'.
4 import * as jspb from "google-protobuf";
~~~~~
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! [email protected] compile: cross-os precompile && tsc && cross-os postcompile
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the [email protected] compile script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?
npm ERR! A complete log of this run can be found in:
npm ERR! /home/kilrau/.npm/_logs/2018-08-07T04_46_27_609Z-debug.log
npm WARN enoent ENOENT: no such file or directory, open '/home/kilrau/package.json'
npm WARN kilrau No description
npm WARN kilrau No repository field.
npm WARN kilrau No README data
npm WARN kilrau No license field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! [email protected] postinstall: npm run compile
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/kilrau/.npm/_logs/2018-08-07T04_46_29_126Z-debug.log
···
When I tried sudo npm -g install xud I ran into permission problems but those could be solved by adding the flag --unsafe-perm. Now I am stuck with:
> [email protected] postinstall /usr/lib/node_modules/xud
> npm run compile
> [email protected] compile /usr/lib/node_modules/xud
> cross-os precompile && tsc && cross-os postcompile
module.js:549
throw err;
^
Error: Cannot find module '/usr/package.json'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Socket.<anonymous> (/usr/lib/node_modules/xud/node_modules/cross-os/source/index.js:12:17)
at emitOne (events.js:121:20)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:246:13)
at Socket.Readable.push (_stream_readable.js:208:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] compile: `cross-os precompile && tsc && cross-os postcompile`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] compile script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
After doing some research I discovered that other TypeScript projects are publishing the compiled JavaScript code on NPM and are adding this to the scripts in package.json: "prepublishOnly": "npm run compile" @sangaman
Yes, I've thought we ought to start doing this, because there's really not a need for non-developers to have the typescript files (or the typescript npm package). Maybe I'll change our scripts (adding a prepublish script to compile the javascript) and add an .npmignore file and see about publishing a pre-alpha.3 that can be installed properly via npm.
Noting that we want to ensure that we can install via the global -g flag and that xud & xucli get added to the PATH.
$ sudo npm install -g @sangaman/xud
/usr/bin/xud -> /usr/lib/node_modules/@sangaman/xud/bin/xud
/usr/bin/xucli -> /usr/lib/node_modules/@sangaman/xud/bin/xucli
> [email protected] install /usr/lib/node_modules/@sangaman/xud/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library
node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v57 ABI, glibc) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error EACCES: permission denied, mkdir '/usr/lib/node_modules/@sangaman/xud/node_modules/grpc/src/node'
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/@sangaman/xud/node_modules/grpc/build'
gyp ERR! System Linux 4.15.0-32-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--library=static_library" "--module=/usr/lib/node_modules/@sangaman/xud/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node" "--module_name=grpc_node" "--module_path=/usr/lib/node_modules/@sangaman/xud/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc" "--napi_version=3" "--node_abi_napi=napi"
gyp ERR! cwd /usr/lib/node_modules/@sangaman/xud/node_modules/grpc
gyp ERR! node -v v8.11.4
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --library=static_library --module=/usr/lib/node_modules/@sangaman/xud/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node --module_name=grpc_node --module_path=/usr/lib/node_modules/@sangaman/xud/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc --napi_version=3 --node_abi_napi=napi' (1)
node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/usr/lib/node_modules/@sangaman/xud/node_modules/grpc/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack at emitTwo (events.js:126:13)
node-pre-gyp ERR! stack at ChildProcess.emit (events.js:214:7)
node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:925:16)
node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
node-pre-gyp ERR! System Linux 4.15.0-32-generic
node-pre-gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/@sangaman/xud/node_modules/grpc/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--library=static_library"
node-pre-gyp ERR! cwd /usr/lib/node_modules/@sangaman/xud/node_modules/grpc
node-pre-gyp ERR! node -v v8.11.4
node-pre-gyp ERR! node-pre-gyp -v v0.10.3
node-pre-gyp ERR! not ok
Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --library=static_library --module=/usr/lib/node_modules/@sangaman/xud/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node --module_name=grpc_node --module_path=/usr/lib/node_modules/@sangaman/xud/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc --napi_version=3 --node_abi_napi=napi' (1)
npm WARN @exchangeunion/[email protected] requires a peer of [email protected] but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/@sangaman/xud/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-pre-gyp install --fallback-to-build --library=static_library`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/kilrau/.npm/_logs/2018-08-31T15_00_23_476Z-debug.log
After this is solved, update https://github.com/ExchangeUnion/xud/blob/master/instructions-for-devs.md#1-install
sudo npm i -g xud --unsafe-perm
Update readme once published in npm repo
I think the solution for now is the --unsafe-perm flag as you've pointed out. I believe this is needed due to the secp256k1 package dependency. It would be nice to figure out a way to install without needing a special flag, but perhaps good enough for now?
Most helpful comment
I think the solution for now is the
--unsafe-permflag as you've pointed out. I believe this is needed due to the secp256k1 package dependency. It would be nice to figure out a way to install without needing a special flag, but perhaps good enough for now?