all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#32095] [PATCH 0/2] Update libuv and node
@ 2018-07-08 15:16 Mathieu Lirzin
  2018-07-08 15:20 ` [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0 Mathieu Lirzin
  2018-09-07 15:13 ` [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0 Mathieu Lirzin
  0 siblings, 2 replies; 15+ messages in thread
From: Mathieu Lirzin @ 2018-07-08 15:16 UTC (permalink / raw)
  To: 32095; +Cc: Mathieu Lirzin

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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0.
  2018-07-08 15:16 [bug#32095] [PATCH 0/2] Update libuv and node Mathieu Lirzin
@ 2018-07-08 15:20 ` Mathieu Lirzin
  2018-07-08 15:20   ` [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0 Mathieu Lirzin
                     ` (2 more replies)
  2018-09-07 15:13 ` [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0 Mathieu Lirzin
  1 sibling, 3 replies; 15+ messages in thread
From: Mathieu Lirzin @ 2018-07-08 15:20 UTC (permalink / raw)
  To: 32095; +Cc: Mathieu Lirzin

* 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

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
  2018-07-08 15:20 ` [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0 Mathieu Lirzin
@ 2018-07-08 15:20   ` Mathieu Lirzin
  2018-07-09 14:59     ` Ludovic Courtès
  2018-07-09 14:58   ` [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0 Ludovic Courtès
  2018-07-09 15:08   ` Ludovic Courtès
  2 siblings, 1 reply; 15+ messages in thread
From: Mathieu Lirzin @ 2018-07-08 15:20 UTC (permalink / raw)
  To: 32095; +Cc: Mathieu Lirzin

* 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

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0.
  2018-07-08 15:20 ` [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0 Mathieu Lirzin
  2018-07-08 15:20   ` [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0 Mathieu Lirzin
@ 2018-07-09 14:58   ` Ludovic Courtès
  2018-07-09 15:08   ` Ludovic Courtès
  2 siblings, 0 replies; 15+ messages in thread
From: Ludovic Courtès @ 2018-07-09 14:58 UTC (permalink / raw)
  To: Mathieu Lirzin; +Cc: 32095

Mathieu Lirzin <mthl@gnu.org> skribis:

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

Applied, thanks!

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
  2018-07-08 15:20   ` [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0 Mathieu Lirzin
@ 2018-07-09 14:59     ` Ludovic Courtès
  2018-09-06 23:23       ` Mathieu Lirzin
  0 siblings, 1 reply; 15+ messages in thread
From: Ludovic Courtès @ 2018-07-09 14:59 UTC (permalink / raw)
  To: Mathieu Lirzin; +Cc: 32095

Hello,

Mathieu Lirzin <mthl@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’.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0.
  2018-07-08 15:20 ` [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0 Mathieu Lirzin
  2018-07-08 15:20   ` [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0 Mathieu Lirzin
  2018-07-09 14:58   ` [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0 Ludovic Courtès
@ 2018-07-09 15:08   ` Ludovic Courtès
  2 siblings, 0 replies; 15+ messages in thread
From: Ludovic Courtès @ 2018-07-09 15:08 UTC (permalink / raw)
  To: Mathieu Lirzin; +Cc: 32095

Mathieu Lirzin <mthl@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’.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
  2018-07-09 14:59     ` Ludovic Courtès
@ 2018-09-06 23:23       ` Mathieu Lirzin
  2018-09-07 11:21         ` Marius Bakke
  0 siblings, 1 reply; 15+ messages in thread
From: Mathieu Lirzin @ 2018-09-06 23:23 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 32095

Hello,

ludo@gnu.org (Ludovic Courtès) writes:

> Mathieu Lirzin <mthl@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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
  2018-09-06 23:23       ` Mathieu Lirzin
@ 2018-09-07 11:21         ` Marius Bakke
  0 siblings, 0 replies; 15+ messages in thread
From: Marius Bakke @ 2018-09-07 11:21 UTC (permalink / raw)
  To: Mathieu Lirzin, Ludovic Courtès; +Cc: 32095


[-- Attachment #1.1: Type: text/plain, Size: 10467 bytes --]

Hello!

Mathieu Lirzin <mthl@gnu.org> writes:

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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-node-Update-to-10.9.0.patch --]
[-- Type: text/x-patch, Size: 2096 bytes --]

From 3f745249f965dce2bc36abc21095b75bb902d11a Mon Sep 17 00:00:00 2001
From: Marius Bakke <mbakke@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


[-- Attachment #1.3: Type: text/plain, Size: 256 bytes --]


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?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
  2018-07-08 15:16 [bug#32095] [PATCH 0/2] Update libuv and node Mathieu Lirzin
  2018-07-08 15:20 ` [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0 Mathieu Lirzin
@ 2018-09-07 15:13 ` Mathieu Lirzin
  2018-09-22 15:08   ` Mathieu Lirzin
  1 sibling, 1 reply; 15+ messages in thread
From: Mathieu Lirzin @ 2018-09-07 15:13 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 32095

Marius Bakke <mbakke@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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
  2018-09-07 15:13 ` [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0 Mathieu Lirzin
@ 2018-09-22 15:08   ` Mathieu Lirzin
  2018-09-22 15:32     ` Marius Bakke
  0 siblings, 1 reply; 15+ messages in thread
From: Mathieu Lirzin @ 2018-09-22 15:08 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 32095

Hello,

Mathieu Lirzin <mthl@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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
  2018-09-22 15:08   ` Mathieu Lirzin
@ 2018-09-22 15:32     ` Marius Bakke
  2018-09-22 16:36       ` Mathieu Lirzin
  0 siblings, 1 reply; 15+ messages in thread
From: Marius Bakke @ 2018-09-22 15:32 UTC (permalink / raw)
  To: Mathieu Lirzin; +Cc: 32095

[-- Attachment #1: Type: text/plain, Size: 799 bytes --]

Mathieu Lirzin <mthl@gnu.org> writes:

> Hello,
>
> Mathieu Lirzin <mthl@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?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
  2018-09-22 15:32     ` Marius Bakke
@ 2018-09-22 16:36       ` Mathieu Lirzin
  2018-09-23 13:22         ` Marius Bakke
  0 siblings, 1 reply; 15+ messages in thread
From: Mathieu Lirzin @ 2018-09-22 16:36 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 32095

Marius Bakke <mbakke@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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
  2018-09-22 16:36       ` Mathieu Lirzin
@ 2018-09-23 13:22         ` Marius Bakke
  2018-09-23 14:03           ` Mathieu Lirzin
  0 siblings, 1 reply; 15+ messages in thread
From: Marius Bakke @ 2018-09-23 13:22 UTC (permalink / raw)
  To: Mathieu Lirzin; +Cc: 32095


[-- Attachment #1.1: Type: text/plain, Size: 4093 bytes --]

Mathieu Lirzin <mthl@gnu.org> writes:

> Marius Bakke <mbakke@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@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:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-Add-Node-LTS.patch --]
[-- Type: text/x-patch, Size: 4170 bytes --]

From 9556fc13a77d2619cfd1e861f0269bccf0a58986 Mon Sep 17 00:00:00 2001
From: Marius Bakke <mbakke@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


[-- Attachment #1.3: Type: text/plain, Size: 125 bytes --]


Unfortunately it fails on 'master' because a test requires OpenSSL
1.0.2p.  I can arrange to disable the test there.  WDYT?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
  2018-09-23 13:22         ` Marius Bakke
@ 2018-09-23 14:03           ` Mathieu Lirzin
  2018-09-25 22:45             ` bug#32095: " Marius Bakke
  0 siblings, 1 reply; 15+ messages in thread
From: Mathieu Lirzin @ 2018-09-23 14:03 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 32095

Marius Bakke <mbakke@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@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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#32095: [PATCH 2/2] gnu: node: Update to 10.6.0.
  2018-09-23 14:03           ` Mathieu Lirzin
@ 2018-09-25 22:45             ` Marius Bakke
  0 siblings, 0 replies; 15+ messages in thread
From: Marius Bakke @ 2018-09-25 22:45 UTC (permalink / raw)
  To: Mathieu Lirzin; +Cc: 32095-done

[-- Attachment #1: Type: text/plain, Size: 1171 bytes --]

Mathieu Lirzin <mthl@gnu.org> writes:

> Marius Bakke <mbakke@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@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!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2018-09-25 22:46 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-08 15:16 [bug#32095] [PATCH 0/2] Update libuv and node Mathieu Lirzin
2018-07-08 15:20 ` [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0 Mathieu Lirzin
2018-07-08 15:20   ` [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0 Mathieu Lirzin
2018-07-09 14:59     ` Ludovic Courtès
2018-09-06 23:23       ` Mathieu Lirzin
2018-09-07 11:21         ` Marius Bakke
2018-07-09 14:58   ` [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0 Ludovic Courtès
2018-07-09 15:08   ` Ludovic Courtès
2018-09-07 15:13 ` [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0 Mathieu Lirzin
2018-09-22 15:08   ` Mathieu Lirzin
2018-09-22 15:32     ` Marius Bakke
2018-09-22 16:36       ` Mathieu Lirzin
2018-09-23 13:22         ` Marius Bakke
2018-09-23 14:03           ` Mathieu Lirzin
2018-09-25 22:45             ` bug#32095: " Marius Bakke

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.