gnu: node: Update to 6.8.0.

Remove <https://debbugs.gnu.org/23744> and
<https://debbugs.gnu.org/23723> workaround.

* gnu/packages/node.scm (node): Update to 6.8.0.
  (node)[arguments]: Disabled more tests. Remove custom 'patch-shebangs'
  phase. Manually patch npm script shebang in new 'patch-npm-shebang'
  phase.
* gnu/packages/patches/node-9077.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patches.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Al McElrath 2016-10-14 16:39:44 -07:00 committed by Ludovic Courtès
parent a8de0d1ec4
commit dd04f56a2b
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 46 additions and 19 deletions

View file

@ -25,6 +25,7 @@
#:use-module (guix derivations)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages gcc)
@ -37,14 +38,16 @@
(define-public node
(package
(name "node")
(version "6.0.0")
(version "6.8.0")
(source (origin
(method url-fetch)
(uri (string-append "http://nodejs.org/dist/v" version
"/node-v" version ".tar.gz"))
(sha256
(base32
"0cpw7ng193jgfbw2g1fd0kcglmjjkbj4xb89g00z8zz0lj0nvdbd"))))
"0lj3250hglz4w5ic4svd7wlg2r3qc49hnasvbva1v69l8yvx98m8"))
;; https://github.com/nodejs/node/pull/9077
(patches (search-patches "node-9077.patch"))))
(build-system gnu-build-system)
(arguments
;; TODO: Package http_parser and add --shared-http-parser.
@ -78,10 +81,10 @@
;; 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-dgram-membership.js"
"test/parallel/test-cluster-master-error.js"
"test/parallel/test-cluster-master-kill.js"
"test/parallel/test-npm-install.js"
"test/parallel/test-stdout-close-unref.js"
"test/sequential/test-child-process-emfile.js"))
#t))
(replace 'configure
@ -101,22 +104,15 @@
(string-append (assoc-ref inputs "python")
"/bin/python")
"configure" flags)))))
(replace 'patch-shebangs
(lambda* (#:key outputs #:allow-other-keys #:rest all)
;; Work around <http://bugs.gnu.org/23723>.
(let* ((patch (assoc-ref %standard-phases 'patch-shebangs))
(npm (string-append (assoc-ref outputs "out")
"/bin/npm"))
(add-after 'patch-shebangs 'patch-npm-shebang
(lambda* (#:key outputs #:allow-other-keys)
(let* ((bindir (string-append (assoc-ref outputs "out")
"/bin"))
(npm (string-append bindir "/npm"))
(target (readlink npm)))
(and (apply patch all)
(with-directory-excursion (dirname npm)
;; Turn NPM into a symlink to TARGET again, which 'npm'
;; relies on for the resolution of relative file names
;; in JS files.
(delete-file target)
(rename-file npm target)
(symlink target npm)
#t))))))))
(with-directory-excursion bindir
(patch-shebang target (list bindir))
#t)))))))
(native-inputs
`(("python" ,python-2)
("perl" ,perl)