From unknown Wed Jun 18 00:22:19 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#47282 <47282@debbugs.gnu.org> To: bug#47282 <47282@debbugs.gnu.org> Subject: Status: [PATCH 00/13] node going forward Reply-To: bug#47282 <47282@debbugs.gnu.org> Date: Wed, 18 Jun 2025 07:22:19 +0000 retitle 47282 [PATCH 00/13] node going forward reassign 47282 guix-patches submitter 47282 Jelle Licht severity 47282 normal tag 47282 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:57:21 2021 Received: (at submit) by debbugs.gnu.org; 20 Mar 2021 14:57:21 +0000 Received: from localhost ([127.0.0.1]:52971 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd2X-0000G2-5D for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:57:21 -0400 Received: from lists.gnu.org ([209.51.188.17]:52454) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd2Q-0000Fq-S7 for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:57:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42538) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNd2Q-000895-Hs for guix-patches@gnu.org; Sat, 20 Mar 2021 10:57:14 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:34248) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNd2N-0008PQ-9F for guix-patches@gnu.org; Sat, 20 Mar 2021 10:57:14 -0400 From: Jelle Licht To: guix-patches@gnu.org Subject: [PATCH 00/13] node going forward Date: Sat, 20 Mar 2021 15:57:06 +0100 Message-Id: <20210320145706.12308-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=217.69.89.151; envelope-from=jlicht@fsfe.org; helo=mail1.fsfe.org X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) So, some people seem to be interested in this one; please review and test. Thanks again to Timothy Sample, who made quite some of these things happen. Jelle Licht (13): build-system: Rewrite node build system. gnu: Add libuv-node gnu: node: Use license prefix. gnu: node: Add node-bootstrap. gnu: node: Add node-semver-bootstrap. gnu: node: Add node-ms-bootstrap. gnu: node: Add node-binary-search-bootstrap. gnu: node: Add node-debug-bootstrap. gnu: node: Add node-llparse-builder-bootstrap. gnu: node: Add node-llparse-frontend-bootstrap. gnu: node: Add node-llparse-bootstrap. gnu: node: Add llhttp-bootstrap. gnu: node: Add node-lts gnu/packages/libevent.scm | 16 + gnu/packages/node-xyz.scm | 74 +++-- gnu/packages/node.scm | 547 ++++++++++++++++++++++++++++++- guix/build-system/node.scm | 39 +-- guix/build/node-build-system.scm | 203 ++++++------ 5 files changed, 720 insertions(+), 159 deletions(-) -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:30 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:31 +0000 Received: from localhost ([127.0.0.1]:52978 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4c-0000Jk-Ju for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:30 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47222) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4a-0000JU-Se for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:29 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 02/13] gnu: Add libuv-node Date: Sat, 20 Mar 2021 15:59:14 +0100 Message-Id: <20210320145925.12500-2-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/libevent.scm (libuv-node): New variable. --- gnu/packages/libevent.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index 7109d9a88d..699d0705dd 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -134,6 +134,22 @@ resolution, asynchronous file system operations, and threading primitives.") ;; details. Documentation is CC-BY 4.0 as of 1.12.0; see 'LICENSE-docs'. (license (list expat cc-by4.0)))) +(define-public libuv-node + ;; When upgrading Node, also upgrade this. Get the version from + ;; https://github.com/nodejs/node/blob/master/deps/uv/include/uv/version.h + (package + (inherit libuv) + (name "libuv-node") + (version "1.40.0") + (source (origin + (method url-fetch) + (uri (string-append "https://dist.libuv.org/dist/v" version + "/libuv-v" version ".tar.gz")) + (sha256 + (base32 + "1551k3ab27vbg9517l9b4iqbramwxdkwgpf53knas05cbfwhvab1")))))) + + (define-public perl-anyevent (package (name "perl-anyevent") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:34 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:34 +0000 Received: from localhost ([127.0.0.1]:52980 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4c-0000Js-Tt for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:34 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47214) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4a-0000JS-Sf for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:30 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 01/13] build-system: Rewrite node build system. Date: Sat, 20 Mar 2021 15:59:13 +0100 Message-Id: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 Cc: Timothy Sample X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * guix/build/node-build-system.scm: Rewrite it. * guix/build-system/node.scm: Adjust accordingly. * gnu/packages/node-xyz.scm (node-color-name, node-env-variable, node-far, node-long-stack-traces, node-mersenne, node-oop, node-stack-trace, node-statsd-parser, node-utils-deprecate, node-semver): Likewise. Co-authored-by: Timothy Sample --- gnu/packages/node-xyz.scm | 74 +++++++---- guix/build-system/node.scm | 37 ++---- guix/build/node-build-system.scm | 203 ++++++++++++++----------------- 3 files changed, 158 insertions(+), 156 deletions(-) diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index b1d6d4ce59..7d7f0251d1 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -38,6 +38,11 @@ (base32 "09rbmj16nfwcwkhrybqxyy66bkrs50vpw6hkdqqb14l3gsyxpr74")))) (build-system node-build-system) + (arguments + `(#:phases + (modify-phases + %standard-phases + (delete 'build)))) (home-page "https://github.com/colorjs/color-name") (synopsis "JSON with CSS color names") (description @@ -59,7 +64,11 @@ (base32 "0nnpxjxfhy4na7fixb7p3ww6ard5xgggfm83b78i333867r4gmsq")))) (build-system node-build-system) - (arguments '(#:tests? #f)) ; No tests. + (arguments '(#:tests? #f ; No tests. + #:phases + (modify-phases + %standard-phases + (delete 'build)))) (home-page "https://github.com/bigpipe/env-variable") (synopsis "Environment variables for Node with fallbacks") (description "This package provides environment variables with @@ -85,6 +94,7 @@ (arguments '(#:phases (modify-phases %standard-phases + (delete 'build) (replace 'check (lambda _ ;; We skip the two tests which are supposed to fail. @@ -113,7 +123,10 @@ codes.") (base32 "0famwsyc6xawi30v25zi65d8fhbvlvh976bqydf1dqn5gz200cl3")))) (build-system node-build-system) - (arguments '(#:tests? #f)) ; No tests. + (arguments '(#:tests? #f ; No tests. + #:phases + (modify-phases %standard-phases + (delete 'build)))) (home-page "https://github.com/tlrobinson/long-stack-traces") (synopsis "Long stacktraces implemented in user-land JavaScript") (description "This package provides long stacktraces for V8 implemented in @@ -136,7 +149,10 @@ user-land JavaScript.") (base32 "034iaiq2pdqn342p2404cpz364g282d2hkp9375hysnh9i968wbb")))) (build-system node-build-system) - (arguments '(#:tests? #f)) ; No tests. + (arguments '(#:tests? #f ; No tests. + #:phases + (modify-phases %standard-phases + (delete 'build)))) (home-page "http://www.enchantedage.com/node-mersenne") (synopsis "Node.js module for generating Mersenne Twister random numbers") (description "Thix package provides a node.js port of the Mersenne Twister @@ -161,7 +177,11 @@ random number generator.") (base32 "0mqrcf0xi2jbwffwkk00cljpqfsri1jk8s6kz8jny45apn7zjds1")))) (build-system node-build-system) - (arguments '(#:tests? #f)) ; Tests run during build phase. + (arguments '(#:tests? #f ; Tests run during build phase. + #:phases + (modify-phases + %standard-phases + (delete 'build)))) (home-page "https://github.com/felixge/node-oop") (synopsis "Simple, light-weight oop module for Node") (description "This library tries to bring basic oop features to JavaScript @@ -189,11 +209,12 @@ while being as light-weight and simple as possible.") (arguments '(#:phases (modify-phases %standard-phases - (add-before 'check 'skip-intentionally-failing-test - (lambda _ - (substitute* "test/run.js" - (("far.include") "far.exclude(/test-parse.js/)\nfar.include")) - #t))))) + (delete 'build) + (add-before 'check 'skip-intentionally-failing-test + (lambda _ + (substitute* "test/run.js" + (("far.include") "far.exclude(/test-parse.js/)\nfar.include")) + #t))))) (native-inputs `(("node-far" ,node-far) ("node-long-stack-traces" ,node-long-stack-traces))) @@ -207,17 +228,20 @@ while being as light-weight and simple as possible.") (name "node-statsd-parser") (version "0.0.4") (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dscape/statsd-parser") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "049rnczsd6pv6bk282q4w72bhqc5cs562djgr7yncy7lk0wzq5j3")))) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dscape/statsd-parser") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "049rnczsd6pv6bk282q4w72bhqc5cs562djgr7yncy7lk0wzq5j3")))) (build-system node-build-system) - (arguments '(#:tests? #f)) ; No tests. + (arguments '(#:tests? #f ; No tests. + #:phases + (modify-phases %standard-phases + (delete 'build)))) (home-page "https://github.com/dscape/statsd-parser") (synopsis "Streaming parser for the statsd protocol") (description "This package provides a streaming parser for the statsd @@ -239,7 +263,10 @@ protocol used in @code{node-lynx}.") (base32 "1rk94nl3qc7znsk8400bnga30v0m7j2mmvz9ldwjinxv1d3n11xc")))) (build-system node-build-system) - (arguments '(#:tests? #f)) ; No test suite. + (arguments '(#:tests? #f ; No tests. + #:phases + (modify-phases %standard-phases + (delete 'build)))) (home-page "https://github.com/TooTallNate/util-deprecate") (synopsis "Node.js `util.deprecate()` function with browser support") (description "This package provides the Node.js @code{util.deprecate()} @@ -261,7 +288,12 @@ function with browser support.") "06biknqb05r9xsmcflm3ygh50pjvdk84x6r79w43kmck4fn3qn5p")))) (build-system node-build-system) (arguments - `(#:tests? #f)) ;; FIXME: Tests depend on node-tap + '(#:tests? #f + #:phases + (modify-phases + %standard-phases + (delete 'configure) + (delete 'build)))) ;; FIXME: Tests depend on node-tap (home-page "https://github.com/npm/node-semver") (synopsis "Parses semantic versions strings") (description diff --git a/guix/build-system/node.scm b/guix/build-system/node.scm index 05c24c47d5..560f0ee4da 100644 --- a/guix/build-system/node.scm +++ b/guix/build-system/node.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Jelle Licht +;;; Copyright © 2019 Timothy Sample ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,32 +18,22 @@ ;;; along with GNU Guix. If not, see . (define-module (guix build-system node) - #:use-module (guix store) - #:use-module (guix build json) - #:use-module (guix build union) - #:use-module (guix utils) - #:use-module (guix packages) - #:use-module (guix derivations) - #:use-module (guix search-paths) #:use-module (guix build-system) #:use-module (guix build-system gnu) + #:use-module (guix derivations) + #:use-module (guix packages) + #:use-module (guix search-paths) + #:use-module (guix utils) #:use-module (ice-9 match) - #:export (npm-meta-uri - %node-build-system-modules + #:export (%node-build-system-modules node-build node-build-system)) -(define (npm-meta-uri name) - "Return a URI string for the metadata of node module NAME found in the npm -registry." - (string-append "https://registry.npmjs.org/" name)) - (define %node-build-system-modules ;; Build-side modules imported by default. `((guix build node-build-system) (guix build json) - (guix build union) - ,@%gnu-build-system-modules)) ;; TODO: Might be not needed + ,@%gnu-build-system-modules)) (define (default-node) "Return the default Node package." @@ -78,7 +69,7 @@ registry." (define* (node-build store name inputs #:key - (npm-flags ''()) + (test-target "test") (tests? #t) (phases '(@ (guix build node-build-system) %standard-phases)) @@ -88,8 +79,6 @@ registry." (guile #f) (imported-modules %node-build-system-modules) (modules '((guix build node-build-system) - (guix build json) - (guix build union) (guix build utils)))) "Build SOURCE using NODE and INPUTS." (define builder @@ -99,12 +88,10 @@ registry." #:source ,(match (assoc-ref inputs "source") (((? derivation? source)) (derivation->output-path source)) - ((source) - source) - (source - source)) + ((source) source) + (source source)) #:system ,system - #:npm-flags ,npm-flags + #:test-target ,test-target #:tests? ,tests? #:phases ,phases #:outputs %outputs @@ -131,5 +118,5 @@ registry." (define node-build-system (build-system (name 'node) - (description "The standard Node build system") + (description "The Node build system") (lower lower))) diff --git a/guix/build/node-build-system.scm b/guix/build/node-build-system.scm index 7799f03595..ecba27166b 100644 --- a/guix/build/node-build-system.scm +++ b/guix/build/node-build-system.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson -;;; Copyright © 2016 Jelle Licht +;;; Copyright © 2016, 2020 Jelle Licht +;;; Copyright © 2019 Timothy Sample ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,144 +20,126 @@ (define-module (guix build node-build-system) #:use-module ((guix build gnu-build-system) #:prefix gnu:) - #:use-module (guix build json) - #:use-module (guix build union) #:use-module (guix build utils) + #:use-module (guix build json) + #:use-module (ice-9 ftw) #:use-module (ice-9 match) - #:use-module (ice-9 popen) - #:use-module (ice-9 regex) #:use-module (srfi srfi-1) - #:use-module (srfi srfi-26) #:export (%standard-phases node-build)) ;; Commentary: ;; -;; Builder-side code of the standard Node/npm package build procedure. +;; Builder-side code of the standard Node/NPM package install procedure. ;; ;; Code: -(define* (read-package-data #:key (filename "package.json")) - (call-with-input-file filename - (lambda (port) - (read-json port)))) +(define (set-home . _) + (with-directory-excursion ".." + (let loop ((i 0)) + (let ((dir (string-append "npm-home-" (number->string i)))) + (if (directory-exists? dir) + (loop (1+ i)) + (begin + (mkdir dir) + (setenv "HOME" (string-append (getcwd) "/" dir)) + (format #t "Set HOME to ~s~%" (getenv "HOME"))))))) + #t) -(define* (build #:key inputs #:allow-other-keys) - (define (build-from-package-json? package-file) - (let* ((package-data (read-package-data #:filename package-file)) - (scripts (assoc-ref package-data "scripts"))) - (assoc-ref scripts "build"))) - "Build a new node module using the appropriate build system." - ;; XXX: Develop a more robust heuristic, allow override - (cond ((file-exists? "gulpfile.js") - (invoke "gulp")) - ((file-exists? "gruntfile.js") - (invoke "grunt")) - ((file-exists? "Makefile") - (invoke "make")) - ((and (file-exists? "package.json") - (build-from-package-json? "package.json")) - (invoke "npm" "run" "build"))) +(define (module-name module) + (let* ((package.json (string-append module "/package.json")) + (package-meta (call-with-input-file package.json read-json))) + (assoc-ref package-meta "name"))) + +(define (index-modules input-paths) + (define (list-modules directory) + (append-map (lambda (x) + (if (string-prefix? "@" x) + (list-modules (string-append directory "/" x)) + (list (string-append directory "/" x)))) + (filter (lambda (x) + (not (member x '("." "..")))) + (or (scandir directory) '())))) + (let ((index (make-hash-table (* 2 (length input-paths))))) + (for-each (lambda (dir) + (let ((nm (string-append dir "/lib/node_modules"))) + (for-each (lambda (module) + (hash-set! index (module-name module) module)) + (list-modules nm)))) + input-paths) + index)) + +(define* (patch-dependencies #:key inputs #:allow-other-keys) + + (define index (index-modules (map cdr inputs))) + + (define (resolve-dependencies package-meta meta-key) + (fold (lambda (key+value acc) + (match key+value + ('@ acc) + ((key . value) (acons key (hash-ref index key value) acc)))) + '() + (or (assoc-ref package-meta meta-key) '()))) + + (with-atomic-file-replacement "package.json" + (lambda (in out) + (let ((package-meta (read-json in))) + (assoc-set! package-meta "dependencies" + (append + '(@) + (resolve-dependencies package-meta "dependencies") + (resolve-dependencies package-meta "peerDependencies"))) + (assoc-set! package-meta "devDependencies" + (append + '(@) + (resolve-dependencies package-meta "devDependencies"))) + (write-json package-meta out)))) #t) -(define* (link-npm-dependencies #:key inputs #:allow-other-keys) - (define (inputs->node-inputs inputs) - "Filter the directory part from INPUTS." - (filter (lambda (input) - (match input - ((name . _) (node-package? name)))) - inputs)) - (define (inputs->directories inputs) - "Extract the directory part from INPUTS." - (match inputs - (((names . directories) ...) - directories))) - (define (make-node-path root) - (string-append root "/lib/node_modules/")) - - (let ((input-node-directories (inputs->directories - (inputs->node-inputs inputs)))) - (union-build "node_modules" - (map make-node-path input-node-directories)) +(define* (configure #:key outputs inputs #:allow-other-keys) + (let ((npm (string-append (assoc-ref inputs "node") "/bin/npm"))) + (invoke npm "--offline" "--ignore-scripts" "install") #t)) -(define configure link-npm-dependencies) +(define* (build #:key inputs #:allow-other-keys) + (let ((npm (string-append (assoc-ref inputs "node") "/bin/npm"))) + (invoke npm "run" "build") + #t)) -(define* (check #:key tests? #:allow-other-keys) + +(define* (check #:key tests? inputs #:allow-other-keys) "Run 'npm test' if TESTS?" (if tests? - ;; Should only be enabled once we know that there are tests - (invoke "npm" "test")) + (let ((npm (string-append (assoc-ref inputs "node") "/bin/npm"))) + (invoke npm "test")) + (format #t "test suite not run~%")) #t) -(define (node-package? name) - "Check if NAME correspond to the name of an Node package." - (string-prefix? "node-" name)) +(define* (repack #:key inputs #:allow-other-keys) + (invoke "tar" "-czf" "../package.tgz" ".") + #t) (define* (install #:key outputs inputs #:allow-other-keys) - "Install the node module to the output store item. The module itself is -installed in a subdirectory of @file{node_modules} and its runtime dependencies -as defined by @file{package.json} are symlinked into a @file{node_modules} -subdirectory of the module's directory. Additionally, binaries are installed in -the @file{bin} directory." - (let* ((out (assoc-ref outputs "out")) - (target (string-append out "/lib")) - (binaries (string-append out "/bin")) - (data (read-package-data)) - (modulename (assoc-ref data "name")) - (binary-configuration (match (assoc-ref data "bin") - (('@ configuration ...) configuration) - ((? string? configuration) configuration) - (#f #f))) - (dependencies (match (assoc-ref data "dependencies") - (('@ deps ...) deps) - (#f #f)))) - (mkdir-p target) - (copy-recursively "." (string-append target "/node_modules/" modulename)) - ;; Remove references to dependencies - (delete-file-recursively - (string-append target "/node_modules/" modulename "/node_modules")) - (cond - ((string? binary-configuration) - (begin - (mkdir-p binaries) - (symlink (string-append target "/node_modules/" modulename "/" - binary-configuration) - (string-append binaries "/" modulename)))) - ((list? binary-configuration) - (for-each - (lambda (conf) - (match conf - ((key . value) - (begin - (mkdir-p (dirname (string-append binaries "/" key))) - (symlink (string-append target "/node_modules/" modulename "/" - value) - (string-append binaries "/" key)))))) - binary-configuration))) - (when dependencies - (mkdir-p - (string-append target "/node_modules/" modulename "/node_modules")) - (for-each - (lambda (dependency) - (let ((dependency (car dependency))) - (symlink - (string-append (assoc-ref inputs (string-append "node-" dependency)) - "/lib/node_modules/" dependency) - (string-append target "/node_modules/" modulename - "/node_modules/" dependency)))) - dependencies)) + "Install the node module to the output store item." + (let ((out (assoc-ref outputs "out")) + (npm (string-append (assoc-ref inputs "node") "/bin/npm"))) + (invoke npm "--prefix" out + "--global" + "--offline" + "--loglevel" "silly" + "--production" + "install" "../package.tgz") #t)) - (define %standard-phases (modify-phases gnu:%standard-phases + (add-after 'unpack 'set-home set-home) + (add-before 'configure 'patch-dependencies patch-dependencies) (replace 'configure configure) (replace 'build build) - (replace 'install install) - (delete 'check) - (add-after 'install 'check check) - (delete 'strip))) + (replace 'check check) + (add-before 'install 'repack repack) + (replace 'install install))) (define* (node-build #:key inputs (phases %standard-phases) #:allow-other-keys #:rest args) -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:37 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:37 +0000 Received: from localhost ([127.0.0.1]:52991 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4j-0000Kv-CN for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:37 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47228) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4c-0000Jb-CN for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:30 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 03/13] gnu: node: Use license prefix. Date: Sat, 20 Mar 2021 15:59:15 +0100 Message-Id: <20210320145925.12500-3-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/node.scm (node)[license]: Use prefix for license. --- gnu/packages/node.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index a0df3d2cad..82a2ca7ce0 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -26,7 +26,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages node) - #:use-module ((guix licenses) #:select (expat)) + #:use-module ((guix licenses) #:prefix license:) #:use-module ((guix build utils) #:select (alist-replace)) #:use-module (guix packages) #:use-module (guix derivations) @@ -207,7 +207,7 @@ event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.") (home-page "https://nodejs.org/") - (license expat) + (license license:expat) (properties '((max-silent-time . 7200) ;2h, needed on ARM (timeout . 21600))))) ;6h -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:37 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:38 +0000 Received: from localhost ([127.0.0.1]:52993 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4j-0000L4-Mt for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:37 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47234) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4d-0000Jn-3s for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:31 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 04/13] gnu: node: Add node-bootstrap. Date: Sat, 20 Mar 2021 15:59:16 +0100 Message-Id: <20210320145925.12500-4-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/node (node-bootstrap): Add hidden alias for node. --- gnu/packages/node.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 82a2ca7ce0..9baf3719d7 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -211,6 +211,11 @@ devices.") (properties '((max-silent-time . 7200) ;2h, needed on ARM (timeout . 21600))))) ;6h +;; This should be the latest version of node that still builds without +;; depending on lltthp. +(define-public node-bootstrap + (hidden-package node)) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:38 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:38 +0000 Received: from localhost ([127.0.0.1]:52995 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4j-0000LA-TL for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:38 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47228) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4d-0000Jb-Kj for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:32 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 05/13] gnu: node: Add node-semver-bootstrap. Date: Sat, 20 Mar 2021 15:59:17 +0100 Message-Id: <20210320145925.12500-5-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/node.scm (node-semver-bootstrap): New package. --- gnu/packages/node.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 9baf3719d7..f332d33536 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -41,6 +41,7 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) + #:use-module (gnu packages node-xyz) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -216,6 +217,37 @@ devices.") (define-public node-bootstrap (hidden-package node)) +;; Duplicate of node-semver +(define-public node-semver-bootstrap + (package + (name "node-semver") + (version "7.2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/npm/node-semver") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06biknqb05r9xsmcflm3ygh50pjvdk84x6r79w43kmck4fn3qn5p")))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases + %standard-phases + (delete 'configure) + (delete 'build)))) + (home-page "https://github.com/npm/node-semver") + (properties '((hidden? . #t))) + (synopsis "Parses semantic versions strings") + (description + "@code{node-semver} is a JavaScript implementation of the +@uref{https://semver.org/, SemVer.org} specification.") + (license license:isc))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:38 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:38 +0000 Received: from localhost ([127.0.0.1]:52998 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4k-0000LH-7K for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:38 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47244) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4e-0000K9-ML for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:32 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 06/13] gnu: node: Add node-ms-bootstrap. Date: Sat, 20 Mar 2021 15:59:18 +0100 Message-Id: <20210320145925.12500-6-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/node.scm (node-ms-bootstrap): New package. --- gnu/packages/node.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index f332d33536..6cc8a2d0d1 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -31,8 +31,10 @@ #:use-module (guix packages) #:use-module (guix derivations) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system node) #:use-module (gnu packages) #:use-module (gnu packages adns) #:use-module (gnu packages base) @@ -248,6 +250,37 @@ devices.") @uref{https://semver.org/, SemVer.org} specification.") (license license:isc))) +(define-public node-ms-bootstrap + (package + (name "node-ms") + (version "2.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vercel/ms.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pjxzbi4j8pinlsc7yxvfrh0b47kb2dc4lfc2rjq4wx5bdwl33fj")))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases + %standard-phases + (delete 'configure) + (delete 'build)))) + (home-page "https://github.com/zeit/ms#readme") + (properties '((hidden? . #t))) + (synopsis "Tiny millisecond conversion utility") + (description + "Use this package to easily convert various time formats to +milliseconds.") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:39 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:39 +0000 Received: from localhost ([127.0.0.1]:53000 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4k-0000LQ-Kp for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:39 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47250) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4f-0000KG-E4 for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:33 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 07/13] gnu: node: Add node-binary-search-bootstrap. Date: Sat, 20 Mar 2021 15:59:19 +0100 Message-Id: <20210320145925.12500-7-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/node.scm (node-binary-search-bootstrap): New package. --- gnu/packages/node.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 6cc8a2d0d1..b7937b29f4 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -281,6 +281,38 @@ devices.") milliseconds.") (license license:expat))) +(define-public node-binary-search-bootstrap + (package + (name "node-binary-search") + (version "1.3.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/darkskyapp/binary-search.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xr2msdc143cd3xwgq7n3rhzy7j8wrnaidxl0r6l6b6g3mpbpjig")))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases + %standard-phases + (delete 'configure) + (delete 'build)))) + (home-page + "https://github.com/darkskyapp/binary-search#readme") + (properties '((hidden? . #t))) + (synopsis + "Tiny binary search function with comparators") + (description + "This package is a binary search function for @code{Node.js}.") + (license license:cc0))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:39 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:39 +0000 Received: from localhost ([127.0.0.1]:53002 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4l-0000Lc-2s for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:39 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47228) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4f-0000Jb-Sm for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:34 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 08/13] gnu: node: Add node-debug-bootstrap. Date: Sat, 20 Mar 2021 15:59:20 +0100 Message-Id: <20210320145925.12500-8-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/node.scm (node-debug-bootstrap): New package. --- gnu/packages/node.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index b7937b29f4..58e3fd1acc 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -313,6 +313,39 @@ milliseconds.") "This package is a binary search function for @code{Node.js}.") (license license:cc0))) +(define-public node-debug-bootstrap + (package + (name "node-debug") + (version "4.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/visionmedia/debug.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "08g52r1d4yqcsfdfb7n5if33d4cghaq75gx5n9hj6m6fd8jfp2pi")))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases + %standard-phases + (delete 'configure) + (delete 'build)))) + (inputs `(("node-ms" ,node-ms-bootstrap))) + (home-page + "https://github.com/visionmedia/debug#readme") + (properties '((hidden? . #t))) + (synopsis "Small debugging utility") + (description "This packages contains a tiny JavaScript debugging utility +modelled after @code{Node.js} core's debugging technique. It works in +@code{Node.js} and web browsers.") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:39 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:39 +0000 Received: from localhost ([127.0.0.1]:53004 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4l-0000Lj-B9 for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:39 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47260) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4g-0000Ka-U3 for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:35 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 09/13] gnu: node: Add node-llparse-builder-bootstrap. Date: Sat, 20 Mar 2021 15:59:21 +0100 Message-Id: <20210320145925.12500-9-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/node.scm (node-llparse-builder-bootstrap): New package. --- gnu/packages/node.scm | 71 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 58e3fd1acc..85e57f5f2d 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -346,6 +346,77 @@ modelled after @code{Node.js} core's debugging technique. It works in @code{Node.js} and web browsers.") (license license:expat))) +(define-public node-llparse-builder-bootstrap + (package + (name "node-llparse-builder") + (version "1.5.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/indutny/llparse-builder.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r82iiwqsb73k2fxw7842rjjiixllxpyc6yl9cq4ma6ybkf6xmzm")) + (modules '((guix build utils))) + (snippet + '(begin + ;; FIXME: Unneeded runtime dependency + ;; https://github.com/indutny/llparse-builder/pull/2 + (substitute* "package.json" + (("\"@types/debug.*,") "")) + ;; Fix incorrect import semantics + ;; https://github.com/evanw/esbuild/issues/477 + (substitute* (list + "src/node/invoke.ts" + "src/node/base.ts" + "src/node/consume.ts" + "src/node/match.ts" + "src/node/error.ts" + "src/node/pause.ts" + "src/edge.ts" + "src/utils.ts" + "src/loop-checker/index.ts" + "src/loop-checker/lattice.ts" + "src/code/field.ts" + "src/span-allocator.ts") + (("\\* as assert") "assert") + (("\\* as debugAPI") "debugAPI")) + #t)))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases + %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((esbuild (string-append + (assoc-ref inputs "esbuild") + "/bin/esbuild"))) + (invoke esbuild + "--platform=node" + "--outfile=lib/builder.js" + "--bundle" + "src/builder.ts"))))))) + (inputs + `(("node-binary-search" ,node-binary-search-bootstrap) + ("node-debug" ,node-debug-bootstrap))) + (native-inputs + `(("esbuild" ,esbuild))) + (home-page + "https://github.com/indutny/llparse-builder#readme") + (properties '((hidden? . #t))) + (synopsis + "Graph builder for consumption by @code{llparse}") + (description + "This package builds graphs for consumption by @code{llparse}.") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:40 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:40 +0000 Received: from localhost ([127.0.0.1]:53006 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4l-0000Lr-LS for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:39 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47266) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4h-0000Kh-LX for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:35 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 10/13] gnu: node: Add node-llparse-frontend-bootstrap. Date: Sat, 20 Mar 2021 15:59:22 +0100 Message-Id: <20210320145925.12500-10-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/node.scm (node-llparse-frontend-bootstrap): New package. --- gnu/packages/node.scm | 60 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 85e57f5f2d..41c50e209e 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -417,6 +417,66 @@ modelled after @code{Node.js} core's debugging technique. It works in "This package builds graphs for consumption by @code{llparse}.") (license license:expat))) +(define-public node-llparse-frontend-bootstrap + (package + (name "node-llparse-frontend") + (version "3.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/indutny/llparse-frontend.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rm9g4ifyip30svm5cgnf0gx7d45jgh4mpf2hkd092xhngmfvicc")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix incorrect import semantics + ;; https://github.com/evanw/esbuild/issues/477 + (substitute* (list "src/frontend.ts" + "src/code/field-value.ts" + "src/container/index.ts" + "src/container/wrap.ts" + "src/node/sequence.ts" + "src/node/single.ts" + "src/node/table-lookup.ts" + "src/trie/index.ts") + (("\\* as assert") "assert") + (("\\* as debugAPI") "debugAPI")) + #t)))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases + %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((esbuild (string-append + (assoc-ref inputs "esbuild") + "/bin/esbuild"))) + (invoke esbuild + "--platform=node" + "--outfile=lib/frontend.js" + "--bundle" + "src/frontend.ts"))))))) + (inputs + `(("node-debug" ,node-debug-bootstrap) + ("node-llparse-builder" ,node-llparse-builder-bootstrap))) + (native-inputs + `(("esbuild" ,esbuild))) + (home-page + "https://github.com/indutny/llparse-frontend#readme") + (properties '((hidden? . #t))) + (synopsis "Frontend for @code{llparse} compiler") + (description "This package is a frontend for the @code{llparse} +compiler.") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:40 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:40 +0000 Received: from localhost ([127.0.0.1]:53008 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4m-0000Ly-0E for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:40 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47228) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4i-0000Jb-3J for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:36 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 11/13] gnu: node: Add node-llparse-bootstrap. Date: Sat, 20 Mar 2021 15:59:23 +0100 Message-Id: <20210320145925.12500-11-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/node.scm (node-llparse-bootstrap): New package. --- gnu/packages/node.scm | 62 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 41c50e209e..380e959a58 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -477,6 +477,68 @@ modelled after @code{Node.js} core's debugging technique. It works in compiler.") (license license:expat))) +(define-public node-llparse-bootstrap + (package + (name "node-llparse") + (version "7.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/indutny/llparse.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10da273iy2if88hp79cwms6c8qpsl1fkgzll6gmqyx5yxv5mkyp6")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix incorrect import semantics + ;; https://github.com/evanw/esbuild/issues/477 + (substitute* (list "src/compiler/index.ts" + "src/implementation/c/node/base.ts" + "src/implementation/c/node/table-lookup.ts" + "src/implementation/c/compilation.ts" + "src/implementation/c/helpers/match-sequence.ts" + "src/implementation/c/code/mul-add.ts") + (("\\* as assert") "assert") + (("\\* as debugAPI") "debugAPI")) + #t)))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases + %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((esbuild (string-append + (assoc-ref inputs "esbuild") + "/bin/esbuild"))) + (invoke esbuild + "--platform=node" + "--outfile=lib/api.js" + "--bundle" + "src/api.ts"))))))) + (inputs + `(("node-debug" ,node-debug-bootstrap) + ("node-llparse-frontend" + ,node-llparse-frontend-bootstrap))) + (native-inputs + `(("esbuild" ,esbuild))) + (home-page + "https://github.com/nodejs/llparse#readme") + (properties '((hidden? . #t))) + (synopsis + "Compile incremental parsers to C code") + (description + "This package offers an API for compiling an incremental parser +definition into a C output.") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 10:59:59 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 14:59:59 +0000 Received: from localhost ([127.0.0.1]:53010 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd55-0000MT-B9 for submit@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:59 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47280) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4j-0000Kt-4a for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:37 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 12/13] gnu: node: Add llhttp-bootstrap. Date: Sat, 20 Mar 2021 15:59:24 +0100 Message-Id: <20210320145925.12500-12-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/node.scm (llhttp-bootstrap): New package. --- gnu/packages/node.scm | 67 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 380e959a58..d44bec7ca4 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -539,6 +539,73 @@ compiler.") definition into a C output.") (license license:expat))) +(define-public llhttp-bootstrap + (package + (name "llhttp") + (version "2.1.0") + (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 + "08ylnirqrk63h0ww1m79p0bh6rwayrhd4v28p353qlp3qcffwwb0")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix incorrect import semantics + ;; 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 + `(#:tests? #f ; no tests + #:make-flags (list "CLANG=gcc" + (string-append "DESTDIR=" (assoc-ref %outputs "out")) + "PREFIX=") + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((esbuild (string-append + (assoc-ref inputs "esbuild") + "/bin/esbuild"))) + (invoke esbuild + "--platform=node" + "--outfile=bin/generate.js" + "--bundle" "bin/generate.ts")))) + (add-before 'install 'create-install-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (for-each (lambda (dir) + (mkdir-p (string-append out dir))) + (list "/lib" "/include" "/src")) + #t))) + (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) + #t)))))) + (native-inputs + `(("esbuild" ,esbuild) + ("node" ,node-bootstrap) + ("node-semver" ,node-semver-bootstrap) + ("node-llparse-bootstrap" ,node-llparse-bootstrap))) + (home-page "https://github.com/nodejs/llhttp") + (properties '((hidden? . #t))) + (synopsis "Port of @code{http_parser} to @code{llparse}") + (description "@code{llhttp} is a port of @code{http_parser} to TypeScript. +@code{llparse} is used to generate the output C source file, which can be +compiled and linked with the embedder's program (like @code{Node.js}).") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 11:00:00 2021 Received: (at 47282) by debbugs.gnu.org; 20 Mar 2021 15:00:00 +0000 Received: from localhost ([127.0.0.1]:53012 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd55-0000MX-Oi for submit@debbugs.gnu.org; Sat, 20 Mar 2021 11:00:00 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:47286) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNd4j-0000L1-So for 47282@debbugs.gnu.org; Sat, 20 Mar 2021 10:59:38 -0400 From: Jelle Licht To: 47282@debbugs.gnu.org Subject: [PATCH 13/13] gnu: node: Add node-lts Date: Sat, 20 Mar 2021 15:59:25 +0100 Message-Id: <20210320145925.12500-13-jlicht@fsfe.org> In-Reply-To: <20210320145925.12500-1-jlicht@fsfe.org> References: <20210320145925.12500-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * gnu/packages/node.scm (node-lts): New package. wip --- gnu/packages/node.scm | 156 ++++++++++++++++++++++++++++++++++++- guix/build-system/node.scm | 2 +- 2 files changed, 153 insertions(+), 5 deletions(-) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index d44bec7ca4..2a7e9ca2fa 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -542,7 +542,7 @@ definition into a C output.") (define-public llhttp-bootstrap (package (name "llhttp") - (version "2.1.0") + (version "2.2.1") (source (origin (method git-fetch) (uri (git-reference @@ -551,7 +551,7 @@ definition into a C output.") (file-name (git-file-name name version)) (sha256 (base32 - "08ylnirqrk63h0ww1m79p0bh6rwayrhd4v28p353qlp3qcffwwb0")) + "093ag8w0y8irsy0ph7sk06rrs03ic3is41wgxjkgwvc2qys9iqdr")) (modules '((guix build utils))) (snippet '(begin @@ -566,7 +566,7 @@ definition into a C output.") #t)))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no tests + `(#:tests? #f ; no tests #:make-flags (list "CLANG=gcc" (string-append "DESTDIR=" (assoc-ref %outputs "out")) "PREFIX=") @@ -592,6 +592,8 @@ definition into a C output.") (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) #t)))))) (native-inputs `(("esbuild" ,esbuild) @@ -599,13 +601,159 @@ definition into a C output.") ("node-semver" ,node-semver-bootstrap) ("node-llparse-bootstrap" ,node-llparse-bootstrap))) (home-page "https://github.com/nodejs/llhttp") - (properties '((hidden? . #t))) + ;; (properties '((hidden? . #t))) (synopsis "Port of @code{http_parser} to @code{llparse}") (description "@code{llhttp} is a port of @code{http_parser} to TypeScript. @code{llparse} is used to generate the output C source file, which can be compiled and linked with the embedder's program (like @code{Node.js}).") (license license:expat))) +(define-public node-lts + (package + (inherit node) + (version "14.16.0") + (source (origin + (method url-fetch) + (uri (string-append "https://nodejs.org/dist/v" version + "/node-v" version ".tar.xz")) + (sha256 + (base32 + "19nz2mhmn6ikahxqyna1dn25pb5v3z9vsz9zb2flb6zp2yk4hxjf")) + (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) + ((#:configure-flags configure-flags) + ''("--shared-cares" + "--shared-libuv" + "--shared-nghttp2" + "--shared-openssl" + "--shared-zlib" + "--shared-brotli" + "--with-intl=system-icu")) + ((#:phases phases) + `(modify-phases ,phases + (replace 'configure + ;; Node's configure script is actually a python script, so we can't + ;; run it with bash. + (lambda* (#:key outputs (configure-flags '()) inputs + #:allow-other-keys) + (let* ((prefix (assoc-ref outputs "out")) + (flags (cons (string-append "--prefix=" prefix) + configure-flags))) + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" flags) + ;; Node's configure script expects the CC environment variable to + ;; be set. + (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) + (apply invoke + (string-append (assoc-ref inputs "python") + "/bin/python3") + "configure" flags)))) + (replace 'patch-files + (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-stdio-closed.js" + "test/sequential/test-child-process-emfile.js") + (("'/bin/sh'") + (string-append "'" (which "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 "'" (which "env") "'"))) + ;; Because we have a custom version of llhttp, we should expect a superset of supported http methods. + (substitute* '("test/parallel/test-http-methods.js") + (("assert\\.deepStrictEqual\\(http\\.METHODS, methods\\.sort\\(\\)\\);") + "methods.every(v => assert(http.METHODS.includes(v)));")) + + ;; 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")) + + ;; This requires a DNS resolver. + (for-each delete-file + '("test/parallel/test-dns.js" + "test/parallel/test-dns-lookupService-promises.js")) + + ;; TODO: why does this fail. It seems to _almost_ pass, but it parses 1 byte? + (delete-file "test/parallel/test-http-server-destroy-socket-on-client-error.js") + + ;; TODO: this seems to fail because of spawning processes? + (delete-file "test/parallel/test-fs-write-sigxfsz.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 (string-prefix? "arm" (%current-system)) + '((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")) + + ;; Replace pre-generated llhttp sources + (let ((llhttp (assoc-ref inputs "llhttp")) + ;; (llhttp-src (assoc-ref inputs "llhttp-sources")) + ) + (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")) + #t)))))) + (inputs + `(("c-ares" ,c-ares) + ("icu4c" ,icu4c-67) + ("libuv" ,libuv-node) + ("llhttp" ,llhttp-bootstrap) + ("google-brotli" ,google-brotli) + ("nghttp2" ,nghttp2 "lib") + ("openssl" ,openssl) + ("zlib" ,zlib))) + (native-inputs + (alist-replace "python" (list python-3) + (package-native-inputs node))))) + (define-public libnode (package/inherit node (name "libnode") diff --git a/guix/build-system/node.scm b/guix/build-system/node.scm index 560f0ee4da..5737c8ea6e 100644 --- a/guix/build-system/node.scm +++ b/guix/build-system/node.scm @@ -39,7 +39,7 @@ "Return the default Node package." ;; Lazily resolve the binding to avoid a circular dependency. (let ((node (resolve-interface '(gnu packages node)))) - (module-ref node 'node))) + (module-ref node 'node-lts))) (define* (lower name #:key source inputs native-inputs outputs system target -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 23 05:06:07 2021 Received: (at 47282) by debbugs.gnu.org; 23 Mar 2021 09:06:07 +0000 Received: from localhost ([127.0.0.1]:59499 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lOczH-0002GP-CX for submit@debbugs.gnu.org; Tue, 23 Mar 2021 05:06:07 -0400 Received: from mail-wr1-f46.google.com ([209.85.221.46]:38504) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lOczF-0002Fv-Em for 47282@debbugs.gnu.org; Tue, 23 Mar 2021 05:06:06 -0400 Received: by mail-wr1-f46.google.com with SMTP id z2so19936998wrl.5 for <47282@debbugs.gnu.org>; Tue, 23 Mar 2021 02:06:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leibniz-psychology-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=okxWTB0VH9NbAW/Qscpx+lLXajya0HkerLxI6dJccG0=; b=tWPL3WZXywJcARYTmEdCxhebRnjDJv3rpO+fWhNi10Cbpqf3+SwI6KfGKN+1rffXcT U97Djnsox2Ya+FMOilUqzyu9sE9/WrwvFTPoAMOk8AITwr1k0Fnvo2tdwVeTKNCdAsON 1yBzbYmix6aODZWckdKtRoV8OydQat6BH8BM4L0aHgCiQK7D7FigOtN0TObVUQmHDoFE dgmridwl2LrX2roV7fT5bvZCURxvQbLO5p18DVS/jk6mbGmmOMdGicwUk5uqBgqxDGNN um053UlaeEVfdCqXgoBsnvLfWlvugIhUiHmdrUyYIhdA8/9pOeQ1vpdYUWnt+Tf8By5K Lbrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=okxWTB0VH9NbAW/Qscpx+lLXajya0HkerLxI6dJccG0=; b=tZMKmmSl6rgTJv6YFHR5xGD35ViO6cZWAs2qjbgVvuTuj6UOBv3mPhpHk/BJo1M9ZJ gevRPpUWpG+Cvn3sms3p6kSMv3gSuzDmjpryiSH5riNvwJabyUokrf4Ifj9xlJGHeMpS hRkDifVZYpSubx0IFXCV5qP3ZYDCpJQJLvKAUavcOmVILo//NIR0WzJQH2z2cLbJHBUE Kv6W3uzQ5tWIsWcgjS6BNgggYL3MPM7AfK9uJBvU0TXjYahD/4KHxF3CZuzkzt+3Cy5J wwaOwscf3H3R0QbYaxfmJrcr2lcYUb9RXkBQ81KhkLa/k9fu2G3YNbMAQktTuS0hf7n6 z//A== X-Gm-Message-State: AOAM5313btjwgKb8Z9nz/1XgWfJEiyCauM6lYg8yO40paEj7iO4azL+1 Vc86OKMNc2sF5tZJTJji9Fs79EvETMmE5DsqZDZPM70BTKZDDG5eKJcbSRMjysPhVVcXqFPDh9Q G8761iEUM/5+LCeP4pHMkmDSyrvdwqbCsivbzY3ted4p5twXGleZhdqudNvueG6U4p0QHZYHeZj buKbk= X-Google-Smtp-Source: ABdhPJykY7ALufhIJmy8W8d9xvlVejl52oj9d57NiMiOPRT2Y4sKkGBiHPQ0XbiAEamcq8Ufs+NoPw== X-Received: by 2002:adf:ed46:: with SMTP id u6mr2827948wro.350.1616490359584; Tue, 23 Mar 2021 02:05:59 -0700 (PDT) Received: from localhost (dynamic-2a01-0c22-c8b8-4600-fc46-d84f-e175-a63a.c22.pool.telefonica.de. [2a01:c22:c8b8:4600:fc46:d84f:e175:a63a]) by smtp.gmail.com with ESMTPSA id k4sm29283852wrd.9.2021.03.23.02.05.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Mar 2021 02:05:58 -0700 (PDT) Date: Tue, 23 Mar 2021 10:05:57 +0100 From: Lars-Dominik Braun To: Jelle Licht Subject: Re: [bug#47282] [PATCH 00/13] node going forward Message-ID: <20210323090557.GA3185@zpidnp36> References: <20210320145706.12308-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="k+w/mQv8wyuph6w0" Content-Disposition: inline In-Reply-To: <20210320145706.12308-1-jlicht@fsfe.org> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 47282 Cc: 47282@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --k+w/mQv8wyuph6w0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, > So, some people seem to be interested in this one; please review and test. that would be me :) The first patch currently does not apply cleanly to master, but it=E2=80=99= s an easy merge. There is a stray =E2=80=9Cwip=E2=80=9D in the commit message of the last pa= tch. I imported (using the =E2=80=9Cbinary=E2=80=9D importer from wip-node-14 an= d some private fixes) and built more than 18000 NPM packages with this patchset and the resulting RStudio is working fine, so this is a welcome improvement for guix-science. Cheers, Lars --=20 Lars-Dominik Braun Wissenschaftlicher Mitarbeiter/Research Associate www.leibniz-psychology.org ZPID - Leibniz-Institut f=C3=BCr Psychologie / ZPID - Leibniz Institute for Psychology Universit=C3=A4tsring 15 D-54296 Trier - Germany Tel.: +49=E2=80=93651=E2=80=93201-4964 --k+w/mQv8wyuph6w0 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGzBAABCgAdFiEEyk+M9DfXR4/aBV/UQhN3ARo3hEYFAmBZr3AACgkQQhN3ARo3 hEayzAwA1V7nNhdTzxUvjySmEX0wxqdc/buzY9tWSykd9k1zDUQQ3olDrbLZ+Hhk JoytN+7PZKtiYNR1nD7woqLdLthjpOqHB8fmT2+LiTeOpIxRrXG3TpRRclWULxkB ZLkyG55mwZ0Brb4ys6vYSZdHJf20+TvWLp01MnEJM/bk4RsaN22pid9hjbrH+ply 9Sef0a5be0/a7swlormlaD1/Tux6rydkZ4N6y801SGvRMxXVbrQYIRL6z4WD2gnO zeQn5GWqjY+4Zf4Nuh5pdVcHQK6IMF6AEvTAnPfR/XtV5syFN1XaY6HY7zuGiVAY CpD1tN3mZMIndgiIxxVKCwjTMDu/CS2bOXVwFfeZy3Ep4DPHHcv0JIG48aflt1Vq 7yCkZDw+OKsJudx1vVAVEn00kpnfMrzinQHOORG7s/OZ1IA5E9SRMoD41bD1Gmzb aiyYSfGdoh9bjyA1QnvYPFs8QWHtlCheBfA4qVrJdNOOIZ44iV840js6mYJpyq3k nIPt3S7c =YHmn -----END PGP SIGNATURE----- --k+w/mQv8wyuph6w0-- From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 25 11:52:05 2021 Received: (at 47282) by debbugs.gnu.org; 25 Mar 2021 15:52:05 +0000 Received: from localhost ([127.0.0.1]:39313 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPSHF-0003Il-FW for submit@debbugs.gnu.org; Thu, 25 Mar 2021 11:52:05 -0400 Received: from mail.zaclys.net ([178.33.93.72]:36347) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPSHC-0003IF-Te for 47282@debbugs.gnu.org; Thu, 25 Mar 2021 11:52:03 -0400 Received: from guix-xps.local (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 12PFptTx005498 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 25 Mar 2021 16:51:56 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 12PFptTx005498 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1616687516; bh=nUTkfgdG5BoNUAxtDG5hO8fyP3ejQX8BQX9aAtuvgtQ=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=TvQ2ypCAhdsMzXWNGxYWe023wQbQhaqO0JUpP0bDVhTz+skMq61FH3i6BPTIp3g7f M5v+jhubWG7c55IUeBHIZ2U65o9atJq1sLpouxNmvCRwAGFcfj9gdvFbXV6k5BxJdv KcoxkmJ119XpwXtrW8lJGK0rOSzdLuvMZT8ukm3M= Message-ID: <418b981098dc0d8e48ec82745e0269b1e19dfe1b.camel@zaclys.net> Subject: Re: [bug#47282] [PATCH 00/13] node going forward From: =?ISO-8859-1?Q?L=E9o?= Le Bouter To: Lars-Dominik Braun , Jelle Licht Date: Thu, 25 Mar 2021 16:51:50 +0100 In-Reply-To: <20210323090557.GA3185@zpidnp36> References: <20210320145706.12308-1-jlicht@fsfe.org> <20210323090557.GA3185@zpidnp36> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-CCs+QhKi2oDFportx6To" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 47282 Cc: 47282@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-CCs+QhKi2oDFportx6To Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2021-03-23 at 10:05 +0100, Lars-Dominik Braun wrote: > I imported (using the =E2=80=9Cbinary=E2=80=9D importer from wip-node-14 = and some > private > fixes) and built more than 18000 NPM packages with this patchset and > the > resulting RStudio is working fine, so this is a welcome improvement > for > guix-science. There's somewhere with 18000+ GNU Guix package definitions for NPM packages? Please share where. Thank you --=-CCs+QhKi2oDFportx6To Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAmBcsZYACgkQRaix6GvN EKZ3nQ/+M3wzF1O6TWTpmA1nKKg1j1+lkNlTdapUsBv3vyeyFPoP4YN7Sc+dKLL6 LEzikU8PHYF2FEUPaXEILQoF7oPoOIVzfgGwxzOByKq95Ag44t/uwswi/e9tWrPk WTTGHIm0CkS4qfbYBNRW8Gk/cwFqpmyNU/PGIh3k/X0YGRPz2N+CoxGMTXS+W72M u5QbAaY+tUHdmh5AsAWaNqJQaqipUtkNihALpJVlh15mjyn6MsdqIISd+FLil0mb dt7VLrV9hg6wFSq2X/GgNwzD5UIAo+SAoGltf6vC/Xm1bBGAk0TlvXpYmK6pJ/hk PERxnkm/J4H6jxuzweV/LjSUs9SQYm7PYUn30v80nhfLr/tzOJd/L3Ut+ub2nzSq pdUd48OmRi8jVkSWsWs55GSeHcRZ8ZTHRY0fQA4hC/iy1KvWEKDe0FGv5uDQC/xQ DQQ4Dufory+Z1cV4Nh1n+2wv0A+RiGmJ6Snnd3rqYC0ZDZKuTp24KtA9m3HqF/b3 D7S7i8N2hfFGqbp9W44KhJoTjcrBYutu3gjHdIv8Ew2c/zUXG1lPI1YQQ+IUupoI J8nY4n9It+LnpsAP3Y6xwDWTilVNGovWS2oAPCKVU9WFvl4aTFnky5IuaPucVMtK NR9AGM6lpy4tQzmnmvGtMBCfPighZEPtz+JzG2z0GhWW15OW8lE= =KNH3 -----END PGP SIGNATURE----- --=-CCs+QhKi2oDFportx6To-- From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 25 12:15:02 2021 Received: (at 47282) by debbugs.gnu.org; 25 Mar 2021 16:15:02 +0000 Received: from localhost ([127.0.0.1]:39399 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPSdS-0003xp-GF for submit@debbugs.gnu.org; Thu, 25 Mar 2021 12:15:02 -0400 Received: from mout-p-102.mailbox.org ([80.241.56.152]:60774) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPSdQ-0003x1-A5 for 47282@debbugs.gnu.org; Thu, 25 Mar 2021 12:15:01 -0400 Received: from smtp1.mailbox.org (smtp1.mailbox.org [IPv6:2001:67c:2050:105:465:1:1:0]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4F5qv225S4zQjn3; Thu, 25 Mar 2021 17:14:54 +0100 (CET) X-Virus-Scanned: amavisd-new at heinlein-support.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6xq.net; s=MBO0001; t=1616688892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lBZ5rGuPaKqQ7eePKGxtbgcnunTNKCdfRqfoQbxIR8Y=; b=q97+xxk07ZpFQkK6gHZRzm4O7ItAkTEpJG/rTQ8xEs3wTPJUAm15Iz2gtyfM7nmwQ8MaY6 flaM8U63xZCRRmqU25YT4F4baA/Ige1uMZqZufnDzqDP3uI2cjTHHNDxYYlUevWTwXzSbX cDjFyFEpe3KrGF3WGlRM8OH0v/aPbFTU9e39zfdCjG7UWNKbA2E2Ef7Z/r/Ybi5dDUuLtx DxQHaLFjtumWqPA88ItgwZUZ6916+UZoqM4wkJeesVYdoNvkhFR9L4u8UyUApLUhEmZ1C8 Kymo7Y5s6lZki27MGcRFkqa7j0serElHyjI44be6kPVLsQkuuolz2nreTvLfYw== Received: from smtp1.mailbox.org ([80.241.60.240]) by spamfilter01.heinlein-hosting.de (spamfilter01.heinlein-hosting.de [80.241.56.115]) (amavisd-new, port 10030) with ESMTP id 3ZK-k_WqXa-4; Thu, 25 Mar 2021 17:14:50 +0100 (CET) Date: Thu, 25 Mar 2021 17:14:48 +0100 From: Lars-Dominik Braun To: =?iso-8859-1?B?TOlv?= Le Bouter Subject: Re: [bug#47282] [PATCH 00/13] node going forward Message-ID: References: <20210320145706.12308-1-jlicht@fsfe.org> <20210323090557.GA3185@zpidnp36> <418b981098dc0d8e48ec82745e0269b1e19dfe1b.camel@zaclys.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <418b981098dc0d8e48ec82745e0269b1e19dfe1b.camel@zaclys.net> X-MBO-SPAM-Probability: X-Rspamd-Score: -2.64 / 15.00 / 15.00 X-Rspamd-Queue-Id: BD1901857 X-Rspamd-UID: e5a84a X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht , 47282@debbugs.gnu.org, Lars-Dominik Braun X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Léo, > There's somewhere with 18000+ GNU Guix package definitions for NPM > packages? Please share where. sorry, the number is completely wrong, no idea why. It’s “just” 473 packages, which is still an insane amount. They’re part of my efforts to build RStudio 1.4, see https://github.com/guix-science/guix-science/blob/rstudio-1.4/guix-science/packages/rstudio-node.scm Lars From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:25:01 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:25:01 +0000 Received: from localhost ([127.0.0.1]:50029 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6s9-0005al-Cp for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:25:01 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:40559) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6s4-0005aS-I2 for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:24:59 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 96E275C01F4; Tue, 30 Mar 2021 01:24:50 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:24:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=5ltoCQAxD9TF8bqLVH851lmQjoq7k7v5s5kQmPrMmcU=; b=tRwY1Dji GOAyedRC+HHOee7jLGmDCBfYwihQZ7md2PaPgz7TU/Lh73+nAxX04zoqgbWgPm5G /vmbZEK4x6lRc7+hWKr0e8EUd9XyrLhIOzcpUcOZZkavbOJFneKNObK4yAk1sQAV oPQAdjpgZb2odnmk4IGx9hR12TF9G+HBb3JBNet34YmdV/6Ooa5G7gkh4dizhtAc CnejWmpNK0DVtMe1345zLdMF2COOAhPLuFN3fWCNdhFEAz6gISC3sP/ub93SEfnr wW4bjWLCBjjJSMk0afSiEHlZdkd7UKpvL+cUVFgQZzns0BIEScRl/b9weO+FE5qZ 7x+oPcilHI3q8w== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufhffffkfgggtgfgsehtqhertddtreejnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpeeljeeuvefhveduffekveeufeevgfeffeeltddtieeuieekhfevjeejjeei hfegfeenucfkphepjeegrdduudeirddukeeirdeggeenucevlhhushhtvghrufhiiigvpe dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehsrghmphhlvghtsehnghihrhhordgtohhm X-ME-Proxy: Received: from mrblack (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id C3363240057; Tue, 30 Mar 2021 01:24:49 -0400 (EDT) From: Timothy Sample To: Jelle Licht Subject: Re: bug#47282: [PATCH 00/13] node going forward References: <20210320145706.12308-1-jlicht@fsfe.org> Date: Tue, 30 Mar 2021 01:24:48 -0400 Message-ID: <87k0pprz6n.fsf@ngyro.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: 47282@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Jelle, Jelle Licht writes: > So, some people seem to be interested in this one; please review and test. Now that I=E2=80=99ve finally taken the time to dig into what you=E2=80=99v= e done here =E2=80=93 I must say it=E2=80=99s very impressive! I=E2=80=99ve taken the presumptuous step of re-rolling the series. The rea= son is that all the =E2=80=9C(delete 'build)=E2=80=9D bits were bothering me. = I decided to have the build system check the =E2=80=9Cpackage.json=E2=80=9D file for a b= uild script before trying to run it. Since that change required changing all the other patches, I thought it would be easier to just post the updated patches. Also, I=E2=80=99m hoping to spare you some trouble (since you=E2= =80=99ve already gone to a lot!). Of course, this approach gave me free reign to pick nits. :) Below is a list of bigger things that I changed, but I also adjusted some commit messages, indentation, descriptions, and other minor things. =E2=80=A2 Add the check for a =E2=80=9Cbuild=E2=80=9D script as explain= ed above, and adjust the =E2=80=9Cnpm-build-system=E2=80=9D packages accordingly. =E2=80=A2 Rename =E2=80=9Clibuv-node=E2=80=9D to =E2=80=9Clibuv-for-nod= e=E2=80=9D, as this style is used for similar packages. I also changed the name to just =E2=80=9Clibuv=E2= =80=9D and marked it hidden. =E2=80=A2 Change the =E2=80=9CFix incorrect import semantics=E2=80=9D c= omments to =E2=80=9CFix imports for esbuild=E2=80=9D. To me, if TypeScript=E2=80=99s tsc lik= es the imports, they are correct TypeScript (despite the esbuild bug report). =E2=80=A2 Set the llhttp version to 2.1.3, and add a patch to fix CVE-2020-8287. The resulting C source files are identical to the ones shipped with Node.js 14.16.0. This makes the tests a little simpler, allowing the removal of the HTTP method superset change and fixing the reading one byte failure. =E2=80=A2 Fix the SIGXFSZ failure by fixing a =E2=80=9C/bin/sh=E2=80=9D= in the test. The final result is still a little messy, but I don=E2=80=99t think we shou= ld hold this back any longer. It=E2=80=99s a significant step forward, and it= puts us in better shape to improve things incrementally. WDYT? Let me know if I made anything worse! :) If the altered patches look good to you, I suggest you go ahead and push them. -- Tim From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:28:14 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:28:14 +0000 Received: from localhost ([127.0.0.1]:50034 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vB-0005fq-UJ for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:14 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:59861) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6v9-0005fP-4Q for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:08 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 005605C01EF; Tue, 30 Mar 2021 01:28:02 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=mex3pCsBrrb2bjbmrcXoAQSr0v4Cfd61jE7DjHPiP dE=; b=YYhC/zD3RHzLT7O8CTPEWJJ/nSPyYm+X4P+sCn98VqJdZCHsVdKjqqMch NPwGu+cOePBx5YXNoLWuEXA8AnMSe6Qnxgs608j/1xcu+XN9e5PZtMNFghrPGrBg 8TuMlWwDIEAE6d5V70e3jG6Im12LC7YCXquxluzCG+qtGwdJFPKJMTuPKjFXuA9C txMyPB6FqAjwo5grupAhv/RY3v8JV6eNU8LtYAPsMC27Bu7DM1neuRPKbx2/bUx1 7f9vj/ES2N3N3LGMJNY+5O8ZOa4ufYxfc3NsQBbriTIGF8KN02P4wBwCL4WwUee9 TxZxrw6mNQsFvxpR/Jh2vsowve3FA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepvfhimhho thhhhicuufgrmhhplhgvuceoshgrmhhplhgvthesnhhghihrohdrtghomheqnecuggftrf grthhtvghrnhepieeiheegtdfhhfetgfffjeegvdekvdevteefueeffeeggefhvdevteeu gfdviefgnecuffhomhgrihhnpehgihhthhhusgdrtghomhdpghhnuhdrohhrghdpnhhpmh hjshdrohhrghenucfkphepjeegrdduudeirddukeeirdeggeenucevlhhushhtvghrufhi iigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehsrghmphhlvghtsehnghihrhhord gtohhm X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 4CAA624005B; Tue, 30 Mar 2021 01:28:01 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 01/13] build-system: Rewrite node build system. Date: Tue, 30 Mar 2021 01:27:31 -0400 Message-Id: <20210330052743.575-1-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Timothy Sample , Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) From: Jelle Licht * guix/build/node-build-system.scm: Rewrite it. * guix/build-system/node.scm: Adjust accordingly. * gnu/packages/node-xyz.scm (node-semver): Likewise. Co-authored-by: Timothy Sample --- gnu/packages/node-xyz.scm | 6 +- guix/build-system/node.scm | 27 ++-- guix/build/node-build-system.scm | 207 +++++++++++++++---------------- 3 files changed, 110 insertions(+), 130 deletions(-) diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index b1d6d4ce59..60cc005ea4 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -261,7 +261,11 @@ function with browser support.") "06biknqb05r9xsmcflm3ygh50pjvdk84x6r79w43kmck4fn3qn5p")))) (build-system node-build-system) (arguments - `(#:tests? #f)) ;; FIXME: Tests depend on node-tap + '(#:tests? #f ; FIXME: Tests depend on node-tap + #:phases + (modify-phases %standard-phases + ;; The only dependency to check for is tap, which we don't have. + (delete 'configure)))) (home-page "https://github.com/npm/node-semver") (synopsis "Parses semantic versions strings") (description diff --git a/guix/build-system/node.scm b/guix/build-system/node.scm index a8c5eed09b..4991ed53a5 100644 --- a/guix/build-system/node.scm +++ b/guix/build-system/node.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Jelle Licht +;;; Copyright © 2019 Timothy Sample ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,7 +18,6 @@ ;;; along with GNU Guix. If not, see . (define-module (guix build-system node) - #:use-module (guix store) #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix derivations) @@ -25,22 +25,15 @@ #:use-module (guix build-system) #:use-module (guix build-system gnu) #:use-module (ice-9 match) - #:export (npm-meta-uri - %node-build-system-modules + #:export (%node-build-system-modules node-build node-build-system)) -(define (npm-meta-uri name) - "Return a URI string for the metadata of node module NAME found in the npm -registry." - (string-append "https://registry.npmjs.org/" name)) - (define %node-build-system-modules ;; Build-side modules imported by default. `((guix build node-build-system) (guix build json) - (guix build union) - ,@%gnu-build-system-modules)) ;; TODO: Might be not needed + ,@%gnu-build-system-modules)) (define (default-node) "Return the default Node package." @@ -76,7 +69,7 @@ registry." (define* (node-build store name inputs #:key - (npm-flags ''()) + (test-target "test") (tests? #t) (phases '(@ (guix build node-build-system) %standard-phases)) @@ -86,8 +79,6 @@ registry." (guile #f) (imported-modules %node-build-system-modules) (modules '((guix build node-build-system) - (guix build json) - (guix build union) (guix build utils)))) "Build SOURCE using NODE and INPUTS." (define builder @@ -97,12 +88,10 @@ registry." #:source ,(match (assoc-ref inputs "source") (((? derivation? source)) (derivation->output-path source)) - ((source) - source) - (source - source)) + ((source) source) + (source source)) #:system ,system - #:npm-flags ,npm-flags + #:test-target ,test-target #:tests? ,tests? #:phases ,phases #:outputs %outputs @@ -129,5 +118,5 @@ registry." (define node-build-system (build-system (name 'node) - (description "The standard Node build system") + (description "The Node build system") (lower lower))) diff --git a/guix/build/node-build-system.scm b/guix/build/node-build-system.scm index 7799f03595..a55cab237c 100644 --- a/guix/build/node-build-system.scm +++ b/guix/build/node-build-system.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson -;;; Copyright © 2016 Jelle Licht +;;; Copyright © 2016, 2020 Jelle Licht +;;; Copyright © 2019, 2021 Timothy Sample ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,144 +20,130 @@ (define-module (guix build node-build-system) #:use-module ((guix build gnu-build-system) #:prefix gnu:) - #:use-module (guix build json) - #:use-module (guix build union) #:use-module (guix build utils) + #:use-module (guix build json) + #:use-module (ice-9 ftw) #:use-module (ice-9 match) - #:use-module (ice-9 popen) - #:use-module (ice-9 regex) #:use-module (srfi srfi-1) - #:use-module (srfi srfi-26) #:export (%standard-phases node-build)) ;; Commentary: ;; -;; Builder-side code of the standard Node/npm package build procedure. +;; Builder-side code of the standard Node/NPM package install procedure. ;; ;; Code: -(define* (read-package-data #:key (filename "package.json")) - (call-with-input-file filename - (lambda (port) - (read-json port)))) +(define (set-home . _) + (with-directory-excursion ".." + (let loop ((i 0)) + (let ((dir (string-append "npm-home-" (number->string i)))) + (if (directory-exists? dir) + (loop (1+ i)) + (begin + (mkdir dir) + (setenv "HOME" (string-append (getcwd) "/" dir)) + (format #t "set HOME to ~s~%" (getenv "HOME"))))))) + #t) -(define* (build #:key inputs #:allow-other-keys) - (define (build-from-package-json? package-file) - (let* ((package-data (read-package-data #:filename package-file)) - (scripts (assoc-ref package-data "scripts"))) - (assoc-ref scripts "build"))) - "Build a new node module using the appropriate build system." - ;; XXX: Develop a more robust heuristic, allow override - (cond ((file-exists? "gulpfile.js") - (invoke "gulp")) - ((file-exists? "gruntfile.js") - (invoke "grunt")) - ((file-exists? "Makefile") - (invoke "make")) - ((and (file-exists? "package.json") - (build-from-package-json? "package.json")) - (invoke "npm" "run" "build"))) +(define (module-name module) + (let* ((package.json (string-append module "/package.json")) + (package-meta (call-with-input-file package.json read-json))) + (assoc-ref package-meta "name"))) + +(define (index-modules input-paths) + (define (list-modules directory) + (append-map (lambda (x) + (if (string-prefix? "@" x) + (list-modules (string-append directory "/" x)) + (list (string-append directory "/" x)))) + (filter (lambda (x) + (not (member x '("." "..")))) + (or (scandir directory) '())))) + (let ((index (make-hash-table (* 2 (length input-paths))))) + (for-each (lambda (dir) + (let ((nm (string-append dir "/lib/node_modules"))) + (for-each (lambda (module) + (hash-set! index (module-name module) module)) + (list-modules nm)))) + input-paths) + index)) + +(define* (patch-dependencies #:key inputs #:allow-other-keys) + + (define index (index-modules (map cdr inputs))) + + (define (resolve-dependencies package-meta meta-key) + (fold (lambda (key+value acc) + (match key+value + ('@ acc) + ((key . value) (acons key (hash-ref index key value) acc)))) + '() + (or (assoc-ref package-meta meta-key) '()))) + + (with-atomic-file-replacement "package.json" + (lambda (in out) + (let ((package-meta (read-json in))) + (assoc-set! package-meta "dependencies" + (append + '(@) + (resolve-dependencies package-meta "dependencies") + (resolve-dependencies package-meta "peerDependencies"))) + (assoc-set! package-meta "devDependencies" + (append + '(@) + (resolve-dependencies package-meta "devDependencies"))) + (write-json package-meta out)))) #t) -(define* (link-npm-dependencies #:key inputs #:allow-other-keys) - (define (inputs->node-inputs inputs) - "Filter the directory part from INPUTS." - (filter (lambda (input) - (match input - ((name . _) (node-package? name)))) - inputs)) - (define (inputs->directories inputs) - "Extract the directory part from INPUTS." - (match inputs - (((names . directories) ...) - directories))) - (define (make-node-path root) - (string-append root "/lib/node_modules/")) - - (let ((input-node-directories (inputs->directories - (inputs->node-inputs inputs)))) - (union-build "node_modules" - (map make-node-path input-node-directories)) +(define* (configure #:key outputs inputs #:allow-other-keys) + (let ((npm (string-append (assoc-ref inputs "node") "/bin/npm"))) + (invoke npm "--offline" "--ignore-scripts" "install") #t)) -(define configure link-npm-dependencies) +(define* (build #:key inputs #:allow-other-keys) + (let ((package-meta (call-with-input-file "package.json" read-json))) + (if (and=> (assoc-ref package-meta "scripts") + (lambda (scripts) + (assoc-ref scripts "build"))) + (let ((npm (string-append (assoc-ref inputs "node") "/bin/npm"))) + (invoke npm "run" "build")) + (format #t "there is no build script to run~%")) + #t)) -(define* (check #:key tests? #:allow-other-keys) +(define* (check #:key tests? inputs #:allow-other-keys) "Run 'npm test' if TESTS?" (if tests? - ;; Should only be enabled once we know that there are tests - (invoke "npm" "test")) + (let ((npm (string-append (assoc-ref inputs "node") "/bin/npm"))) + (invoke npm "test")) + (format #t "test suite not run~%")) #t) -(define (node-package? name) - "Check if NAME correspond to the name of an Node package." - (string-prefix? "node-" name)) +(define* (repack #:key inputs #:allow-other-keys) + (invoke "tar" "-czf" "../package.tgz" ".") + #t) (define* (install #:key outputs inputs #:allow-other-keys) - "Install the node module to the output store item. The module itself is -installed in a subdirectory of @file{node_modules} and its runtime dependencies -as defined by @file{package.json} are symlinked into a @file{node_modules} -subdirectory of the module's directory. Additionally, binaries are installed in -the @file{bin} directory." - (let* ((out (assoc-ref outputs "out")) - (target (string-append out "/lib")) - (binaries (string-append out "/bin")) - (data (read-package-data)) - (modulename (assoc-ref data "name")) - (binary-configuration (match (assoc-ref data "bin") - (('@ configuration ...) configuration) - ((? string? configuration) configuration) - (#f #f))) - (dependencies (match (assoc-ref data "dependencies") - (('@ deps ...) deps) - (#f #f)))) - (mkdir-p target) - (copy-recursively "." (string-append target "/node_modules/" modulename)) - ;; Remove references to dependencies - (delete-file-recursively - (string-append target "/node_modules/" modulename "/node_modules")) - (cond - ((string? binary-configuration) - (begin - (mkdir-p binaries) - (symlink (string-append target "/node_modules/" modulename "/" - binary-configuration) - (string-append binaries "/" modulename)))) - ((list? binary-configuration) - (for-each - (lambda (conf) - (match conf - ((key . value) - (begin - (mkdir-p (dirname (string-append binaries "/" key))) - (symlink (string-append target "/node_modules/" modulename "/" - value) - (string-append binaries "/" key)))))) - binary-configuration))) - (when dependencies - (mkdir-p - (string-append target "/node_modules/" modulename "/node_modules")) - (for-each - (lambda (dependency) - (let ((dependency (car dependency))) - (symlink - (string-append (assoc-ref inputs (string-append "node-" dependency)) - "/lib/node_modules/" dependency) - (string-append target "/node_modules/" modulename - "/node_modules/" dependency)))) - dependencies)) + "Install the node module to the output store item." + (let ((out (assoc-ref outputs "out")) + (npm (string-append (assoc-ref inputs "node") "/bin/npm"))) + (invoke npm "--prefix" out + "--global" + "--offline" + "--loglevel" "info" + "--production" + "install" "../package.tgz") #t)) - (define %standard-phases (modify-phases gnu:%standard-phases + (add-after 'unpack 'set-home set-home) + (add-before 'configure 'patch-dependencies patch-dependencies) (replace 'configure configure) (replace 'build build) - (replace 'install install) - (delete 'check) - (add-after 'install 'check check) - (delete 'strip))) + (replace 'check check) + (add-before 'install 'repack repack) + (replace 'install install))) (define* (node-build #:key inputs (phases %standard-phases) #:allow-other-keys #:rest args) -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:28:19 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:28:19 +0000 Received: from localhost ([127.0.0.1]:50038 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vL-0005gD-5H for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:19 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:41385) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vJ-0005ft-H8 for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:17 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 7161D5C0178; Tue, 30 Mar 2021 01:28:12 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=MExpIYFG0FICu+P24sLeMR7MNQJXxdCjFPnu+s91JMI=; b=qWXVXb3L GHqkyC0rGoR9GMQXJHr3geshK0jf/5AHF5XCMgiFeY8Trm6KZ348xeIp+W2saz0K RQhmdZEAQm96PQx/Tax2Z+RkpNeztHDRfgxluF5IhRs+acUjRrwtCGMfxwhuWHkd XqfOajWMS10ScOWupugQilvKexL9BQlY4b0vSUQqgrA2g669BDQbzqnT0iNNG0He hqzOCiMXGETvrxY4BhdoLSKVWmkSW9nS4oI+jG8EGH+H3pAT6OmsCcRvdu6aP2si VbE92z6tdrQvRneofof6fX9ling/eHzdJxo6/iDIVn1o97aliGGE3Ij/Lj28PalK AmdRtEvIUnUIxg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpeekhfeuieeigfegtedvjeeluddtgfetgeffteelgeejleevueekveeuveef veduleenucffohhmrghinhepghhithhhuhgsrdgtohhmpdhlihgsuhhvrdhorhhgnecukf hppeejgedrudduiedrudekiedrgeegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghr rghmpehmrghilhhfrhhomhepshgrmhhplhgvthesnhhghihrohdrtghomh X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 353D324005C; Tue, 30 Mar 2021 01:28:12 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 02/13] gnu: Add libuv-for-node Date: Tue, 30 Mar 2021 01:27:32 -0400 Message-Id: <20210330052743.575-2-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/libevent.scm (libuv-for-node): New variable. --- gnu/packages/libevent.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index 7109d9a88d..0e683570d3 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -134,6 +134,22 @@ resolution, asynchronous file system operations, and threading primitives.") ;; details. Documentation is CC-BY 4.0 as of 1.12.0; see 'LICENSE-docs'. (license (list expat cc-by4.0)))) +(define-public libuv-for-node + ;; When upgrading Node, also upgrade this. Get the version from + ;; https://github.com/nodejs/node/blob/master/deps/uv/include/uv/version.h + (package + (inherit libuv) + (name "libuv") + (version "1.40.0") + (source (origin + (method url-fetch) + (uri (string-append "https://dist.libuv.org/dist/v" version + "/libuv-v" version ".tar.gz")) + (sha256 + (base32 + "1551k3ab27vbg9517l9b4iqbramwxdkwgpf53knas05cbfwhvab1")))) + (properties '((hidden? . #t))))) + (define-public perl-anyevent (package (name "perl-anyevent") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:28:24 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:28:24 +0000 Received: from localhost ([127.0.0.1]:50042 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vQ-0005gX-DY for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:24 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:42831) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vO-0005g6-IL for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:22 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 7ACCC5C011D; Tue, 30 Mar 2021 01:28:17 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=eoKzkNUOhbInOIItNjm+PucG0+rcQ2pDkbBXZOSyw1c=; b=mw0USeo4 SXSMrsb3OAEI9SkSKK8q+I+ArXcQKmSeAmcspSAkYQic5q9CetNIhx2mgTkUeV9x ksz1O/7IXwTfuiTo5UW9HznkzizW8ujjwP3brrhn/+pVckb3lEY8GPA3HrlK8EJn iTubmDKz53MCsKQ2IC3YHk0N6filJZ+vuVO8Ro9I+o2Hg2wM9hXFz31Bv4aPw3Ii YPV5rV/SRNveRDulmF+Y0ladKfuxhkbBs5U0YViklaQ2Y23ZawZ8Y8vEw0fFDJWM NA9/932kyUuZF4BSHQjfK+tRBzW0pwj1ZFVMXlIM9LReWt4ajw3KKsiIvnpo+AIT oyq3rxeHXztd7Q== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpeehffekffevieffteejudfhkedthfdtteetkeevheejkeegveetfefggfdu gfetkeenucffohhmrghinhepghhnuhdrohhrghdpnhhouggvjhhsrdhorhhgnecukfhppe ejgedrudduiedrudekiedrgeegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghm pehmrghilhhfrhhomhepshgrmhhplhgvthesnhhghihrohdrtghomh X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 449E524005D; Tue, 30 Mar 2021 01:28:17 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 03/13] gnu: node: Use license prefix. Date: Tue, 30 Mar 2021 01:27:33 -0400 Message-Id: <20210330052743.575-3-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/node.scm (node)[license]: Use prefix for license. --- gnu/packages/node.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index a0df3d2cad..82a2ca7ce0 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -26,7 +26,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages node) - #:use-module ((guix licenses) #:select (expat)) + #:use-module ((guix licenses) #:prefix license:) #:use-module ((guix build utils) #:select (alist-replace)) #:use-module (guix packages) #:use-module (guix derivations) @@ -207,7 +207,7 @@ event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.") (home-page "https://nodejs.org/") - (license expat) + (license license:expat) (properties '((max-silent-time . 7200) ;2h, needed on ARM (timeout . 21600))))) ;6h -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:28:29 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:28:29 +0000 Received: from localhost ([127.0.0.1]:50046 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vU-0005gp-OY for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:28 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:36595) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vR-0005gM-GA for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:25 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 6A8E55C01F4; Tue, 30 Mar 2021 01:28:20 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Tue, 30 Mar 2021 01:28:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=419ho2bcWzMB6Oo7VAiHj/BTlTFGvC6jakPC20PbNt8=; b=rgxbdrFe oj7yLgHu56ErjFMPwQTlO+aF+BkFg26rHwBpBiOBSmdkE1bAad2yqchJ/DJLJxWu GxzYmUMWNR1xv87MDLcIEvQrlEg43YF/xBMDgsPHjufL0/Cg7EEhfmp+2UzizUEs VpGiJSZjOpE9M9b6O/FHOvfHzzAjVW+Pd09x6PZynPKoWyt56Q/gQf20g5dGf2eq YnKUCOrCAssZa0z/jYdXg6ERQU4biw62Hj9A11RmCpBRueYjMmWoy4PQRbZb2h3A fcPe/wiOwuvRtyDkzErDl/Bn4+7fSGu6mfWzzkFWBvFWnBKfaS4E7xNhtQ5Yrm3Y hFqqpoYFTGBEHQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpedtveeiffduveeiiedtheeiveeitefhgeevleegteevhedvffeivdffuddu udekudenucfkphepjeegrdduudeirddukeeirdeggeenucevlhhushhtvghrufhiiigvpe dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehsrghmphhlvghtsehnghihrhhordgtohhm X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 4281324005B; Tue, 30 Mar 2021 01:28:20 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 04/13] gnu: Add node-bootstrap. Date: Tue, 30 Mar 2021 01:27:34 -0400 Message-Id: <20210330052743.575-4-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/node (node-bootstrap): Add hidden alias for node. --- gnu/packages/node.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 82a2ca7ce0..73d022d87f 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -211,6 +211,11 @@ devices.") (properties '((max-silent-time . 7200) ;2h, needed on ARM (timeout . 21600))))) ;6h +;; This should be the latest version of node that still builds without +;; depending on llhttp. +(define-public node-bootstrap + (hidden-package node)) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:28:36 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:28:36 +0000 Received: from localhost ([127.0.0.1]:50050 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vc-0005hF-1i for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:36 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:52905) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6va-0005gw-6W for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:34 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 20AB85C00A2; Tue, 30 Mar 2021 01:28:29 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=H5wPiPJKh//os+ycLppQDQaV1EMVf8rVlXqW4GEhSno=; b=kFsl/rBr Qq4aU70QzaaF4/sopAprqPqbko0AN3EYrteGQC/zYErrm6sjbWlSW0RinhqyWnwm KqzqNcnwRfs3ftH+kFoSBw9grFU2e52+2T46JKRgZbEHLP3tp9Ry6N/Lp+KaKp54 +Ci82MUHaJ9krikE+kM3LAQqPs7Ot2gBbg/gqgaefWPwnpiiWYU0p4+wiwc0X773 QbzNTf7vsrC0vRxkWLUcrIkO9NOAE7WoEbMZPZ8/u2YZ9NA0igGwhP3SU8rW0ykd 7umiOP+frTAl7Ohh3Ygv1yb7/pMEwNByhUpCgmTNToaPbyYxfnCYrbLiU791tDHl zR80TWnG8AHqEQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpeffleektedvjeelteehvedtjefhleetkedvgfdtvdegudelueefleehueeh tefhheenucffohhmrghinhepghhithhhuhgsrdgtohhmpdhsvghmvhgvrhdrohhrghenuc fkphepjeegrdduudeirddukeeirdeggeenucevlhhushhtvghrufhiiigvpedtnecurfgr rhgrmhepmhgrihhlfhhrohhmpehsrghmphhlvghtsehnghihrhhordgtohhm X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id DB08324005B; Tue, 30 Mar 2021 01:28:28 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 05/13] gnu: Add node-semver-bootstrap. Date: Tue, 30 Mar 2021 01:27:35 -0400 Message-Id: <20210330052743.575-5-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/node.scm (node-semver-bootstrap): New variable. --- gnu/packages/node.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 73d022d87f..773cef3716 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -41,6 +41,7 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) + #:use-module (gnu packages node-xyz) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -216,6 +217,35 @@ devices.") (define-public node-bootstrap (hidden-package node)) +;; Duplicate of node-semver +(define-public node-semver-bootstrap + (package + (name "node-semver") + (version "7.2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/npm/node-semver") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06biknqb05r9xsmcflm3ygh50pjvdk84x6r79w43kmck4fn3qn5p")))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/npm/node-semver") + (properties '((hidden? . #t))) + (synopsis "Parses semantic versions strings") + (description + "@code{node-semver} is a JavaScript implementation of the +@uref{https://semver.org/, SemVer.org} specification.") + (license license:isc))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:28:41 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:28:41 +0000 Received: from localhost ([127.0.0.1]:50056 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vh-0005hc-F6 for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:41 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:57023) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vd-0005h3-OQ for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:38 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id A90BC5C017D; Tue, 30 Mar 2021 01:28:32 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=Cqtrim9K16Jr9mv9ZR+7pEL6tTOrB9/ldvBJPcSSq4c=; b=trCwl+1t IW1MaWd+UdlYp/i2wR1NS9SKjd476V1fjtxtqO3xJBYhHfjNUrwYvlYkhXngpSmZ RHqkr1iZcilxY13o8CU/GiE8R6eUit57SvfrViagz1ZaQUd30ZSKZVlsu7eeJfpP EYFYhEsyIGPdORIO5So/ea+QnvGUSkSXgOe3EcXzIXFPqRkdrzeK6h4oRLBOCyqY UGBVU3qJ1DfIHHyiB4n3MF92VTYRjyL7zJhMgQGzqhDCwON2fZlRquGQdxKrehwp n++ifQ2p9H+MlDeWpli9BpvLjbbJsyX2V6WdVlmFys4Efc2wGQe8nQopm6/0/f/L 5ZP7ivWcv5P52w== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpedvteeitdevhffhgfdugefggffghfduveehfeeuleevvddujeeghfeuleek hfehffenucffohhmrghinhepshgvmhhvvghrrdhorhhgpdhgihhthhhusgdrtghomhenuc fkphepjeegrdduudeirddukeeirdeggeenucevlhhushhtvghrufhiiigvpedtnecurfgr rhgrmhepmhgrihhlfhhrohhmpehsrghmphhlvghtsehnghihrhhordgtohhm X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 71A8C24005B; Tue, 30 Mar 2021 01:28:32 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 06/13] gnu: Add node-ms-bootstrap. Date: Tue, 30 Mar 2021 01:27:36 -0400 Message-Id: <20210330052743.575-6-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/node.scm (node-ms-bootstrap): New variable. --- gnu/packages/node.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 773cef3716..1d17502df7 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -31,8 +31,10 @@ #:use-module (guix packages) #:use-module (guix derivations) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system node) #:use-module (gnu packages) #:use-module (gnu packages adns) #:use-module (gnu packages base) @@ -246,6 +248,34 @@ devices.") @uref{https://semver.org/, SemVer.org} specification.") (license license:isc))) +(define-public node-ms-bootstrap + (package + (name "node-ms") + (version "2.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vercel/ms.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pjxzbi4j8pinlsc7yxvfrh0b47kb2dc4lfc2rjq4wx5bdwl33fj")))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/zeit/ms#readme") + (properties '((hidden? . #t))) + (synopsis "Tiny millisecond conversion utility") + (description "Use this package to easily convert various time +formats to milliseconds.") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:28:42 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:28:42 +0000 Received: from localhost ([127.0.0.1]:50058 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vh-0005hf-Re for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:42 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:55633) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vf-0005hD-UW for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:40 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id D557E5C011D; Tue, 30 Mar 2021 01:28:34 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=UdZfgtlZke/qT4tEtsxQKAhGi9wW5J2nCoplvf+DZ9U=; b=QWTxQzSd JnqOG2IsjirPUsmR6yL6UQgTJxF4+VbwLwHryXB7g9iQAW/IOuE9V1sst2OvKUfi EIyJnAazJHpJLzOUR7hnoEdsZAvUoXZWmPs799yJLPykyhg1FTqfq2k2aJLVN0+X mdlbTHhuHa089M9tO7nMXOcskrmd/eZmB+AqPX87/AlH7MBVaQrNWTs2MLCW8/mC MQKpJfLo4sUx1b8XxQ/yuVBqx0y8RJrXRY2jWKgEa6L131QgZSice8UypfHh2CKk NJnfVCi7V96iELEOsoQgp2bvItd4DRmLgqf2K9lfnvkI57yH1NmLKzg3cCcofZBp XIRkvy/wD3EEpQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpeegvedvteeludehkeejleehjefhvdfhhfetfeeghffhfeekjeetteffkeeh heejkeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecukfhppeejgedrudduiedrud ekiedrgeegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhho mhepshgrmhhplhgvthesnhhghihrohdrtghomh X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id AE169240057; Tue, 30 Mar 2021 01:28:34 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 07/13] gnu: Add node-binary-search-bootstrap. Date: Tue, 30 Mar 2021 01:27:37 -0400 Message-Id: <20210330052743.575-7-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/node.scm (node-binary-search-bootstrap): New variable. --- gnu/packages/node.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 1d17502df7..21d6052c06 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -276,6 +276,33 @@ devices.") formats to milliseconds.") (license license:expat))) +(define-public node-binary-search-bootstrap + (package + (name "node-binary-search") + (version "1.3.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/darkskyapp/binary-search.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xr2msdc143cd3xwgq7n3rhzy7j8wrnaidxl0r6l6b6g3mpbpjig")))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/darkskyapp/binary-search#readme") + (properties '((hidden? . #t))) + (synopsis "Tiny binary search function with comparators") + (description "This package is a binary search function for Node.js.") + (license license:cc0))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:28:51 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:28:51 +0000 Received: from localhost ([127.0.0.1]:50066 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vr-0005iJ-7o for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:51 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:36425) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vj-0005hT-Tt for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:44 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id D14105C017D; Tue, 30 Mar 2021 01:28:38 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=fQ2bBOmeX7Ttjro5C92plbRdniIOzMMDaNqSb2212gU=; b=njJXAjzr h8+wTTax0nxZZP4sYMDXAGpnHBmVxIZqzrWO8TouFoGeEiWJn/xs/qecU3NQTtvJ Wy+OY5mMoXc2VrN+IeyZOli4RFf5KJIKM8EY3FxTFplAsUrjZimyCp7JLe3+TiJF XLzitSwhyZt8X4dNWQG7DaXwywYadjKuDRBeFuZAV0V0MeQDIWIqAUUqobY0EhEG MyShdJqNU0ArJZ9W2iTc8/3wlBejDNJpNhyNWqWy8JZhLahlNha98DcdJ0eBpQG2 2gdi0xgPpJ7Wk2cVINbJirNQjeCb/6IwJ9I65yGJwQm99/lGrR3o7mpMPLakaJWh TEDiux6p7qf/5A== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpeegvedvteeludehkeejleehjefhvdfhhfetfeeghffhfeekjeetteffkeeh heejkeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecukfhppeejgedrudduiedrud ekiedrgeegnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrghilhhfrhho mhepshgrmhhplhgvthesnhhghihrohdrtghomh X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id A843E240054; Tue, 30 Mar 2021 01:28:38 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 08/13] gnu: Add node-debug-bootstrap. Date: Tue, 30 Mar 2021 01:27:38 -0400 Message-Id: <20210330052743.575-8-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/node.scm (node-debug-bootstrap): New variable. --- gnu/packages/node.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 21d6052c06..6c4c02265d 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -303,6 +303,36 @@ formats to milliseconds.") (description "This package is a binary search function for Node.js.") (license license:cc0))) +(define-public node-debug-bootstrap + (package + (name "node-debug") + (version "4.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/visionmedia/debug.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "08g52r1d4yqcsfdfb7n5if33d4cghaq75gx5n9hj6m6fd8jfp2pi")))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (inputs `(("node-ms" ,node-ms-bootstrap))) + (home-page "https://github.com/visionmedia/debug#readme") + (properties '((hidden? . #t))) + (synopsis "Small debugging utility") + (description "This package contains a tiny JavaScript debugging +utility modelled after Node.js core's debugging technique. It works in +Node.js and web browsers.") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:28:51 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:28:51 +0000 Received: from localhost ([127.0.0.1]:50068 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vr-0005iL-Ft for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:51 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:36425) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vl-0005hT-1x for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:45 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 049BE5C0178; Tue, 30 Mar 2021 01:28:45 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=fn52lgO37W924lGxHhopYTZ/thqfcRm6Acjl9OCSv3g=; b=fqJ2lMgC BcumT3wtSYB1Y3XjfDqEqUfF5AxdnskVypFfm4nyZRs3LCPIlesEyjh/aRHDXePd TBNzzjZcCEWBUb/c5He5Kat1tCsUU+/TQsdbRvRlVcooKJua2GUThGLGRyptapNu qw4Jm/SIat6C5vChUMhKvcINFpStB50Hyld1+l0hs5iH/ZcqSEwd9tZqJH67lxTd bx6U06arZkT6b1GE008fIl1SoPsBs924RwTCj5h6iialu93ixybs9yinGTUYIRc/ zpMuZbSUPHj7+l13UKki//R3vXxsDwXnzHsSnUKGHr6fRAoE8TDodpkuGvtgIdc6 eV1EoVkQ5dbnkw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpeegvedvteeludehkeejleehjefhvdfhhfetfeeghffhfeekjeetteffkeeh heejkeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecukfhppeejgedrudduiedrud ekiedrgeegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhho mhepshgrmhhplhgvthesnhhghihrohdrtghomh X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id C207A240054; Tue, 30 Mar 2021 01:28:44 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 10/13] gnu: Add node-llparse-frontend-bootstrap. Date: Tue, 30 Mar 2021 01:27:40 -0400 Message-Id: <20210330052743.575-10-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/node.scm (node-llparse-frontend-bootstrap): New variable. --- gnu/packages/node.scm | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 570d4521ac..16c3decdd4 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -398,6 +398,62 @@ Node.js and web browsers.") (description "This package builds graphs for consumption by llparse.") (license license:expat))) +(define-public node-llparse-frontend-bootstrap + (package + (name "node-llparse-frontend") + (version "3.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/indutny/llparse-frontend.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rm9g4ifyip30svm5cgnf0gx7d45jgh4mpf2hkd092xhngmfvicc")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix imports for esbuild. + ;; https://github.com/evanw/esbuild/issues/477 + (substitute* '("src/frontend.ts" + "src/code/field-value.ts" + "src/container/index.ts" + "src/container/wrap.ts" + "src/node/sequence.ts" + "src/node/single.ts" + "src/node/table-lookup.ts" + "src/trie/index.ts") + (("\\* as assert") "assert") + (("\\* as debugAPI") "debugAPI")) + #t)))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((esbuild (string-append (assoc-ref inputs "esbuild") + "/bin/esbuild"))) + (invoke esbuild + "--platform=node" + "--outfile=lib/frontend.js" + "--bundle" + "src/frontend.ts"))))))) + (inputs + `(("node-debug" ,node-debug-bootstrap) + ("node-llparse-builder" ,node-llparse-builder-bootstrap))) + (native-inputs + `(("esbuild" ,esbuild))) + (home-page "https://github.com/indutny/llparse-frontend#readme") + (properties '((hidden? . #t))) + (synopsis "Frontend for the llparse compiler") + (description "This package is a frontend for the llparse compiler.") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:28:52 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:28:52 +0000 Received: from localhost ([127.0.0.1]:50070 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vr-0005iU-Qs for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:52 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:46359) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vn-0005hq-Ag for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:47 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 3E21C5C00A2; Tue, 30 Mar 2021 01:28:42 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=JCW7bY9DIK1BcgGljHhVeF36yYMVA5bRxFtKQ5Vv/ao=; b=NrzC5NcB GsgK2QnLCKHB/zTdxSon3ba9aFT3IzbTKI66UhvBpQRN2jVKGKOJiuICgNW4DU7U 1MFmTHSPRu3TIA24z2qeOAx/h9peNJj6ZPY6Nt4ONo4LmT9Z2yNZiy5fpigy42th WcPsEZ/mXcf5Ye7KGzMBM+6d+xdtLgE7DRC+Vm+/CeMd6RO6d6RJf4CsS8qW5gQp jCPUvtsnFcA+L6pxQGuIeSnUUp2FW/SfE/f8AwaSFJOpPMy2BRjCWCf8CDdGlFJD pL/Rpspk/sSKjAGAVp8uIP0vANx8gpdR1JM+OLzF5IvnrHqqIiFGirDD/bi8mJY6 s0TE3zksPRat5g== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpeegvedvteeludehkeejleehjefhvdfhhfetfeeghffhfeekjeetteffkeeh heejkeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecukfhppeejgedrudduiedrud ekiedrgeegnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrghilhhfrhho mhepshgrmhhplhgvthesnhhghihrohdrtghomh X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 06474240054; Tue, 30 Mar 2021 01:28:42 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 09/13] gnu: Add node-llparse-builder-bootstrap. Date: Tue, 30 Mar 2021 01:27:39 -0400 Message-Id: <20210330052743.575-9-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/node.scm (node-llparse-builder-bootstrap): New variable. --- gnu/packages/node.scm | 65 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 6c4c02265d..570d4521ac 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -333,6 +333,71 @@ utility modelled after Node.js core's debugging technique. It works in Node.js and web browsers.") (license license:expat))) +(define-public node-llparse-builder-bootstrap + (package + (name "node-llparse-builder") + (version "1.5.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/indutny/llparse-builder.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r82iiwqsb73k2fxw7842rjjiixllxpyc6yl9cq4ma6ybkf6xmzm")) + (modules '((guix build utils))) + (snippet + '(begin + ;; FIXME: Unneeded runtime dependency. + ;; https://github.com/indutny/llparse-builder/pull/2 + (substitute* "package.json" + (("\"@types/debug.*,") "")) + ;; Fix imports for esbuild. + ;; https://github.com/evanw/esbuild/issues/477 + (substitute* '("src/node/invoke.ts" + "src/node/base.ts" + "src/node/consume.ts" + "src/node/match.ts" + "src/node/error.ts" + "src/node/pause.ts" + "src/edge.ts" + "src/utils.ts" + "src/loop-checker/index.ts" + "src/loop-checker/lattice.ts" + "src/code/field.ts" + "src/span-allocator.ts") + (("\\* as assert") "assert") + (("\\* as debugAPI") "debugAPI")) + #t)))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((esbuild (string-append (assoc-ref inputs "esbuild") + "/bin/esbuild"))) + (invoke esbuild + "--platform=node" + "--outfile=lib/builder.js" + "--bundle" + "src/builder.ts"))))))) + (inputs + `(("node-binary-search" ,node-binary-search-bootstrap) + ("node-debug" ,node-debug-bootstrap))) + (native-inputs + `(("esbuild" ,esbuild))) + (home-page "https://github.com/indutny/llparse-builder#readme") + (properties '((hidden? . #t))) + (synopsis "Graph builder for consumption by llparse") + (description "This package builds graphs for consumption by llparse.") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:29:06 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:29:06 +0000 Received: from localhost ([127.0.0.1]:50085 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6w5-0005k7-8l for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:29:05 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:33529) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vs-0005i7-Dn for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:52 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 578365C0178; Tue, 30 Mar 2021 01:28:47 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=g4k0XFIjNsdRoQDcdxiXmkgmq9PIZuc5UgxwB6n1chw=; b=OVRowGLS Gjvcn9H25uOngyxGqdjhmLeOVcMsTX6n2U7mCD3LMtwfqQHFXn86Rhkfb11l3/Zi 5pB4ymQ3WQ6em5s1EU+2d+fZEyjGIrAQUkTqGwNQBhlmm+EF3ClDnrf3FJGUGrij xT8zC8GeQlsX7n9Ws+UTdo7Uf0Dh27jGycIb9MJshCq6srXp8Sayx4KZTCzsGCBQ m7YptZ1JygtERcxBAHCIbyydbD3poqXaYAzmOOq+X42b6EwMgnZTuy+jHY/ni6oF cbCNE4tffC+4L1wBhc0zoEw6vUbLZlJdAbZRGv35HtqVid3Z1t4c3hr6gmnzGuU5 I4qrtsaw1ZsCJg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpeegvedvteeludehkeejleehjefhvdfhhfetfeeghffhfeekjeetteffkeeh heejkeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecukfhppeejgedrudduiedrud ekiedrgeegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhho mhepshgrmhhplhgvthesnhhghihrohdrtghomh X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 1DAC724005A; Tue, 30 Mar 2021 01:28:47 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 11/13] gnu: Add node-llparse-bootstrap. Date: Tue, 30 Mar 2021 01:27:41 -0400 Message-Id: <20210330052743.575-11-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/node.scm (node-llparse-bootstrap): New variable. --- gnu/packages/node.scm | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 16c3decdd4..5336012e43 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -454,6 +454,62 @@ Node.js and web browsers.") (description "This package is a frontend for the llparse compiler.") (license license:expat))) +(define-public node-llparse-bootstrap + (package + (name "node-llparse") + (version "7.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/indutny/llparse.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10da273iy2if88hp79cwms6c8qpsl1fkgzll6gmqyx5yxv5mkyp6")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix imports for esbuild. + ;; https://github.com/evanw/esbuild/issues/477 + (substitute* '("src/compiler/index.ts" + "src/implementation/c/node/base.ts" + "src/implementation/c/node/table-lookup.ts" + "src/implementation/c/compilation.ts" + "src/implementation/c/helpers/match-sequence.ts" + "src/implementation/c/code/mul-add.ts") + (("\\* as assert") "assert") + (("\\* as debugAPI") "debugAPI")) + #t)))) + (build-system node-build-system) + (arguments + `(#:node ,node-bootstrap + #:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((esbuild (string-append (assoc-ref inputs "esbuild") + "/bin/esbuild"))) + (invoke esbuild + "--platform=node" + "--outfile=lib/api.js" + "--bundle" + "src/api.ts"))))))) + (inputs + `(("node-debug" ,node-debug-bootstrap) + ("node-llparse-frontend" ,node-llparse-frontend-bootstrap))) + (native-inputs + `(("esbuild" ,esbuild))) + (home-page "https://github.com/nodejs/llparse#readme") + (properties '((hidden? . #t))) + (synopsis "Compile incremental parsers to C code") + (description "This package offers an API for compiling an incremental +parser definition into a C output.") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:29:06 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:29:07 +0000 Received: from localhost ([127.0.0.1]:50089 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6w6-0005kN-0I for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:29:06 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:55797) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vu-0005iF-H0 for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:57 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 7025B5C00A2; Tue, 30 Mar 2021 01:28:49 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=nn3L8z5KPvUZK18NU7xiCHpaArJCHOgWMdHwsqLsGus=; b=qD4PssSh 3NRPCbeYQZecXp5u4Ce9XaHQ2WBuVFHVWgA4qw69OjDwY3knireSlY1RnrIew3GT dpPKO6QjOliUrL41e4PAdCDTbpOvtI61OKrgo0DwPWknXsHxM2I3juLk36kCoQCv N7EB/mAlyGwutIzQeG4dZDnFS3B5/ZeKA3/bdjcXJcgkdTwy3Z14FFzjYYTKuuoo 82aMeOKPCYKaN2BlFKZU8DojAJJS6cu+FWWZzR0CrlJxKsQPDs2eqRsj7WeUAcPr Is1pwY3bckglykMEc1ZFBYTx0c/1AhKBg4iWIg0kL2839iQF0hz9VagE6yUuIY5Q EJnjolAUp13YUg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpeefueehhedvfffhffefleegjeegtefgtdefieefvddtjeehudfgudeuteeh udeuheenucffohhmrghinhepghhithhhuhgsrdgtohhmpdhivghtfhdrohhrghenucfkph epjeegrdduudeirddukeeirdeggeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgr mhepmhgrihhlfhhrohhmpehsrghmphhlvghtsehnghihrhhordgtohhm X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 38F3D24005B; Tue, 30 Mar 2021 01:28:49 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 12/13] gnu: Add llhttp-bootstrap. Date: Tue, 30 Mar 2021 01:27:42 -0400 Message-Id: <20210330052743.575-12-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/node.scm (llhttp-bootstrap): New variable. --- gnu/local.mk | 1 + gnu/packages/node.scm | 70 ++++++++++++ .../llhttp-bootstrap-CVE-2020-8287.patch | 100 ++++++++++++++++++ 3 files changed, 171 insertions(+) create mode 100644 gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch diff --git a/gnu/local.mk b/gnu/local.mk index 52a021c2a3..5959a563d1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1366,6 +1366,7 @@ dist_patch_DATA = \ %D%/packages/patches/linux-pam-no-setfsuid.patch \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/lirc-reproducible-build.patch \ + %D%/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch \ %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ %D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch \ %D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch \ diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 5336012e43..45e5f8feca 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -510,6 +510,76 @@ Node.js and web browsers.") parser definition into a C output.") (license license:expat))) +(define-public llhttp-bootstrap + (package + (name "llhttp") + (version "2.1.3") + (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 + "0pqj7kyyzr1zs4h9yzn5rdxnxspm3wqgsv00765dd42fszlmrmk8")) + (patches (search-patches "llhttp-bootstrap-CVE-2020-8287.patch")) + (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 + `(#:tests? #f ; no tests + #:make-flags (list "CLANG=gcc" + (string-append "DESTDIR=" (assoc-ref %outputs "out")) + "PREFIX=") + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((esbuild (string-append (assoc-ref inputs "esbuild") + "/bin/esbuild"))) + (invoke esbuild + "--platform=node" + "--outfile=bin/generate.js" + "--bundle" "bin/generate.ts")))) + (add-before 'install 'create-install-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (for-each (lambda (dir) + (mkdir-p (string-append out dir))) + (list "/lib" "/include" "/src")) + #t))) + (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) + #t)))))) + (native-inputs + `(("esbuild" ,esbuild) + ("node" ,node-bootstrap) + ("node-semver" ,node-semver-bootstrap) + ("node-llparse-bootstrap" ,node-llparse-bootstrap))) + (home-page "https://github.com/nodejs/llhttp") + (properties '((hidden? . #t))) + (synopsis "Parser for HTTP messages") + (description "This is a rewrite of +@url{https://github.com/nodejs/http-parser, http-parser} using +@url{https://github.com/nodejs/llparse, llparse} to generate the C +source files.") + (license license:expat))) + (define-public libnode (package/inherit node (name "libnode") diff --git a/gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch b/gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch new file mode 100644 index 0000000000..215c920e53 --- /dev/null +++ b/gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch @@ -0,0 +1,100 @@ +This patch comes from upstream. It corresponds to a patch applied to +the generated C source code for llhttp included in Node.js 14.16.0 +(see commit 641f786bb1a1f6eb1ff8750782ed939780f2b31a). That commit +fixes CVE-2020-8287. With this patch, the output of our +llhttp-bootstrap package matches the files included in Node.js 14.16.0 +exactly. + +commit e9b36ea64709c35ca66094d5cf3787f444029601 +Author: Fedor Indutny +Date: Sat Oct 10 19:56:01 2020 -0700 + + http: unset `F_CHUNKED` on new `Transfer-Encoding` + + Duplicate `Transfer-Encoding` header should be a treated as a single, + but with original header values concatenated with a comma separator. In + the light of this, even if the past `Transfer-Encoding` ended with + `chunked`, we should be not let the `F_CHUNKED` to leak into the next + header, because mere presence of another header indicates that `chunked` + is not the last transfer-encoding token. + +diff --git a/src/llhttp/http.ts b/src/llhttp/http.ts +index f4f1a6e..0a0c365 100644 +--- a/src/llhttp/http.ts ++++ b/src/llhttp/http.ts +@@ -460,11 +460,19 @@ export class HTTP { + .match([ ' ', '\t' ], n('header_value_discard_ws')) + .otherwise(checkContentLengthEmptiness); + ++ // Multiple `Transfer-Encoding` headers should be treated as one, but with ++ // values separate by a comma. ++ // ++ // See: https://tools.ietf.org/html/rfc7230#section-3.2.2 ++ const toTransferEncoding = this.unsetFlag( ++ FLAGS.CHUNKED, ++ 'header_value_te_chunked'); ++ + n('header_value_start') + .otherwise(this.load('header_state', { + [HEADER_STATE.UPGRADE]: this.setFlag(FLAGS.UPGRADE, fallback), + [HEADER_STATE.TRANSFER_ENCODING]: this.setFlag( +- FLAGS.TRANSFER_ENCODING, 'header_value_te_chunked'), ++ FLAGS.TRANSFER_ENCODING, toTransferEncoding), + [HEADER_STATE.CONTENT_LENGTH]: n('header_value_content_length_once'), + [HEADER_STATE.CONNECTION]: n('header_value_connection'), + }, 'header_value')); +@@ -847,6 +855,11 @@ export class HTTP { + return span.start(span.end(this.node(next))); + } + ++ private unsetFlag(flag: FLAGS, next: string | Node): Node { ++ const p = this.llparse; ++ return p.invoke(p.code.and('flags', ~flag), this.node(next)); ++ } ++ + private setFlag(flag: FLAGS, next: string | Node): Node { + const p = this.llparse; + return p.invoke(p.code.or('flags', flag), this.node(next)); +diff --git a/test/request/transfer-encoding.md b/test/request/transfer-encoding.md +index a7d1681..b0891d6 100644 +--- a/test/request/transfer-encoding.md ++++ b/test/request/transfer-encoding.md +@@ -353,6 +353,38 @@ off=106 headers complete method=3 v=1/1 flags=200 content_length=0 + off=106 error code=15 reason="Request has invalid `Transfer-Encoding`" + ``` + ++## POST with `chunked` and duplicate transfer-encoding ++ ++ ++```http ++POST /post_identity_body_world?q=search#hey HTTP/1.1 ++Accept: */* ++Transfer-Encoding: chunked ++Transfer-Encoding: deflate ++ ++World ++``` ++ ++```log ++off=0 message begin ++off=5 len=38 span[url]="/post_identity_body_world?q=search#hey" ++off=44 url complete ++off=54 len=6 span[header_field]="Accept" ++off=61 header_field complete ++off=62 len=3 span[header_value]="*/*" ++off=67 header_value complete ++off=67 len=17 span[header_field]="Transfer-Encoding" ++off=85 header_field complete ++off=86 len=7 span[header_value]="chunked" ++off=95 header_value complete ++off=95 len=17 span[header_field]="Transfer-Encoding" ++off=113 header_field complete ++off=114 len=7 span[header_value]="deflate" ++off=123 header_value complete ++off=125 headers complete method=3 v=1/1 flags=200 content_length=0 ++off=125 error code=15 reason="Request has invalid `Transfer-Encoding`" ++``` ++ + ## POST with `chunked` before other transfer-coding (lenient) + + TODO(indutny): should we allow it even in lenient mode? (Consider disabling -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 01:29:07 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 05:29:07 +0000 Received: from localhost ([127.0.0.1]:50093 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6w6-0005ki-UN for submit@debbugs.gnu.org; Tue, 30 Mar 2021 01:29:07 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:59027) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR6vx-0005ig-HK for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 01:28:58 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 731F35C017D; Tue, 30 Mar 2021 01:28:52 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 30 Mar 2021 01:28:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=rMR/7beTDsdT3kmJffi1nTSh8klMzsL5F7x6BgGnY5s=; b=un6z9/r5 8H118PJ621+55qUT8vgQBoxik57aeFe1YDmje6jQHs5QTQz88PRvWVGscI0MZI7W KLoMcp+PcGkGXFQYvaT1rsEwQhiv3ItGnfkct7RYLEfMyhftr68AM7b7DFhp9uaj fscEIfCqh9GGghxNDsqh1HR+8eaNUGq3Jf/sBdoNGL1nm960hyULihPVAfPnqqOG 0RQSq/amd2tm6GBLvxT+60Ze/1N/ujZ/3QxD7efGRxXyGoUYmBSmqLo9TF3Ajvwf S4GyE1EkX6BSBGM2L9Euuf8IyIB4LttNekdGPUSX/IPsknOAFKHQpOjIj10GKw1f hsJomoPJ0ktT4Q== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehledgleelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvihhmohht hhihucfurghmphhlvgcuoehsrghmphhlvghtsehnghihrhhordgtohhmqeenucggtffrrg htthgvrhhnpedvueekfeduteffgeekudegueffheeuledttdegjefguedutdfgkeettdet keegleenucffohhmrghinhepnhhouggvjhhsrdhorhhgpdhgihhthhhusgdrtghomhenuc fkphepjeegrdduudeirddukeeirdeggeenucevlhhushhtvghrufhiiigvpedtnecurfgr rhgrmhepmhgrihhlfhhrohhmpehsrghmphhlvghtsehnghihrhhordgtohhm X-ME-Proxy: Received: from mrblack.lan (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 39299240057; Tue, 30 Mar 2021 01:28:52 -0400 (EDT) From: Timothy Sample To: 47282@debbugs.gnu.org Subject: [PATCH v2 13/13] gnu: Add node-lts. Date: Tue, 30 Mar 2021 01:27:43 -0400 Message-Id: <20210330052743.575-13-samplet@ngyro.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <87k0pprz6n.fsf@ngyro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jelle Licht * gnu/packages/node.scm (node-lts): New variable. * guix/build-system/node.scm (default-node): Use it. --- gnu/packages/node.scm | 135 +++++++++++++++++++++++++++++++++++++ guix/build-system/node.scm | 2 +- 2 files changed, 136 insertions(+), 1 deletion(-) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 45e5f8feca..249241f110 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -580,6 +580,141 @@ parser definition into a C output.") source files.") (license license:expat))) +(define-public node-lts + (package + (inherit node) + (version "14.16.0") + (source (origin + (method url-fetch) + (uri (string-append "https://nodejs.org/dist/v" version + "/node-v" version ".tar.xz")) + (sha256 + (base32 + "19nz2mhmn6ikahxqyna1dn25pb5v3z9vsz9zb2flb6zp2yk4hxjf")) + (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) + ((#:configure-flags configure-flags) + ''("--shared-cares" + "--shared-libuv" + "--shared-nghttp2" + "--shared-openssl" + "--shared-zlib" + "--shared-brotli" + "--with-intl=system-icu")) + ((#:phases phases) + `(modify-phases ,phases + (replace 'configure + ;; Node's configure script is actually a python script, so we can't + ;; run it with bash. + (lambda* (#:key outputs (configure-flags '()) inputs + #:allow-other-keys) + (let* ((prefix (assoc-ref outputs "out")) + (flags (cons (string-append "--prefix=" prefix) + configure-flags))) + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" flags) + ;; Node's configure script expects the CC environment variable to + ;; be set. + (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) + (apply invoke + (string-append (assoc-ref inputs "python") + "/bin/python3") + "configure" flags)))) + (replace 'patch-files + (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-stdio-closed.js" + "test/sequential/test-child-process-emfile.js") + (("'/bin/sh'") + (string-append "'" (which "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 "'" (which "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-master-error.js" + "test/parallel/test-cluster-master-kill.js")) + + ;; These require a DNS resolver. + (for-each delete-file + '("test/parallel/test-dns.js" + "test/parallel/test-dns-lookupService-promises.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 (string-prefix? "arm" (%current-system)) + '((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")) + + ;; 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")) + #t)))))) + (inputs + `(("c-ares" ,c-ares) + ("icu4c" ,icu4c-67) + ("libuv" ,libuv-for-node) + ("llhttp" ,llhttp-bootstrap) + ("google-brotli" ,google-brotli) + ("nghttp2" ,nghttp2 "lib") + ("openssl" ,openssl) + ("zlib" ,zlib))) + (native-inputs + (alist-replace "python" (list python-3) + (package-native-inputs node))))) + (define-public libnode (package/inherit node (name "libnode") diff --git a/guix/build-system/node.scm b/guix/build-system/node.scm index 4991ed53a5..98f63f87ef 100644 --- a/guix/build-system/node.scm +++ b/guix/build-system/node.scm @@ -39,7 +39,7 @@ "Return the default Node package." ;; Lazily resolve the binding to avoid a circular dependency. (let ((node (resolve-interface '(gnu packages node)))) - (module-ref node 'node))) + (module-ref node 'node-lts))) (define* (lower name #:key source inputs native-inputs outputs system target -- 2.31.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 03:00:44 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 07:00:44 +0000 Received: from localhost ([127.0.0.1]:50227 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR8Mg-0000MO-Vj for submit@debbugs.gnu.org; Tue, 30 Mar 2021 03:00:44 -0400 Received: from flashner.co.il ([178.62.234.194]:37574) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR8Mc-0000Ck-BK for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 03:00:38 -0400 Received: from localhost (unknown [31.210.177.71]) by flashner.co.il (Postfix) with ESMTPSA id 2394340088; Tue, 30 Mar 2021 07:00:28 +0000 (UTC) Date: Tue, 30 Mar 2021 09:59:53 +0300 From: Efraim Flashner To: Timothy Sample Subject: Re: [bug#47282] [PATCH v2 12/13] gnu: Add llhttp-bootstrap. Message-ID: References: <87k0pprz6n.fsf@ngyro.com> <20210330052743.575-12-samplet@ngyro.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="h2N13T+O8YXooalw" Content-Disposition: inline In-Reply-To: <20210330052743.575-12-samplet@ngyro.com> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht , 47282@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --h2N13T+O8YXooalw Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Mar 30, 2021 at 01:27:42AM -0400, Timothy Sample wrote: > From: Jelle Licht >=20 > * gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch: New file. > * gnu/local.mk (dist_patch_DATA): Add it. > * gnu/packages/node.scm (llhttp-bootstrap): New variable. > --- > gnu/local.mk | 1 + > gnu/packages/node.scm | 70 ++++++++++++ > .../llhttp-bootstrap-CVE-2020-8287.patch | 100 ++++++++++++++++++ > 3 files changed, 171 insertions(+) > create mode 100644 gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.p= atch >=20 > diff --git a/gnu/local.mk b/gnu/local.mk > index 52a021c2a3..5959a563d1 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -1366,6 +1366,7 @@ dist_patch_DATA =3D \ > %D%/packages/patches/linux-pam-no-setfsuid.patch \ > %D%/packages/patches/lirc-localstatedir.patch \ > %D%/packages/patches/lirc-reproducible-build.patch \ > + %D%/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch \ > %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ > %D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch \ > %D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch \ > diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm > index 5336012e43..45e5f8feca 100644 > --- a/gnu/packages/node.scm > +++ b/gnu/packages/node.scm > @@ -510,6 +510,76 @@ Node.js and web browsers.") > parser definition into a C output.") > (license license:expat))) > =20 > +(define-public llhttp-bootstrap > + (package > + (name "llhttp") > + (version "2.1.3") > + (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 > + "0pqj7kyyzr1zs4h9yzn5rdxnxspm3wqgsv00765dd42fszlmrmk8")) > + (patches (search-patches "llhttp-bootstrap-CVE-2020-8287.p= atch")) > + (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 > + `(#:tests? #f ; no tests > + #:make-flags (list "CLANG=3Dgcc" This should probably be cc-for-target > + (string-append "DESTDIR=3D" (assoc-ref %output= s "out")) > + "PREFIX=3D") And normally DESTDIR is empty and PREFIX is %out. Does it need to be switched here? > + #:phases > + (modify-phases %standard-phases > + (replace 'configure > + (lambda* (#:key inputs #:allow-other-keys) > + (let ((esbuild (string-append (assoc-ref inputs "esbuild") > + "/bin/esbuild"))) > + (invoke esbuild > + "--platform=3Dnode" > + "--outfile=3Dbin/generate.js" > + "--bundle" "bin/generate.ts")))) > + (add-before 'install 'create-install-directories > + (lambda* (#:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out"))) > + (for-each (lambda (dir) > + (mkdir-p (string-append out dir))) > + (list "/lib" "/include" "/src")) > + #t))) > + (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) > + #t)))))) > + (native-inputs > + `(("esbuild" ,esbuild) > + ("node" ,node-bootstrap) > + ("node-semver" ,node-semver-bootstrap) > + ("node-llparse-bootstrap" ,node-llparse-bootstrap))) > + (home-page "https://github.com/nodejs/llhttp") > + (properties '((hidden? . #t))) > + (synopsis "Parser for HTTP messages") > + (description "This is a rewrite of > +@url{https://github.com/nodejs/http-parser, http-parser} using > +@url{https://github.com/nodejs/llparse, llparse} to generate the C > +source files.") > + (license license:expat))) > + > (define-public libnode > (package/inherit node > (name "libnode") > diff --git a/gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch b/= gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch > new file mode 100644 > index 0000000000..215c920e53 > --- /dev/null > +++ b/gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch > @@ -0,0 +1,100 @@ > +This patch comes from upstream. It corresponds to a patch applied to > +the generated C source code for llhttp included in Node.js 14.16.0 > +(see commit 641f786bb1a1f6eb1ff8750782ed939780f2b31a). That commit > +fixes CVE-2020-8287. With this patch, the output of our > +llhttp-bootstrap package matches the files included in Node.js 14.16.0 > +exactly. > + > +commit e9b36ea64709c35ca66094d5cf3787f444029601 > +Author: Fedor Indutny > +Date: Sat Oct 10 19:56:01 2020 -0700 > + > + http: unset `F_CHUNKED` on new `Transfer-Encoding` > + =20 > + Duplicate `Transfer-Encoding` header should be a treated as a single, > + but with original header values concatenated with a comma separator.= In > + the light of this, even if the past `Transfer-Encoding` ended with > + `chunked`, we should be not let the `F_CHUNKED` to leak into the next > + header, because mere presence of another header indicates that `chun= ked` > + is not the last transfer-encoding token. > + > +diff --git a/src/llhttp/http.ts b/src/llhttp/http.ts > +index f4f1a6e..0a0c365 100644 > +--- a/src/llhttp/http.ts > ++++ b/src/llhttp/http.ts > +@@ -460,11 +460,19 @@ export class HTTP { > + .match([ ' ', '\t' ], n('header_value_discard_ws')) > + .otherwise(checkContentLengthEmptiness); > +=20 > ++ // Multiple `Transfer-Encoding` headers should be treated as one, b= ut with > ++ // values separate by a comma. > ++ // > ++ // See: https://tools.ietf.org/html/rfc7230#section-3.2.2 > ++ const toTransferEncoding =3D this.unsetFlag( > ++ FLAGS.CHUNKED, > ++ 'header_value_te_chunked'); > ++ > + n('header_value_start') > + .otherwise(this.load('header_state', { > + [HEADER_STATE.UPGRADE]: this.setFlag(FLAGS.UPGRADE, fallback), > + [HEADER_STATE.TRANSFER_ENCODING]: this.setFlag( > +- FLAGS.TRANSFER_ENCODING, 'header_value_te_chunked'), > ++ FLAGS.TRANSFER_ENCODING, toTransferEncoding), > + [HEADER_STATE.CONTENT_LENGTH]: n('header_value_content_length_o= nce'), > + [HEADER_STATE.CONNECTION]: n('header_value_connection'), > + }, 'header_value')); > +@@ -847,6 +855,11 @@ export class HTTP { > + return span.start(span.end(this.node(next))); > + } > +=20 > ++ private unsetFlag(flag: FLAGS, next: string | Node): Node { > ++ const p =3D this.llparse; > ++ return p.invoke(p.code.and('flags', ~flag), this.node(next)); > ++ } > ++ > + private setFlag(flag: FLAGS, next: string | Node): Node { > + const p =3D this.llparse; > + return p.invoke(p.code.or('flags', flag), this.node(next)); > +diff --git a/test/request/transfer-encoding.md b/test/request/transfer-e= ncoding.md > +index a7d1681..b0891d6 100644 > +--- a/test/request/transfer-encoding.md > ++++ b/test/request/transfer-encoding.md > +@@ -353,6 +353,38 @@ off=3D106 headers complete method=3D3 v=3D1/1 flags= =3D200 content_length=3D0 > + off=3D106 error code=3D15 reason=3D"Request has invalid `Transfer-Encod= ing`" > + ``` > +=20 > ++## POST with `chunked` and duplicate transfer-encoding > ++ > ++ > ++```http > ++POST /post_identity_body_world?q=3Dsearch#hey HTTP/1.1 > ++Accept: */* > ++Transfer-Encoding: chunked > ++Transfer-Encoding: deflate > ++ > ++World > ++``` > ++ > ++```log > ++off=3D0 message begin > ++off=3D5 len=3D38 span[url]=3D"/post_identity_body_world?q=3Dsearch#hey" > ++off=3D44 url complete > ++off=3D54 len=3D6 span[header_field]=3D"Accept" > ++off=3D61 header_field complete > ++off=3D62 len=3D3 span[header_value]=3D"*/*" > ++off=3D67 header_value complete > ++off=3D67 len=3D17 span[header_field]=3D"Transfer-Encoding" > ++off=3D85 header_field complete > ++off=3D86 len=3D7 span[header_value]=3D"chunked" > ++off=3D95 header_value complete > ++off=3D95 len=3D17 span[header_field]=3D"Transfer-Encoding" > ++off=3D113 header_field complete > ++off=3D114 len=3D7 span[header_value]=3D"deflate" > ++off=3D123 header_value complete > ++off=3D125 headers complete method=3D3 v=3D1/1 flags=3D200 content_lengt= h=3D0 > ++off=3D125 error code=3D15 reason=3D"Request has invalid `Transfer-Encod= ing`" > ++``` > ++ > + ## POST with `chunked` before other transfer-coding (lenient) > +=20 > + TODO(indutny): should we allow it even in lenient mode? (Consider disab= ling > --=20 > 2.31.0 >=20 >=20 >=20 >=20 --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --h2N13T+O8YXooalw Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmBizGYACgkQQarn3Mo9 g1FxFBAApap4rY86TCrFjdQCaQ/dYc5jQW+020JTEL3zBGndnn6npUkJNs0H/6i2 d43aoXdRnqMKECFSUPFczv9ft/hZi6uDjpeXs/8Zurxeq6S5TqyiYKbya80lyYot NQGFtLOmH3JNaymFwDRoELyfA7FXDj79Bb7WvW7X9Y/0dAUswxck+6sy08m6OhTY Q2mGty7eG8jTSpbQNae6HFODnmGg6+uIW55vDIhDBaXyT5Gqvkw6Ip6ZcdVOYhAx rPxqc28/MNWWn3Q9n9BxZMfhwVfj5tByVsXOwDHZRJGUb8JzMiiWXvxp5kqRpdJy Ncf5Vl73b4TUkijGT/RfWSnx7H9rNy7vyylWD/vE5rSwJKPLR/wn82vK0v3ZJqj4 wxUclA2sBl+pXW9vQsAvE/cfG4ySlZaM29R94H8Yq7mIv2pu9jNTftcv9rftKE58 10n1eN37F4++ImNZtwK3rpXELj2r3MLevCMX4c5/SX8YhHAmd+18obosBGX4zE+w ktntmsdntV6GLMnnZ20Acseez3P1LN+g85tEhpwzv8cE+1uz2xOutfI9GHJlAhGO BltJhA2ZgFBfsJ028zDKBw1ngzIl9O6smRW4pXpmshFLWRZnvZFhU04N5QvGf3uz MIAOjzolMy1OwO9dNpkDeqHeROco2MKP1x5FZXnygAG6aAFjhQY= =yTbP -----END PGP SIGNATURE----- --h2N13T+O8YXooalw-- From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 30 03:04:55 2021 Received: (at 47282) by debbugs.gnu.org; 30 Mar 2021 07:04:55 +0000 Received: from localhost ([127.0.0.1]:50240 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR8Qp-0001zS-3r for submit@debbugs.gnu.org; Tue, 30 Mar 2021 03:04:55 -0400 Received: from flashner.co.il ([178.62.234.194]:37586) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lR8Qi-0001z7-HH for 47282@debbugs.gnu.org; Tue, 30 Mar 2021 03:04:53 -0400 Received: from localhost (unknown [31.210.177.71]) by flashner.co.il (Postfix) with ESMTPSA id B9C42401D4; Tue, 30 Mar 2021 07:04:42 +0000 (UTC) Date: Tue, 30 Mar 2021 10:04:08 +0300 From: Efraim Flashner To: Timothy Sample Subject: Re: [bug#47282] [PATCH v2 13/13] gnu: Add node-lts. Message-ID: References: <87k0pprz6n.fsf@ngyro.com> <20210330052743.575-13-samplet@ngyro.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="JTrVj+Ifk5u3RP/y" Content-Disposition: inline In-Reply-To: <20210330052743.575-13-samplet@ngyro.com> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 47282 Cc: Jelle Licht , 47282@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --JTrVj+Ifk5u3RP/y Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Mar 30, 2021 at 01:27:43AM -0400, Timothy Sample wrote: > From: Jelle Licht >=20 > * gnu/packages/node.scm (node-lts): New variable. > * guix/build-system/node.scm (default-node): Use it. > --- > gnu/packages/node.scm | 135 +++++++++++++++++++++++++++++++++++++ > guix/build-system/node.scm | 2 +- > 2 files changed, 136 insertions(+), 1 deletion(-) >=20 > diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm > index 45e5f8feca..249241f110 100644 > --- a/gnu/packages/node.scm > +++ b/gnu/packages/node.scm > @@ -580,6 +580,141 @@ parser definition into a C output.") > source files.") > (license license:expat))) > =20 > +(define-public node-lts > + (package > + (inherit node) > + (version "14.16.0") > + (source (origin > + (method url-fetch) > + (uri (string-append "https://nodejs.org/dist/v" version > + "/node-v" version ".tar.xz")) > + (sha256 > + (base32 > + "19nz2mhmn6ikahxqyna1dn25pb5v3z9vsz9zb2flb6zp2yk4hxjf")) > + (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) > + ((#:configure-flags configure-flags) > + ''("--shared-cares" > + "--shared-libuv" > + "--shared-nghttp2" > + "--shared-openssl" > + "--shared-zlib" > + "--shared-brotli" > + "--with-intl=3Dsystem-icu")) > + ((#:phases phases) > + `(modify-phases ,phases > + (replace 'configure > + ;; Node's configure script is actually a python script, so = we can't > + ;; run it with bash. > + (lambda* (#:key outputs (configure-flags '()) inputs > + #:allow-other-keys) > + (let* ((prefix (assoc-ref outputs "out")) > + (flags (cons (string-append "--prefix=3D" prefix) > + configure-flags))) > + (format #t "build directory: ~s~%" (getcwd)) > + (format #t "configure flags: ~s~%" flags) > + ;; Node's configure script expects the CC environment v= ariable to > + ;; be set. > + (setenv "CC" (string-append (assoc-ref inputs "gcc") "/= bin/gcc")) again cc-for-target > + (apply invoke > + (string-append (assoc-ref inputs "python") > + "/bin/python3") > + "configure" flags)))) > + (replace 'patch-files > + (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-spawnsyn= c-shell.js" > + "test/parallel/test-fs-write-sigxfsz.js" > + "test/parallel/test-stdio-closed.js" > + "test/sequential/test-child-process-emfile= =2Ejs") > + (("'/bin/sh'") > + (string-append "'" (which "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= =2Ejs") > + (("'/usr/bin/env'") > + (string-append "'" (which "env") "'"))) > + > + ;; FIXME: These tests fail in the build container, but th= ey 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")) > + > + ;; These require a DNS resolver. > + (for-each delete-file > + '("test/parallel/test-dns.js" > + "test/parallel/test-dns-lookupService-promise= s.js")) > + > + ;; FIXME: This test fails randomly: > + ;; https://github.com/nodejs/node/issues/31213 > + (delete-file "test/parallel/test-net-listen-after-destroy= ing-stdin.js") > + > + ;; FIXME: These tests fail on armhf-linux: > + ;; https://github.com/nodejs/node/issues/31970 > + ,@(if (string-prefix? "arm" (%current-system)) This could probably be changed to ,@(when (target-arm32?) > + '((for-each delete-file > + '("test/parallel/test-zlib.js" > + "test/parallel/test-zlib-brotli.js" > + "test/parallel/test-zlib-brotli-flush= =2Ejs" > + "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 va= lidity 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")) > + > + ;; 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")) > + #t)))))) > + (inputs > + `(("c-ares" ,c-ares) > + ("icu4c" ,icu4c-67) > + ("libuv" ,libuv-for-node) > + ("llhttp" ,llhttp-bootstrap) > + ("google-brotli" ,google-brotli) > + ("nghttp2" ,nghttp2 "lib") > + ("openssl" ,openssl) > + ("zlib" ,zlib))) > + (native-inputs > + (alist-replace "python" (list python-3) > + (package-native-inputs node))))) > + > (define-public libnode > (package/inherit node > (name "libnode") > diff --git a/guix/build-system/node.scm b/guix/build-system/node.scm > index 4991ed53a5..98f63f87ef 100644 > --- a/guix/build-system/node.scm > +++ b/guix/build-system/node.scm > @@ -39,7 +39,7 @@ > "Return the default Node package." > ;; Lazily resolve the binding to avoid a circular dependency. > (let ((node (resolve-interface '(gnu packages node)))) > - (module-ref node 'node))) > + (module-ref node 'node-lts))) > =20 > (define* (lower name > #:key source inputs native-inputs outputs system target > --=20 > 2.31.0 >=20 >=20 >=20 >=20 --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --JTrVj+Ifk5u3RP/y Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmBizWgACgkQQarn3Mo9 g1GbcQ/+KZuaJXt/+fPe+vcF8NhN0UGkFYmEHXkfzzamVdi2b2e6vN9GzSAI/A5P 6VVzj/Bq3URMwInJSultsni+UkXeUDI+7rw1J6tpPMPPUrmKW5mht0AexATbNQcB 777jAix3iqGYnkZjofKkzatO7XQIwE9jvuJS9UTDDRGw7sL07ZBwYUKaZarPPffW UZ4CgMFrbyj3Ge3UseBYlcVMbhh2/RuZzZNZu1er023jEk1USKrhJ7YRM9I5ATNe 2QydGVGsmCvhJnAlfXEwjsG3UYVz+m5Eb0oTzbZ1SaoPPv71OTxAF52eSzjm+Zpb 44dCYzdLgIf9jTX/8Xn44GOgllgdcp/DU/VrLp88498WcY9gDoGs7Z2PQVOnB+UI rMFahhhr/pspgDxMDCRRjBm3J9TpeqkhCDxzYk/VoFi8tAG/uV1A7SEVzrI1wTFQ HOAB5quVg2pV8Qf3Ax8CTu1NFeVtmjw5vGdMCQHfeHEQDtptyxNOrBe80nYYYg4x cllVkW8gS+qg9Var7hFUXrE82KpJt//4QMI3OwYBsbtazoB5ZJ0CeCZy/oXfLvqY ddlAUQ2QqpYEtdF9IYXgu2tk9/Y6mJlEZfXKwb3HEP5XXheZt0Fmts808G4SDHyJ Mkwrmk84m14+Gp37zQnjGf+0fxxh7L6iUo7Gqa67kqpNSu3iHy8= =PLBi -----END PGP SIGNATURE----- --JTrVj+Ifk5u3RP/y-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 09:17:43 2021 Received: (at 47282) by debbugs.gnu.org; 2 Apr 2021 13:17:43 +0000 Received: from localhost ([127.0.0.1]:59425 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lSJgF-0002VU-Hp for submit@debbugs.gnu.org; Fri, 02 Apr 2021 09:17:43 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:55250) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lSJgE-0002VL-2C for 47282@debbugs.gnu.org; Fri, 02 Apr 2021 09:17:42 -0400 From: Jelle Licht To: Efraim Flashner , Timothy Sample Subject: Re: [bug#47282] [PATCH v2 12/13] gnu: Add llhttp-bootstrap. In-Reply-To: References: <87k0pprz6n.fsf@ngyro.com> <20210330052743.575-12-samplet@ngyro.com> Date: Fri, 02 Apr 2021 15:17:38 +0200 Message-ID: <86k0pk3jwt.fsf@fsfe.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 Cc: 47282@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Efraim Flashner writes: > On Tue, Mar 30, 2021 at 01:27:42AM -0400, Timothy Sample wrote: >> + (build-system gnu-build-system) >> + (arguments >> + `(#:tests? #f ; no tests >> + #:make-flags (list "CLANG=gcc" > > This should probably be cc-for-target Fixed in my local version, thanks. >> + (string-append "DESTDIR=" (assoc-ref %outputs "out")) >> + "PREFIX=") > > And normally DESTDIR is empty and PREFIX is %out. Does it need to be > switched here? It does. - Jelle From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 09:20:28 2021 Received: (at 47282) by debbugs.gnu.org; 2 Apr 2021 13:20:28 +0000 Received: from localhost ([127.0.0.1]:59430 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lSJiu-0002aW-1g for submit@debbugs.gnu.org; Fri, 02 Apr 2021 09:20:28 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:55390) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lSJir-0002aN-U0 for 47282@debbugs.gnu.org; Fri, 02 Apr 2021 09:20:26 -0400 From: Jelle Licht To: Efraim Flashner , Timothy Sample Subject: Re: [bug#47282] [PATCH v2 13/13] gnu: Add node-lts. In-Reply-To: References: <87k0pprz6n.fsf@ngyro.com> <20210330052743.575-13-samplet@ngyro.com> Date: Fri, 02 Apr 2021 15:20:24 +0200 Message-ID: <86h7ko3js7.fsf@fsfe.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282 Cc: 47282@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Efraim Flashner writes: > On Tue, Mar 30, 2021 at 01:27:43AM -0400, Timothy Sample wrote: >> + (arguments >> + (substitute-keyword-arguments (package-arguments node) >> + ((#:configure-flags configure-flags) >> + ''("--shared-cares" >> + "--shared-libuv" >> + "--shared-nghttp2" >> + "--shared-openssl" >> + "--shared-zlib" >> + "--shared-brotli" >> + "--with-intl=system-icu")) >> + ((#:phases phases) >> + `(modify-phases ,phases >> + (replace 'configure >> + ;; Node's configure script is actually a python script, so we can't >> + ;; run it with bash. >> + (lambda* (#:key outputs (configure-flags '()) inputs >> + #:allow-other-keys) >> + (let* ((prefix (assoc-ref outputs "out")) >> + (flags (cons (string-append "--prefix=" prefix) >> + configure-flags))) >> + (format #t "build directory: ~s~%" (getcwd)) >> + (format #t "configure flags: ~s~%" flags) >> + ;; Node's configure script expects the CC environment variable to >> + ;; be set. >> + (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) > > again cc-for-target Ack. >> [snip] >> + ;; FIXME: These tests fail on armhf-linux: >> + ;; https://github.com/nodejs/node/issues/31970 >> + ,@(if (string-prefix? "arm" (%current-system)) > > This could probably be changed to ,@(when (target-arm32?) I changed it to ,@(if (target-arm32?), as otherwise the #f-branch spliced #unspecified into the list. From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 12:18:14 2021 Received: (at 47282-done) by debbugs.gnu.org; 2 Apr 2021 16:18:14 +0000 Received: from localhost ([127.0.0.1]:32793 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lSMUv-0005Kc-Tj for submit@debbugs.gnu.org; Fri, 02 Apr 2021 12:18:14 -0400 Received: from mail1.fsfe.org ([217.69.89.151]:35030) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lSMUu-0005KT-8u for 47282-done@debbugs.gnu.org; Fri, 02 Apr 2021 12:18:12 -0400 From: Jelle Licht To: Timothy Sample Subject: Re: bug#47282: [PATCH 00/13] node going forward In-Reply-To: <87k0pprz6n.fsf@ngyro.com> References: <20210320145706.12308-1-jlicht@fsfe.org> <87k0pprz6n.fsf@ngyro.com> Date: Fri, 02 Apr 2021 18:18:08 +0200 Message-ID: <86ft083bjz.fsf@fsfe.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 47282-done Cc: 47282-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Timothy, Timothy Sample writes: > Hi Jelle, > > Jelle Licht writes: > >> So, some people seem to be interested in this one; please review and tes= t. > > Now that I=E2=80=99ve finally taken the time to dig into what you=E2=80= =99ve done here =E2=80=93 > I must say it=E2=80=99s very impressive! If you bang your head against a wall often enough, it will crack eventually. Head or wall, either way works in this metaphor ;-). > I=E2=80=99ve taken the presumptuous step of re-rolling the series. The r= eason > is that all the =E2=80=9C(delete 'build)=E2=80=9D bits were bothering me.= I decided to > have the build system check the =E2=80=9Cpackage.json=E2=80=9D file for a= build script > before trying to run it. Since that change required changing all the > other patches, I thought it would be easier to just post the updated > patches. Also, I=E2=80=99m hoping to spare you some trouble (since you= =E2=80=99ve > already gone to a lot!). Makes sense, thanks! Please be presumptuous as often as you'd like. > > =E2=80=A2 Change the =E2=80=9CFix incorrect import semantics=E2=80=9D= comments to =E2=80=9CFix > imports for esbuild=E2=80=9D. To me, if TypeScript=E2=80=99s tsc l= ikes the > imports, they are correct TypeScript (despite the esbuild bug > report). "Something a native speaker of English can make sense of" !=3D "Proper English", and in that same vein I don't think a commmon mistake with workaround in place is not a mistake. I really don't care about what ends up in the codebase though, as long as it is clear why we do what we do, which works out just fine with your comment. > The final result is still a little messy, but I don=E2=80=99t think we sh= ould > hold this back any longer. It=E2=80=99s a significant step forward, and = it puts > us in better shape to improve things incrementally. > > WDYT? Let me know if I made anything worse! :) If the altered patches > look good to you, I suggest you go ahead and push them. I still adressed some of Efraim's remarks, and pushed it to master just now. There are quite some ways to go from here: * Get the 'binary' importer upstreamable (I will continue with this) * Properly support cross-compilation of Node and Node-packages I had a super quick look at this, but it seems that in building node, you build intermediate tools that run on the host. Perhaps some our x-compilation gurus can weigh in. * Make a Rome-based build system, once Rome does more than linting, to help untangle the knot that is JavaScript-packaging But for today (and the upcoming release), modern Node on guix \o/ Thanks folks! - Jelle From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 21:19:57 2021 Received: (at 47282-done) by debbugs.gnu.org; 3 Apr 2021 01:19:57 +0000 Received: from localhost ([127.0.0.1]:33040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lSUxB-0001Wh-2n for submit@debbugs.gnu.org; Fri, 02 Apr 2021 21:19:57 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:39801) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lSUx8-0001WT-Bo for 47282-done@debbugs.gnu.org; Fri, 02 Apr 2021 21:19:55 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 1B4D35C008B; Fri, 2 Apr 2021 21:19:49 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Fri, 02 Apr 2021 21:19:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=oT+UhkeXUO+EKhMnht63p7vfsjAOLtSPUZ6kgYXjj 4c=; b=txUBRgbw2SxtK6sUuIyo08mZD0edhFH3An2WFGSXwxgtaawlLJ18zyNmY PK4TorjL12s3LjIUCB/ZDoqOGLWqjMXfqy3JPq8oNYesbCemZEGAXO2J4N5UW6XZ 5Qb2lqCfahY+unFZoCBuye/1HlGhiajPTgoZW2IFkhf8jLxqS9vVnmDWH3fi/EMm UC4rAgDklU4owb5bz46/NFUjZrYioPbrYkm+3SSzFD995BF1Tlqnwky3yOdZlo7K kEngD7iMZByOEiQMW7Fpv0gD0DgzPRk5W9maIslvHgFqLF360moz3cwUgfoynO/h xMBQvGFhiCutuYwoY6uNDHfNtwd9A== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudeijedggeegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufhfffgjkfgfgggtgfesthhqredttderjeenucfhrhhomhepvfhimhho thhhhicuufgrmhhplhgvuceoshgrmhhplhgvthesnhhghihrohdrtghomheqnecuggftrf grthhtvghrnhepieduuefhgeegleelveehgedugfeuhfeikefftdevieelgfelhfdvtdfg ieehtefgnecukfhppeejgedrudduiedrudekiedrgeegnecuvehluhhsthgvrhfuihiivg eptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhplhgvthesnhhghihrohdrtgho mh X-ME-Proxy: Received: from mrblack (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 2F9A924005A; Fri, 2 Apr 2021 21:19:48 -0400 (EDT) From: Timothy Sample To: Jelle Licht Subject: Re: bug#47282: [PATCH 00/13] node going forward References: <20210320145706.12308-1-jlicht@fsfe.org> <87k0pprz6n.fsf@ngyro.com> <86ft083bjz.fsf@fsfe.org> Date: Fri, 02 Apr 2021 21:19:46 -0400 In-Reply-To: <86ft083bjz.fsf@fsfe.org> (Jelle Licht's message of "Fri, 02 Apr 2021 18:18:08 +0200") Message-ID: <87mtugjhal.fsf@ngyro.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47282-done Cc: 47282-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi, Jelle Licht writes: > Timothy Sample writes: > >> =E2=80=A2 Change the =E2=80=9CFix incorrect import semantics=E2=80= =9D comments to =E2=80=9CFix >> imports for esbuild=E2=80=9D. To me, if TypeScript=E2=80=99s tsc = likes the >> imports, they are correct TypeScript (despite the esbuild bug >> report). > > "Something a native speaker of English can make sense of" !=3D "Proper > English", and in that same vein I don't think a commmon mistake with > workaround in place is not a mistake. > > I really don't care about what ends up in the codebase though, as long > as it is clear why we do what we do, which works out just fine with your > comment. Heh. You=E2=80=99re right: it=E2=80=99s not a big deal. Thanks for humour= ing me. :) >> The final result is still a little messy, but I don=E2=80=99t think we s= hould >> hold this back any longer. It=E2=80=99s a significant step forward, and= it puts >> us in better shape to improve things incrementally. >> >> WDYT? Let me know if I made anything worse! :) If the altered patches >> look good to you, I suggest you go ahead and push them. > > I still adressed some of Efraim's remarks, and pushed it to master just > now. Nice!! > There are quite some ways to go from here: > > * Get the 'binary' importer upstreamable (I will continue with this) > > * Properly support cross-compilation of Node and Node-packages > > I had a super quick look at this, but it seems that in building node, > you build intermediate tools that run on the host. Perhaps some our > x-compilation gurus can weigh in. > > * Make a Rome-based build system, once Rome does more than linting, to > help untangle the knot that is JavaScript-packaging Sounds pretty exciting! -- Tim From unknown Wed Jun 18 00:22:19 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 01 May 2021 11:24:13 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator