summary refs log tree commit diff
path: root/gnu/packages/node.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/node.scm')
-rw-r--r--gnu/packages/node.scm67
1 files changed, 34 insertions, 33 deletions
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 982d3f905c..976d0c048a 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -31,9 +31,11 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web))
@@ -41,23 +43,43 @@
 (define-public node
   (package
     (name "node")
-    (version "9.4.0")
+    (version "9.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://nodejs.org/dist/v" version
                                   "/node-v" version ".tar.gz"))
               (sha256
                (base32
-                "0rx947ibcfpa0lf93nayfrmjls7r7svqsq87z0xmjzf8fb9361r4"))))
+                "1mjr1rm5w26c0yb4zq6z5yv3zbvqk18lwbswhwn1sha8hapinjp8"))
+              (modules '((guix build utils)))
+              (snippet
+               `(begin
+                  ;; 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
      ;; TODO: Purge the bundled copies from the source.
-     '(#:configure-flags '("--shared-openssl"
-                           "--shared-zlib"
-                           "--shared-libuv"
-                           "--shared-cares"
+     '(#:configure-flags '("--shared-cares"
                            "--shared-http-parser"
-                           "--without-snapshot")
+                           "--shared-libuv"
+                           "--shared-nghttp2"
+                           "--shared-openssl"
+                           "--shared-zlib"
+                           "--without-snapshot"
+                           "--with-intl=system-icu")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-files
@@ -77,29 +99,13 @@
                (("'/usr/bin/env'")
                 (string-append "'" (which "env") "'")))
 
-
-             ;; test-make-doc needs doc-only target, which is inhibited below
-             (for-each delete-file
-                       '("test/doctool/test-make-doc.js"))
              ;; FIXME: These tests depend on being able to install eslint.
              ;; See https://github.com/nodejs/node/issues/17098.
              (for-each delete-file
-                       '("test/parallel/test-eslint-crypto-check.js"
-                         "test/parallel/test-eslint-alphabetize-errors.js"
+                       '("test/parallel/test-eslint-alphabetize-errors.js"
                          "test/parallel/test-eslint-buffer-constructor.js"
                          "test/parallel/test-eslint-documented-errors.js"
-                         "test/parallel/test-eslint-inspector-check.js"
-                         "test/parallel/test-eslint-lowercase-name-for-primitive.js"
-                         "test/parallel/test-eslint-no-unescaped-regexp-dot.js"
-                         "test/parallel/test-eslint-no-let-in-for-declaration.js"
-                         "test/parallel/test-eslint-number-isnan.js"
-                         "test/parallel/test-eslint-prefer-assert-iferror.js"
-                         "test/parallel/test-eslint-prefer-assert-methods.js"
-                         "test/parallel/test-eslint-prefer-common-expectserror.js"
-                         "test/parallel/test-eslint-prefer-common-mustnotcall.js"
-                         "test/parallel/test-eslint-prefer-util-format-errors.js"
-                         "test/parallel/test-eslint-require-buffer.js"
-                         "test/parallel/test-eslint-required-modules.js"))
+                         "test/parallel/test-eslint-inspector-check.js"))
 
              ;; FIXME: These tests fail in the build container, but they don't
              ;; seem to be indicative of real problems in practice.
@@ -135,14 +141,6 @@
                              (string-append (assoc-ref inputs "python")
                                             "/bin/python")
                              "configure" flags)))))
-         (add-before 'check 'skip-check-doc-only
-           (lambda _
-             (substitute* "Makefile"
-               ;; requires js-yaml, which is not part of the distribution,
-               ;; and falls back to using npm to download it
-               (("\\$\\(MAKE\\) doc-only" all)
-                (string-append "#" all)))
-             #t))
          (add-after 'patch-shebangs 'patch-npm-shebang
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((bindir (string-append (assoc-ref outputs "out")
@@ -155,6 +153,7 @@
     (native-inputs
      `(("python" ,python-2)
        ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
        ("procps" ,procps)
        ("util-linux" ,util-linux)
        ("which" ,which)))
@@ -165,7 +164,9 @@
     (inputs
      `(("c-ares" ,c-ares)
        ("http-parser" ,http-parser)
+       ("icu4c" ,icu4c)
        ("libuv" ,libuv)
+       ("nghttp2" ,nghttp2 "lib")
        ("openssl" ,openssl)
        ("zlib" ,zlib)))
     (synopsis "Evented I/O for V8 JavaScript")