Subject: [PATCH] gnu: emacs-polymode: Add patch for native compilation.

From: Hilton Chain <[email-masked]>
Date: Fri, 26 Aug 2022 22:05:45 +0800

From 9615148440a3be38e8763bdd611568761511f0f7 Mon Sep 17 00:00:00 2001
From: Hilton Chain <[email-masked]>
Date: Fri, 26 Aug 2022 21:41:37 +0800
Subject: [PATCH] gnu: emacs-polymode: Add patch for native compilation.

* gnu/packages/emacs-xyz.scm (emacs-polymode)[source]: Add patch.
* gnu/packages/patches/emacs-polymode-fix-lexical-variable-error.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                  |  2 +
 gnu/packages/emacs-xyz.scm                    |  5 ++-
 ...-polymode-fix-lexical-variable-error.patch | 37 +++++++++++++++++++
 3 files changed, 43 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/emacs-polymode-fix-lexical-variable-error.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 26dfb6afe2..03d5f2ff15 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -51,6 +51,7 @@
 # Copyright © 2022 Remco van 't Veer <[email-masked]>
 # Copyright © 2022 Artyom V. Poptsov <[email-masked]>
 # Copyright © 2022 John Kehayias <[email-masked]>
+# Copyright © 2022 Hilton Chain <[email-masked]>
 #
 # This file is part of GNU Guix.
 #
@@ -1040,6 +1041,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/emacs-highlight-stages-add-gexp.patch	\
   %D%/packages/patches/emacs-libgit-use-system-libgit2.patch    \
   %D%/packages/patches/emacs-lispy-fix-thread-last-test.patch   \
+  %D%/packages/patches/emacs-polymode-fix-lexical-variable-error.patch  \
   %D%/packages/patches/emacs-source-date-epoch.patch		\
   %D%/packages/patches/emacs-telega-path-placeholder.patch	\
   %D%/packages/patches/emacs-telega-test-env.patch		\
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 379c5fb22c..69fa392eee 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -17308,7 +17308,10 @@ (define-public emacs-polymode
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))))
+        (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))
+       ;; Cherry-picked from upstream, remove when bumping to 0.2.3.
+       (patches
+        (search-patches "emacs-polymode-fix-lexical-variable-error.patch"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/polymode/polymode")
     (synopsis "Framework for multiple Emacs modes based on indirect buffers")
diff --git a/gnu/packages/patches/emacs-polymode-fix-lexical-variable-error.patch b/gnu/packages/patches/emacs-polymode-fix-lexical-variable-error.patch
new file mode 100644
index 0000000000..77a8452c2a
--- /dev/null
+++ b/gnu/packages/patches/emacs-polymode-fix-lexical-variable-error.patch
@@ -0,0 +1,37 @@
+From 8b83fa772a71efc9dc030c43db2cba944e4338c1 Mon Sep 17 00:00:00 2001
+From: Kien Nguyen <[email-masked]>
+Date: Wed, 19 May 2021 23:15:01 +0900
+Subject: [PATCH] Fix using of temporary lexical variable causes error in
+ native compiling
+
+---
+ polymode-core.el | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/polymode-core.el b/polymode-core.el
+index e7d40be..ef316f8 100644
+--- a/polymode-core.el
++++ b/polymode-core.el
+@@ -2088,14 +2088,14 @@ Elements of LIST can be either strings or symbols."
+                              (stringp pm--output-file)
+                              (pm--file-mod-time pm--output-file)))
+                    (imt (and omt (pm--file-mod-time pm--input-file)))
+-                   (action (if is-exporter "exporting" "weaving"))
+                    (ofile (if (and imt (time-less-p imt omt))
+                               (progn
+                                 (message "Not re-%s as input file '%s' hasn't changed"
+-                                         (file-name-nondirectory ifile) action)
++                                         (if is-exporter "exporting" "weaving")
++                                         (file-name-nondirectory ifile))
+                                 pm--output-file)
+                             (message "%s '%s' with '%s' ..."
+-                                     (capitalize action)
++                                     (if is-exporter "EXPORTING" "WEAVING")
+                                      (file-name-nondirectory ifile)
+                                      (eieio-object-name processor))
+                             (let ((fn (with-no-warnings
+
+base-commit: 44265e35161d77f6eaa09388ea2256b89bd5dcc8
+-- 
+2.37.2
+

base-commit: de2f419618b9929cf65b477568f21bc77e218b70
-- 
2.37.2