Subject: [PATCH v2 0/1] gnu: Add emacs-wakatime-mode.

From: Hilton Chain <[email-masked]>
Date: Sat, 15 Jul 2023 23:01:40 +0800

Hello Guix!

After looking through waktime-mode's source and Guix's build phases, I think
it's OK to add the package first without packaging the wakatime-cli program.

(Actually I managed to package all the dependencies of that go program locally,
but it eventually failed to build without a clear error...)

For the package definition itself, phase 'patch-el-files is still deleted
because of the following error:

--8<---------------cut here---------------start------------->8---
In guix/build/emacs-build-system.scm:
   148:13  3 (loop (#("    ((file-exists-p (format \"/bin/%s\" …" …)) …)
In ice-9/boot-9.scm:
  1685:16  2 (raise-exception _ #:continuable? _)
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
patch-el-files: unable to locate  "%s"
--8<---------------cut here---------------end--------------->8---

I added a comment before suggesting that wakatime-cli is not available, but
that was inaccurate.  The real cause is that 'patch-el-files can't handle the
following code:

--8<---------------cut here---------------start------------->8---
(defun wakatime-find-binary (program)
  "Find the full path to an executable program."
  (cond
    [...]
    ((file-exists-p (format "/bin/%s" program))
      (format "/bin/%s" program))
    [...]))
--8<---------------cut here---------------end--------------->8---

This seems to be a bug of the phase, as it shouldn't handle unformatted
"/bin/%s" at all.  And for the function finding an executable, it's
unnecessary to patch it, then I think it's fine to delete the phase.

And finally, it's wakatime-mode-test.el, the cases are so outdated that none
of them could pass...  There's no Makefile for 'check phase to run the test
either, so no need to adjust for it.

As a result, I think it's OK to add the package first without packaging the
wakatime-cli program.

Hilton Chain (1):
  gnu: Add emacs-wakatime-mode.

 gnu/packages/emacs-xyz.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

base-commit: 01412c6c6a98e4da10676560638640d0f33e1a02
--
2.41.0