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.
This commit is contained in:
Stefan Kangas 2019-11-02 01:30:36 +01:00
parent 2f42832895
commit 6297eb0fca
2 changed files with 20 additions and 3 deletions

View file

@ -1075,6 +1075,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'

View file

@ -1082,10 +1082,13 @@ boundaries."
(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))