unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#29449] [PATCH] gnu: node: Update to 8.9.1.
@ 2017-11-26  1:45 Mike Gerwitz
  2017-11-26 17:41 ` Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Mike Gerwitz @ 2017-11-26  1:45 UTC (permalink / raw)
  To: 29449


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

Let me know if there is a better way to accomplish removing the
`doc-only' invocation as part of the `check' target.  It invokes npm and
attempts to download `js-yaml', so I figured we may as well just skip it
altogether since it isn't otherwise used.


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

From 918303981e0dd3212f1e0c1f1f87fc8ca608cc5e Mon Sep 17 00:00:00 2001
From: Mike Gerwitz <mtg@gnu.org>
Date: Sat, 25 Nov 2017 20:34:12 -0500
Subject: [PATCH] gnu: node: Update to 8.9.1.

* gnu/packages/node.scm (node): Update to 8.9.1.
[arguments]: Skip 'doc-only' target in 'check', which attempts to use
npm to retrieve 'js-yaml' package.  Remove test/doctool/test-make-doc.js.
Do not remove now-missing test case.  Remove new test case that fails in
containers due to networking.
---
 gnu/packages/node.scm | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index e354130ad..4e2990ca3 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -40,14 +40,14 @@
 (define-public node
   (package
     (name "node")
-    (version "8.7.0")
+    (version "8.9.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://nodejs.org/dist/v" version
                                   "/node-v" version ".tar.gz"))
               (sha256
                (base32
-                "1a0ginagx3pav6v7adyp76jisia4qgbsq6pz3als4kshwlk4a667"))))
+                "1qbiz7hgwlirhwpd71c8yzcbwsyi5bjlfp6lxb6v55j6rizinj9j"))))
     (build-system gnu-build-system)
     (arguments
      ;; TODO: Purge the bundled copies from the source.
@@ -76,6 +76,10 @@
                (("'/usr/bin/env'")
                 (string-append "'" (which "env") "'")))
 
+
+             ;; 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
@@ -88,12 +92,12 @@
                          "test/parallel/test-util-inspect.js"
                          "test/parallel/test-v8-serdes.js"
                          "test/parallel/test-dgram-membership.js"
-                         "test/parallel/test-dgram-multicast-set-interface-lo.js"
                          "test/parallel/test-dns-cancel-reverse-lookup.js"
                          "test/parallel/test-dns-resolveany.js"
                          "test/parallel/test-cluster-master-error.js"
                          "test/parallel/test-cluster-master-kill.js"
                          "test/parallel/test-npm-install.js"
+                         "test/parallel/test-regress-GH-746.js"
                          "test/sequential/test-child-process-emfile.js"
                          "test/sequential/test-benchmark-child-process.js"
                          "test/sequential/test-http-regr-gh-2928.js"))
@@ -115,6 +119,14 @@
                              (string-append (assoc-ref inputs "python")
                                             "/bin/python")
                              "configure" flags)))))
+         (add-before 'check 'skip-check-doc-only
+           (lambda _
+             (substitute* "Makefile"
+               ;; requires js-yaml, which is not part of the distribution,
+               ;; and falls back to using npm to download it
+               (("\\$\\(MAKE\\) doc-only" all)
+                (string-append "#" all)))
+             #t))
          (add-after 'patch-shebangs 'patch-npm-shebang
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((bindir (string-append (assoc-ref outputs "out")
-- 
2.15.0


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

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

-- 
Mike Gerwitz
Free Software Hacker+Activist | GNU Maintainer & Volunteer
GPG: D6E9 B930 028A 6C38 F43B  2388 FEF6 3574 5E6F 6D05
https://mikegerwitz.com

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

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

* [bug#29449] [PATCH] gnu: node: Update to 8.9.1.
  2017-11-26  1:45 [bug#29449] [PATCH] gnu: node: Update to 8.9.1 Mike Gerwitz
@ 2017-11-26 17:41 ` Ludovic Courtès
  2017-11-26 19:10   ` Mike Gerwitz
  2017-11-26 21:55   ` Jelle Licht
  0 siblings, 2 replies; 12+ messages in thread
