GNU bug report logs -
#59552
[PATCH] gnu: Add emacs-wakatime-mode.
Previous Next
Reported by: Hilton Chain <hako <at> ultrarare.space>
Date: Fri, 25 Nov 2022 01:17:02 UTC
Severity: normal
Tags: moreinfo, patch
Done: Cayetano Santos <csantosb <at> inventati.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 59552 in the body.
You can then email your comments to 59552 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org:
bug#59552; Package
guix-patches.
(Fri, 25 Nov 2022 01:17:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Hilton Chain <hako <at> ultrarare.space>:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org.
(Fri, 25 Nov 2022 01:17:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/emacs-xyz.scm (emacs-wakatime-mode): New variable.
---
gnu/packages/emacs-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index e941064d07..a6002efa51 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -34160,6 +34160,36 @@ (define-public emacs-semi-epg
EasyPG and latest Emacs.")
(license license:gpl2+))))
+(define-public emacs-wakatime-mode
+ ;; No release since May 5, 2015.
+ (let ((version "1.0.2") ;32a0154cd4bbd525d354997e6b12c6a9726d0b43, not tagged
+ (revision "55")
+ (commit "ef923829912c3854d230834f81083814b7c9d992"))
+ (package
+ (name "emacs-wakatime-mode")
+ (version (git-version version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wakatime/wakatime-mode")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0m29817s2din4n42pflvzg2538i91s0n06y78pf8q94qf0mfspcl"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ ;; XXX: WakaTime hasn't packaged in Guix yet.
+ (delete 'patch-el-files))))
+ (home-page "https://wakatime.com/emacs")
+ (synopsis "Automatic time tracking extension for Emacs using WakaTime")
+ (description
+ "@code{wakatime-mode} is an Emacs plugin for automatic time tracking
+and metrics generated from your programming activity.")
+ (license license:gpl3+))))
+
(define-public emacs-wanderlust
;; No release since Jan 15, 2010.
;; FIXME: Building with emacs-next-pgtk would yield a void variable related
base-commit: 5eb2995c006283fc0b649f10a6d002580ccac8d6
--
2.38.1
Information forwarded
to
guix-patches <at> gnu.org:
bug#59552; Package
guix-patches.
(Sat, 26 Nov 2022 10:23:02 GMT)
Full text and
rfc822 format available.
Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
Hello,
Hilton Chain via Guix-patches via <guix-patches <at> gnu.org> writes:
> * gnu/packages/emacs-xyz.scm (emacs-wakatime-mode): New variable.
Thank you.
> +(define-public emacs-wakatime-mode
> + ;; No release since May 5, 2015.
> + (let ((version "1.0.2") ;32a0154cd4bbd525d354997e6b12c6a9726d0b43, not tagged
> + (revision "55")
> + (commit "ef923829912c3854d230834f81083814b7c9d992"))
You can insert "1.0.2" directly in `version' field below instead of
binding it beforehand.
> + (package
> + (name "emacs-wakatime-mode")
> + (version (git-version version revision commit))
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/wakatime/wakatime-mode")
> + (commit commit)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "0m29817s2din4n42pflvzg2538i91s0n06y78pf8q94qf0mfspcl"))))
> + (build-system emacs-build-system)
> + (arguments
> + (list #:phases
> + #~(modify-phases %standard-phases
> + ;; XXX: WakaTime hasn't packaged in Guix yet.
> + (delete 'patch-el-files))))
Wouldn't it make sense to package WakaTime first, then?
Could you also run tests?
> + (home-page "https://wakatime.com/emacs")
> + (synopsis "Automatic time tracking extension for Emacs using WakaTime")
> + (description
> + "@code{wakatime-mode} is an Emacs plugin for automatic time tracking
> +and metrics generated from your programming activity.")
WakaTime mode is an Emacs minor mode for automatic...
Regards,
--
Nicolas Goaziou
Information forwarded
to
guix-patches <at> gnu.org:
bug#59552; Package
guix-patches.
(Sat, 26 Nov 2022 10:23:02 GMT)
Full text and
rfc822 format available.
Added tag(s) moreinfo.
Request was from
Christopher Baines <mail <at> cbaines.net>
to
control <at> debbugs.gnu.org.
(Mon, 28 Nov 2022 09:03:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
andrew <at> trop.in, liliana.prikler <at> gmail.com, guix-patches <at> gnu.org:
bug#59552; Package
guix-patches.
(Sat, 15 Jul 2023 15:05:01 GMT)
Full text and
rfc822 format available.
Message #16 received at 59552 <at> debbugs.gnu.org (full text, mbox):
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
Information forwarded
to
andrew <at> trop.in, liliana.prikler <at> gmail.com, guix-patches <at> gnu.org:
bug#59552; Package
guix-patches.
(Sat, 15 Jul 2023 15:06:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 59552 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/emacs-xyz.scm (emacs-wakatime-mode): New variable.
---
gnu/packages/emacs-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 480096fb50..84baf7ea32 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -37153,6 +37153,36 @@ (define-public emacs-mpv
process via its IPC interface.")
(license license:gpl3+))))
+(define-public emacs-wakatime-mode
+ ;; No release since May 5, 2015.
+ (let ((commit "ef923829912c3854d230834f81083814b7c9d992")
+ (revision "55"))
+ (package
+ (name "emacs-wakatime-mode")
+ ;; 1.0.2 on commit 32a0154cd4bbd525d354997e6b12c6a9726d0b43, not tagged
+ (version (git-version "1.0.2" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wakatime/wakatime-mode")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0m29817s2din4n42pflvzg2538i91s0n06y78pf8q94qf0mfspcl"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ ;; 'patch-el-files errors at "/bin/%s"
+ (delete 'patch-el-files))))
+ (home-page "https://wakatime.com/emacs")
+ (synopsis "Automatic time tracking extension for Emacs using WakaTime")
+ (description
+ "WakaTime mode is an Emacs minor mode for automatic time tracking and
+metrics generated from your programming activity.")
+ (license license:gpl3+))))
+
(define-public emacs-apel-lb
;; No release since Jun 15, 2010.
(let ((version "10.8") ;tag chise-base-0_25
--
2.41.0
Information forwarded
to
guix-patches <at> gnu.org:
bug#59552; Package
guix-patches.
(Sun, 16 Jul 2023 07:18:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 59552 <at> debbugs.gnu.org (full text, mbox):
Am Samstag, dem 15.07.2023 um 23:01 +0800 schrieb Hilton Chain:
> --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.
I think this should be
(or (executable-find program)
(cdr-safe (assoc program <some hardcoded table>))
where some hardcoded table contains stubs to fill in via
(search-input-file …)
Cheers
Information forwarded
to
guix-patches <at> gnu.org:
bug#59552; Package
guix-patches.
(Tue, 18 Jul 2023 16:36:01 GMT)
Full text and
rfc822 format available.
Message #25 received at 59552 <at> debbugs.gnu.org (full text, mbox):
On Sun, 16 Jul 2023 15:17:01 +0800,
Liliana Marie Prikler wrote:
> I think this should be
> (or (executable-find program)
> (cdr-safe (assoc program <some hardcoded table>))
> where some hardcoded table contains stubs to fill in via
> (search-input-file …)
Thank you for the suggestion!
Sorry for the incomplete information, the PROGRAM argument is actually
nonsense because `wakatime-find-binary' is not a user-facing function
and is called with a fixed value of "wakatime-cli", so it's not
appropriate to use an alist.
Other (hardcoded) values are actually handled as conditions within the
function.
I tried replacing the conditions with yours, except for the `cdr-safe'
line, which is replaced by a `locate-file', and it seems to work fine.
The new function does not contain a "/bin/[...]" so 'patch-el-files
won't handle it.
This may not be expected but I think it's enough to improve the
function itself.
I'll send a patch to upstream and send v3 later.
Thanks
Information forwarded
to
guix-patches <at> gnu.org:
bug#59552; Package
guix-patches.
(Sat, 18 May 2024 03:16:01 GMT)
Full text and
rfc822 format available.
Message #28 received at 59552 <at> debbugs.gnu.org (full text, mbox):
Hi Hilton,
Hilton Chain <hako <at> ultrarare.space> writes:
> On Sun, 16 Jul 2023 15:17:01 +0800,
> Liliana Marie Prikler wrote:
>> I think this should be
>> (or (executable-find program)
>> (cdr-safe (assoc program <some hardcoded table>))
>> where some hardcoded table contains stubs to fill in via
>> (search-input-file …)
>
> Thank you for the suggestion!
There seems to not be much missing here. Would you mind going through
past comments, attempting addressing them, and submit a v3? Hopefully
it can then be merged.
--
Thanks,
Maxim
Reply sent
to
Cayetano Santos <csantosb <at> inventati.org>:
You have taken responsibility.
(Tue, 07 Oct 2025 07:12:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Hilton Chain <hako <at> ultrarare.space>:
bug acknowledged by developer.
(Tue, 07 Oct 2025 07:12:02 GMT)
Full text and
rfc822 format available.
Message #33 received at 59552-done <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
See: https://codeberg.org/guix/guix/pulls/3374
--
Cayetano Santos
.
gpg: CCB8 1842 F9D7 058E CD67 377A BF5C DF4D F6BF 6682
key: meta.sr.ht/~csantosb.pgp
[signature.asc (application/pgp-signature, inline)]
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org.
(Tue, 04 Nov 2025 12:24:08 GMT)
Full text and
rfc822 format available.
This bug report was last modified 16 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.