GNU bug report logs - #32095
[PATCH 0/2] Update libuv and node

Previous Next

Package: guix-patches;

Reported by: Mathieu Lirzin <mthl <at> gnu.org>

Date: Sun, 8 Jul 2018 15:18:02 UTC

Severity: normal

Tags: patch

Done: Marius Bakke <mbakke <at> fastmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 32095 in the body.
You can then email your comments to 32095 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Sun, 08 Jul 2018 15:18:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mathieu Lirzin <mthl <at> gnu.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 08 Jul 2018 15:18:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Lirzin <mthl <at> gnu.org>
To: guix-patches <at> gnu.org
Cc: Mathieu Lirzin <mthl <at> gnu.org>
Subject: [PATCH 0/2] Update libuv and node
Date: Sun,  8 Jul 2018 17:16:39 +0200
Node now requires a newer ‘libuv’ and doesn't build without ‘openssl-next’.

Mathieu Lirzin (2):
  gnu: libuv: Update to 1.21.0.
  gnu: node: Update to 10.6.0.

 gnu/packages/libevent.scm | 4 ++--
 gnu/packages/node.scm     | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

-- 
2.18.0





Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Sun, 08 Jul 2018 15:21:02 GMT) Full text and rfc822 format available.

Message #8 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Lirzin <mthl <at> gnu.org>
To: 32095 <at> debbugs.gnu.org
Cc: Mathieu Lirzin <mthl <at> gnu.org>
Subject: [PATCH 1/2] gnu: libuv: Update to 1.21.0.
Date: Sun,  8 Jul 2018 17:20:08 +0200
* gnu/packages/libevent.scm (libuv): Update to 1.21.0.
---
 gnu/packages/libevent.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index 983c8625e..a7cff1571 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -121,14 +121,14 @@ limited support for fork events.")
 (define-public libuv
   (package
     (name "libuv")
-    (version "1.19.2")
+    (version "1.21.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://dist.libuv.org/dist/v" version
                                   "/libuv-v" version ".tar.gz"))
               (sha256
                (base32
-                "1msk9ac1z69whww88ibrwjqkd1apdla6l77cm2fwy5kigq0z5g3w"))))
+                "0v84fjp5qmzinbrris2gdx1gxll5mi6j6w8zn915k4q6ks9x7ncn"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
-- 
2.18.0





Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Sun, 08 Jul 2018 15:21:02 GMT) Full text and rfc822 format available.