From: Ludovic Courtès @ 2017-11-26 17:41 UTC (permalink / raw)
  To: Mike Gerwitz; +Cc: 29449

Hello Mike,

Mike Gerwitz <mtg@gnu.org> skribis:

> Let me know if there is a better way to accomplish removing the
> `doc-only' invocation as part of the `check' target.  It invokes npm and
> attempts to download `js-yaml', so I figured we may as well just skip it
> altogether since it isn't otherwise used.

What you did LGTM.

> From 918303981e0dd3212f1e0c1f1f87fc8ca608cc5e Mon Sep 17 00:00:00 2001
> From: Mike Gerwitz <mtg@gnu.org>
> Date: Sat, 25 Nov 2017 20:34:12 -0500
> Subject: [PATCH] gnu: node: Update to 8.9.1.
>
> * gnu/packages/node.scm (node): Update to 8.9.1.
> [arguments]: Skip 'doc-only' target in 'check', which attempts to use
> npm to retrieve 'js-yaml' package.  Remove test/doctool/test-make-doc.js.
> Do not remove now-missing test case.  Remove new test case that fails in
> containers due to networking.

The ‘check’ phase fails for me (on x86_64):

--8<---------------cut here---------------start------------->8---
[----------] 10 tests from InspectorSocketServerTest (88 ms total)

[----------] Global test environment tear-down
[==========] 62 tests from 7 test cases ran. (3863 ms total)
[  PASSED  ] 62 tests.
/gnu/store/zlbbayv8rv6z7gnhz435gjq8pzjm06v6-python-2.7.13/bin/python tools/test.py --mode=release -J \
        async-hooks \
        default \
        addons addons-napi \
        doctool \
        known_issues
=== release test-http2-server-rst-stream ===
Path: parallel/test-http2-server-rst-stream
(node:12213) ExperimentalWarning: The http2 module is an experimental API.
assert.js:42
  throw new errors.AssertionError({
  ^

AssertionError [ERR_ASSERTION]: rstWithCancel is not match rstCode
    at ClientHttp2Stream.req.on.common.mustCall (/tmp/guix-build-node-8.9.1.drv-0/node-v8.9.1/test/parallel/test-http2-server-rst-stream.js:55:14)
    at ClientHttp2Stream.<anonymous> (/tmp/guix-build-node-8.9.1.drv-0/node-v8.9.1/test/common/index.js:533:15)
    at emitOne (events.js:121:20)
    at ClientHttp2Stream.emit (events.js:211:7)
    at emit (internal/http2/core.js:140:8)
    at _combinedTickCallback (internal/process/next_tick.js:141:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
Command: out/Release/node /tmp/guix-build-node-8.9.1.drv-0/node-v8.9.1/test/parallel/test-http2-server-rst-stream.js
[10:05|% 100|+ 2010|-   1]: Done                                               
make: *** [Makefile:218: test] Error 1
phase `check' failed after 667.7 seconds
--8<---------------cut here---------------end--------------->8---


Any ideas?  Could it be a non-deterministic issue?

Thanks,
Ludo’.

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

