Unverified Commit f418dd04 authored by Lin Jian's avatar Lin Jian Committed by GitHub
Browse files

emacs30: add a patch to fix upstream bug 67916 (#367296)

parents 322ce1ca 18983078
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
From: Lin Jian <me@linj.tech>
Bug: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67916

Inhibit lexical cookie warning for *-pkg.el files (bug#67916)

Users may use byte-compile-error-on-warn to turn compilation warnings
into errors to make sure their Emacs lisp packages are warning-free.
Emacs bug 67916 makes that difficult because the Emacs-generated file
*-pkg.el emits a compilation warning about missing lexical cookie.

There is an upstream patch to fix this.  That patch makes Emacs also
generate the needed lexical cookie when generating *-pkg.el files.
However, that patch has stalled.

This patch takes an easier but less accurate approach by inhibiting
lexical cookie warning for *-pkg.el files.  Given that not all
*-pkg.el files are generated by Emacs, to reduce impact, this patch
also checks no-byte-compile.

--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2266,6 +2266,8 @@ See also `emacs-lisp-byte-compile-and-load'."
               filename buffer-file-name))
       ;; Don't inherit lexical-binding from caller (bug#12938).
       (unless (or (local-variable-p 'lexical-binding)
+                  (and (string-suffix-p "-pkg.el" filename)
+                       (with-current-buffer input-buffer no-byte-compile))
                   bytecomp--inhibit-lexical-cookie-warning)
         (let ((byte-compile-current-buffer (current-buffer)))
           (displaying-byte-compile-warnings
+6 −0
Original line number Diff line number Diff line
@@ -150,6 +150,12 @@ in
    variant = "mainline";
    rev = "30.0.93";
    hash = "sha256-lcpB4lKD3tjvCn646hUyAskxWNCQwEJ0RX/ZddRBRRU=";
    patches = fetchpatch: [
      (builtins.path {
        name = "inhibit-lexical-cookie-warning-67916.patch";
        path = ./inhibit-lexical-cookie-warning-67916-30.patch;
      })
    ];
  });

  emacs28-macport = import ./make-emacs.nix (mkArgs {