aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/node.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-06-29 10:02:58 +0200
committerLudovic Courtès <ludo@gnu.org>2016-06-29 10:06:18 +0200
commit2de091f0c8ee143b1dd07483b3b86a31870342c0 (patch)
tree022698004ec4d6a243881387c9234f74bc3deaef /gnu/packages/node.scm
parentc2c36f5fab31d7c79ea510d61cb158ee15dda310 (diff)
downloadgnu-guix-2de091f0c8ee143b1dd07483b3b86a31870342c0.tar
gnu-guix-2de091f0c8ee143b1dd07483b3b86a31870342c0.tar.gz
gnu: node: Make sure 'npm' remains a symlink after 'patch-shebangs'.
Fixes <http://bugs.gnu.org/23744>. Reported by Jovany Leandro G.C <bit4bit@riseup.net> and Jelle Licht <jlicht@fsfe.org>. * gnu/packages/node.scm (node)[arguments]: Replace 'patch-shebangs' phase.
Diffstat (limited to 'gnu/packages/node.scm')
-rw-r--r--gnu/packages/node.scm19
1 files changed, 18 insertions, 1 deletions
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 2f269d08b1..887ef930ff 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
+;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -99,7 +100,23 @@
(zero? (apply system*
(string-append (assoc-ref inputs "python")
"/bin/python")
- "configure" flags))))))))
+ "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"))
+ (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))))))))
(native-inputs
`(("python" ,python-2)
("perl" ,perl)