* [bug#29449] [PATCH] gnu: node: Update to 8.9.1.
  2017-11-26 17:41 ` Ludovic Courtès
@ 2017-11-26 19:10   ` Mike Gerwitz
  2017-11-26 19:24     ` Leo Famulari
  2017-11-26 21:55   ` Jelle Licht
  1 sibling, 1 reply; 12+ messages in thread
From: Mike Gerwitz @ 2017-11-26 19:10 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 29449

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

On Sun, Nov 26, 2017 at 18:41:47 +0100, Ludovic Courtès wrote:
> The ‘check’ phase fails for me (on x86_64):
[...]
> Any ideas?  Could it be a non-deterministic issue?

I'm inclined to think so...I just re-ran that test in one of the build
environments I still had in /tmp and it failed with the same error...!

I feel like this is a question that might have an easy answer, but: how
do I force Guix to re-build the package?  I've tried `./pre-inst-env
guix build --check' and `--rounds=2' and such but it keeps returning the
current derivation without doing any actual work.

-- 
Mike Gerwitz
Free Software Hacker+Activist | GNU Maintainer & Volunteer
GPG: D6E9 B930 028A 6C38 F43B  2388 FEF6 3574 5E6F 6D05
https://mikegerwitz.com

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

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

* [bug#29449] [PATCH] gnu: node: Update to 8.9.1.
  2017-11-26 19:10   ` Mike Gerwitz
@ 2017-11-26 19:24     ` Leo Famulari
  2017-11-27  4:54       ` Mike Gerwitz
  0 siblings, 1 reply; 12+ messages in thread
From: Leo Famulari @ 2017-11-26 19:24 UTC (permalink / raw)
  To: Mike Gerwitz; +Cc: 29449

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

On Sun, Nov 26, 2017 at 02:10:53PM -0500, Mike Gerwitz wrote:
> On Sun, Nov 26, 2017 at 18:41:47 +0100, Ludovic Courtès wrote:
> > The ‘check’ phase fails for me (on x86_64):
> [...]
> > Any ideas?  Could it be a non-deterministic issue?
> 
> I'm inclined to think so...I just re-ran that test in one of the build
> environments I still had in /tmp and it failed with the same error...!
> 
> I feel like this is a question that might have an easy answer, but: how
> do I force Guix to re-build the package?  I've tried `./pre-inst-env
> guix build --check' and `--rounds=2' and such but it keeps returning the
> current derivation without doing any actual work.

--check and --rounds are a bit confusing when the package in question is
grafted.

Basically, grafting is treated as its own derivation, so doing
`./pre-inst-env guix build --check node` just re-does the grafting
derivation, instead of rebuilding node.

Currently every package is grafted because we used a graft to fix a bug
in glibc.

So, try `./pre-inst-env guix build --no-grafts --check node`.

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

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

* [bug#29449] [PATCH] gnu: node: Update to 8.9.1.
  2017-11-26 17:41 ` Ludovic Courtès
  2017-11-26 19:10   ` Mike Gerwitz
@ 2017-11-26 21:55   ` Jelle Licht
  2017-11-27  4:57     ` Mike Gerwitz
  1 sibling, 1 reply; 12+ messages in thread
From: Jelle Licht @ 2017-11-26 21:55 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 29449


Ludovic Courtès <ludo@gnu.org> writes:

> Hello Mike,
>
> Mike Gerwitz <mtg@gnu.org> skribis:
>
>> Let me know if there is a better way to accomplish removing the
>> `doc-only' invocation as part of the `check' target.  It invokes npm and
>> attempts to download `js-yaml', so I figured we may as well just skip it
>> altogether since it isn't otherwise used.
>
> What you did LGTM.
>
>> From 918303981e0dd3212f1e0c1f1f87fc8ca608cc5e Mon Sep 17 00:00:00 2001
>> From: Mike Gerwitz <mtg@gnu.org>
>> Date: Sat, 25 Nov 2017 20:34:12 -0500
>> Subject: [PATCH] gnu: node: Update to 8.9.1.
>>
>> * gnu/packages/node.scm (node): Update to 8.9.1.
>> [arguments]: Skip 'doc-only' target in 'check', which attempts to use
>> npm to retrieve 'js-yaml' package.  Remove test/doctool/test-make-doc.js.
>> Do not remove now-missing test case.  Remove new test case that fails in
>> containers due to networking.
>
> The ‘check’ phase fails for me (on x86_64):
>
> --8<---------------cut here---------------start------------->8---
> [----------] 10 tests from InspectorSocketServerTest (88 ms total)
>
> [----------] Global test environment tear-down
> [==========] 62 tests from 7 test cases ran. (3863 ms total)
> [  PASSED  ] 62 tests.
> /gnu/store/zlbbayv8rv6z7gnhz435gjq8pzjm06v6-python-2.7.13/bin/python tools/test.py --mode=release -J \
>         async-hooks \
>         default \
>         addons addons-napi \
>         doctool \
>         known_issues
> === release test-http2-server-rst-stream ===
> Path: parallel/test-http2-server-rst-stream
> (node:12213) ExperimentalWarning: The http2 module is an experimental API.
> assert.js:42
>   throw new errors.AssertionError({
>   ^
>
> AssertionError [ERR_ASSERTION]: rstWithCancel is not match rstCode
>     at ClientHttp2Stream.req.on.common.mustCall (/tmp/guix-build-node-8.9.1.drv-0/node-v8.9.1/test/parallel/test-http2-server-rst-stream.js:55:14)
>     at ClientHttp2Stream.<anonymous> (/tmp/guix-build-node-8.9.1.drv-0/node-v8.9.1/test/common/index.js:533:15)
>     at emitOne (events.js:121:20)
>     at ClientHttp2Stream.emit (events.js:211:7)
>     at emit (internal/http2/core.js:140:8)
>     at _combinedTickCallback (internal/process/next_tick.js:141:11)
>     at process._tickCallback (internal/process/next_tick.js:180:9)
> Command: out/Release/node /tmp/guix-build-node-8.9.1.drv-0/node-v8.9.1/test/parallel/test-http2-server-rst-stream.js
> [10:05|% 100|+ 2010|-   1]: Done
> make: *** [Makefile:218: test] Error 1
> phase `check' failed after 667.7 seconds
> --8<---------------cut here---------------end--------------->8---
>
>
> Any ideas?  Could it be a non-deterministic issue?
>
> Thanks,
> Ludo’.

I get a similar issue to Ludo:

--8<---------------cut here---------------start------------->8---
Path: parallel/test-http2-server-rst-stream
(node:13036) ExperimentalWarning: The http2 module is an experimental API.
assert.js:42
  throw new errors.AssertionError({
  ^

AssertionError [ERR_ASSERTION]: rstWithProtocolError is not match rstCode
    at ClientHttp2Stream.req.on.common.mustCall (/tmp/guix-build-node-8.9.1.drv-0/node-v8.9.1/test/parallel/test-http2-server-rst-stream.js:55:14)
    at ClientHttp2Stream.<anonymous> (/tmp/guix-build-node-8.9.1.drv-0/node-v8.9.1/test/common/index.js:533:15)
    at emitOne (events.js:121:20)
    at ClientHttp2Stream.emit (events.js:211:7)
    at emit (internal/http2/core.js:140:8)
    at _combinedTickCallback (internal/process/next_tick.js:141:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
Command: out/Release/node /tmp/guix-build-node-8.9.1.drv-0/node-v8.9.1/test/parallel/test-http2-server-rst-stream.js
--8<---------------cut here---------------end--------------->8---

I also found a GitHub issue[0], stating that several other people have
similar problems with this specific test. It also seems that commit
a41cc020fd in the node git repo addresses this flaky test. We could
either backport the fix until it is included in a node release proper,
or disable the test for now.

- Jelle

[0]: https://github.com/nodejs/node/issues/16688

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

* [bug#29449] [PATCH] gnu: node: Update to 8.9.1.
  2017-11-26 19:24     ` Leo Famulari
@ 2017-11-27  4:54       ` Mike Gerwitz
  0 siblings, 0 replies; 12+ messages in thread
From: Mike Gerwitz @ 2017-11-27  4:54 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 29449

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

On Sun, Nov 26, 2017 at 14:24:05 -0500, Leo Famulari wrote:
> --check and --rounds are a bit confusing when the package in question is
> grafted.
>
> Basically, grafting is treated as its own derivation, so doing
> `./pre-inst-env guix build --check node` just re-does the grafting
> derivation, instead of rebuilding node.
>
> Currently every package is grafted because we used a graft to fix a bug
> in glibc.
>
> So, try `./pre-inst-env guix build --no-grafts --check node`.

Ah, that makes sense, thank you for the clarification.  I did start
--no-grafts, but that applied to dependencies as well it seemed, so I
stopped it.  I'll let that run tonight (node takes a while to build on
the X200) and report back / provide an updated patch tomorrow.

-- 
Mike Gerwitz
Free Software Hacker+Activist | GNU Maintainer & Volunteer
GPG: D6E9 B930 028A 6C38 F43B  2388 FEF6 3574 5E6F 6D05
https://mikegerwitz.com

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

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

* [bug#29449] [PATCH] gnu: node: Update to 8.9.1.
  2017-11-26 21:55   ` Jelle Licht
@ 2017-11-27  4:57     ` Mike Gerwitz
  2017-11-27  8:44       ` Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Mike Gerwitz @ 2017-11-27  4:57 UTC (permalink / raw)
  To: Jelle Licht; +Cc: 29449

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

On Sun, Nov 26, 2017 at 22:55:26 +0100, Jelle Licht wrote:
> I also found a GitHub issue[0], stating that several other people have
> similar problems with this specific test. It also seems that commit
> a41cc020fd in the node git repo addresses this flaky test. We could
> either backport the fix until it is included in a node release proper,
> or disable the test for now.
>
> - Jelle
>
> [0]: https://github.com/nodejs/node/issues/16688

Thanks for doing the research.  I'll do whatever everyone thinks is
best.

-- 
Mike Gerwitz
Free Software Hacker+Activist | GNU Maintainer & Volunteer
GPG: D6E9 B930 028A 6C38 F43B  2388 FEF6 3574 5E6F 6D05
https://mikegerwitz.com

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

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

* [bug#29449] [PATCH] gnu: node: Update to 8.9.1.
  2017-11-27  4:57     ` Mike Gerwitz
@ 2017-11-27  8:44       ` Ludovic Courtès
  2017-11-28  2:29         ` Mike Gerwitz
  0 siblings, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2017-11-27  8:44 UTC (permalink / raw)
  To: Mike Gerwitz; +Cc: 29449

Mike Gerwitz <mtg@gnu.org> skribis:

> On Sun, Nov 26, 2017 at 22:55:26 +0100, Jelle Licht wrote:
>> I also found a GitHub issue[0], stating that several other people have
>> similar problems with this specific test. It also seems that commit
>> a41cc020fd in the node git repo addresses this flaky test. We could
>> either backport the fix until it is included in a node release proper,
>> or disable the test for now.
>>
>> - Jelle
>>
>> [0]: https://github.com/nodejs/node/issues/16688
>
> Thanks for doing the research.  I'll do whatever everyone thinks is
> best.

Unless the fix of that test is big, I’d be in favor of including the
patch for that test in our repo.

Ludo’.

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

* [bug#29449] [PATCH] gnu: node: Update to 8.9.1.
  2017-11-27  8:44       ` Ludovic Courtès
@ 2017-11-28  2:29         ` Mike Gerwitz
  2017-11-28  9:05           ` bug#29449: " Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Mike Gerwitz @ 2017-11-28  2:29 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 29449


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

On Mon, Nov 27, 2017 at 09:44:29 +0100, Ludovic Courtès wrote:
> Mike Gerwitz <mtg@gnu.org> skribis:
>> Thanks for doing the research.  I'll do whatever everyone thinks is
>> best.
>
> Unless the fix of that test is big, I’d be in favor of including the
> patch for that test in our repo.

I was able to reproduce the failure when rebuilding.

Updated patch attached.


[-- Attachment #1.2: 0001-gnu-node-Update-to-8.9.1.patch --]
[-- Type: text/x-diff, Size: 9170 bytes --]

From a07f3f92a0768661dbcb2a4b87fe08dd04149190 Mon Sep 17 00:00:00 2001
From: Mike Gerwitz <mtg@gnu.org>
Date: Sat, 25 Nov 2017 20:34:12 -0500
Subject: [PATCH] gnu: node: Update to 8.9.1.

* gnu/packages/node.scm (node): Update to 8.9.1.
[source]: Apply 'node-test-http2-server-rst-stream.patch'.
[arguments]: Skip 'doc-only' target in 'check', which attempts to use
npm to retrieve 'js-yaml' package.  Remove test/doctool/test-make-doc.js.
Do not remove now-missing test case.  Remove new test case that fails in
containers due to networking.
* gnu/packages/patches/node-test-http2-server-rst-stream.patch: New file.
---
 gnu/packages/node.scm                              |  23 +++-
 .../node-test-http2-server-rst-stream.patch        | 131 +++++++++++++++++++++
 2 files changed, 151 insertions(+), 3 deletions(-)
 create mode 100644 gnu/packages/patches/node-test-http2-server-rst-stream.patch

diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index e354130ad..fade8b23d 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,14 +41,18 @@
 (define-public node
   (package
     (name "node")
-    (version "8.7.0")
+    (version "8.9.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://nodejs.org/dist/v" version
                                   "/node-v" version ".tar.gz"))
               (sha256
                (base32
-                "1a0ginagx3pav6v7adyp76jisia4qgbsq6pz3als4kshwlk4a667"))))
+                "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"))))
     (build-system gnu-build-system)
     (arguments
      ;; TODO: Purge the bundled copies from the source.
@@ -76,6 +81,10 @@
                (("'/usr/bin/env'")
                 (string-append "'" (which "env") "'")))
 
+
+             ;; 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
@@ -88,12 +97,12 @@
                          "test/parallel/test-util-inspect.js"
                          "test/parallel/test-v8-serdes.js"
                          "test/parallel/test-dgram-membership.js"
-                         "test/parallel/test-dgram-multicast-set-interface-lo.js"
                          "test/parallel/test-dns-cancel-reverse-lookup.js"
                          "test/parallel/test-dns-resolveany.js"
                          "test/parallel/test-cluster-master-error.js"
                          "test/parallel/test-cluster-master-kill.js"
                          "test/parallel/test-npm-install.js"
+                         "test/parallel/test-regress-GH-746.js"
                          "test/sequential/test-child-process-emfile.js"
                          "test/sequential/test-benchmark-child-process.js"
                          "test/sequential/test-http-regr-gh-2928.js"))
@@ -115,6 +124,14 @@
                              (string-append (assoc-ref inputs "python")
                                             "/bin/python")
                              "configure" flags)))))
+         (add-before 'check 'skip-check-doc-only
+           (lambda _
+             (substitute* "Makefile"
+               ;; requires js-yaml, which is not part of the distribution,
+               ;; and falls back to using npm to download it
+               (("\\$\\(MAKE\\) doc-only" all)
+                (string-append "#" all)))
+             #t))
          (add-after 'patch-shebangs 'patch-npm-shebang
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((bindir (string-append (assoc-ref outputs "out")
diff --git a/gnu/packages/patches/node-test-http2-server-rst-stream.patch b/gnu/packages/patches/node-test-http2-server-rst-stream.patch
new file mode 100644
index 000000000..c2f85010b
--- /dev/null
+++ b/gnu/packages/patches/node-test-http2-server-rst-stream.patch
@@ -0,0 +1,131 @@
+From a41cc020fd6e40b358103425edfa50e6a10fc973 Mon Sep 17 00:00:00 2001
+From: Anatoli Papirovski <apapirovski@mac.com>
+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 <jasnell@gmail.com>
+Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
+---
+ 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.0


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


-- 
Mike Gerwitz
Free Software Hacker+Activist | GNU Maintainer & Volunteer
GPG: D6E9 B930 028A 6C38 F43B  2388 FEF6 3574 5E6F 6D05
https://mikegerwitz.com

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

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

* bug#29449: [PATCH] gnu: node: Update to 8.9.1.
  2017-11-28  2:29         ` Mike Gerwitz
@ 2017-11-28  9:05           ` Ludovic Courtès
  2017-11-28 18:28             ` [bug#29449] " Leo Famulari
  0 siblings, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2017-11-28  9:05 UTC (permalink / raw)
  To: Mike Gerwitz; +Cc: 29449-done

Mike Gerwitz <mtg@gnu.org> skribis:

> From a07f3f92a0768661dbcb2a4b87fe08dd04149190 Mon Sep 17 00:00:00 2001
> From: Mike Gerwitz <mtg@gnu.org>
> Date: Sat, 25 Nov 2017 20:34:12 -0500
> Subject: [PATCH] gnu: node: Update to 8.9.1.
>
> * gnu/packages/node.scm (node): Update to 8.9.1.
> [source]: Apply 'node-test-http2-server-rst-stream.patch'.
> [arguments]: Skip 'doc-only' target in 'check', which attempts to use
> npm to retrieve 'js-yaml' package.  Remove test/doctool/test-make-doc.js.
> Do not remove now-missing test case.  Remove new test case that fails in
> containers due to networking.
> * gnu/packages/patches/node-test-http2-server-rst-stream.patch: New file.

Perfect.  Applied, thanks!

Ludo’.

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

* [bug#29449] [PATCH] gnu: node: Update to 8.9.1.
  2017-11-28  9:05           ` bug#29449: " Ludovic Courtès
@ 2017-11-28 18:28             ` Leo Famulari
  2017-11-28 22:46               ` Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Leo Famulari @ 2017-11-28 18:28 UTC (permalink / raw)
  To: 29449, ludo, mtg

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

On Tue, Nov 28, 2017 at 10:05:16AM +0100, Ludovic Courtès wrote:
> Mike Gerwitz <mtg@gnu.org> skribis:
> 
> > From a07f3f92a0768661dbcb2a4b87fe08dd04149190 Mon Sep 17 00:00:00 2001
> > From: Mike Gerwitz <mtg@gnu.org>
> > Date: Sat, 25 Nov 2017 20:34:12 -0500
> > Subject: [PATCH] gnu: node: Update to 8.9.1.
> >
> > * gnu/packages/node.scm (node): Update to 8.9.1.
> > [source]: Apply 'node-test-http2-server-rst-stream.patch'.
> > [arguments]: Skip 'doc-only' target in 'check', which attempts to use
> > npm to retrieve 'js-yaml' package.  Remove test/doctool/test-make-doc.js.
> > Do not remove now-missing test case.  Remove new test case that fails in
> > containers due to networking.
> > * gnu/packages/patches/node-test-http2-server-rst-stream.patch: New file.
> 
> Perfect.  Applied, thanks!

Don't we need to add 'node-test-http2-server-rst-stream.patch' to
'gnu/local.mk'?

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

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

* [bug#29449] [PATCH] gnu: node: Update to 8.9.1.
  2017-11-28 18:28             ` [bug#29449] " Leo Famulari
@ 2017-11-28 22:46               ` Ludovic Courtès
  0 siblings, 0 replies; 12+ messages in thread
From: Ludovic Courtès @ 2017-11-28 22:46 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 29449

Leo Famulari <leo@famulari.name> skribis:

> On Tue, Nov 28, 2017 at 10:05:16AM +0100, Ludovic Courtès wrote:
>> Mike Gerwitz <mtg@gnu.org> skribis:
>> 
>> > From a07f3f92a0768661dbcb2a4b87fe08dd04149190 Mon Sep 17 00:00:00 2001
>> > From: Mike Gerwitz <mtg@gnu.org>
>> > Date: Sat, 25 Nov 2017 20:34:12 -0500
>> > Subject: [PATCH] gnu: node: Update to 8.9.1.
>> >
>> > * gnu/packages/node.scm (node): Update to 8.9.1.
>> > [source]: Apply 'node-test-http2-server-rst-stream.patch'.
>> > [arguments]: Skip 'doc-only' target in 'check', which attempts to use
>> > npm to retrieve 'js-yaml' package.  Remove test/doctool/test-make-doc.js.
>> > Do not remove now-missing test case.  Remove new test case that fails in
>> > containers due to networking.
>> > * gnu/packages/patches/node-test-http2-server-rst-stream.patch: New file.
>> 
>> Perfect.  Applied, thanks!
>
> Don't we need to add 'node-test-http2-server-rst-stream.patch' to
> 'gnu/local.mk'?

Indeed, I’ve added it now.  Thanks for the heads-up!

Ludo’.

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

end of thread, other threads:[~2017-11-28 22:47 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-26  1:45 [bug#29449] [PATCH] gnu: node: Update to 8.9.1 Mike Gerwitz
2017-11-26 17:41 ` Ludovic Courtès
2017-11-26 19:10   ` Mike Gerwitz
2017-11-26 19:24     ` Leo Famulari
2017-11-27  4:54       ` Mike Gerwitz
2017-11-26 21:55   ` Jelle Licht
2017-11-27  4:57     ` Mike Gerwitz
2017-11-27  8:44       ` Ludovic Courtès
2017-11-28  2:29         ` Mike Gerwitz
2017-11-28  9:05           ` bug#29449: " Ludovic Courtès
2017-11-28 18:28             ` [bug#29449] " Leo Famulari
2017-11-28 22:46               ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).