Subject: bug#55501: [PACTH] emacs-evil fails compilation by emacs-28.1, but upstream has newer commits which should compile

From: Maze <[email-masked]>
Date: Thu, 19 May 2022 01:25:26 +0800

Below a patch for emacs-evil.

Since upstream declared the new version 1.15.0 in a commit message
without creating a tag, I have to git-reference to a commit. I tried to
reproduce the way it's done on other emacs extensions.

Other than this, it should be just bumping the upstream version so that
it gets byte compiled succesfully with emacs 28.

I tested that it builds and installs on a private channel local to my machine.

* gnu/packages/emacs-xyz.scm
  Bump emacs-evil to versions 1.15.0
  So that it can be built by emacs-28
 1 file changed, 33 insertions(+), 36 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c43fa5a..9423441 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -12073,41 +12073,44 @@ news items, openrc and runscripts.")
     (license license:gpl2+)))
 
 (define-public emacs-evil
-  (package
-    (name "emacs-evil")
-    (version "1.14.2")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/emacs-evil/evil")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "1mhm1hd6gzxc2vvihh1w1j8f30xp0ssqcxnp8fx22niz04fk5df8"))))
-    (arguments
-     (list
-      #:phases
-      #~(modify-phases %standard-phases
-          (add-before 'check 'fix-test-helpers
-            (lambda _
-              (substitute* "evil-test-helpers.el"
-                (("\\(undo-tree-mode 1\\)") ""))))
-          (add-before 'install 'make-info
-            (lambda _
-              (with-directory-excursion "doc/build/texinfo"
-                (invoke "makeinfo" "--no-split"
-                        "-o" "evil.info" "evil.texi")))))))
-    (build-system emacs-build-system)
-    (native-inputs (list texinfo))
-    (home-page "https://github.com/emacs-evil/evil")
-    (synopsis "Extensible Vi layer for Emacs")
-    (description
-     "Evil is an extensible vi layer for Emacs.  It emulates the
+  (let ((commit "008a6cdb12f15e748979a7d1c2f26c34c84dedbf")
+        (version "1.15.0") ; not tagged upstream, but see commit message
+        (revision "0"))
+    (package
+      (name "emacs-evil")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacs-evil/evil")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1hxhw1rsm0wbrhz85gfabncanijpxd47g5yrdnl3bbm499z1gsvg"))))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-before 'check 'fix-test-helpers
+             (lambda _
+               (substitute* "evil-test-helpers.el"
+                 (("\\(undo-tree-mode 1\\)") ""))
+               #t))
+           (add-before 'install 'make-info
+             (lambda _
+               (with-directory-excursion "doc/build/texinfo"
+                   (invoke "makeinfo" "--no-split"
+                           "-o" "evil.info" "evil.texi")))))))
+      (build-system emacs-build-system)
+      (native-inputs (list texinfo))
+      (home-page "https://github.com/emacs-evil/evil")
+      (synopsis "Extensible Vi layer for Emacs")
+      (description
+       "Evil is an extensible vi layer for Emacs.  It emulates the
 main features of Vim, and provides facilities for writing custom
 extensions.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-evil-collection
   (package