jlicht pushed a commit to branch master
in repository guix.

commit fe5d4f81be40e68b8cbb846595e6f40d6cdbca13
Author: Jelle Licht <jli...@fsfe.org>
Date:   Mon Mar 12 17:46:03 2018 +0100

    gnu: node: Use more unbundled dependencies.
    
    * gnu/packages/node.scm (node)[inputs]: Add icu4c and nghttp2.
    [native-inputs]: Add pkg-config.
    [arguments]: Add configure flags for using system libraries.
    [source]: Remove bundled dependencies.
---
 gnu/packages/node.scm | 37 +++++++++++++++++++++++++++++++------
 1 file changed, 31 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index ea98f28..976d0c0 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))
@@ -48,16 +50,36 @@
                                   "/node-v" version ".tar.gz"))
               (sha256
                (base32
-                "1mjr1rm5w26c0yb4zq6z5yv3zbvqk18lwbswhwn1sha8hapinjp8"))))
+                "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
@@ -131,6 +153,7 @@
     (native-inputs
      `(("python" ,python-2)
        ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
        ("procps" ,procps)
        ("util-linux" ,util-linux)
        ("which" ,which)))
@@ -141,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")

Reply via email to