Message #11 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Lirzin <mthl <at> gnu.org>
To: 32095 <at> debbugs.gnu.org
Cc: Mathieu Lirzin <mthl <at> gnu.org>
Subject: [PATCH 2/2] gnu: node: Update to 10.6.0.
Date: Sun,  8 Jul 2018 17:20:09 +0200
* gnu/packages/node.scm (node): Update to 10.6.0.
---
 gnu/packages/node.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index d1de7a536..363c6b845 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -44,14 +44,14 @@
 (define-public node
   (package
     (name "node")
-    (version "9.11.1")
+    (version "10.6.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nodejs.org/dist/v" version
                                   "/node-v" version ".tar.gz"))
               (sha256
                (base32
-                "1vjh9zvw7wkdz6b0l99ya7mqjk0l8lbg9isr1q8rxwp400dhkk32"))
+                "0sxkhjkcqpyf5gkv1nw93w2hmkglwy2qzfsdy2hgx3z1pvxfn1w0"))
               (modules '((guix build utils)))
               (snippet
                `(begin
@@ -169,7 +169,7 @@
        ("icu4c" ,icu4c)
        ("libuv" ,libuv)
        ("nghttp2" ,nghttp2 "lib")
-       ("openssl" ,openssl)
+       ("openssl" ,openssl-next)
        ("zlib" ,zlib)))
     (synopsis "Evented I/O for V8 JavaScript")
     (description "Node.js is a platform built on Chrome's JavaScript runtime
-- 
2.18.0





Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Mon, 09 Jul 2018 14:59:02 GMT) Full text and rfc822 format available.

Message #14 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Mathieu Lirzin <mthl <at> gnu.org>
Cc: 32095 <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0.
Date: Mon, 09 Jul 2018 16:58:18 +0200
Mathieu Lirzin <mthl <at> gnu.org> skribis:

> * gnu/packages/libevent.scm (libuv): Update to 1.21.0.

Applied, thanks!




Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Mon, 09 Jul 2018 15:01:01 GMT) Full text and rfc822 format available.

Message #17 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Mathieu Lirzin <mthl <at> gnu.org>
Cc: 32095 <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
Date: Mon, 09 Jul 2018 16:59:58 +0200
Hello,

Mathieu Lirzin <mthl <at> gnu.org> skribis:

> * gnu/packages/node.scm (node): Update to 10.6.0.

I have it fail its tests like this:

--8<---------------cut here---------------start------------->8---
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
--8<---------------cut here---------------end--------------->8---

Does this test pass for you?

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Mon, 09 Jul 2018 15:09:01 GMT) Full text and rfc822 format available.

Message #20 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Mathieu Lirzin <mthl <at> gnu.org>
Cc: 32095 <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0.
Date: Mon, 09 Jul 2018 17:08:32 +0200
Mathieu Lirzin <mthl <at> gnu.org> skribis:

> * gnu/packages/libevent.scm (libuv): Update to 1.21.0.

Actually this upgrade is not OK as is for ‘master’ because (1) 2,9K
packages depend on libuv via CMake, and (2) the upgrade breaks CMake
like this:

--8<---------------cut here---------------start------------->8---
-- Found LibRHash: /gnu/store/spgvgyl7gc55k0hyn0b0rgzpjg1kb3v2-rhash-1.3.6/lib/librhash.so  
-- Found ZLIB: /gnu/store/fxiwj2wpp11sif613axdax7gmwzsg6kp-zlib-1.2.11/lib/libz.so (found version "1.2.11") 
-- Found CURL: /gnu/store/wvd2bm9zqgy2v6yw8cp9id6hw4zlwa4i-curl-7.59.0/lib/libcurl.so (found version "7.59.0") 
-- Found EXPAT: /gnu/store/70825hjil6070g7cs3mmdnfwmhxgga36-expat-2.2.5/lib/libexpat.so (found version "2.2.5") 
-- Found LibArchive: /gnu/store/9srbvs17nmh352xxkqadsjan7k5zrwl4-libarchive-3.3.2/lib/libarchive.so (found suitable version "3.3.2", minimum required is "3.0.0") 
-- Could NOT find LibUV: Found unsuitable version "", but required is at least "1.0.0" (found /gnu/store/bwifrgnryd50lsla5hr3m4ida01gyklc-libuv-1.21.0/lib/libuv.so)
CMake Error at CMakeLists.txt:551 (message):
  CMAKE_USE_SYSTEM_LIBUV is ON but a libuv is not found!
Call Stack (most recent call first):
  CMakeLists.txt:682 (CMAKE_BUILD_UTILITIES)


-- Configuring incomplete, errors occurred!
See also "/tmp/guix-build-cmake-3.11.0.drv-0/cmake-3.11.0/CMakeFiles/CMakeOutput.log".
See also "/tmp/guix-build-cmake-3.11.0.drv-0/cmake-3.11.0/CMakeFiles/CMakeError.log".
---------------------------------------------
Error when bootstrapping CMake:
Problem while running initial CMake
---------------------------------------------
--8<---------------cut here---------------end--------------->8---

I think one way around it, as a first step, is to define libuv-1.21
separately, for use by Node.

Could you try that?

Thanks in advance,
Ludo’.




Added tag(s) moreinfo. Request was from ludo <at> gnu.org (Ludovic Courtès) to control <at> debbugs.gnu.org. (Tue, 24 Jul 2018 13:48:01 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Fri, 07 Sep 2018 00:54:01 GMT) Full text and rfc822 format available.

Message #25 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Lirzin <mthl <at> gnu.org>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 32095 <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
Date: Fri, 07 Sep 2018 01:23:22 +0200
Hello,

ludo <at> gnu.org (Ludovic Courtès) writes:

> Mathieu Lirzin <mthl <at> gnu.org> 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




Removed tag(s) moreinfo. Request was from Mathieu Lirzin <mthl <at> gnu.org> to control <at> debbugs.gnu.org. (Fri, 07 Sep 2018 00:57:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Fri, 07 Sep 2018 11:22:02 GMT) Full text and rfc822 format available.

Message #30 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Mathieu Lirzin <mthl <at> gnu.org>, Ludovic Courtès
 <ludo <at> gnu.org>
Cc: 32095 <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
Date: Fri, 07 Sep 2018 13:21:07 +0200
[Message part 1 (text/plain, inline)]
Hello!

Mathieu Lirzin <mthl <at> gnu.org> writes:

> Hello,
>
> ludo <at> gnu.org (Ludovic Courtès) writes:
>
>> Mathieu Lirzin <mthl <at> gnu.org> 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.

I was able to build node on 'core-updates' with this patch:

[0001-gnu-node-Update-to-10.9.0.patch (text/x-patch, inline)]
From 3f745249f965dce2bc36abc21095b75bb902d11a Mon Sep 17 00:00:00 2001
From: Marius Bakke <mbakke <at> fastmail.com>
Date: Thu, 23 Aug 2018 14:54:32 +0200
Subject: [PATCH] gnu: node: Update to 10.9.0.

* gnu/packages/node.scm (node): Update to 10.9.0.
[source](uri): Use ".xz" tarball.
[arguments]: Set #:test-target.
[inputs]: Change OPENSSL to OPENSSL-NEXT.
---
 gnu/packages/node.scm | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index d1de7a536..046c61c6d 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -44,14 +44,14 @@
 (define-public node
   (package
     (name "node")
-    (version "9.11.1")
+    (version "10.9.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nodejs.org/dist/v" version
-                                  "/node-v" version ".tar.gz"))
+                                  "/node-v" version ".tar.xz"))
               (sha256
                (base32
-                "1vjh9zvw7wkdz6b0l99ya7mqjk0l8lbg9isr1q8rxwp400dhkk32"))
+                "00hdachbmcf9pyd1iksprsi5mddwp6z59mb3lr81z8ynfbmzhzni"))
               (modules '((guix build utils)))
               (snippet
                `(begin
@@ -82,6 +82,9 @@
                            "--shared-zlib"
                            "--without-snapshot"
                            "--with-intl=system-icu")
+       ;; Run only the CI tests.  The default check target requires additional
+       ;; add-ons from NPM not distributed with the source.
+       #:test-target "test-ci-js"
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-files
@@ -169,7 +172,7 @@
        ("icu4c" ,icu4c)
        ("libuv" ,libuv)
        ("nghttp2" ,nghttp2 "lib")
-       ("openssl" ,openssl)
+       ("openssl" ,openssl-next)
        ("zlib" ,zlib)))
     (synopsis "Evented I/O for V8 JavaScript")
     (description "Node.js is a platform built on Chrome's JavaScript runtime
-- 
2.18.0

[Message part 3 (text/plain, inline)]
I did not push it yet because I was hoping someone with more knowledge
of node internals knew what's up with the NPM requirement (and forgot to
ping this bug!).

