guix_mirror_bot pushed a commit to branch javascript-team
in repository guix.

commit 6c5caa7613d202ecb8c04508e518c79b85d454dd
Author: Jelle Licht <[email protected]>
AuthorDate: Thu Sep 3 21:08:10 2026 +0200

    gnu: Remove node-bootstrap.
    
    * gnu/packages/node.scm (node-bootstrap): Delete variable.
---
 gnu/packages/node.scm | 276 --------------------------------------------------
 1 file changed, 276 deletions(-)

diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 3f83e3c7258..441f7cdc6df 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -62,282 +62,6 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
-;; This should be the latest version of node that still builds without
-;; depending on llhttp.
-(define-public node-bootstrap
-  (package
-    (name "node")
-    (version "10.24.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://nodejs.org/dist/v"; version
-                                  "/node-v" version ".tar.xz"))
-              (sha256
-               (base32
-                "032801kg24j04xmf09m0vxzlcz86sv21s24lv9l4cfv08k1c4byp"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Fix process.versions.XXXX assumption of always having
-                  ;; a version string of major.minor.patch and not major.minor.
-                  (substitute* "test/parallel/test-process-versions.js"
-                    (("\\\\d\\+\\\\.\\\\d\\+\\\\.") "(\\d+\\.)+"))
-                  ;; Remove bundled software.
-                  (for-each delete-file-recursively
-                            '("deps/cares"
-                              "deps/http_parser"
-                              "deps/icu-small"
-                              "deps/nghttp2"
-                              "deps/openssl"
-                              "deps/uv"
-                              "deps/zlib"))
-                  (substitute* "Makefile"
-                    ;; Remove references to bundled software.
-                    (("deps/http_parser/http_parser.gyp") "")
-                    (("deps/uv/include/\\*.h") "")
-                    (("deps/uv/uv.gyp") "")
-                    (("deps/zlib/zlib.gyp") ""))))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags '("--shared-cares"
-                           "--shared-http-parser"
-                           "--shared-libuv"
-                           "--shared-nghttp2"
-                           "--shared-openssl"
-                           "--shared-zlib"
-                           "--without-snapshot"
-                           "--without-intl")
-       ;; Run only the CI tests.  The default test target requires additional
-       ;; add-ons from NPM that are not distributed with the source.
-       #:test-target "test-ci-js"
-       #:modules
-       ((guix build gnu-build-system)
-        (guix build utils)
-        (srfi srfi-1)
-        (ice-9 match))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'patch-hardcoded-program-references
-           (lambda* (#:key inputs #:allow-other-keys)
-
-             ;; Fix hardcoded /bin/sh references.
-             (substitute*
-                 (let ((common
-                        '("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"))
-                       ;; not in bootstap node:
-                       (sigxfsz "test/parallel/test-fs-write-sigxfsz.js"))
-                   (if (file-exists? sigxfsz)
-                       (cons sigxfsz common)
-                       common))
-               (("'/bin/sh'")
-                (string-append "'"  (search-input-file inputs "/bin/sh") "'")))
-
-             ;; Fix hardcoded /usr/bin/env references.
-             (substitute* 
'("test/parallel/test-child-process-default-options.js"
-                            "test/parallel/test-child-process-env.js"
-                            "test/parallel/test-child-process-exec-env.js")
-               (("'/usr/bin/env'")
-                (string-append "'" (assoc-ref inputs "coreutils")
-                               "/bin/env'")))))
-         (add-after 'patch-hardcoded-program-references
-             'delete-problematic-tests
-           (lambda* (#:key inputs #:allow-other-keys)
-
-             ;; 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"
-                         ;; See also 
<https://github.com/nodejs/node/issues/25903>.
-                         "test/sequential/test-performance.js"))
-
-             ;; These tests fail on recent versions of nghttp2
-             (for-each delete-file
-                       '("test/parallel/test-http2-methods.js"
-                         "test/parallel/test-http2-multiplex.js"))
-
-             ;; This requires a DNS resolver.
-             (delete-file "test/parallel/test-dns.js")
-
-             ;; This test is timing-sensitive, and fails sporadically on
-             ;; slow, busy, or even very fast machines.
-             (delete-file "test/parallel/test-fs-utimes.js")
-
-             ;; FIXME: This test fails randomly:
-             ;; https://github.com/nodejs/node/issues/31213
-             (delete-file 
"test/parallel/test-net-listen-after-destroying-stdin.js")
-
-             ;; FIXME: These tests fail on armhf-linux:
-             ;; https://github.com/nodejs/node/issues/31970
-             ,@(if (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"))))
-         (add-before 'configure 'set-bootstrap-host-rpath
-           (lambda* (#:key native-inputs inputs #:allow-other-keys)
-             (let* ((inputs      (or native-inputs inputs))
-                    (c-ares      (assoc-ref inputs "c-ares"))
-                    (http-parser (assoc-ref inputs "http-parser"))
-                    (nghttp2     (assoc-ref inputs "nghttp2"))
-                    (openssl     (assoc-ref inputs "openssl"))
-                    (libuv       (assoc-ref inputs "libuv"))
-                    (zlib        (assoc-ref inputs "zlib")))
-               (substitute* "deps/v8/gypfiles/v8.gyp"
-                 (("'target_name': 'torque'," target)
-                  (string-append target
-                                 "'ldflags': ['-Wl,-rpath="
-                                 c-ares "/lib:"
-                                 http-parser "/lib:"
-                                 nghttp2 "/lib:"
-                                 openssl "/lib:"
-                                 libuv "/lib:"
-                                 zlib "/lib"
-                                 "'],"))))))
-         (replace 'configure
-           ;; Node's configure script is actually a python script, so we can't
-           ;; run it with bash.
-           (lambda* (#:key outputs (configure-flags '()) native-inputs inputs
-                     #:allow-other-keys)
-             (let* ((prefix (assoc-ref outputs "out"))
-                    (xflags ,(if (%current-target-system)
-                                 `'("--cross-compiling"
-                                    ,(string-append
-                                      "--dest-cpu="
-                                      (match (%current-target-system)
-                                        ((? (cut string-prefix? "arm" <>))
-                                         "arm")
-                                        ((? (cut string-prefix? "aarch64" <>))
-                                         "arm64")
-                                        ((? (cut string-prefix? "i686" <>))
-                                         "ia32")
-                                        ((? (cut string-prefix? "x86_64" <>))
-                                         "x64")
-                                        ((? (cut string-prefix? "powerpc64" 
<>))
-                                         "ppc64")
-                                        ((? (cut string-prefix? "riscv64" <>))
-                                         "riscv64")
-                                        (_ "unsupported"))))
-                                 ''()))
-                    (flags (cons (string-append "--prefix=" prefix)
-                                 (append xflags 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_host" "gcc")
-               (setenv "CXX_host" "g++")
-               (setenv "CC" ,(cc-for-target))
-               (setenv "CXX" ,(cxx-for-target))
-               (setenv "PKG_CONFIG" ,(pkg-config-for-target))
-               (apply invoke
-                      (let ((inpts (or native-inputs inputs)))
-                        (with-exception-handler
-                            (lambda (e)
-                              (if (search-error? e)
-                                  (search-input-file inpts "/bin/python3")
-                                  (raise-exception e)))
-                          (lambda ()
-                            (search-input-file inpts "/bin/python"))
-                          #:unwind? #t))
-                      "configure"
-                      flags))))
-         (add-after 'patch-shebangs 'patch-nested-shebangs
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             ;; Based on the implementation of patch-shebangs
-             ;; from (guix build gnu-build-system).
-             (let ((path (append-map (match-lambda
-                                       ((_ . dir)
-                                        (list (string-append dir "/bin")
-                                              (string-append dir "/sbin")
-                                              (string-append dir "/libexec"))))
-                                     (append outputs inputs))))
-               (for-each
-                (lambda (file)
-                  (patch-shebang file path))
-                (find-files (search-input-directory outputs "lib/node_modules")
-                            (lambda (file stat)
-                              (executable-file? file))
-                            #:stat lstat)))))
-         (add-after 'install 'fix-node-gyp-reference
-           ;; Note: programs like node-gyp only receive these values if
-           ;; they are started via `npm` or `npx`.
-           ;; See: https://github.com/nodejs/node-gyp#npm-configuration
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out")))
-               (with-output-to-file
-                   ;; Use the config file "primarily for distribution
-                   ;; maintainers" rather than "{prefix}/etc/npmrc",
-                   ;; especially because node-build-system uses --prefix
-                   ;; to install things to their store paths:
-                   (string-append out "/lib/node_modules/npm/npmrc")
-                 (lambda ()
-                   ;; Tell npm (mostly node-gyp) where to find our
-                   ;; installed headers so it doesn't try to
-                   ;; download them from the internet:
-                   (format #t "nodedir=~a\n" out)))))))))
-    (native-inputs
-     ;; Runtime dependencies for binaries used as a bootstrap.
-     (list c-ares-for-node-bootstrap
-           http-parser
-           libuv-for-node
-           `(,nghttp2-for-node-bootstrap "lib")
-           openssl-1.1
-           zlib
-           ;; Regular build-time dependencies.
-           gcc-11 ; GCC > 11 produces a broken binary
-           perl
-           pkg-config
-           procps
-           python-2
-           util-linux))
-    (native-search-paths
-     (list (search-path-specification
-            (variable "NODE_PATH")
-            (files '("lib/node_modules")))))
-    (inputs
-     (list bash-minimal
-           coreutils
-           c-ares-for-node-bootstrap
-           http-parser
-           libuv-for-node
-           `(,nghttp2-for-node-bootstrap "lib")
-           openssl
-           zlib))
-    (synopsis "Evented I/O for V8 JavaScript")
-    (description
-     "Node.js is a platform built on Chrome's JavaScript runtime
-for easily building fast, scalable network applications.  Node.js uses an
-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.")
-    (supported-systems (fold delete %supported-systems
-                             '("powerpc-linux" "riscv64-linux")))
-    (home-page "https://nodejs.org/";)
-    (license license:expat)
-    (properties '((max-silent-time . 7200)   ;2h, needed on ARM
-                  (timeout . 21600)          ;6h
-                  (cpe-name . "node.js")
-                  (hidden? . #t)))))
-
 ;; Stripped-down build phases for JS packages.  Uses esbuild + NODE_PATH 
instead
 ;; of npm, so editing node-build-system does not rebuild node-lts.  Set the
 ;; ENTRYPOINT environment variable before the build phase to override the entry

Reply via email to