Subject: bug#29844: closed (Re: [bug#29844] [PATCH] gnu: node: Update to 9.3.0.)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 24 Dec 2017 23:33:02 +0000

Your bug report

#29844: [PATCH] gnu: node: Update to 9.3.0.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
29844: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=29844
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#29844] [PATCH] gnu: node: Update to 9.3.0.
From: Jelle Licht <[email-masked]>
To: Leo Famulari <[email-masked]>
Cc: [email-masked], Jelle Licht <[email-masked]>
Date: Mon, 25 Dec 2017 00:32:37 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Leo Famulari <[email-masked]> writes:

> On Sun, Dec 24, 2017 at 11:06:43PM +0100, Jelle Licht wrote:
>>
>> The attached patch will update the Node.js pacakge to the latest
>> release. The latest version of Node.js depends on libuv >= 1.18, so this
>> patch should either be applied to core-updates (which I can do myself
>> once I get an A-okay), or once core-updates has been merged into master.
>>
>> -- Jelle
>>
>
>> From a9b57b2649dbe95b75b0114d32930c7347aec40b Mon Sep 17 00:00:00 2001
>> From: Jelle Licht <[email-masked]>
>> Date: Sun, 24 Dec 2017 22:58:00 +0100
>> Subject: [PATCH] gnu: node: Update to 9.3.0.
>>
>> * gnu/packages/patches/node-test-http2-server-rst-stream.patch: Delete file.
>> * gnu/local.mk (dist_patch_DATA): Remove it.
>> * gnu/packages/node.scm (node): Update to 9.3.0.
>> [source]: Remove 'node-test-http2-server-rst-stream.patch'.
>> [arguments]: Remove all tests that depend on eslint being available. Re-enable
>> fixed test.
>
> Looks good for core-updates, thanks!

Pushed as 80f642acd4 to core-updates.

Subject: [PATCH] gnu: node: Update to 9.3.0.
From: Jelle Licht <[email-masked]>
To: [email-masked]
Date: Sun, 24 Dec 2017 23:06:43 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

The attached patch will update the Node.js pacakge to the latest
release. The latest version of Node.js depends on libuv >= 1.18, so this
patch should either be applied to core-updates (which I can do myself
once I get an A-okay), or once core-updates has been merged into master.

-- Jelle

>From a9b57b2649dbe95b75b0114d32930c7347aec40b Mon Sep 17 00:00:00 2001
From: Jelle Licht <[email-masked]>
Date: Sun, 24 Dec 2017 22:58:00 +0100
Subject: [PATCH] gnu: node: Update to 9.3.0.

* gnu/packages/patches/node-test-http2-server-rst-stream.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
* gnu/packages/node.scm (node): Update to 9.3.0.
[source]: Remove 'node-test-http2-server-rst-stream.patch'.
[arguments]: Remove all tests that depend on eslint being available. Re-enable
fixed test.
---
 gnu/local.mk                                       |   1 -
 gnu/packages/node.scm                              |  29 +++--
 .../node-test-http2-server-rst-stream.patch        | 131 ---------------------
 3 files changed, 19 insertions(+), 142 deletions(-)
 delete mode 100644 gnu/packages/patches/node-test-http2-server-rst-stream.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index fbc5f52c9..514daec1c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -889,7 +889,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/newsbeuter-CVE-2017-14500.patch		\
   %D%/packages/patches/ngircd-handle-zombies.patch		\
   %D%/packages/patches/ninja-zero-mtime.patch			\