On 'master', I think this also requires a newer version of 'libuv'.  Can
you try it Mathieu?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Fri, 07 Sep 2018 15:14:01 GMT) Full text and rfc822 format available.

Message #33 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Lirzin <mthl <at> gnu.org>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 32095 <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
Date: Fri, 07 Sep 2018 17:13:21 +0200
Marius Bakke <mbakke <at> fastmail.com> writes:

> I was able to build node on 'core-updates' with this patch:

Great!

On master, the build failed with libuv 1.19.2, however with libuv 1.21.0
both the build and test suite succeed.

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




Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Sat, 22 Sep 2018 15:09:01 GMT) Full text and rfc822 format available.

Message #36 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Lirzin <mthl <at> gnu.org>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 32095 <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
Date: Sat, 22 Sep 2018 17:08:43 +0200
Hello,

Mathieu Lirzin <mthl <at> gnu.org> writes:

> On master, the build failed with libuv 1.19.2, however with libuv 1.21.0
> both the build and test suite succeed.

Looking at the state of current branches, I think both ‘node’ and
‘libuv’ upgrades can pushed on ‘core-updates-next’.

WDYT?

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




Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Sat, 22 Sep 2018 15:33:02 GMT) Full text and rfc822 format available.

Message #39 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Mathieu Lirzin <mthl <at> gnu.org>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 32095 <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
Date: Sat, 22 Sep 2018 17:32:11 +0200
[Message part 1 (text/plain, inline)]
Mathieu Lirzin <mthl <at> gnu.org> writes:

