Subject: bug#65447: 30.0.50; Gnus: No such function: nnfolder-server-opened

From: Eric Abrahamsen <[email-masked]>
Date: Tue, 22 Aug 2023 21:18:08 -0700

Gerd Möllmann <[email-masked]> writes:

> Eric Abrahamsen <[email-masked]> writes:
>
>> Eli Zaretskii <[email-masked]> writes:
>>
>>>> From: Gerd Möllmann <[email-masked]>
>>>> Date: Tue, 22 Aug 2023 09:29:39 +0200
>>>> 
>>>> Gerd Möllmann <[email-masked]> writes:
>>>> 
>>>> > I get the following error when starting Gnus with M-x gnus.
>>>> >
>>>> >   No such function: nnfolder-server-opened
>>>> >
>>>> > The function nnfolder-server-opened is indeed defined nowhere I can
>>>> > find.  In case it matters, I had a Gnus autosave file.  After M-x gnus,
>>>> > I answered 'n' to the question if the autosave file should be used.
>>>> > After that, the error is signaled.
>>
>> This is almost certainly the source of the problem. Your .newsrc.eld
>> file should have entries for groups looking like:
>>
>> ("nnfolder+archive:sent.2022-02" 3 ((1 . 1)) ((unexist) (seen 1))
>>  (nnfolder
>>   "archive" (nnfolder-directory "~/.mail/archive")
>>   (nnfolder-active-file "~/.mail/archive/active")
>>   (nnfolder-get-new-mail nil)
>>   (nnfolder-inhibit-expiry t)))
>>
>> Long story short, at Gnus startup time the `nnfolder' symbol at the head
>> of the method list will get turned into a `require' call for the
>> appropriate library, so the nnfolder functions should be available early
>> on.
>
> My .newsrc.eld contains, among other stuff
>
> (setq gnus-server-alist
>       '(("archive" nnfolder "archive"
> 	 (nnfolder-directory "~/Mail/archive")
> 	 (nnfolder-active-file "~/Mail/archive/active")
> 	 (nnfolder-get-new-mail nil)
> 	 (nnfolder-inhibit-expiry t))))
>
> (setq gnus-topic-topology '(("Gnus" visible) (("misc" visible))))
>
> (setq gnus-topic-alist
>       '(("misc"
> 	 "INBOX"
> 	 "Emacs"
> 	 "[Google Mail]/Entw\303\274rfe"
> 	 "[Google Mail]/Markiert"
> 	 "nndraft:drafts"
> 	 "[Google Mail]/Alle Nachrichten"
> 	 "[Google Mail]/Gesendet"
> 	 "[Google Mail]/Papierkorb"
> 	 "[Google Mail]/Spam"
> 	 "[Google Mail]/Wichtig"
> 	 "Notes" "[Gmail]/Drafts"
> 	 "Emacs/Emacs"
> 	 "nnfolder+archive:sent.2022-06")
> 	("Gnus")))
>
> Above these, there's also a (setq gnus-newsrc-alist '(...)) with a large
> list containomg references to nnfolder, e.g. (nnfolder-inhibit-expiry
> t), but since that list is quoted...

Yes, it's `gnus-newsrc-alist' that will contain group definitions,
including seven (it looks like) for your archive groups, each one with
an identical method definition looking like:

(nnfolder "archive"
	  (nnfolder-directory "~/Mail/archive")
	  (nnfolder-active-file "~/Mail/archive/active")
	  (nnfolder-get-new-mail nil)
	  (nnfolder-inhibit-expiry t))

I know the file is a bit eye-watering to look at, but try to confirm
that you have seven archive groups in there, and each one ends with the
form above.

It's pretty weird that you're seeing this with your archive server,
because that one gets special treatment. Take a close look at the file
first, and maybe we can try something else.

Eric