Subject: bug#36903: 27.0.50; gnus registry vs. debbugs

From: Eric Abrahamsen <[email-masked]>
Date: Sat, 03 Aug 2019 19:10:39 -0700

Michael Heerdegen <[email-masked]> writes:

> Eric Abrahamsen <[email-masked]> writes:
>
>> Okay, so `gnus-registry-clear' should probably also run
>> `gnus-registry-unload-hook'. You're not expecting the registry to be
>> doing it's thing when you've shut down Gnus, but are using debbugs,
>> right?
>
> Yes.
>
> But I didn't say that I would not expect the registry to work with
> debbugs.  It would be good if it did - but I don't know if it's
> technically possible.

Sounds like debbugs is either too Gnus, or not Gnus enough...

>> Would you try this definition:
>>
>> (defun gnus-registry-clear ()
>>   "Clear the registry."
>>   (setq gnus-registry-db nil)
>>   (gnus-registry-unload-hook))
>
> Well, that fixes - only one error.  I still get an error from
>
>   (defalias 'gnus-user-format-function-M
>   'gnus-registry-article-marks-to-chars)

But this should have raised an error even if you hadn't started Gnus
prior to using debbugs, right?

> so I have to redefine that one, too. And even after doing this I get an
> error related to Gnorb:

I suppose the Gnorb stuff can check if the registry is initialized
before accessing it, but it all just seems a bit fragile. Debbugs has
its own summary minor mode, it seems like that could check
`gnus-alive-p' and maybe blank out some hooks if it isn't. If Gnus isn't
alive, the user's gnus.el file isn't in effect, so nearly all
customizations are inactive. Weirdly, `gnus-clear-system' makes a point
of *not* clearing `gnus-format-specs', which is what is giving you
trouble here.

Otherwise, I could try to solve the registry double-loading problem some
other way, and not clear the registry on Gnus shutdown. But it seems
like bad practice to have debbugs depend on Gnus not cleaning up after
itself.

Can't think of anything else at the moment...

Eric