diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-06-29 10:02:58 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-06-29 10:06:18 +0200 |
commit | 2de091f0c8ee143b1dd07483b3b86a31870342c0 (patch) | |
tree | 022698004ec4d6a243881387c9234f74bc3deaef | |
parent | c2c36f5fab31d7c79ea510d61cb158ee15dda310 (diff) | |
download | 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.
-rw-r--r-- | gnu/packages/node.scm | 19 |
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) |