summary refs log tree commit diff
diff options
context:
space:
mode:
authorTim Gesthuizen <tim.gesthuizen@yahoo.de>2018-12-25 11:22:19 +0100
committerLudovic Courtès <ludo@gnu.org>2019-01-09 18:47:57 +0100
commitecf7e4ea432175f3556cde6956cfda889a470471 (patch)
tree30155c4051b3c2174d88266ddad7163e0a585498
parentb2a5ef2e949986f98a2de28307bb44c7dd85adfc (diff)
downloadguix-ecf7e4ea432175f3556cde6956cfda889a470471.tar.gz
gnu: emacs-ggtags: Don't require GNU Global in path
emacs-ggtags relies on the GNU Global tools (global and gtags) to be available
in the path. This way it will grab some random executable if it will find
executables at all.
This is fixed by setting the prefix to GNU Global in the store. This way
emacs-ggtags will use specific deterministic executables.

* gnu/packages/emacs.scm (emacs-ggtags):
[inputs]: Add GNU Global to the inputs
[arguments]: Add a phase for substituting the right path to the executables

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/emacs.scm12
1 files changed, 12 insertions, 0 deletions
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index f3f2440cc1..34b30862fb 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1435,6 +1435,18 @@ environment set through Direnv.")
         (base32
          "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
     (build-system emacs-build-system)
+    (inputs
+     `(("global" ,global)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure
+           (lambda* (#:key inputs #:allow-other-keys)
+             (chmod "ggtags.el" #o644)
+             (emacs-substitute-variables "ggtags.el"
+               ("ggtags-executable-directory"
+                (string-append (assoc-ref inputs "global") "/bin")))
+             #t)))))
     (home-page "https://github.com/leoliu/ggtags")
     (synopsis "Frontend to the GNU Global source code tagging system")
     (description "@code{ggtags} provides a frontend to the GNU Global source