Subject: emacs-ggtags relies on GNU Global in path

From: Tim Gesthuizen <[email-masked]>
Date: Fri, 4 Jan 2019 23:36:38 +0100

Hi,
emacs-ggtags relies on GNU Global binaries to be available in the path.
The attached patch lets it search the binaries in the store item of GNU
Global.

Tim.
From 86881737428991cc905e41b635b81025a1068254 Mon Sep 17 00:00:00 2001
From: Tim Gesthuizen <[email-masked]>
Date: Tue, 25 Dec 2018 11:22:19 +0100
Subject: [PATCH] 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
---
 gnu/packages/emacs.scm | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 7fdcfb1a3..3d7ab6b33 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1438,6 +1438,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
-- 
2.20.1