> Hello,
>
> Mathieu Lirzin <mthl <at> gnu.org> writes:
>
>> On master, the build failed with libuv 1.19.2, however with libuv 1.21.0
>> both the build and test suite succeed.
>
> Looking at the state of current branches, I think both ‘node’ and
> ‘libuv’ upgrades can pushed on ‘core-updates-next’.
>
> WDYT?

We already have the latest libuv on 'core-updates'.  I wanted to push
this patch to master actually (with a libuv-1.23 package), but node does
not work with OpenSSL 1.1.1:
<https://github.com/nodejs/node/issues/18770>.

So I wonder if we should downgrade to the 8.12 LTS release, which still
supports OpenSSL 1.0, until the OpenSSL situation is sorted.  From what
I can tell it might take a while.

What do you think?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Sat, 22 Sep 2018 16:37:01 GMT) Full text and rfc822 format available.

Message #42 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Lirzin <mthl <at> gnu.org>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 32095 <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
Date: Sat, 22 Sep 2018 18:36:18 +0200
Marius Bakke <mbakke <at> fastmail.com> writes:

> We already have the latest libuv on 'core-updates'.

Indeed, I forgot to prune old branches and get confused.

>  I wanted to push
> this patch to master actually (with a libuv-1.23 package), but node does
> not work with OpenSSL 1.1.1:
> <https://github.com/nodejs/node/issues/18770>.

I have read rapidly this thread.

IIRC the build for node 10.xx was failing with ‘openssl’ which was the
reason of upgrading to ‘openssl-next’ and this issue seems to imply that
node fails to run with ‘openssl-next’?  Is that correct?

Have you recently tried to compile ‘node’ with libuv-1.23 without
upgrading the “openssl” input?  How did it work?

> So I wonder if we should downgrade to the 8.12 LTS release, which still
> supports OpenSSL 1.0, until the OpenSSL situation is sorted.  From what
> I can tell it might take a while.
>
> What do you think?

I think that ideally it would be a good idea to have both the latest and
the LTS versions distributed in Guix.  So I agree with your solution of
downgrading to 8.12 LTS.

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




Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Sun, 23 Sep 2018 13:23:02 GMT) Full text and rfc822 format available.

Message #45 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Mathieu Lirzin <mthl <at> gnu.org>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 32095 <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
Date: Sun, 23 Sep 2018 15:22:37 +0200
[Message part 1 (text/plain, inline)]
Mathieu Lirzin <mthl <at> gnu.org> writes:

