[bug#33982] emacs-irony-mode: Don't require propagated inputs

Message ID 53ff84d5-070a-f0d6-dc2b-26f9443159e3@yahoo.de
State Accepted
Headers show
Series [bug#33982] emacs-irony-mode: Don't require propagated inputs | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

Tim Gesthuizen Jan. 4, 2019, 10:46 p.m. UTC
Hi,
emacs-irony-mode needs emacs-irony-mode-server as a propagated input at
the moment.
This can be avoided with the attached patch.

Tim.

Comments

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

> emacs-irony-mode needs emacs-irony-mode-server as a propagated input at
> the moment.
> This can be avoided with the attached patch.

Good idea.

>>From 528e0ebf36c07960776e8070584dce09088328d7 Mon Sep 17 00:00:00 2001
> From: Tim Gesthuizen <tim.gesthuizen@yahoo.de>
> Date: Mon, 24 Dec 2018 14:46:27 +0100
> Subject: [PATCH] gnu: emacs-irony-mode: Remove propagated input
>
> emacs-irony-mode finds its server binary because its a propagated input and is
> in the path. We can substitute the variable `irony-server-install-prefix` to
> not propagate the input and keep the binary isolated from the user.
>
> * gnu/packages/emacs.scm (emacs-irony-mode):
> [propagated-inputs] Remove propagated inputs
> [inputs] Add emacs-irony-mode-server
> [arguments] Add phase substituting the variable of the server path

Applied, thanks!

Ludo’.

Patch

From 528e0ebf36c07960776e8070584dce09088328d7 Mon Sep 17 00:00:00 2001
From: Tim Gesthuizen <tim.gesthuizen@yahoo.de>
Date: Mon, 24 Dec 2018 14:46:27 +0100
Subject: [PATCH] gnu: emacs-irony-mode: Remove propagated input

emacs-irony-mode finds its server binary because its a propagated input and is
in the path. We can substitute the variable `irony-server-install-prefix` to
not propagate the input and keep the binary isolated from the user.

* gnu/packages/emacs.scm (emacs-irony-mode):
[propagated-inputs] Remove propagated inputs
[inputs] Add emacs-irony-mode-server
[arguments] Add phase substituting the variable of the server path
---
 gnu/packages/emacs.scm | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 7fdcfb1a3..df4e676c0 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -2831,9 +2831,16 @@  These are distributed in separate files and can be used individually.")
                 "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))
               (file-name (string-append name "-" version ".tar.gz"))))
     (build-system emacs-build-system)
-    (arguments '())
-    (propagated-inputs
-     `(("emacs-irony-mode-server" ,emacs-irony-mode-server)))
+    (inputs `(("server" ,emacs-irony-mode-server)))
+    (arguments `(#:phases
+                 (modify-phases %standard-phases
+                   (add-after 'unpack 'configure
+                        (lambda* (#:key inputs #:allow-other-keys)
+                          (chmod "irony.el" #o644)
+                          (emacs-substitute-variables "irony.el"
+                            ("irony-server-install-prefix"
+                             (assoc-ref inputs "server")))
+                          #t)))))
     (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
     (description "Irony-mode provides Clang-assisted syntax checking and
 completion for C, C++, and ObjC in GNU Emacs.  Using @code{libclang} it can
@@ -2848,7 +2855,6 @@  described on the homepage.")
     (name "emacs-irony-mode-server")
     (inputs
      `(("clang" ,clang)))
-    (propagated-inputs '())
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-- 
2.20.1