Subject: Re: bug#26490: 25.1; package-buffer-info is incorrectly case-insensitive

From: Stefan Kangas <[email-masked]>
Date: Fri, 4 Oct 2019 14:48:51 +0200

Basil L. Contovounesios <[email-masked]> writes:

> Shouldn't this be (lwarn 'package ...) or similar?
> (See, for example, the call to lwarn in package-initialize.)

Indeed, thanks.  Fixed in the attached patch.

Best regards,
Stefan Kangas
From 8953215fb83b6b40a12bf7e9295c8ebf3febad75 Mon Sep 17 00:00:00 2001
From: Stefan Kangas <[email-masked]>
Date: Fri, 20 Sep 2019 19:18:03 +0200
Subject: [PATCH] Don't refuse to install packages without a "footer line"

* lisp/emacs-lisp/package.el (package-buffer-info): Don't signal an
error when the "footer line" is missing.  Warn only.  (Bug#26490)
* etc/NEWS: Announce it.
---
 etc/NEWS                   | 14 ++++++++++++++
 lisp/emacs-lisp/package.el |  9 ++++++---
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index f8322104d4..0cbbf6e693 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -942,6 +942,20 @@ it can't find the config file.
 
 ** Package
 
+*** Warn if "footer line" is missing, but still install package.
+package.el used to refuse to install a package without the so-called
+"footer line", which appears at the very end of the file:
+
+;;; FILENAME ends here
+
+package.el will now install packages without this line, but it will
+issue a warning.  To avoid this warning, packages should keep the
+"footer line".
+
+Note that versions of Emacs older than 27.1 will not only refuse to
+install packages without such a line -- they will be unable to parse
+package data.  It is therefore recommended to keep this line.
+
 *** Change of 'package-check-signature' for packages with multiple sigs
 In previous Emacsen, 't' checked that all signatures are valid.
 Now 't' only checks that at least one signature is valid and the new 'all'
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index ef0c5171de..295edc7f37 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1046,10 +1046,13 @@ package-buffer-info
   (let ((file-name (match-string-no-properties 1))
         (desc      (match-string-no-properties 2))
         (start     (line-beginning-position)))
-    ;; The terminating comment format could be extended to accept a
-    ;; generic string that is not in English.
+    ;; This warning was added in Emacs 27.1, and should be removed at
+    ;; the earliest in version 31.1.  The idea is to phase out the
+    ;; requirement for a "footer line" without unduly impacting users
+    ;; on earlier Emacs versions.  See Bug#26490 for more details.
     (unless (search-forward (concat ";;; " file-name ".el ends here"))
-      (error "Package lacks a terminating comment"))
+      (lwarn '(package package-format) :warning
+             "Package lacks a terminating comment"))
     ;; Try to include a trailing newline.
     (forward-line)
     (narrow-to-region start (point))
-- 
2.20.1