From patchwork Thu Jun 9 06:39:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ryan Sundberg X-Patchwork-Id: 39807 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 9F06727BBEB; Thu, 9 Jun 2022 07:40:14 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id AEB4A27BBEA for ; Thu, 9 Jun 2022 07:40:13 +0100 (BST) Received: from localhost ([::1]:49904 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nzBq0-0007n9-Qb for patchwork@mira.cbaines.net; Thu, 09 Jun 2022 02:40:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43382) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nzBpq-0007mt-38 for guix-patches@gnu.org; Thu, 09 Jun 2022 02:40:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:50896) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nzBpp-00085i-Qh for guix-patches@gnu.org; Thu, 09 Jun 2022 02:40:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nzBpp-0001jq-N4 for guix-patches@gnu.org; Thu, 09 Jun 2022 02:40:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#53414] [PATCH] update Node LTS to 16.13.2 Resent-From: Ryan Sundberg Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 09 Jun 2022 06:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53414 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre Langlois Cc: 53414@debbugs.gnu.org X-Debbugs-Original-Cc: 53414@debbugs.gnu.org, guix-patches@gnu.org Received: via spool by 53414-submit@debbugs.gnu.org id=B53414.16547567576617 (code B ref 53414); Thu, 09 Jun 2022 06:40:01 +0000 Received: (at 53414) by debbugs.gnu.org; 9 Jun 2022 06:39:17 +0000 Received: from localhost ([127.0.0.1]:44793 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nzBp6-0001id-Ds for submit@debbugs.gnu.org; Thu, 09 Jun 2022 02:39:16 -0400 Received: from mail.arctype.co ([138.68.9.245]:60383) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nzBp4-0001iL-Aq for 53414@debbugs.gnu.org; Thu, 09 Jun 2022 02:39:15 -0400 Received: from authenticated-user (mail.arctype.co [138.68.9.245]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by mail.arctype.co (Postfix) with ESMTPSA id 05DC913B17E; Thu, 9 Jun 2022 06:39:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=arctype.co; s=mail; t=1654756748; bh=9vCyoffkJCa6INs7anx+OOZP37mrVfND82VXgVzSq4w=; h=Date:To:Cc:References:From:Subject:In-Reply-To:From; b=P0opSib585v08t8xifGRja86rY39nIyyEKUYEQABDhLIUMQ1flxrWcPtVHpL5mPat RBjz/b4LCAr6SU+QBk05eULG/Ke1qR5awi7ualtZ/YEifzA7nJvQ53to69ym84//Ob UGEUCqWkUTlXsO7ywn2AujHNeiRXbwvR+Resp8mEb5UTF95Hhjnglh4iXgmTnegdjn iiyVPeAi1M5x8IG4C4hAIbrMW/NkRMmR1qLORSVOGNiNBq9QlJru6SVGxDzy7M6l6c pIQrh1zwBNHiZ5X37JMBYp4kYAmI8AR2kMsE2Ti/1V2h/y4DZ0sy74WrPzer0drEHX 1zbp7ow8Wq2Aw== Message-ID: <65d2c6fb-9882-5815-b6b3-5eb6f7011464@arctype.co> Date: Wed, 8 Jun 2022 23:39:06 -0700 MIME-Version: 1.0 Content-Language: en-US References: <145389012.1197903.1642777885519@privateemail.com> <079ca956e4d7c6b71921ee34638de012ae0a0c5f.camel@telenet.be> <87lexyew8j.fsf@gmx.com> <14d2b050-5e3c-c923-023f-38584bd726b8@arctype.co> <874k1q52es.fsf@gmx.com> In-Reply-To: <874k1q52es.fsf@gmx.com> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" Reply-to: Ryan Sundberg X-ACL-Warn: , Ryan Sundberg via Guix-patches X-Patchwork-Original-From: Ryan Sundberg via Guix-patches via From: Ryan Sundberg X-getmail-retrieved-from-mailbox: Patches 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 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 --- gnu/packages/node.scm | 180 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 178 insertions(+), 2 deletions(-) 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 ;;; Copyright © 2021 Guillaume Le Vaillant ;;; Copyright © 2021, 2022 Philip McGrath +;;; Copyright © 2022 zamfofex +;;; Copyright © 2022 Ryan Sundberg ;;; ;;; 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