Subject: Re: bug#35801: 27.0.50; [w32] Corrupt ~/.emacs.d/elpa/gnupg/ causes Emacs startup failure with gnu-elpa-keyring-update installed (was Re: Investigating Emacs startup failure)

From: Richard Copley <[email-masked]>
Date: Wed, 22 May 2019 08:51:40 +0100

On Wed, 22 May 2019 at 07:42, Eli Zaretskii <[email-masked]> wrote:

> > From: Richard Copley <[email-masked]>
> > Date: Sun, 19 May 2019 20:28:14 +0100
> >
> > I got my Emacs into a state where it failed to start. I asked about it
> on help-gnu-emacs[1]. I fixed my Emacs,
> > but didn't get to the bottom of the problem. Stefan asked me to make it
> a bug report: "such a corrupt directory
> > shouldn't prevent use of Emacs".
> >
> > After installing "gnu-elpa-keyring-update-2019.3" from GNU ELPA, my
> Emacs stopped working: when invoked
> > as "emacs" from the command line, it printed a message, then exited with
> status -1 without displaying a
> > frame. The message was:
> >
> > GPG error: "no usable configuration", OpenPGP
> >
> > Emacs started normally when invoked as "emacs -Q". Having done that, I
> could load my init file with M-x
> > load-file, and then everything looked normal and there were no messages
> or errors.
> >
> > I uninstalled all packages (the problem went away) and reinstalled them
> one-by-one. The problem came back
> > after installing "gnu-elpa-keyring-update-2019.3".
> >
> > I tried renaming .emacs.d/ to reproduce the problem, but could not. On a
> hunch I deleted the gnupg/ directory
> > in ~/.emacs.d/elpa before reinstalling the
> "gnu-elpa-keyring-update-2019.3" package. This fixed the problem,
> > but also destroyed my means of reproducing it.
>
> What would you suggest we do to make some progress with this bug
> report?
>
> Thanks.
>

If the the bug is that errors during package quickstart prevent Emacs from
starting and can't easily be debugged, then it's easy to come up with a
recipe.
Customize and save package-enable-at-startup and package-quickstart to t,
run package-quickstart-refresh, edit package-quickstart.el and insert
(error "test"), then invoke emacs. It should echo "test" and exit with
status -1.
I hope that helps.
Thanks.