[bug#33981] emacs-ggtags relies on GNU Global in path

Message ID fb6c6222-67d7-3661-bf2c-683314923934@yahoo.de
State Accepted
Headers show
Series [bug#33981] emacs-ggtags relies on GNU Global in path | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

Tim Gesthuizen Jan. 4, 2019, 10:36 p.m. UTC
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.

Comments

Ludovic Courtès Jan. 9, 2019, 5:03 p.m. UTC | #1
Tim Gesthuizen <tim.gesthuizen@yahoo.de> skribis:

> From 86881737428991cc905e41b635b81025a1068254 Mon Sep 17 00:00:00 2001
> From: Tim Gesthuizen <tim.gesthuizen@yahoo.de>
> 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

Applied, thanks!

Ludo’.

Patch

From 86881737428991cc905e41b635b81025a1068254 Mon Sep 17 00:00:00 2001
From: Tim Gesthuizen <tim.gesthuizen@yahoo.de>
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