Subject: bug#55495: emacs-haskell-mode build fails

From: Taiju HIGASHI <[email-masked]>
Date: Wed, 18 May 2022 23:39:00 +0900

> Is a release imminent?  If not, you could apply your patch to the Guix
> package first.  Given that you've already made a pull request upstream
> there should be little in the way of pushing it here other than normal
> review work :)

It is unknown when patches submitted to upstream will be incorporated.
Therefore, I have decided to submit a patch to Guix as well.

I couldn't figure out why it wasn't a problem in the previous version,
but there was a test that would fail without the addition of git.

The error that occurs when git is not added to input is as follows:

Test haskell-generate-tags backtrace:
  call-process("git" nil (t nil) nil "--no-pager" "ls-files" "-c" "-z"
  apply(call-process "git" nil (t nil) nil ("--no-pager" "ls-files" "-
  process-file("git" nil (t nil) nil "--no-pager" "ls-files" "-c" "-z"
  apply(process-file "git" nil (t nil) nil "--no-pager" "ls-files" ("-
  vc-git--call((t nil) "ls-files" "-c" "-z" "--" ".git/Tx.hs")
  apply(vc-git--call (t nil) "ls-files" ("-c" "-z" "--" ".git/Tx.hs"))
  vc-git--out-ok("ls-files" "-c" "-z" "--" ".git/Tx.hs")
  vc-git-registered("/tmp/guix-build-emacs-haskell-mode-17.2.drv-0/sou
  (progn (load "vc-git" nil t) (vc-git-registered file))
  (if (vc-find-root file ".git") (progn (load "vc-git" nil t) (vc-git-
  vc-git-registered("/tmp/guix-build-emacs-haskell-mode-17.2.drv-0/sou
  apply(vc-git-registered "/tmp/guix-build-emacs-haskell-mode-17.2.drv
  vc-call-backend(Git registered "/tmp/guix-build-emacs-haskell-mode-1
  #f(compiled-function (b) #<bytecode 0x13d391d5f1cff585>)(Git)
  mapc(#f(compiled-function (b) #<bytecode 0x13d391d5f1cff585>) (RCS C
  vc-registered("/tmp/guix-build-emacs-haskell-mode-17.2.drv-0/sour...
  vc-backend("/tmp/guix-build-emacs-haskell-mode-17.2.drv-0/sour...")
  vc-refresh-state()
  run-hooks(find-file-hook)
  after-find-file(t t)
  find-file-noselect-1(#<buffer Tx.hs> "/tmp/guix-build-emacs-haskell-
  find-file-noselect("Tx.hs")
  (set-buffer (find-file-noselect (car entry)))
  (save-current-buffer (set-buffer (find-file-noselect (car entry))) (
  (cond ((stringp (cdr entry)) (save-current-buffer (set-buffer (find-
  (let ((entry (car --dolist-tail--))) (cond ((stringp (cdr entry)) (s
  (while --dolist-tail-- (let ((entry (car --dolist-tail--))) (cond ((
  (let ((--dolist-tail-- entries)) (while --dolist-tail-- (let ((entry
  create-directory-structure((("Tx.hs" . "should_not_see_me :: Int")))
  (let ((default-directory (file-name-as-directory (concat default-dir
  (cond ((stringp (cdr entry)) (save-current-buffer (set-buffer (find-
  (let ((entry (car --dolist-tail--))) (cond ((stringp (cdr entry)) (s
  (while --dolist-tail-- (let ((entry (car --dolist-tail--))) (cond ((
  (let ((--dolist-tail-- entries)) (while --dolist-tail-- (let ((entry
  create-directory-structure((("xxx.cabal" . "") ("T1.hs" . "i1 :: Int
  (let ((default-directory (file-name-as-directory (concat default-dir
  (unwind-protect (let ((default-directory (file-name-as-directory (co
  (let ((tmpdir (make-temp-name "haskell-mode-test-dir"))) (make-direc
  (let ((lexical-binding t)) (let ((tmpdir (make-temp-name "haskell-mo
  (closure (t) nil (let ((lexical-binding t)) (let ((tmpdir (make-temp
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name haskell-generate-tags :documentation 
  ert-run-or-rerun-test(#s(ert--stats :selector t :tests ... :test-map
  ert-run-tests(t #f(compiled-function (event-type &rest event-args) #
  ert-run-tests-batch(nil)
  ert-run-tests-batch-and-exit()
  command-line-1(("--eval" "(when (boundp 'load-prefer-newer) (setq lo
  command-line()
  normal-top-level()
Test haskell-generate-tags condition:
    (file-missing "Searching for program" "No such file or directory" "git")
   FAILED  100/435  haskell-generate-tags (0.027103 sec)

Cheers