> Marius Bakke <mbakke <at> fastmail.com> writes:
>
>> We already have the latest libuv on 'core-updates'.
>
> Indeed, I forgot to prune old branches and get confused.
>
>>  I wanted to push
>> this patch to master actually (with a libuv-1.23 package), but node does
>> not work with OpenSSL 1.1.1:
>> <https://github.com/nodejs/node/issues/18770>.
>
> I have read rapidly this thread.
>
> IIRC the build for node 10.xx was failing with ‘openssl’ which was the
> reason of upgrading to ‘openssl-next’ and this issue seems to imply that
> node fails to run with ‘openssl-next’?  Is that correct?
>
> Have you recently tried to compile ‘node’ with libuv-1.23 without
> upgrading the “openssl” input?  How did it work?

Building Node 10.11.0 with OpenSSL <at> 1.0 results in...

g++ '-DNODE_ARCH="x64"' '-DNODE_PLATFORM="linux"' '-DNODE_WANT_INTERNALS=1' '-DV8_DEPRECATION_WARNINGS=1' '-DNODE_OPENSSL_SYSTEM_CERT_PATH=""' '-DHAVE_INSPECTOR=1' '-D__POSIX__' '-DNODE_USE_V8_PLATFORM=1' '-DNODE_HAVE_I18N_SUPPORT=1' '-DHAVE_OPENSSL=1' -I../src -I/tmp/guix-build-node-10.11.0.drv-0/node-v10.11.0/out/Release/obj/gen -I/tmp/guix-build-node-10.11.0.drv-0/node-v10.11.0/out/Release/obj/gen/include -I/tmp/guix-build-node-10.11.0.drv-0/node-v10.11.0/out/Release/obj/gen/src -I../deps/v8/include  -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -fno-omit-frame-pointer -fno-rtti -fno-exceptions -std=gnu++1y -MMD -MF /tmp/guix-build-node-10.11.0.drv-0/node-v10.11.0/out/Release/.deps//tmp/guix-build-node-10.11.0.drv-0/node-v10.11.0/out/Release/obj.target/node_lib/src/node.o.d.raw   -c -o /tmp/guix-build-node-10.11.0.drv-0/node-v10.11.0/out/Release/obj.target/node_lib/src/node.o ../src/node.cc
In file included from ../src/node.cc:39:0:
../src/node_crypto.h:82:46: error: ‘EVP_MD_CTX_free’ was not declared in this scope
 using EVPMDPointer = DeleteFnPtr<EVP_MD_CTX, EVP_MD_CTX_free>;                                                                                                                                                                                      ^
../src/node_crypto.h:82:61: error: template argument 2 is invalid
 using EVPMDPointer = DeleteFnPtr<EVP_MD_CTX, EVP_MD_CTX_free>;
                                                             ^
../src/node_crypto.h:454:25: error: ‘HMAC_CTX_free’ was not declared in this scope
   DeleteFnPtr<HMAC_CTX, HMAC_CTX_free> ctx_;
                         ^
../src/node_crypto.h:454:38: error: template argument 2 is invalid
   DeleteFnPtr<HMAC_CTX, HMAC_CTX_free> ctx_;
                                      ^
