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

From: Robert Pluim <[email-masked]>
Date: Sat, 6 May 2023 14:51:39 +0200

Please push if it's ok with you, I'm afk until tomorrow

Thanks

Robert

On Sat, May 6, 2023, 11:00 Eli Zaretskii <[email-masked]> wrote:

> > Cc: [email-masked], Philip Kaludercic <[email-masked]>
> > From: Robert Pluim <[email-masked]>
> > Date: Fri, 05 May 2023 08:36:51 +0200
> >
> > >>>>> On Thu, 04 May 2023 18:28:47 +0200, Basil Contovounesios <
> [email-masked]> said:
> >
> >     Basil> This does not address the file-missing error during package
> activation,
> >     Basil> but it allows a subsequent package-quickstart-refresh to
> complete
> >     Basil> (albeit with a warning in a *Compile-Log*):
> >
> > The file-missing error is expected, no? Thatʼs why the autoloads
> > loading is wrapped in `with-demoted-errors'. Although if the message
> bothers
> > you, I guess we could check `file-exists-p' for it.
> >
> >     Basil>   Compiling file
> /tmp/tmp.6cdF8paE0K/.emacs.d/package-quickstart.el
> >     Basil>                  at Thu May  4 18:24:07 2023
> >     Basil>   Entering directory ‘/tmp/tmp.6cdF8paE0K/.emacs.d/’
> >     Basil>   package-quickstart.el:4:2: Warning: Empty let body
> >
> >     Basil> due to the following generated contents of
> package-quickstart-file:
> >
> >     Basil>   (let ((load-true-file-name nil)(load-file-name nil))
> >     Basil>   )
> >
> > Iʼd claim ENOCOFFEE for the last patch, but it was not the morning :-)
> >
> > diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
> > index 0919ce34448..4b488281b78 100644
> > --- a/lisp/emacs-lisp/package.el
> > +++ b/lisp/emacs-lisp/package.el
> > @@ -4491,11 +4491,11 @@ package-quickstart-refresh
> >        (insert ";;; Quickstart file to activate all packages at startup
> -*- lexical-binding:t -*-\n")
> >        (insert ";; ¡¡ This file is autogenerated by
> `package-quickstart-refresh', DO NOT EDIT !!\n\n")
> >        (dolist (pkg package--quickstart-pkgs)
> > -        (let* ((file
> > -                ;; Prefer uncompiled files (and don't accept .so files).
> > -                (let ((load-suffixes '(".el" ".elc")))
> > -                  (locate-library (package--autoloads-file-name pkg))))
> > -               (pfile (prin1-to-string file)))
> > +        (when-let* ((file
> > +                     ;; Prefer uncompiled files (and don't accept .so
> files).
> > +                     (let ((load-suffixes '(".el" ".elc")))
> > +                       (locate-library (package--autoloads-file-name
> pkg))))
> > +                    (pfile (prin1-to-string file)))
> >            (insert "(let ((load-true-file-name " pfile ")\
> >  \(load-file-name " pfile "))\n")
> >            (insert-file-contents file)
> >
>
> Philip, Basil: is the above okay with you?  I'd like this issue
> resolved before making the next pretest of Emacs 29.1.
>
> Thanks.
>