-  %D%/packages/patches/node-test-http2-server-rst-stream.patch	\
   %D%/packages/patches/nss-increase-test-timeout.patch		\
   %D%/packages/patches/nss-pkgconfig.patch			\
   %D%/packages/patches/nvi-assume-preserve-path.patch		\
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index fade8b23d..052966ea3 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -41,18 +41,14 @@
 (define-public node
   (package
     (name "node")
-    (version "8.9.1")
+    (version "9.3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://nodejs.org/dist/v" version
                                   "/node-v" version ".tar.gz"))
               (sha256
                (base32
-                "1qbiz7hgwlirhwpd71c8yzcbwsyi5bjlfp6lxb6v55j6rizinj9j"))
-              ;; See https://github.com/nodejs/node/issues/16688
-              ;; Remove this next update (>8.9.1).
-              (patches
-                (search-patches "node-test-http2-server-rst-stream.patch"))))
+                "19g2pc196rxlj9k5bwhqxdjddvicsx385w7yj6alq9l82lmqycxp"))))
     (build-system gnu-build-system)
     (arguments
      ;; TODO: Purge the bundled copies from the source.
@@ -85,11 +81,24 @@
              ;; test-make-doc needs doc-only target, which is inhibited below
              (for-each delete-file
                        '("test/doctool/test-make-doc.js"))
-             ;; FIXME: This test seems to depends on files that are not
-             ;; available in the bundled v8. See
-             ;; https://github.com/nodejs/node/issues/13344
+             ;; FIXME: These tests depend on being able to install eslint.
+             ;; See https://github.com/nodejs/node/issues/17098.
              (for-each delete-file
-                       '("test/addons-napi/test_general/testInstanceOf.js"))
+                       '("test/parallel/test-eslint-crypto-check.js"
+                         "test/parallel/test-eslint-alphabetize-errors.js"
+                         "test/parallel/test-eslint-buffer-constructor.js"
+                         "test/parallel/test-eslint-documented-errors.js"
+                         "test/parallel/test-eslint-inspector-check.js"
+                         "test/parallel/test-eslint-no-unescaped-regexp-dot.js"
+                         "test/parallel/test-eslint-no-let-in-for-declaration.js"
+                         "test/parallel/test-eslint-prefer-assert-iferror.js"
+                         "test/parallel/test-eslint-prefer-assert-methods.js"
+                         "test/parallel/test-eslint-prefer-common-expectserror.js"
+                         "test/parallel/test-eslint-prefer-common-mustnotcall.js"
+                         "test/parallel/test-eslint-prefer-util-format-errors.js"
+                         "test/parallel/test-eslint-require-buffer.js"
+                         "test/parallel/test-eslint-required-modules.js"))
+
              ;; 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
diff --git a/gnu/packages/patches/node-test-http2-server-rst-stream.patch b/gnu/packages/patches/node-test-http2-server-rst-stream.patch
deleted file mode 100644
index c2f85010b..000000000
--- a/gnu/packages/patches/node-test-http2-server-rst-stream.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From a41cc020fd6e40b358103425edfa50e6a10fc973 Mon Sep 17 00:00:00 2001
-From: Anatoli Papirovski <[email-masked]>
-Date: Thu, 2 Nov 2017 12:46:31 -0400
-Subject: [PATCH] test: fix flaky test-http2-server-rst-stream.js
-
-PR-URL: https://github.com/nodejs/node/pull/16690
-Fixes: https://github.com/nodejs/node/issues/16688
-Reviewed-By: James M Snell <[email-masked]>
-Reviewed-By: Matteo Collina <[email-masked]>
----
- test/parallel/test-http2-server-rst-stream.js | 93 ++++++++++-----------------
- 1 file changed, 35 insertions(+), 58 deletions(-)
-
-diff --git a/test/parallel/test-http2-server-rst-stream.js b/test/parallel/test-http2-server-rst-stream.js
-index b92217dc99..dd38efb42f 100644
---- a/test/parallel/test-http2-server-rst-stream.js
-+++ b/test/parallel/test-http2-server-rst-stream.js
-@@ -5,11 +5,9 @@ if (!common.hasCrypto)
-   common.skip('missing crypto');
- const assert = require('assert');
- const http2 = require('http2');
-+const Countdown = require('../common/countdown');
- 
- const {
--  HTTP2_HEADER_METHOD,
--  HTTP2_HEADER_PATH,
--  HTTP2_METHOD_POST,
-   NGHTTP2_CANCEL,
-   NGHTTP2_NO_ERROR,
-   NGHTTP2_PROTOCOL_ERROR,
-@@ -17,63 +15,42 @@ const {
-   NGHTTP2_INTERNAL_ERROR
- } = http2.constants;
- 
--const errCheck = common.expectsError({ code: 'ERR_HTTP2_STREAM_ERROR' }, 6);
-+const tests = [
-+  ['rstStream', NGHTTP2_NO_ERROR, false],
-+  ['rstWithNoError', NGHTTP2_NO_ERROR, false],
-+  ['rstWithProtocolError', NGHTTP2_PROTOCOL_ERROR, true],
-+  ['rstWithCancel', NGHTTP2_CANCEL, false],
-+  ['rstWithRefuse', NGHTTP2_REFUSED_STREAM, true],
-+  ['rstWithInternalError', NGHTTP2_INTERNAL_ERROR, true]
-+];
-+
-+const server = http2.createServer();
-+server.on('stream', (stream, headers) => {
-+  const method = headers['rstmethod'];
-+  stream[method]();
-+});
-+
-+server.listen(0, common.mustCall(() => {
-+  const client = http2.connect(`http://localhost:${server.address().port}`);
-+
-+  const countdown = new Countdown(tests.length, common.mustCall(() => {
-+    client.destroy();
-+    server.close();
-+  }));
- 
--function checkRstCode(rstMethod, expectRstCode) {
--  const server = http2.createServer();
--  server.on('stream', (stream, headers, flags) => {
--    stream.respond({
--      'content-type': 'text/html',
--      ':status': 200
-+  tests.forEach((test) => {
-+    const req = client.request({
-+      ':method': 'POST',
-+      rstmethod: test[0]
-     });
--    stream.write('test');
--    if (rstMethod === 'rstStream')
--      stream[rstMethod](expectRstCode);
--    else
--      stream[rstMethod]();
--
--    if (expectRstCode !== NGHTTP2_NO_ERROR &&
--        expectRstCode !== NGHTTP2_CANCEL) {
--      stream.on('error', common.mustCall(errCheck));
--    } else {
--      stream.on('error', common.mustNotCall());
--    }
--  });
--
--  server.listen(0, common.mustCall(() => {
--    const port = server.address().port;
--    const client = http2.connect(`http://localhost:${port}`);
--
--    const headers = {
--      [HTTP2_HEADER_PATH]: '/',
--      [HTTP2_HEADER_METHOD]: HTTP2_METHOD_POST
--    };
--    const req = client.request(headers);
--
--    req.setEncoding('utf8');
--    req.on('streamClosed', common.mustCall((actualRstCode) => {
--      assert.strictEqual(
--        expectRstCode, actualRstCode, `${rstMethod} is not match rstCode`);
--      server.close();
--      client.destroy();
-+    req.on('streamClosed', common.mustCall((code) => {
-+      assert.strictEqual(code, test[1]);
-+      countdown.dec();
-     }));
--    req.on('data', common.mustCall());
-     req.on('aborted', common.mustCall());
--    req.on('end', common.mustCall());
--
--    if (expectRstCode !== NGHTTP2_NO_ERROR &&
--        expectRstCode !== NGHTTP2_CANCEL) {
--      req.on('error', common.mustCall(errCheck));
--    } else {
-+    if (test[2])
-+      req.on('error', common.mustCall());
-+    else
-       req.on('error', common.mustNotCall());
--    }
--
--  }));
--}
--
--checkRstCode('rstStream', NGHTTP2_NO_ERROR);
--checkRstCode('rstWithNoError', NGHTTP2_NO_ERROR);
--checkRstCode('rstWithProtocolError', NGHTTP2_PROTOCOL_ERROR);
--checkRstCode('rstWithCancel', NGHTTP2_CANCEL);
--checkRstCode('rstWithRefuse', NGHTTP2_REFUSED_STREAM);
--checkRstCode('rstWithInternalError', NGHTTP2_INTERNAL_ERROR);
-+  });
-+}));
--- 
-2.15.0
-
-- 
2.15.1