../src/node_crypto.h: In constructor ‘node::crypto::Hmac::Hmac(node::Environment*, v8::Local<v8::Object>)’:
../src/node_crypto.h:449:21: error: cannot convert ‘std::nullptr_t’ to ‘int’ in initialization
         ctx_(nullptr) {
                     ^
../src/node_crypto.h: At global scope:
../src/node_crypto.h:483:3: error: ‘EVPMDPointer’ does not name a type
   EVPMDPointer mdctx_;
   ^
../src/node_crypto.h: In constructor ‘node::crypto::Hash::Hash(node::Environment*, v8::Local<v8::Object>)’:
../src/node_crypto.h:477:9: error: class ‘node::crypto::Hash’ does not have any field named ‘mdctx_’
         mdctx_(nullptr),
         ^
../src/node_crypto.h: At global scope:
../src/node_crypto.h:515:3: error: ‘EVPMDPointer’ does not name a type
   EVPMDPointer mdctx_;
   ^
make[1]: *** [node_lib.target.mk:181: /tmp/guix-build-node-10.11.0.drv-0/node-v10.11.0/out/Release/obj.target/node_lib/src/node.o] Error 1

>> So I wonder if we should downgrade to the 8.12 LTS release, which still
>> supports OpenSSL 1.0, until the OpenSSL situation is sorted.  From what
>> I can tell it might take a while.
>>
>> What do you think?
>
> I think that ideally it would be a good idea to have both the latest and
> the LTS versions distributed in Guix.  So I agree with your solution of
> downgrading to 8.12 LTS.

I managed to build Node LTS on 'core-updates' with this patch:

[0001-gnu-Add-Node-LTS.patch (text/x-patch, inline)]
From 9556fc13a77d2619cfd1e861f0269bccf0a58986 Mon Sep 17 00:00:00 2001
From: Marius Bakke <mbakke <at> fastmail.com>
Date: Sun, 23 Sep 2018 13:12:23 +0200
Subject: [PATCH] gnu: Add Node LTS.

* gnu/packages/libevent.scm (libuv-1.19): New public variable.
* gnu/packages/node.scm (node)[arguments]: Adjust 'patch-files' phase to
ignore missing files.
(node-lts): New public variable.
---
 gnu/packages/libevent.scm | 13 +++++++++++++
 gnu/packages/node.scm     | 30 +++++++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index bc7f6c670..053824bce 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -152,6 +152,19 @@ resolution, asynchronous file system operations, and threading primitives.")
     ;; details.  Documentation is CC-BY 4.0 as of 1.12.0; see 'LICENSE-docs'.
     (license (list expat cc-by4.0))))
 
