[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
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 55545@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 55545
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch