Subject: Re: [bug#31036] [PATCH] gnu: Add Emacs dumb-jump

From: Sohom Bhattacharjee <[email-masked]>
Date: Thu, 12 Apr 2018 12:20:09 +0530

On Wed, Apr 11, 2018 at 10:48:44AM +0530, Arun Isaac wrote:
> Sohom Bhattacharjee <[email-masked]> writes:
> 
> > I applied the said patch and build guix. Then I tried to build
> > dumb-jump. This led to the following error.
> >
> > I think that the patch worked because this error says something about
> > "noflet". (i might be wrong..)
> 
> You are getting this error because noflet is a test dependency. See
> https://github.com/jacktasia/dumb-jump/blob/master/Cask . Therefore,
> noflet (and the others mentioned in Cask) should be in native-inputs.

I am sending 2 patches. In the first one I have added the package emacs-noflet package (patch 0001) which is a test dependency for the 
emacs-dumb-jump package.

In the second patch I have made the neccesary changes to the emacs-dumb-jump package. 

Even then it is not building properly. I am getting these errors

phase `unpack' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `check'
test suite not run
phase `check' succeeded after 0.0 seconds
starting phase `install'
`/tmp/guix-build-emacs-dumb-jump-0.5.2.drv-0/dumb-jump-0.5.2/dumb-jump.el' -> 
`/gnu/store/k19qy6b8kbl59xfh6d9ji064mj6qjmbz-emacs-dumb-jump-0.5.2/share/emacs/site-lisp/guix.d/dumb-jump-0.5.2/dumb-jump.el'
phase `install' succeeded after 0.0 seconds
starting phase `check'
Searching for program: No such file or directory, /bin/sh
phase `check' failed after 0.3 seconds
builder for `/gnu/store/9qp5nygvablrjzxk3ps46rps5rmx4k38-emacs-dumb-jump-0.5.2.drv' failed with exit code 1
@ build-failed /gnu/store/9qp5nygvablrjzxk3ps46rps5rmx4k38-emacs-dumb-jump-0.5.2.drv - 1 builder for 
`/gnu/store/9qp5nygvablrjzxk3ps46rps5rmx4k38-emacs-dumb-jump-0.5.2.drv' failed with exit code 1
guix build: error: build failed: build of `/gnu/store/9qp5nygvablrjzxk3ps46rps5rmx4k38-emacs-dumb-jump-0.5.2.drv' failed

NOTE: this is after applying [0003] patch in this series. 
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31018

Thank You!! 
>From 41bce34d0bbed656f3d4bcdc65b20e8a9a6c554e Mon Sep 17 00:00:00 2001
From: Sohom Bhattacharjee <[email-masked]>
Date: Thu, 12 Apr 2018 12:11:03 +0530
Subject: [PATCH 3/3] gnu: Add emacs-noflet

* gnu/packages/emacs.scm (eamcs-noflet): New variable.
---
 gnu/packages/emacs.scm | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 69a5449e6..606614bdb 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -7578,7 +7578,28 @@ match and total match information in the mode-line in various search modes.")
 multiple programming languages that favors \"just working\" over speed or
 accuracy.  This means minimal -- and ideally zero -- configuration with
 absolutely no stored indexes (tags) or persistent background processes.  Dumb
-Jump performs best with The Silver Searcher @command{ag} or ripgrep @comand{rg} installed.
-Dumb Jump requires at least GNU Emacs 24.3.
+Jump performs best with The Silver Searcher @command{ag} or ripgrep
+@comand{rg} installed.  Dumb Jump requires at least GNU Emacs 24.3.
 ")
     (license license:gpl3+)))
+
+(define-public emacs-noflet
+  (package
+  (name "emacs-noflet")
+  (version "20141102.654")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append "https://melpa.org/packages/noflet-"
+             version ".el"))
+      (sha256
+        (base32
+          "1a1wxb9zhrhj2iv1abjqpggyh5gwg13gwyz1052dqq4fbpbrwa0y"))))
+  (build-system emacs-build-system)
+  (home-page "https://github.com/nicferrier/emacs-noflet")
+  (synopsis "locally override functions")
+  (description
+    "This let's you locally override functions, in the manner of
+@command{flet}, but with access to the original function through the symbol:
+@command{this-fn}.")
+  (license license:gpl3+)))
-- 
2.16.2

>From dfc5c83a2d192eb8352b374510ea96de86fac4eb Mon Sep 17 00:00:00 2001
From: Sohom Bhattacharjee <[email-masked]>
Date: Mon, 9 Apr 2018 20:22:53 +0530
Subject: [PATCH 2/3] gnu: Add emacs-dumb-jump

* gnu/packages/emacs.scm (emacs-dumb-jump): New variable.
---
 gnu/packages/emacs.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index e0056d862..69a5449e6 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -7539,3 +7539,46 @@ and can be consulted and modified.")
     (description "@code{anzu} provides a minor mode that displays the current
 match and total match information in the mode-line in various search modes.")
     (license license:gpl3+)))
+
+(define-public emacs-dumb-jump
+  (package
+    (name "emacs-dumb-jump")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/jacktasia/dumb-jump/archive/v"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
+    (build-system emacs-build-system)
+    (native-inputs
+     `(("ert-runner" ,ert-runner)
+       ("emacs-undercover" ,emacs-undercover)
+       ("emacs-el-mock" ,emacs-el-mock)
+       ("emacs-f" ,emacs-f)
+       ("emacs-s" ,emacs-s)
+       ("emacs-dash" ,emacs-dash)
+       ("emacs-popup" ,emacs-popup)
+       ("emacs-noflet" ,emacs-noflet)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'check
+           (lambda _
+             (zero? (system* "ert-runner")))))))
+    (home-page "https://github.com/jacktasia/dumb-jump")
+    (synopsis
+     "Jump to definition for multiple languages without configuration")
+    (description
+     "Dumb Jump is an Emacs \"jump to definition\" package with support for
+multiple programming languages that favors \"just working\" over speed or
+accuracy.  This means minimal -- and ideally zero -- configuration with
+absolutely no stored indexes (tags) or persistent background processes.  Dumb
+Jump performs best with The Silver Searcher @command{ag} or ripgrep @comand{rg} installed.
+Dumb Jump requires at least GNU Emacs 24.3.
+")
+    (license license:gpl3+)))
-- 
2.16.2