[PATCH] update Node LTS to 16.13.2

OpenSubmitted by zamfofex.
Details
6 participants
  • Attila Lendvai
  • code@ceephax.com
  • Maxime Devos
  • Pierre Langlois
  • Ryan Sundberg
  • zamfofex
Owner
unassigned
Severity
normal
Z
Z
zamfofex wrote on 21 Jan 16:11 +0100
(name . guix-patches@gnu.org)(address . guix-patches@gnu.org)
145389012.1197903.1642777885519@privateemail.com
Hello, everyone! In case this might be useful, I spent some time updating the Node LTS package to version 16.13.2, which is currently the latest LTS.

I hope this patch is sensible! Please let me know if there is anything I should work on regarding it.
From 63d2976a063da9c710ec09f7ebf7158777c134d6 Mon Sep 17 00:00:00 2001
From: zamfofex <zamfofex@twdb.moe>
Date: Fri, 21 Jan 2022 12:06:08 -0300
Subject: [PATCH] gnu: node-lts: Update to 16.13.2 * gnu/packages/node.scm
(node-lts): Update to 16.13.2.

---
gnu/packages/node.scm | 42 ++++++++++++++++++++----------------------
1 file changed, 20 insertions(+), 22 deletions(-)

Toggle diff (123 lines)
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 6b543ac..941174e 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -570,7 +571,7 @@ (define-public node-llparse-bootstrap
 (define-public llhttp-bootstrap
   (package
     (name "llhttp")
-    (version "2.1.4")
+    (version "6.0.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -579,8 +580,7 @@ (define-public llhttp-bootstrap
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "115mwyds9655p76lhglxg2blc1ksgrix6zhigaxnc2q6syy3pa6x"))
-              (patches (search-patches "llhttp-bootstrap-CVE-2020-8287.patch"))
+                "1c1p39m46frpslm5yx13hj58r7s0cila03yvqp6caip5dbizpfmr"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -618,10 +618,13 @@ (define-public llhttp-bootstrap
          (add-after 'install 'install-src
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (src-dir (string-append out "/src")))
-               (install-file "build/c/llhttp.c" src-dir)
-               (install-file "src/native/api.c" src-dir)
-               (install-file "src/native/http.c" src-dir)
+                    (src-dir (string-append out "/src"))
+                    (src-src-dir (string-append src-dir "/src")))
+               (install-file "src/llhttp.gyp" src-dir)
+               (install-file "src/common.gypi" src-dir)
+               (install-file "build/c/llhttp.c" src-src-dir)
+               (install-file "src/native/http.c" src-src-dir)
+               (install-file "src/native/api.c" src-src-dir)
                #t))))))
     (native-inputs
      `(("esbuild" ,esbuild)
@@ -640,14 +643,14 @@ (define-public llhttp-bootstrap
 (define-public node-lts
   (package
     (inherit node)
-    (version "14.18.1")
+    (version "16.13.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nodejs.org/dist/v" version
                                   "/node-v" version ".tar.xz"))
               (sha256
                (base32
-                "1vc9rypkgr5i5y946jnyr9jjpydxvm74p1s17rg2zayzvlddg89z"))
+                "185lm13q0kwz0qimc38c7mxn8ml6m713pjdjsa9jna9az4gxxccq"))
               (modules '((guix build utils)))
               (snippet
                `(begin
@@ -751,6 +754,7 @@ (define-public node-lts
                               "lib/internal/v8_prof_polyfill.js"
                               "test/parallel/test-child-process-spawnsync-shell.js"
                               "test/parallel/test-fs-write-sigxfsz.js"
+                              "test/parallel/test-stdin-from-file-spawn.js"
                               "test/parallel/test-stdio-closed.js"
                               "test/sequential/test-child-process-emfile.js")
                  (("'/bin/sh'")
@@ -767,8 +771,8 @@ (define-public node-lts
                ;; 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
-                         '("test/parallel/test-cluster-master-error.js"
-                           "test/parallel/test-cluster-master-kill.js"))
+                         '("test/parallel/test-cluster-primary-error.js"
+                           "test/parallel/test-cluster-primary-kill.js"))
 
                ;; These require a DNS resolver.
                (for-each delete-file
@@ -805,20 +809,14 @@ (define-public node-lts
                            "test/parallel/test-tls-server-verify.js"))
 
                ;; Replace pre-generated llhttp sources
-               (let ((llhttp (assoc-ref inputs "llhttp")))
-                 (copy-file (string-append llhttp "/src/llhttp.c")
-                            "deps/llhttp/src/llhttp.c")
-                 (copy-file (string-append llhttp "/src/api.c")
-                            "deps/llhttp/src/api.c")
-                 (copy-file (string-append llhttp "/src/http.c")
-                            "deps/llhttp/src/http.c")
-                 (copy-file (string-append llhttp "/include/llhttp.h")
-                            "deps/llhttp/include/llhttp.h"))))))))
+               (delete-file-recursively "deps/llhttp")
+               (copy-recursively (string-append (assoc-ref inputs "llhttp") "/src")
+                                 "deps/llhttp")))))))
     (native-inputs
      (list ;; Runtime dependencies for binaries used as a bootstrap.
            c-ares-for-node
            brotli
-           icu4c-67
+           icu4c
            libuv-for-node
            `(,nghttp2 "lib")
            openssl
@@ -833,7 +831,7 @@ (define-public node-lts
      (list bash
            coreutils
            c-ares-for-node
-           icu4c-67
+           icu4c
            libuv-for-node
            llhttp-bootstrap
            brotli

base-commit: 80194d9e47f9f50602a5a97ecd33fb9a95dfe03d
-- 
2.34.0
C
C
code@ceephax.com wrote on 23 Feb 14:13 +0100
(address . 53414@debbugs.gnu.org)
7aa44213-3160-44c3-958b-da55c7a367ee@www.fastmail.com
This works for me, though i'd prefer it wouldn't replace the previous LTS version as it hasn't reached end of life https://nodejs.org/en/about/releases/
M
M
Maxime Devos wrote on 25 Feb 12:07 +0100
5f1f12681a242ac300d63edbf3ab28153440c409.camel@telenet.be
code@ceephax.com schreef op wo 23-02-2022 om 13:13 [+0000]:
Toggle quote (3 lines)
> This works for me, though i'd prefer it wouldn't replace the previous LTS version
> as it hasn't reached end of life https://nodejs.org/en/about/releases/

It will be end-of-life in two months. More generally, I don't see the
appeal of packaging old versions, especially old versions that will
soon be unsupported, when there are newer versions (16.X.Y) that will
be supported for a relatively long time (two years).

Also, a question for zamfofex: do the existing node packages still
build, or are there (new) build failures after the patch?

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYhi4ZxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7uTzAP4nL0+56fHggAZe4goPk5DWDu87
YFVTp+Xgi11wanuV5QEAvORCou1Twid4qrr5pVQ2aiFABJvaqaK2TSyrR0ExCwE=
=gk01
-----END PGP SIGNATURE-----


C
C
code@ceephax.com wrote on 25 Feb 12:24 +0100
4ce7393f-d9fe-4cf2-af4c-de154f977be9@www.fastmail.com
On Fri, 25 Feb 2022, at 11:07, Maxime Devos wrote:
Toggle quote (5 lines)
> code@ceephax.com schreef op wo 23-02-2022 om 13:13 [+0000]:
>> This works for me, though i'd prefer it wouldn't replace the previous LTS version
>> as it hasn't reached end of life https://nodejs.org/en/about/releases/
>
> It will be end-of-life in two months. More generally, I don't see the
End of life is 2023-04-30
Toggle quote (12 lines)
> appeal of packaging old versions, especially old versions that will
> soon be unsupported, when there are newer versions (16.X.Y) that will
> be supported for a relatively long time (two years).
>
> Also, a question for zamfofex: do the existing node packages still
> build, or are there (new) build failures after the patch?
>
> Greetings,
> Maxime.
>
> Attachments:
> * signature.asc
M
M
Maxime Devos wrote on 25 Feb 13:38 +0100
fdec0107b123a00236eba5c08ea73e219f685d09.camel@telenet.be
code@ceephax.com schreef op vr 25-02-2022 om 11:24 [+0000]:
Toggle quote (2 lines)
> It will be end-of-life in two months.  More generally, I don't see
> the
End of life is  2023-04-30

I looked at the wrong version (v12 instead of v14), it's a year and two
months instead of two months. Still, the latest LTS (v16) seems better
to me since it is newer and will be supported for longer.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYhjNqhccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7nOvAQC30LFcjkU+hvoUEkhw0ITI2FMF
NWo60S37Gz35ZhuohwEAwL/zQ0whLCyAHmeNJUPXFMyBqeXgGErWIdmWanoi6Qg=
=V/sD
-----END PGP SIGNATURE-----


A
A
Attila Lendvai wrote on 25 Feb 14:09 +0100
Re: [PATCH] update Node LTS to 16.13.2
(name . 53414@debbugs.gnu.org)(address . 53414@debbugs.gnu.org)
sd9Oi7dJHu-Htzpw-2nTg6xUR2n84wErt6gEOc11sW5xV7e1PMvWS64IrH7SWDBBFqe8Xy8QLzvlSApQ2mzRdgPvaK6woyqnW9tNDS1Gvso=@lendvai.name
Toggle quote (3 lines)
> Still, the latest LTS (v16) seems better to me since it is newer and will be
> supported for longer.

with packages like nodejs one often needs both older and newer versions in
parallel to also be able to build projects that haven't been ported to the new
nodejs.

note that this supersedes https://issues.guix.gnu.org/48396(i don't know what
is the right way to record that fact in debbugs, besides this note).

--
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Everything is interesting if you go into it *deeply* enough.”
— Richard Feynman (1918–1988)
M
M
Maxime Devos wrote on 25 Feb 16:59 +0100
Re: [bug#53414] [PATCH] update Node LTS to 16.13.2
079ca956e4d7c6b71921ee34638de012ae0a0c5f.camel@telenet.be
Attila Lendvai schreef op vr 25-02-2022 om 13:09 [+0000]:
Toggle quote (10 lines)
> > Still, the latest LTS (v16) seems better to me since it is newer
> > and will be
> > supported for longer.
>
> with packages like nodejs one often needs both older and newer
> versions in
> parallel to also be able to build projects that haven't been ported
> to the new
> nodejs.

Ignoring bootstrapping, this does not seem to be the case so far in
Guix -- the only results of "git grep -F \#\:node gnu" is

# 7 lines
gnu/packages/node.scm: `(#:node ,node-bootstrap

so it seems that, except for bootstrapping, a single version of 'node'
suffices.

If it turns out that some packages still require v14, then we can
discuss that upstream, patch the package and/or introduce a 'node-14'
package variant, like we do with, say, autoconf, bcftools and gcc.

Actually 'gcc' does not point to the latest version, but to the
slightly older 10.3.0, but that's only due to core-updates concerns
and perhaps because upstream does -Werror too often. And 'autoconf'
is not autoconf-2.71 because ‘this is the renaissance version, which is
not widelt supported yet’. But AFAICT, there are no compatibility
concerns with v14->v16.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYhj83BccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7qnyAPwL2Hxjq5/FuhI7aXEKSECzSJFA
BKb+9/e08VsWbIwQUwD/dvF5L9whmiC2O4cOQ4EXpyb0N7krv/U4frCJ7df2FwE=
=qcK0
-----END PGP SIGNATURE-----


P
P
Pierre Langlois wrote on 25 Feb 17:31 +0100
(name . Maxime Devos)(address . maximedevos@telenet.be)
87lexyew8j.fsf@gmx.com
Hi all,

Maxime Devos <maximedevos@telenet.be> writes:

Toggle quote (21 lines)
> [[PGP Signed Part:Undecided]]
> Attila Lendvai schreef op vr 25-02-2022 om 13:09 [+0000]:
>> > Still, the latest LTS (v16) seems better to me since it is newer
>> > and will be
>> > supported for longer.
>>
>> with packages like nodejs one often needs both older and newer
>> versions in
>> parallel to also be able to build projects that haven't been ported
>> to the new
>> nodejs.
>
> Ignoring bootstrapping, this does not seem to be the case so far in
> Guix -- the only results of "git grep -F \#\:node gnu" is
>
> # 7 lines
> gnu/packages/node.scm: `(#:node ,node-bootstrap
>
> so it seems that, except for bootstrapping, a single version of 'node'
> suffices.

If I may shime in, I agree that it's best to have fewer versions of node
for Guix's own node packages, however for end-users I think it's a good
idea to provide multiple versions they can install.

I am not a web developper so if anybody knows better please correct me
:-), but I think it's common for a website projects to depend on a
specific supported LTS version of node. For example, one time I
contributed to a project that recommended using a "node version manager"
script, https://github.com/nvm-sh/nvm,to easily switch between node
versions for different project. This script seems pretty popular, but
it downloads official binaries :-/, Guix provides much better tools to
do this by default.

So I'm thinking it might make Guix more appealing to web developpers if
we provided multiple versions of node, only the LTS releases though I'd
say. For nodejs applications packaged in Guix though, I agree we don't
want multiple versions.

Thanks,
Pierre
-----BEGIN PGP SIGNATURE-----

iQFMBAEBCgA2FiEEctU9gYy29KFyWDdMqPyeRH9PfVQFAmIZBkwYHHBpZXJyZS5s
YW5nbG9pc0BnbXguY29tAAoJEKj8nkR/T31UkVAIAJU31emfJlRTkVQfCptp52UH
eY0U8w64WsNmW93lMdCCSR1G7Dl4aOnvNNrm0aNiiiwXlf+4bpExStdFr4aqXN40
hZnh0VdU1V05nHqzEopehmzswVa91dgNpvI/pI9FB1xw5iSaNzyv/fTAM5YZyFcE
891vwvuLmtTq2PmGRUeh6Bj+km+yJj0O62+z/1d5PNcIB4ClUILFgVGOM3ugRxTG
5kRPQLuiSgZtPTAulTkTbdrnJ1e/33Ucxi1egmwYGPwn2qPV6ItvxQniovH86mPd
zkaW42lV27ChUrLGG09eWnjbb7S56nTPjgr4XKXihSyE4ETtglilk0CjL7b8nkY=
=cNBl
-----END PGP SIGNATURE-----

M
M
Maxime Devos wrote on 25 Feb 18:22 +0100
(name . Pierre Langlois)(address . pierre.langlois@gmx.com)
d89959358ebc9d9f93fc439f681f544843b9db99.camel@telenet.be
Pierre Langlois schreef op vr 25-02-2022 om 16:31 [+0000]:
Toggle quote (6 lines)
> If I may shime in, I agree that it's best to have fewer versions of
> node
> for Guix's own node packages, however for end-users I think it's a
> good
> idea to provide multiple versions they can install.

I'm not opposed to including multiple LTS versions, as long as they
are supported upstream, there actual users of the old LTS versions
and there is some reason to use older versions (perhaps there are
a few incompatibilities?).

However, I would prefer the latest version to be standard version
(with variable name node-lts) so node packages in Guix use the latest
LTS by default. Something like

(define-public node-lts
(package
(inherit node)
(version "16.13.2")
[...]))

;; Older LTS versions, still maintained upstream and used (see <...>).
;; There are some incompatibilities between [...], so allow users
;; to choose which node to use.
(define-public node-14
(package
(inherit node-lts)
(version "14.[...]")
[...]))

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYhkQThccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7sYQAP0e+uQwNcqbrqNj9yQPwzPxXI06
tzs0lDHcbN/aNxKqiwD/ShiU06FEA4zQ2ge5I0tbtqS0l+Mc0ER1ta6VY2RhjA0=
=fErj
-----END PGP SIGNATURE-----


R
R
Ryan Sundberg wrote on 2 May 08:10 +0200
(address . guix-patches@gnu.org)
14d2b050-5e3c-c923-023f-38584bd726b8@arctype.co
Hello all, here is a revised version of zamfofex's patch that inherits
from node-14. I tried to trim as much fat out as possible in the
inherited node-(16-)lts, but some of the package arguments were
divergent in minor ways. I also bumped the version to 16.5.0 in the
meantime.

--
Sincerely,
Ryan Sundberg

On 2/25/22 9:22 AM, Maxime Devos wrote:
Toggle quote (33 lines)
> Pierre Langlois schreef op vr 25-02-2022 om 16:31 [+0000]:
>> If I may shime in, I agree that it's best to have fewer versions of
>> node
>> for Guix's own node packages, however for end-users I think it's a
>> good
>> idea to provide multiple versions they can install.
>
> I'm not opposed to including multiple LTS versions, as long as they
> are supported upstream, there actual users of the old LTS versions
> and there is some reason to use older versions (perhaps there are
> a few incompatibilities?).
>
> However, I would prefer the latest version to be standard version
> (with variable name node-lts) so node packages in Guix use the latest
> LTS by default. Something like
>
> (define-public node-lts
> (package
> (inherit node)
> (version "16.13.2")
> [...]))
>
> ;; Older LTS versions, still maintained upstream and used (see <...>).
> ;; There are some incompatibilities between [...], so allow users
> ;; to choose which node to use.
> (define-public node-14
> (package
> (inherit node-lts)
> (version "14.[...]")
> [...]))
>
> Greetings,
> Maxime.
From 14065e4f69eea85503db2af6e6ef38e6ec1a6e28 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <ryan@arctype.co>
Date: Sun, 1 May 2022 23:00:13 -0700
Subject: [PATCH] gnu: node-lts: Update to 16.15.0

Keeps node-14 available for legacy use cases and graceful migration
purposes.

* gnu/packages/node.scm (node-lts): Update to 16.15.0
* gnu/packages/node.scm (node-14): Export previous LTS version

Co-authored-by: zamfofex <zamfofex@twdb.moe>
---
gnu/packages/node.scm | 177 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 175 insertions(+), 2 deletions(-)

Toggle diff (211 lines)
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index ce94557a8c..c0f66ef04b 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -11,6 +11,8 @@
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021, 2022 Philip McGrath <philip@philipmcgrath.com>
+;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe>
+;;; Copyright © 2022 Ryan Sundberg <ryan@arctype.co>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -662,7 +664,7 @@ (define-public node-llparse-bootstrap
 parser definition into a C output.")
     (license license:expat)))
 
-(define-public llhttp-bootstrap
+(define llhttp-2
   (package
     (name "llhttp")
     (version "2.1.4")
@@ -732,7 +734,49 @@ (define-public llhttp-bootstrap
 source files.")
     (license license:expat)))
 
-(define-public node-lts
+(define-public llhttp-bootstrap
+  (package
+    (inherit llhttp-2)
+    (name "llhttp")
+    (version "6.0.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/nodejs/llhttp.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c1p39m46frpslm5yx13hj58r7s0cila03yvqp6caip5dbizpfmr"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Fix imports for esbuild.
+                  ;; https://github.com/evanw/esbuild/issues/477
+                  (substitute* "src/llhttp/http.ts"
+                    (("\\* as assert") "assert"))
+                  (substitute* "Makefile"
+                    (("npx ts-node bin/generate.ts")
+                     "node bin/generate.js"))
+                  #t))))
+    (build-system gnu-build-system)
+    (arguments
+     (substitute-keyword-arguments (package-arguments llhttp-2)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'install-src
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (src-dir (string-append out "/src"))
+                      (src-src-dir (string-append src-dir "/src")))
+                 (install-file "src/llhttp.gyp" src-dir)
+                 (install-file "src/common.gypi" src-dir)
+                 (install-file "build/c/llhttp.c" src-src-dir)
+                 (install-file "src/native/http.c" src-src-dir)
+                 (install-file "src/native/api.c" src-src-dir)
+                 #t)))))))))
+
+(define-public node-14
   (package
     (inherit node)
     (version "14.18.3")
@@ -878,6 +922,135 @@ (define-public node-lts
            c-ares-for-node
            icu4c-67
            libuv-for-node
+           llhttp-2
+           brotli
+           `(,nghttp2 "lib")
+           openssl
+           python-wrapper ;; for node-gyp (supports python3)
+           zlib))))
+
+(define-public node-lts
+  (package
+    (inherit node-14)
+    (version "16.15.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://nodejs.org/dist/v" version
+                                  "/node-v" version ".tar.xz"))
+              (sha256
+               (base32
+                "1xx4drj3rc6kin60bm84f3wnnplglih7k588r8g34y1zqkpi5y50"))
+              (modules '((guix build utils)))
+              (snippet
+               `(begin
+                  ;; Remove bundled software, where possible
+                  (for-each delete-file-recursively
+                            '("deps/cares"
+                              "deps/icu-small"
+                              "deps/nghttp2"
+                              "deps/openssl"
+                              "deps/zlib"))
+                  (substitute* "Makefile"
+                    ;; Remove references to bundled software.
+                    (("deps/uv/uv.gyp") "")
+                    (("deps/zlib/zlib.gyp") ""))
+                  #t))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments node-14)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'delete-problematic-tests
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; Fix hardcoded /bin/sh references.
+               (substitute* '("lib/child_process.js"
+                              "lib/internal/v8_prof_polyfill.js"
+                              "test/parallel/test-child-process-spawnsync-shell.js"
+                              "test/parallel/test-fs-write-sigxfsz.js"
+                              "test/parallel/test-stdin-from-file-spawn.js"
+                              "test/parallel/test-stdio-closed.js"
+                              "test/sequential/test-child-process-emfile.js")
+                 (("'/bin/sh'")
+                  (string-append "'" (assoc-ref inputs "bash") "/bin/sh'")))
+
+               ;; Fix hardcoded /usr/bin/env references.
+               (substitute* '("test/parallel/test-child-process-default-options.js"
+                              "test/parallel/test-child-process-env.js"
+                              "test/parallel/test-child-process-exec-env.js")
+                 (("'/usr/bin/env'")
+                  (string-append "'" (assoc-ref inputs "coreutils")
+                                 "/bin/env'")))
+
+               ;; 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
+                         '("test/parallel/test-cluster-primary-error.js"
+                           "test/parallel/test-cluster-primary-kill.js"))
+
+               ;; These require a DNS resolver.
+               (for-each delete-file
+                         '("test/parallel/test-dns.js"
+                           "test/parallel/test-dns-lookupService-promises.js"))
+
+               ;; These tests require networking.
+               (delete-file "test/parallel/test-https-agent-unref-socket.js")
+
+               ;; This test is timing-sensitive, and fails sporadically on
+               ;; slow, busy, or even very fast machines.
+               (delete-file "test/parallel/test-fs-utimes.js")
+
+               ;; FIXME: This test fails randomly:
+               ;; https://github.com/nodejs/node/issues/31213
+               (delete-file "test/parallel/test-net-listen-after-destroying-stdin.js")
+
+               ;; FIXME: These tests fail on armhf-linux:
+               ;; https://github.com/nodejs/node/issues/31970
+               ,@(if (target-arm32?)
+                     '((for-each delete-file
+                                 '("test/parallel/test-zlib.js"
+                                   "test/parallel/test-zlib-brotli.js"
+                                   "test/parallel/test-zlib-brotli-flush.js"
+                                   "test/parallel/test-zlib-brotli-from-brotli.js"
+                                   "test/parallel/test-zlib-brotli-from-string.js"
+                                   "test/parallel/test-zlib-convenience-methods.js"
+                                   "test/parallel/test-zlib-random-byte-pipes.js"
+                                   "test/parallel/test-zlib-write-after-flush.js")))
+                     '())
+
+               ;; These tests have an expiry date: they depend on the validity of
+               ;; TLS certificates that are bundled with the source.  We want this
+               ;; package to be reproducible forever, so remove those.
+               ;; TODO: Regenerate certs instead.
+               (for-each delete-file
+                         '("test/parallel/test-tls-passphrase.js"
+                           "test/parallel/test-tls-server-verify.js"
+                           "test/parallel/test-https-selfsigned-no-keycertsign-no-crash.js"))))
+           (replace 'replace-llhttp-sources
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; Replace pre-generated llhttp sources
+               (delete-file-recursively "deps/llhttp")
+               (copy-recursively (string-append (assoc-ref inputs "llhttp") "/src")
+                                 "deps/llhttp")))))))
+    (native-inputs
+     (list ;; Runtime dependencies for binaries used as a bootstrap.
+           c-ares-for-node
+           brotli
+           icu4c
+           libuv-for-node
+           `(,nghttp2 "lib")
+           openssl
+           zlib
+           ;; Regular build-time dependencies.
+           perl
+           pkg-config
+           procps
+           python
+           util-linux))
+    (inputs
+     (list bash-minimal
+           coreutils
+           c-ares-for-node
+           icu4c
+           libuv-for-node
            llhttp-bootstrap
            brotli
            `(,nghttp2 "lib")
-- 
2.34.0
Attachment: OpenPGP_signature
P
P
Pierre Langlois wrote on 15 May 15:45 +0200
(name . Ryan Sundberg)(address . ryan@arctype.co)
874k1q52es.fsf@gmx.com
Hi!

Ryan Sundberg via Guix-patches via <guix-patches@gnu.org> writes:

Toggle quote (7 lines)
> [[PGP Signed Part:Undecided]]
> Hello all, here is a revised version of zamfofex's patch that inherits
> from node-14. I tried to trim as much fat out as possible in the
> inherited node-(16-)lts, but some of the package arguments were
> divergent in minor ways. I also bumped the version to 16.5.0 in the
> meantime.

The patch LGTM, however when testing it out I wasn't able to build node
packages, I get the following error for example:

Toggle snippet (71 lines)
$ ./pre-inst-env guix build node-string-decoder
...
starting phase `install'
npm info using npm@8.5.5
npm info using node@v16.15.0
npm timing npm:load:whichnode Completed in 1ms
npm timing config:load:defaults Completed in 1ms
npm timing config:load:file:/gnu/store/4iqwfsbapa3lhhap1jyg0bry8d1373li-node-16.15.0/lib/node_modules/npm/npmrc Completed in 2ms
npm timing config:load:builtin Completed in 2ms
npm timing config:load:cli Completed in 3ms
npm timing config:load:env Completed in 0ms
npm timing config:load:project Completed in 1ms
npm timing config:load:file:/tmp/guix-build-node-string-decoder-1.3.0.drv-0/npm-home-0/.npmrc Completed in 2ms
npm timing config:load:user Completed in 2ms
npm timing config:load:file:/gnu/store/72cb549aap0inzc8d0v959w6z8qz964m-node-string-decoder-1.3.0/etc/npmrc Completed in 0ms
npm timing config:load:global Completed in 1ms
npm timing config:load:validate Completed in 0ms
npm timing config:load:credentials Completed in 0ms
npm timing config:load:setEnvs Completed in 1ms
npm timing config:load Completed in 11ms
npm timing npm:load:configload Completed in 11ms
npm timing npm:load:setTitle Completed in 0ms
npm timing config:load:flatten Completed in 1ms
npm timing npm:load:display Completed in 5ms
npm timing npm:load:logFile Completed in 4ms
npm timing npm:load:timers Completed in 0ms
npm timing npm:load:configScope Completed in 0ms
npm timing npm:load Completed in 21ms
npm timing arborist:ctor Completed in 1ms
npm timing idealTree:init Completed in 4ms
npm timing idealTree:userRequests Completed in 42ms
npm timing idealTree:#root Completed in 19ms
npm timing idealTree:node_modules/string_decoder Completed in 3ms
npm timing idealTree:node_modules/string_decoder/node_modules/safe-buffer Completed in 0ms
npm timing idealTree:buildDeps Completed in 24ms
npm timing idealTree:fixDepFlags Completed in 0ms
npm timing idealTree Completed in 73ms
npm timing reify:loadTrees Completed in 74ms
npm timing reify:diffTrees Completed in 1ms
npm timing reify:retireShallow Completed in 1ms
npm timing reify:createSparse Completed in 0ms
npm timing reify:trashOmits Completed in 0ms
npm timing reify:loadBundles Completed in 0ms
npm timing reify:audit Completed in 0ms
npm timing reifyNode:node_modules/string_decoder/node_modules/safe-buffer Completed in 8ms
npm timing reifyNode:node_modules/string_decoder Completed in 12ms
npm timing reify:unpack Completed in 13ms
npm timing reify:unretire Completed in 0ms
npm timing build:queue Completed in 1ms
npm timing build:deps Completed in 1ms
npm timing build:queue Completed in 0ms
npm timing build:links Completed in 1ms
npm timing build Completed in 2ms
npm timing reify:build Completed in 2ms
npm timing reify:trash Completed in 0ms
npm timing command:install Completed in 98ms
npm ERR! Cannot set properties of null (setting 'dev')
npm timing npm Completed in 279ms

npm ERR! A complete log of this run can be found in:
npm ERR! /tmp/guix-build-node-string-decoder-1.3.0.drv-0/npm-home-0/.npm/_logs/2022-05-15T13_47_30_141Z-debug-0.log
error: in phase 'install': uncaught exception:
%exception #<&invoke-error program: "/gnu/store/4iqwfsbapa3lhhap1jyg0bry8d1373li-node-16.15.0/bin/npm" arguments: ("--prefix" "/gnu/store/72cb549aap0inzc8d0v959w6z8qz964m-node-string-decoder-1.3.0" "--global" "--offline" "--loglevel" "info" "--production" "install" "../package.tgz") exit-status: 1 term-signal: #f stop-signal: #f>
phase `install' failed after 0.4 seconds
command "/gnu/store/4iqwfsbapa3lhhap1jyg0bry8d1373li-node-16.15.0/bin/npm" "--prefix" "/gnu/store/72cb549aap0inzc8d0v959w6z8qz964m-node-string-decoder-1.3.0" "--global" "--offline" "--loglevel" "info" "--production" "install" "../package.tgz" failed with status 1
builder for `/gnu/store/6a1vjam7gx0znrr8yngaw2lqld9868l0-node-string-decoder-1.3.0.drv' failed with exit code 1
build of /gnu/store/6a1vjam7gx0znrr8yngaw2lqld9868l0-node-string-decoder-1.3.0.drv failed
View build log at '/var/log/guix/drvs/6a/1vjam7gx0znrr8yngaw2lqld9868l0-node-string-decoder-1.3.0.drv.gz'.
guix build: error: build of `/gnu/store/6a1vjam7gx0znrr8yngaw2lqld9868l0-node-string-decoder-1.3.0.drv' failed

I'm a bit clueless as to what's happening, it could be a flavour of this

So hopefully this will be resolved with a new node release, in the
meantime, we could still package node 16 but not make it the default
node for the build-system, WDYT? I'd suggest to keep the node-lts
pointing to the node-14 version.

Also, as an aside, I'm afraid the patch doesn't allow node to be
cross-compiled, but that's also currently broken on master so we could
fix that as a follow-up IMO.

Thanks for working on this!
Pierre
-----BEGIN PGP SIGNATURE-----

iQFMBAEBCgA2FiEEctU9gYy29KFyWDdMqPyeRH9PfVQFAmKBBYsYHHBpZXJyZS5s
YW5nbG9pc0BnbXguY29tAAoJEKj8nkR/T31UOsEIAJ+2ImfKEKo9BygwmSCTAs3x
/k8fNrta0E3GvbsFYTXd3CTV+DoX5pSwgCWkndc3Rtu3gYiA1mT6gdOOZCoPIv0C
XkXBwVwEjxxjCf2L/eWPrlXXBnTvMl6F5lFHUBKd585ihUbRC2T2vlPOwBJoIkaQ
G9lerp0uR9w3xSilNrufboVy4BzdZJ9ByQKMlaww5yT2AWD//TlRR76coSNQbjjf
QjBdlcOtWSAZME+6KoLTZoU8460djBUWzk4lFPAoEWf7chNV+SObFqgbBtTSdfK/
RmlkG0iHjk8I1KS9746tfspsMsAP105O1kWpV1BsXf4NEB3PytawLO2mU5/3LCs=
=58t7
-----END PGP SIGNATURE-----

R
R
Ryan Sundberg wrote on 9 Jun 08:39 +0200
(name . Pierre Langlois)(address . pierre.langlois@gmx.com)
65d2c6fb-9882-5815-b6b3-5eb6f7011464@arctype.co
Hi all, attached is a revised patch that keeps node-lts bound to node-14
and just adds the new node-16.

Thank you for the feedback Pierre, I agree we should not break any
packages by transitioning node-lts over without testing.

I also updated again to 16.15.1 from 16.15.0 here.

--Ryan Sundberg
From 78f63a9440c03e54ed24a58f9495613691dee1c6 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <ryan@arctype.co>
Date: Sun, 1 May 2022 23:00:13 -0700
Subject: [PATCH] gnu: node-16: Package node.js version 16.15.1

* gnu/packages/node.scm (node-16): New variable.

Co-authored-by: zamfofex <zamfofex@twdb.moe>
---
gnu/packages/node.scm | 180 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 178 insertions(+), 2 deletions(-)

Toggle diff (221 lines)
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index c8d81fbd22..2838a41aa9 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -11,6 +11,8 @@
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021, 2022 Philip McGrath <philip@philipmcgrath.com>
+;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe>
+;;; Copyright © 2022 Ryan Sundberg <ryan@arctype.co>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -663,7 +665,7 @@ (define-public node-llparse-bootstrap
 parser definition into a C output.")
     (license license:expat)))
 
-(define-public llhttp-bootstrap
+(define llhttp-2
   (package
     (name "llhttp")
     (version "2.1.4")
@@ -733,7 +735,49 @@ (define-public llhttp-bootstrap
 source files.")
     (license license:expat)))
 
-(define-public node-lts
+(define-public llhttp-bootstrap
+  (package
+    (inherit llhttp-2)
+    (name "llhttp")
+    (version "6.0.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/nodejs/llhttp.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c1p39m46frpslm5yx13hj58r7s0cila03yvqp6caip5dbizpfmr"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Fix imports for esbuild.
+                  ;; https://github.com/evanw/esbuild/issues/477
+                  (substitute* "src/llhttp/http.ts"
+                    (("\\* as assert") "assert"))
+                  (substitute* "Makefile"
+                    (("npx ts-node bin/generate.ts")
+                     "node bin/generate.js"))
+                  #t))))
+    (build-system gnu-build-system)
+    (arguments
+     (substitute-keyword-arguments (package-arguments llhttp-2)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'install-src
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (src-dir (string-append out "/src"))
+                      (src-src-dir (string-append src-dir "/src")))
+                 (install-file "src/llhttp.gyp" src-dir)
+                 (install-file "src/common.gypi" src-dir)
+                 (install-file "build/c/llhttp.c" src-src-dir)
+                 (install-file "src/native/http.c" src-src-dir)
+                 (install-file "src/native/api.c" src-src-dir)
+                 #t)))))))))
+
+(define-public node-14
   (package
     (inherit node)
     (version "14.19.3")
@@ -881,6 +925,136 @@ (define-public node-lts
            c-ares-for-node
            icu4c-70
            libuv-for-node
+           llhttp-2
+           brotli
+           `(,nghttp2 "lib")
+           openssl
+           python-wrapper ;; for node-gyp (supports python3)
+           zlib))))
+
+(define-public node-16
+  (package
+    (inherit node-14)
+    (version "16.15.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://nodejs.org/dist/v" version
+                                  "/node-v" version ".tar.xz"))
+              (sha256
+               (base32
+                "0zcv2raa9d4g7dr7v3i2pkfrq076b085f9bmlq4i2wb93wy9vsfl"))
+              (modules '((guix build utils)))
+              (snippet
+               `(begin
+                  ;; Remove bundled software, where possible
+                  (for-each delete-file-recursively
+                            '("deps/cares"
+                              "deps/icu-small"
+                              "deps/nghttp2"
+                              "deps/openssl"
+                              "deps/zlib"))
+                  (substitute* "Makefile"
+                    ;; Remove references to bundled software.
+                    (("deps/uv/uv.gyp") "")
+                    (("deps/zlib/zlib.gyp") ""))
+                  #t))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments node-14)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'delete-problematic-tests
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; Fix hardcoded /bin/sh references.
+               (substitute* '("lib/child_process.js"
+                              "lib/internal/v8_prof_polyfill.js"
+                              "test/parallel/test-child-process-spawnsync-shell.js"
+                              "test/parallel/test-fs-write-sigxfsz.js"
+                              "test/parallel/test-stdin-from-file-spawn.js"
+                              "test/parallel/test-stdio-closed.js"
+                              "test/sequential/test-child-process-emfile.js")
+                 (("'/bin/sh'")
+                  (string-append "'" (assoc-ref inputs "bash") "/bin/sh'")))
+
+               ;; Fix hardcoded /usr/bin/env references.
+               (substitute* '("test/parallel/test-child-process-default-options.js"
+                              "test/parallel/test-child-process-env.js"
+                              "test/parallel/test-child-process-exec-env.js")
+                 (("'/usr/bin/env'")
+                  (string-append "'" (assoc-ref inputs "coreutils")
+                                 "/bin/env'")))
+
+               ;; 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
+                         '("test/parallel/test-cluster-primary-error.js"
+                           "test/parallel/test-cluster-primary-kill.js"
+                           "test/parallel/test-release-npm.js"))
+
+               ;; These require a DNS resolver.
+               (for-each delete-file
+                         '("test/parallel/test-dns.js"
+                           "test/parallel/test-dns-lookupService-promises.js"))
+
+               ;; These tests require networking.
+               (delete-file "test/parallel/test-https-agent-unref-socket.js")
+
+               ;; This test is timing-sensitive, and fails sporadically on
+               ;; slow, busy, or even very fast machines.
+               (delete-file "test/parallel/test-fs-utimes.js")
+
+               ;; FIXME: This test fails randomly:
+               ;; https://github.com/nodejs/node/issues/31213
+               (delete-file "test/parallel/test-net-listen-after-destroying-stdin.js")
+
+               ;; FIXME: These tests fail on armhf-linux:
+               ;; https://github.com/nodejs/node/issues/31970
+               ,@(if (target-arm32?)
+                     '((for-each delete-file
+                                 '("test/parallel/test-zlib.js"
+                                   "test/parallel/test-zlib-brotli.js"
+                                   "test/parallel/test-zlib-brotli-flush.js"
+                                   "test/parallel/test-zlib-brotli-from-brotli.js"
+                                   "test/parallel/test-zlib-brotli-from-string.js"
+                                   "test/parallel/test-zlib-convenience-methods.js"
+                                   "test/parallel/test-zlib-random-byte-pipes.js"
+                                   "test/parallel/test-zlib-write-after-flush.js")))
+                     '())
+
+               ;; These tests have an expiry date: they depend on the validity of
+               ;; TLS certificates that are bundled with the source.  We want this
+               ;; package to be reproducible forever, so remove those.
+               ;; TODO: Regenerate certs instead.
+               (for-each delete-file
+                         '("test/parallel/test-tls-passphrase.js"
+                           "test/parallel/test-tls-server-verify.js"
+                           "test/parallel/test-https-selfsigned-no-keycertsign-no-crash.js"))))
+           (replace 'replace-llhttp-sources
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; Replace pre-generated llhttp sources
+               (delete-file-recursively "deps/llhttp")
+               (copy-recursively (string-append (assoc-ref inputs "llhttp") "/src")
+                                 "deps/llhttp")))))))
+    (native-inputs
+     (list ;; Runtime dependencies for binaries used as a bootstrap.
+           c-ares-for-node
+           brotli
+           icu4c
+           libuv-for-node
+           `(,nghttp2 "lib")
+           openssl
+           zlib
+           ;; Regular build-time dependencies.
+           perl
+           pkg-config
+           procps
+           python
+           util-linux))
+    (inputs
+     (list bash-minimal
+           coreutils
+           c-ares-for-node
+           icu4c
+           libuv-for-node
            llhttp-bootstrap
            brotli
            `(,nghttp2 "lib")
@@ -888,6 +1062,8 @@ (define-public node-lts
            python-wrapper ;; for node-gyp (supports python3)
            zlib))))
 
+(define-public node-lts node-14)
+
 (define-public libnode
   (package/inherit node
     (name "libnode")
-- 
2.34.0
Attachment: OpenPGP_signature
M
M
Maxime Devos wrote on 9 Jun 22:49 +0200
(address . 53414@debbugs.gnu.org)
cd3eceb0f66862eaa145cd0187ae1f0030e6ec2b.camel@telenet.be
Ryan Sundberg via Guix-patches via schreef op wo 08-06-2022 om 23:39 [-
0700]:
Toggle quote (2 lines)
> +                  #t))))

No need to return #t.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYqJc4hccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7kvhAQDYBAKjjb6T+S3FvOp0FJdTuwAr
ckuK9cFYP+ktliZVFQD/Z5vBF1mJgBVeZGvd0IYYGYnHcvM+hAqcjvLU95O5lAw=
=55vt
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 9 Jun 22:50 +0200
(address . 53414@debbugs.gnu.org)
0fc72c4793a63fa82f723e1b32bd16b698151cf6.camel@telenet.be
Ryan Sundberg via Guix-patches via schreef op wo 08-06-2022 om 23:39 [-
0700]:
Toggle quote (3 lines)
> +       ((#:phases phases)
> +        `(modify-phases ,phases

Do #~(modify-phases #$phases ...) instead of quasiquote/unquote,
otherwise this will break when node-14 switches to G-exps.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYqJdDxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7tHGAP0awbhWQnQpjh1xsSNRtu6XZTup
6SoQo8gIZzZKhNusVAD/UrdlxpIeK/wBS1c35ROMEOI+P03nb/L8T1sxABfODwM=
=MnTD
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 9 Jun 22:53 +0200
(address . 53414@debbugs.gnu.org)
26811c03516bbbd923b666e69380cf2cf86f6cc6.camel@telenet.be
Ryan Sundberg via Guix-patches via schreef op wo 08-06-2022 om 23:39 [-
0700]:
Toggle quote (16 lines)
> +              (modules '((guix build utils)))
> +              (snippet
> +               `(begin
> +                  ;; Remove bundled software, where possible
> +                  (for-each delete-file-recursively
> +                            '("deps/cares"
> +                              "deps/icu-small"
> +                              "deps/nghttp2"
> +                              "deps/openssl"
> +                              "deps/zlib"))
> +                  (substitute* "Makefile"
> +                    ;; Remove references to bundled software.
> +                    (("deps/uv/uv.gyp") "")
> +                    (("deps/zlib/zlib.gyp") ""))
> +                  #t))))

This is identical to what node-14 has, so you can use inheritance to
simplify things:

(origin
(inherit (package-source node-14))
(uri ...)
(sha256 ...))

Also, could you verify that no new things have been bundled?

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYqJd1xccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7kFNAPwJX0RSim19sAPnNfA/9WrL+qcr
BzcJpRE1FWu8i/9JzQD+ICjXYAobdtC2T+uChCTQGldX1lmZCCgx0qHLW2kdywQ=
=iY30
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 9 Jun 22:55 +0200
(address . 53414@debbugs.gnu.org)
e2ef34435e201e8f5701d78abab3b75750c08a5d.camel@telenet.be
Ryan Sundberg via Guix-patches via schreef op wo 08-06-2022 om 23:39 [-
0700]:
Toggle quote (3 lines)
> +                  (string-append "'" (assoc-ref inputs "bash")
> "/bin/sh'")))

Can be de-label-ified and simplified to (string-append "'" (search-
input-file inputs "bin/bash")).
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYqJeWBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7t2wAPsFDkh3GPxrPcIxDOK6xR/oJq1a
rYQR/YJlaL4D8ybn+AEAxHHR1kReAt6CyRSfS/HOobVdpdobNCXBssFiteZ2TAw=
=bUPY
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 9 Jun 23:03 +0200
(address . 53414@debbugs.gnu.org)
3e461a0978b41143139ba18c778fba1285069118.camel@telenet.be
Ryan Sundberg via Guix-patches via schreef op wo 08-06-2022 om 23:39 [-
0700]:
Toggle quote (10 lines)
> Hi all, attached is a revised patch that keeps node-lts bound to node-14
> and just adds the new node-16.
>
> Thank you for the feedback Pierre, I agree we should not break any
> packages by transitioning node-lts over without testing.
>
> I also updated again to 16.15.1 from 16.15.0 here.
>
> --Ryan Sundberg

Debian's node package does some changes:

* benchmark_without_alice.patch: removes something non-free
* privacy_breach.patch: patch a html file to not point to something
external
* localhost-no-adrconfig.patch: a bug fix
* test_ci.patch: flaky tests
* skip-buffer-nan-internal-check.patch: remove broken test
* falky-cpu-prof-riscv64.patch: likewise
* flag_atomic.patch: ‘avoid surprises on ... and ppc*el’

Maybe some of them are needed on Guix as well?
(See https://packages.debian.org/sid/nodejsfor a tarball with changes)

Greetings,
Maxime
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYqJgMxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7lX4AP47s65UyH6UaULK4Q/N1qZm3f/3
zCdpiP7/rO8P752G5QEA89MqbSO1m7jqA1L1wef0ayHr0q0v6t9K6KooWNyfyww=
=TtQs
-----END PGP SIGNATURE-----


?