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

From: Maxim Cournoyer <[email-masked]>
Date: Thu, 12 Apr 2018 23:52:05 -0400

Hello Sohom!

Sohom Bhattacharjee <[email-masked]> writes:

[...]

> 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

I applied your changes and gave it a try. I ran in the same problem as you
did. Interestingly I didn't get the same error when ran directly from a
contained environment (with "./pre-inst-env guix environment -C
emacs-dumb-jump", then

--8<---------------cut here---------------start------------->8---
for p in $GUIX_ENVIRONMENT/share/emacs/site-lisp/guix.d/*; do e=":$p:$e"; done
export EMACSLOADPATH=$e"
--8<---------------cut here---------------end--------------->8---

There, the tests just hang after the 3rd test:

--8<---------------cut here---------------start------------->8---
$ ert-runner
Running 143 tests (2018-04-12 23:29:52-0400)

   passed    1/143  data-dir-exists-test
   passed    2/143  data-dir-proj2-exists-test
   passed    3/143  dumb-jump--result-follow-test
--8<---------------cut here---------------end--------------->8---

The tests are potentially broken or tied to a very specific
environment?. I've tried running those on my system (not in a controlled
environment) and it failed the same as in the Guix build container
(hang). Maybe you could ping upstream about it, and disable the tests
for now.

> 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

[...]

> +(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")

The "guix lint" command has a small complaint: unknown location>:
[email-masked]: synopsis should start with an upper-case
letter or digit.

> +(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"))

We've had issues with Github mutating their tarballs (these are
dynamically generated) before (breaking the hash). For this reason, I
now prefer to use git directly. I encourage others to do the same.

> +       (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

Instead of "add-after 'install 'check", use "replace 'check"
instead. There is already a check phase for the emacs-build-system
(currently the same as for the gnu-build-system, but improved in the
patch set you picked the ert-runner fix from).

> +           (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.
     ^
The above typo caused the linter to say: "<unknown
location>: [email-masked]: Texinfo markup in description is
invalid".

[...]

Thank you,

Maxim