[PATCH] Get ~emacs-promise~ to build in emacs 28

  • Open
  • quality assurance status badge
Details
2 participants
  • Andrew Patterson
  • Mathieu Othacehe
Owner
unassigned
Submitted by
Andrew Patterson
Severity
normal
A
A
Andrew Patterson wrote on 20 May 2022 21:55
(address . guix-patches@gnu.org)
87fsl4x9hy.fsf@gmail.com
From 0df304239efa6dc480e87d2ad833195d15011053 Mon Sep 17 00:00:00 2001
From: Andrew Patterson <andrewpatt7@gmail.com>
Date: Fri, 20 May 2022 15:06:07 -0400
Subject: [PATCH] Get ~emacs-promise~ to build in emacs 28

Emacs 28 added a third required argument to ~define-obsolete-function-alias~
and friends. Upstream has removed the aliases, but hasn't released a new version.
---
gnu/packages/emacs-xyz.scm | 33 ++++++++++++++++++++++-----------
1 file changed, 22 insertions(+), 11 deletions(-)

Toggle diff (58 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index ae81f4e395..ca4dec7795 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -30347,19 +30347,29 @@ (define-public emacs-promise
(package
(name "emacs-promise")
(version "1.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/chuntaro/emacs-promise")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/chuntaro/emacs-promise")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
(build-system emacs-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch-obsolete
+ (lambda* _
+ (substitute* "promise.el"
+ (("\\(define-obsolete-function-alias (.*) (.*)\\)" _
+ obsolete cur) (format #f
+ "(define-obsolete-function-alias ~a ~a ~a)"
+ obsolete cur "\"2020-01-10\""))))))))
(home-page "https://github.com/chuntaro/emacs-promise")
(synopsis "Promises/A+ for Emacs")
- (description "This is a simple implementation of Promises/A+.
+ (description
+ "This is a simple implementation of Promises/A+.
This implementation ports the following Promises/A+ features
faithfully. See @url{https://github.com/then/promise}.
@@ -30371,7 +30381,8 @@ (define-public emacs-promise
@item It supports \"thenable\".
@item It supports \"Inheritance of Promise\".
@item It supports \"rejection-tracking\".
-@end itemize\n")
+@end itemize
+")
(license license:gpl3+)))
(define-public emacs-async-await

base-commit: 598f7289db9955584457ffc11c8504f3938a1618
--
2.36.1
--
Andrew Patterson

John H. Cochrane is a professor of economics at Chicago, which is
like being a professor of economics but more so.
M
M
Mathieu Othacehe wrote on 5 Jun 2022 21:14
(name . Andrew Patterson)(address . andrewpatt7@gmail.com)(address . 55545@debbugs.gnu.org)
87tu8yncrl.fsf@gnu.org
Hello Andrew,

Toggle quote (19 lines)
> - (source
> - (origin
> - (method git-fetch)
> - (uri (git-reference
> - (url "https://github.com/chuntaro/emacs-promise")
> - (commit version)))
> - (file-name (git-file-name name version))
> - (sha256
> - (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/chuntaro/emacs-promise")
> + (commit version)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))

This change is not related to the build fix, it shouldn't be part of
this commit.

Toggle quote (11 lines)
> (build-system emacs-build-system)
> + (arguments
> + `(#:phases (modify-phases %standard-phases
> + (add-after 'unpack 'patch-obsolete
> + (lambda* _
> + (substitute* "promise.el"
> + (("\\(define-obsolete-function-alias (.*) (.*)\\)" _
> + obsolete cur) (format #f
> + "(define-obsolete-function-alias ~a ~a ~a)"
> + obsolete cur "\"2020-01-10\""))))))))

This has been fixed upstream, so you could also update the package to
the latest commit, see how it's done in the emacs-libgit package for
instance.

Toggle quote (17 lines)
> (synopsis "Promises/A+ for Emacs")
> - (description "This is a simple implementation of Promises/A+.
> + (description
> + "This is a simple implementation of Promises/A+.
>
> This implementation ports the following Promises/A+ features
> faithfully. See @url{https://github.com/then/promise}.
> @@ -30371,7 +30381,8 @@ (define-public emacs-promise
> @item It supports \"thenable\".
> @item It supports \"Inheritance of Promise\".
> @item It supports \"rejection-tracking\".
> -@end itemize\n")
> +@end itemize
> +")
> (license license:gpl3+)))

Those changes also shouldn't be part of this patch.

Could you please send an update version?

Thanks,

Mathieu
?