+;; Node 8.x require this version.
+(define-public libuv-1.19
+  (package
+    (inherit libuv)
+    (version "1.19.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://dist.libuv.org/dist/v" version
+                                  "/libuv-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1msk9ac1z69whww88ibrwjqkd1apdla6l77cm2fwy5kigq0z5g3w"))))))
+
 (define-public perl-anyevent
   (package
     (name "perl-anyevent")
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index d1de7a536..50b1c2b34 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -39,7 +39,8 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages web))
+  #:use-module (gnu packages web)
+  #:use-module (srfi srfi-1))
 
 (define-public node
   (package
@@ -86,6 +87,14 @@
        (modify-phases %standard-phases
          (add-before 'configure 'patch-files
            (lambda* (#:key inputs #:allow-other-keys)
+
+             ;; This phase is inherited by Node LTS, which does not have all
+             ;; the files listed here.  Use this helper for convenience.
+             (define (delete-if-exists file)
+               (if (file-exists? file)
+                   (delete-file file)
+                   #t))
+
              ;; Fix hardcoded /bin/sh references.
              (substitute* '("lib/child_process.js"
                             "lib/internal/v8_prof_polyfill.js"
@@ -103,7 +112,7 @@
 
              ;; FIXME: These tests depend on being able to install eslint.
              ;; See https://github.com/nodejs/node/issues/17098.
-             (for-each delete-file
+             (for-each delete-if-exists
                        '("test/parallel/test-eslint-alphabetize-errors.js"
                          "test/parallel/test-eslint-buffer-constructor.js"
                          "test/parallel/test-eslint-documented-errors.js"
@@ -111,7 +120,7 @@
 
              ;; FIXME: These tests fail in the build container, but they don't
              ;; seem to be indicative of real problems in practice.
-             (for-each delete-file
+             (for-each delete-if-exists
                        '("test/async-hooks/test-ttywrap.readstream.js"
                          "test/parallel/test-util-inspect.js"
                          "test/parallel/test-v8-serdes.js"
@@ -180,3 +189,18 @@ devices.")
     (home-page "https://nodejs.org/")
     (license expat)
     (properties '((timeout . 3600))))) ; 1 h
+
+(define-public node-lts
+  (package
+    (inherit node)
+    (version "8.12.0")
+    (source (origin
+              (inherit (package-source node))
+              (uri (string-append "https://nodejs.org/dist/v" version
+                                  "/node-v" version ".tar.xz"))
+              (sha256
+               (base32
+                "16j1rrxkhmvpcw689ndw1raql1gz4jqn7n82z55zn63c05cgz7as"))))
+    (inputs
+     `(("libuv" ,libuv-1.19)
+       ,@(alist-delete "libuv" (package-inputs node))))))
-- 
2.19.0

[Message part 3 (text/plain, inline)]
Unfortunately it fails on 'master' because a test requires OpenSSL
1.0.2p.  I can arrange to disable the test there.  WDYT?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#32095; Package guix-patches. (Sun, 23 Sep 2018 14:04:01 GMT) Full text and rfc822 format available.

Message #48 received at 32095 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Lirzin <mthl <at> gnu.org>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 32095 <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
Date: Sun, 23 Sep 2018 16:03:41 +0200
Marius Bakke <mbakke <at> fastmail.com> writes:

> I managed to build Node LTS on 'core-updates' with this patch:
>
> From 9556fc13a77d2619cfd1e861f0269bccf0a58986 Mon Sep 17 00:00:00 2001
> From: Marius Bakke <mbakke <at> fastmail.com>
> Date: Sun, 23 Sep 2018 13:12:23 +0200
> Subject: [PATCH] gnu: Add Node LTS.
>
> * gnu/packages/libevent.scm (libuv-1.19): New public variable.
> * gnu/packages/node.scm (node)[arguments]: Adjust 'patch-files' phase to
> ignore missing files.
> (node-lts): New public variable.
> ---
>  gnu/packages/libevent.scm | 13 +++++++++++++
>  gnu/packages/node.scm     | 30 +++++++++++++++++++++++++++---
>  2 files changed, 40 insertions(+), 3 deletions(-)

Excellent! The patch looks good to me.

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




Reply sent to Marius Bakke <mbakke <at> fastmail.com>:
You have taken responsibility. (Tue, 25 Sep 2018 22:46:02 GMT) Full text and rfc822 format available.

Notification sent to Mathieu Lirzin <mthl <at> gnu.org>:
bug acknowledged by developer. (Tue, 25 Sep 2018 22:46:02 GMT) Full text and rfc822 format available.

Message #53 received at 32095-done <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Mathieu Lirzin <mthl <at> gnu.org>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 32095-done <at> debbugs.gnu.org
Subject: Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
Date: Wed, 26 Sep 2018 00:45:26 +0200
[Message part 1 (text/plain, inline)]
Mathieu Lirzin <mthl <at> gnu.org> writes:

> Marius Bakke <mbakke <at> fastmail.com> writes:
>
>> I managed to build Node LTS on 'core-updates' with this patch:
>>
>> From 9556fc13a77d2619cfd1e861f0269bccf0a58986 Mon Sep 17 00:00:00 2001
>> From: Marius Bakke <mbakke <at> fastmail.com>
>> Date: Sun, 23 Sep 2018 13:12:23 +0200
>> Subject: [PATCH] gnu: Add Node LTS.
>>
>> * gnu/packages/libevent.scm (libuv-1.19): New public variable.
>> * gnu/packages/node.scm (node)[arguments]: Adjust 'patch-files' phase to
>> ignore missing files.
>> (node-lts): New public variable.
>> ---
>>  gnu/packages/libevent.scm | 13 +++++++++++++
>>  gnu/packages/node.scm     | 30 +++++++++++++++++++++++++++---
>>  2 files changed, 40 insertions(+), 3 deletions(-)
>
> Excellent! The patch looks good to me.

It turned out the OpenSSL related test failure when I first tried this
on 'master' was due to recently expired TLS certificates, and not
due to a difference in OpenSSL version on 'core-updates'.

So I pushed another patch to disable tests that require valid TLS
certificates (it also caused the current Node package to FTBFS), and
then the Node LTS patch to 'master'.

Thanks for the review!
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 24 Oct 2018 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 179 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.