[PATCH 0/2] Update libuv and node

  • Done
  • quality assurance status badge
Details
3 participants
  • Ludovic Courtès
  • Marius Bakke
  • Mathieu Lirzin
Owner
unassigned
Submitted by
Mathieu Lirzin
Severity
normal
M
M
Mathieu Lirzin wrote on 8 Jul 2018 17:16
(address . guix-patches@gnu.org)(name . Mathieu Lirzin)(address . mthl@gnu.org)
20180708151639.27889-1-mthl@gnu.org
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
M
M
Mathieu Lirzin wrote on 8 Jul 2018 17:20
[PATCH 1/2] gnu: libuv: Update to 1.21.0.
(address . 32095@debbugs.gnu.org)(name . Mathieu Lirzin)(address . mthl@gnu.org)
20180708152009.28002-1-mthl@gnu.org
* gnu/packages/libevent.scm (libuv): Update to 1.21.0.
---
gnu/packages/libevent.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
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
M
M
Mathieu Lirzin wrote on 8 Jul 2018 17:20
[PATCH 2/2] gnu: node: Update to 10.6.0.
(address . 32095@debbugs.gnu.org)(name . Mathieu Lirzin)(address . mthl@gnu.org)
20180708152009.28002-2-mthl@gnu.org
* gnu/packages/node.scm (node): Update to 10.6.0.
---
gnu/packages/node.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (32 lines)
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
L
L
Ludovic Courtès wrote on 9 Jul 2018 16:58
Re: [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0.
(name . Mathieu Lirzin)(address . mthl@gnu.org)(address . 32095@debbugs.gnu.org)
87r2kcfoc5.fsf@gnu.org
Mathieu Lirzin <mthl@gnu.org> skribis:

Toggle quote (2 lines)
> * gnu/packages/libevent.scm (libuv): Update to 1.21.0.

Applied, thanks!
L
L
Ludovic Courtès wrote on 9 Jul 2018 16:59
Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
(name . Mathieu Lirzin)(address . mthl@gnu.org)(address . 32095@debbugs.gnu.org)
87muv0fo9d.fsf@gnu.org
Hello,

Mathieu Lirzin <mthl@gnu.org> skribis:

Toggle quote (2 lines)
> * gnu/packages/node.scm (node): Update to 10.6.0.

I have it fail its tests like this:

Toggle snippet (23 lines)
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?

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 9 Jul 2018 17:08
Re: [bug#32095] [PATCH 1/2] gnu: libuv: Update to 1.21.0.
(name . Mathieu Lirzin)(address . mthl@gnu.org)(address . 32095@debbugs.gnu.org)
87efgcfnv3.fsf@gnu.org
Mathieu Lirzin <mthl@gnu.org> skribis:

Toggle quote (2 lines)
> * 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:

Toggle snippet (21 lines)
-- 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
---------------------------------------------

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’.
L
L
Ludovic Courtès wrote on 24 Jul 2018 15:47
control message for bug #32095
(address . control@debbugs.gnu.org)
87y3e04ufk.fsf@gnu.org
tags 32095 moreinfo
M
M
Mathieu Lirzin wrote on 7 Sep 2018 01:23
Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 32095@debbugs.gnu.org)
87pnxqus5x.fsf@gnu.org
Hello,

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

Toggle quote (30 lines)
> 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’.

Toggle snippet (124 lines)
=== 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

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

Toggle snippet (21 lines)
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.

Anyway I am giving up.

Sorry for the delay.

--
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37
M
M
Mathieu Lirzin wrote on 7 Sep 2018 02:55
control message for bug #32095
(address . control@debbugs.gnu.org)
87k1nyunwd.fsf@gnu.org
tags 32095 - moreinfo
M
M
Marius Bakke wrote on 7 Sep 2018 13:21
Re: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0.
(address . 32095@debbugs.gnu.org)
87a7oteeos.fsf@fastmail.com
Hello!

Mathieu Lirzin <mthl@gnu.org> writes:

Toggle quote (191 lines)
> 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:
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(-)

Toggle diff (43 lines)
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
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?
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAluSXyMACgkQoqBt8qM6
VPqVmwgAmi3Oz8Sjp2aT+KKa6B+/pD84cKpwv74G7xhlbUPuYujq5p7pkss3okUP
V8FVCWLuBubjpSABLv6HXYFi0nZA12sBBwApqLuiHOVm/d5u5RqyPDC15kvAx/i3
WgBWV0kwxhfMPE7ZFvjvIy/9gLFIIoP4pP4Czcv4iXTKaZHLjng6eYEoIh2c9NgB
rfQrqaskb/cm1KcgW/r2fNHTjkVzEUgwhuGLck6YUuByeSVos/oiKGE5w0q9bKf1
5a+dUhsklFiBwYd4bRqlvn0uYtkucvox7EU/J9N/GLozfcxYyuLG3InAV04293US
te/Y171nCgVxhdO5vKdS+BWR/2rPLg==
=HQOZ
-----END PGP SIGNATURE-----

M
M
Mathieu Lirzin wrote on 7 Sep 2018 17:13
(name . Marius Bakke)(address . mbakke@fastmail.com)
87tvn1z6ge.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> writes:

Toggle quote (2 lines)
> 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
M
M
Mathieu Lirzin wrote on 22 Sep 2018 17:08
(name . Marius Bakke)(address . mbakke@fastmail.com)
87in2x36ys.fsf@gnu.org
Hello,

Mathieu Lirzin <mthl@gnu.org> writes:

Toggle quote (3 lines)
> 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
M
M
Marius Bakke wrote on 22 Sep 2018 17:32
(name . Mathieu Lirzin)(address . mthl@gnu.org)
875zyxmttw.fsf@fastmail.com
Mathieu Lirzin <mthl@gnu.org> writes:

Toggle quote (12 lines)
> 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:

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?
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlumYHsACgkQoqBt8qM6
VPpQXgf/WdTTr86MQe1LLfPMYI1cEtjrXr7sVvmi4nEcpc7gJdV3PwjkRXRdgKhB
OjlIHPBtbGExogzVkT0+TcE9qeBdY/ppnEdwYjkiBxUVa1rNnH8tu2aJMeHWmi2Y
uJZq0t5V1MlxpFDQkZ2zOtHLdZrm1jjdXKAfEErm2R+GIlL+VyL30jDGOVmiM89d
HMnM5PdFzC5Hjie0iquUbcyRzXQakx0EnaooBFLYiH0k2PCMSsdxvNeXfqYOVnr6
caPbK8fQ4KM8HFX3Fod+RGnRG99b++rjImYViQp/dbVlsvspQC/Ka8OCixqQY3MI
U6oAhhn7QDFawq1V8oxUoqXvA5jKDQ==
=WgCr
-----END PGP SIGNATURE-----

M
M
Mathieu Lirzin wrote on 22 Sep 2018 18:36
(name . Marius Bakke)(address . mbakke@fastmail.com)
87h8ihbibh.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> writes:

Toggle quote (2 lines)
> We already have the latest libuv on 'core-updates'.

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

Toggle quote (5 lines)
> 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?

Toggle quote (6 lines)
> 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
M
M
Marius Bakke wrote on 23 Sep 2018 15:22
(name . Mathieu Lirzin)(address . mthl@gnu.org)
87worcl55u.fsf@fastmail.com
Mathieu Lirzin <mthl@gnu.org> writes:

Toggle quote (20 lines)
> 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

Toggle quote (10 lines)
>> 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:
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(-)

Toggle diff (92 lines)
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
Unfortunately it fails on 'master' because a test requires OpenSSL
1.0.2p. I can arrange to disable the test there. WDYT?
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlunk50ACgkQoqBt8qM6
VPpHwQgAvEC6RXwTIRdAhF09xY4wqrDjl27ZWf7cgodH2qv1hZwoDxZ7z9Y7WszQ
puLShMVQVl4o2I0JzsdNGTOhNRd932zBQ8S2BECJMaRaDv/dsPkeJ3CNDk/yPrF8
j84C6iQFyAYK3/ZNmt+w5XZE+nbH73l438nf9LgusTU8vCN9c+AfWNAiLpbQypY9
Nl4yawBt+Cv9Epedu/HqRG33aViASVIMUyYHitdVmSazAsmxMtffSS909x1u5Pqb
E5m8AosNu2NT9cZngS6cZoHkzcWtRsNeXPurJGSKw42iZBQ4JmNLNKPdJRqzf4bD
kGQaUaZ2DbaFI8hTmuwk8WVwltzTQQ==
=rNum
-----END PGP SIGNATURE-----

M
M
Mathieu Lirzin wrote on 23 Sep 2018 16:03
(name . Marius Bakke)(address . mbakke@fastmail.com)
87lg7s71ky.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> writes:

Toggle quote (16 lines)
> 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
M
M
Marius Bakke wrote on 26 Sep 2018 00:45
(name . Mathieu Lirzin)(address . mthl@gnu.org)
87in2tkxh5.fsf@fastmail.com
Mathieu Lirzin <mthl@gnu.org> writes:

Toggle quote (20 lines)
> 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!
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAluquoYACgkQoqBt8qM6
VPpD/Qf/d44K7rg+VariJRaPqasf8NIw3DV8aqH7L9Hovt9p3ahOOOrhPZG/iR7c
QBMZIa4eNu7vydse7IZYmqUU4PbuCsJ5OgmPG70ecjFuYyGX3/6TWwbA9+i89QGH
Fh82+OxKVtOtNI9N6LIxl47qfTwpum0OJ88R0xYQGQfF+wezpZoDagugoSQPvr+Y
VztNmn9iZTs9b7bt4qXB2OWeEvO9s6eK9LDaGwrJnGD8hRA6Zx8V6KfOuVWoc+Ac
wMS4RLwkb4EYg/GObh0pdeFomOLb+m04Oid3KTa7R1N0JJg3rMPEl0IqEti19kcn
wIZzqUMTcpAN3rEl0l2NqX3T85lo5A==
=reld
-----END PGP SIGNATURE-----

Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 32095@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 32095
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch