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

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 18 May 2022 20:04:02 +0000

Your bug report

#55501: emacs-evil fails compilation by emacs-28.1, but upstream has newer commits which should compile

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
55501: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55501
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#55501] [PACTH] emacs-evil fails compilation by emacs-28.1, but upstream has newer commits which should compile
From: Liliana Marie Prikler <[email-masked]>
To: Maze <[email-masked]>, [email-masked]
Date: Wed, 18 May 2022 22:03:17 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Applied with some cosmetic changes in commit message and patch itself.

Am Donnerstag, dem 19.05.2022 um 01:25 +0800 schrieb Maze:
> 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.
For the record, this should go below the --- line.  Use git format-
patch instead of manually annotating a git diff.

> * 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(-)
YMMV but I adapted this to the actual ChangeLog format.

> 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))
Made it so that version is not inadvertently let-bound.  Expanded
comment.

Cheers

Subject: emacs-evil fails compilation by emacs-28.1, but upstream has newer commits which should compile
From: Maze <[email-masked]>
To: [email-masked]
Date: Wed, 18 May 2022 13:58:59 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

`guix install emacs-evil` has been failing since a few days.

Very probably because elisp function define-obsolete-function-alias had
a third mandatory argument added by emacs 28.

It looks like guix installs the version 1.14.0 from upstream's git but
it's quite old. Evil 1.14.0 won't guix install and it also won't byte compile
from emacs-28, using its own Makefile. Their latest commit, on the other
hand, can be byte compiled by emacs-28.

I downloaded their repo and looked at the log, it seems evil has a new
version 1.15.0 from a couple weeks ago, only they forgot to tag it in
git. Maybe it's best to use the version which is described as 1.15.0 in
the commit message... or to use their very last commit.

I can't right now no time but I might submit a patch in the other
mailing list in a few hours.