Subject: bug#63260: 29.0.90; Regression installing/activating packages without autoloads

From: Robert Pluim <[email-masked]>
Date: Thu, 04 May 2023 17:15:30 +0200

>>>>> On Thu, 04 May 2023 12:15:15 +0200, Basil Contovounesios via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <[email-masked]> said:

    Bug> This change:

    Basil>   Prevent generating empty autoload files
    Basil>   dd21003878d 2023-04-30 18:42:58 +0200
    Basil>   https://git.sv.gnu.org/cgit/emacs.git/commit/?id=dd21003878d

    Basil> seems to have reintroduced the following issue:

    Basil>   https://lists.gnu.org/r/emacs-devel/2022-06/msg00563.html

    Basil> First start Emacs 29 (or 30) with a clean slate:

    Basil> $ cd "$(mktemp --directory)"
    Basil> $ export HOME="${PWD}" XDG_CONFIG_HOME="${PWD}/.config"
    Basil> $ emacs

    Basil> Then try to install the sicp package (which lacks autoloads) from MELPA:

    Basil> 0. C-x b RET
    Basil> 1. (setq package-archives '(("melpa" . "https://melpa.org/packages/")))
    Basil>    C-x C-e
    Basil> 2. M-x package-install RET sicp RET
    Basil> 3. C-h e
    Basil> 4. C-M-S-v

Only when `package-quickstart' is non-nil, right?

How about this:

diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 0919ce34448..42d47ed259c 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -4498,7 +4498,8 @@ package-quickstart-refresh
                (pfile (prin1-to-string file)))
           (insert "(let ((load-true-file-name " pfile ")\
 \(load-file-name " pfile "))\n")
-          (insert-file-contents file)
+          (when file
+            (insert-file-contents file))
           ;; Fixup the special #$ reader form and throw away comments.
           (while (re-search-forward "#\\$\\|^;\\(.*\n\\)" nil 'move)
             (unless (ppss-string-terminator (save-match-data (syntax-ppss)))

Robert
--