Subject: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.

From: Mathieu Lirzin <[email-masked]>
Date: Fri, 07 Sep 2018 01:23:22 +0200

Hello,

[email-masked] (Ludovic Courtès) writes:

> Mathieu Lirzin <[email-masked]> skribis:
>
>> * gnu/packages/node.scm (node): Update to 10.6.0.
>
> I have it fail its tests like this:
>
> Building addon in /tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/addons/load-long-path
> Building addon in /tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/addons/make-callback
> Building addon in /tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/addons/make-callback-domain-warning
> /tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/tools/build-addons.js:58
> main(process.argv[3]).catch((err) => setImmediate(() => { throw err; }));
>                                                           ^
>
> Error: Command failed: /tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/out/Release/node /tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/deps/npm/node_modules/node-gyp/bin/node-gyp.js rebuild --directory=/tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/addons/buffer-free-callback
> Traceback (most recent call last):
>   File "/tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/deps/npm/node_modules/node-gyp/gyp/gyp_main.py", line 13, in <module>
>     import gyp
>   File "/tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py", line 8, in <module>
>     import gyp.input
> EOFError: EOF read where object expected
>
>     at ChildProcess.exithandler (child_process.js:291:12)
>     at ChildProcess.emit (events.js:182:13)
>     at maybeClose (internal/child_process.js:961:16)
>     at Process.ChildProcess._handle.onexit (internal/child_process.js:248:5)
> make[1]: *** [Makefile:345: test/addons/.buildstamp] Error 1
> make: *** [Makefile:266: test] Error 2
>
> Does this test pass for you?

I am pretty confident it worked before sending the patch.  But now it
fails with some crypto related errors during ‘make -s jstest’.

