Xud: Solve `npm install xud` error

Created on 7 Aug 2018  Â·  8Comments  Â·  Source: ExchangeUnion/xud

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

···

P1 bug

Most helpful comment

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?

All 8 comments

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

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?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

kilrau picture kilrau  Â·  6Comments

moshababo picture moshababo  Â·  3Comments

kilrau picture kilrau  Â·  6Comments

erkarl picture erkarl  Â·  6Comments

raladev picture raladev  Â·  4Comments