--8<---------------cut here---------------start------------->8---
=== release test-crypto-scrypt ===
Path: parallel/test-crypto-scrypt
/tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/common/index.js:752
        throw new assert.AssertionError({
        ^

AssertionError [ERR_ASSERTION]: Input A expected to strictly equal input B:
+ expected - actual ... Lines skipped

  Comparison {
-   message: 'error:060B50AC:digital envelope routines:EVP_PBE_scrypt:memory limit exceeded',
+   code: 'ERR_CRYPTO_SCRYPT_INVALID_PARAMETER',
+   message: 'Invalid scrypt parameter',
    type: [Function: Error] {
...
    }
  }
    at new AssertionError (internal/assert.js:268:11)
    at Object.innerFn (/tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/common/index.js:752:15)
    at expectedException (assert.js:489:19)
    at expectsError (assert.js:577:16)
    at Function.throws (assert.js:608:3)
    at Object.expectsError (/tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/common/index.js:764:12)
    at Object.<anonymous> (/tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/parallel/test-crypto-scrypt.js:126:10)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
Command: out/Release/node /tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/parallel/test-crypto-scrypt.js
=== release test-tls-passphrase ===
Path: parallel/test-tls-passphrase
assert.js:578
    throw actual;
    ^

Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt
    at Object.createSecureContext (_tls_common.js:144:17)
    at Object.exports.connect (_tls_wrap.js:1119:48)
    at /tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/parallel/test-tls-passphrase.js:228:7
    at getActual (assert.js:497:5)
    at Function.throws (assert.js:608:24)
    at Object.<anonymous> (/tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/parallel/test-tls-passphrase.js:227:8)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
Command: out/Release/node /tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/parallel/test-tls-passphrase.js
=== release test-tls-server-verify ===
Path: parallel/test-tls-server-verify
0 0   connecting with agent1
0 1   connecting with agent2
0 2   connecting with agent3
0 3   connecting with nocert
1 0   connecting with agent1
1 1   connecting with agent2
1 2   connecting with agent3
1 3   connecting with nocert
2 0   connecting with agent1
2 1   connecting with agent2
2 2   connecting with agent3
2 3   connecting with nocert
3 0   connecting with agent1
3 1   connecting with agent2
3 2   connecting with agent3
3 3   connecting with nocert
4 0   connecting with agent1
4 1   connecting with agent2
4 2   connecting with agent3
4 3   connecting with nocert
5 0   connecting with agent1
5 1   connecting with agent2
5 2   connecting with agent3
5 3   connecting with agent4
5 4   connecting with nocert
0 Running 'Do not request certs. Everyone is unauthorized.'
0 - unauthed connection: null
0 - unauthed connection: null
0 - unauthed connection: null
0 0   * unauthed
0 1   * unauthed
0 2   * unauthed
0 - unauthed connection: null
0 3   * unauthed
1 Running 'Allow both authed and unauthed connections with CA1'
1 - authed connection: agent1
1 - unauthed connection: DEPTH_ZERO_SELF_SIGNED_CERT
1 - unauthed connection: UNABLE_TO_VERIFY_LEAF_SIGNATURE
1 0   * authed
1 1   * unauthed
1 2   * unauthed
1 - unauthed connection: UNABLE_TO_GET_ISSUER_CERT
1 3   * unauthed
2 Running 'Do not request certs at connection. Do that later'
2 - connected, renegotiating
2 - authed connection: agent1
2 0   * authed
2 - unauthed connection: null
2 1   * unauthed
2 - unauthed connection: null
2 2   * unauthed
2 - unauthed connection: null
2 3   * unauthed
3 Running 'Allow only authed connections with CA1'
3 - authed connection: agent1
3 0   * authed
4 Running 'Allow only authed connections with CA1 and CA2'
4 - authed connection: agent1
4 0   * authed
4 - authed connection: agent3
4 2   * authed
5 Running 'Allow only certs signed by CA2 but not in the CRL'
assert.js:79
  throw new AssertionError(obj);
  ^

AssertionError [ERR_ASSERTION]: 5 2 agent3 rejected, but should NOT have been
    at ChildProcess.<anonymous> (/tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/parallel/test-tls-server-verify.js:232:14)
    at ChildProcess.emit (events.js:182:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:237:12)
Command: out/Release/node /tmp/guix-build-node-10.6.0.drv-0/node-v10.6.0/test/parallel/test-tls-server-verify.js
[18:56|% 100|+ 2306|-   3]: Done
make[1]: *** [Makefile:256: jstest] Error 1
make: *** [Makefile:270: test] Error 2
--8<---------------cut here---------------end--------------->8---

I have tried to build 10.9.0 which has been released and the test suite
fails because of network access.

--8<---------------cut here---------------start------------->8---
make -s build-addons
  touch d9f90e808e8e700c15c35c2d7be302e61a333778.intermediate
  touch 6843310704f7b860e12805ed03c0ca2ab1bcdadb.intermediate
  LD_LIBRARY_PATH=/tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/lib.host:/tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../.; mkdir -p /tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/obj/gen/src/node/inspector/protocol; python tools/inspector_protocol/CodeGenerator.py --jinja_dir tools/inspector_protocol/.. --output_base "/tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/obj/gen/src/" --config "/tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/obj/gen/node_protocol_config.json"
  LD_LIBRARY_PATH=/tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/lib.host:/tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps/v8/gypfiles; mkdir -p /tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/obj/gen/src/inspector/protocol /tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/obj/gen/include/inspector; python ../third_party/inspector_protocol/CodeGenerator.py --jinja_dir ../third_party --output_base "/tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/obj/gen/src/inspector" --config ../src/inspector/inspector_protocol_config.json
  touch f70a2bc83365ae821b54e7787433d4a600b5cf5e.intermediate
  LD_LIBRARY_PATH=/tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/lib.host:/tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps/v8/gypfiles; mkdir -p /tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/obj/gen/torque-generated; "/tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/torque" ../src/builtins/base.tq ../src/builtins/array.tq ../src/builtins/typed-array.tq -o "/tmp/guix-build-node-10.9.0.drv-0/node-v10.9.0/out/Release/obj/gen/torque-generated"
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://registry.npmjs.org/rehype-raw failed, reason: getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:443
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network 
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'
make[1]: *** [Makefile:1075: tools/doc/node_modules] Error 1
make: *** [Makefile:271: test] Error 2

Test suite failed, dumping logs.
--8<---------------cut here---------------end--------------->8---

Anyway I am giving up.

Sorry for the delay.

-- 
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37