GNU bug report logs - #78235
30.1; Inconsistency in imap authenticator keyword

Previous Next

Package: emacs;

Reported by: Anush V <j <at> gnu.org>

Date: Sun, 4 May 2025 05:42:02 UTC

Severity: normal

Found in version 30.1

Done: Eli Zaretskii <eliz <at> gnu.org>

To reply to this bug, email your comments to 78235 AT debbugs.gnu.org.
There is no need to reopen the bug first.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#78235; Package emacs. (Sun, 04 May 2025 05:42:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Anush V <j <at> gnu.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 04 May 2025 05:42:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Anush V <j <at> gnu.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.1; Inconsistency in imap authenticator keyword
Date: Sun, 04 May 2025 01:40:15 -0400
Hello Emacs Maintainers,


1.
;; emacs --no-init

This configuration works as expected.

    (require 'mail-source)
    (add-to-list 'mail-sources '(imap :server "mail.mycorp.com"
                                      :authentication login))

This configuration works as expected but gives a warning.

    (require 'mail-source)
    (setopt mail-sources '((imap :server "mail.mycorp.com"
                                 :authentication login)))

Warning

     ■  Warning (emacs): Value ‘((imap :server "mail.mycorp.com" :authentication login))’ does not match type (choice (const :tag None nil) (repeat :tag List (choice :format %[Value Menu%] %v :value (file) (list :tag Group parameter `mail-source' (const :format  group)) (cons :tag Spool file (const :format  file) (checklist :tag Options :greedy t (group :inline t (const :format  :value :path) file))) (cons :tag Several files in a directory (const :format  directory) (checklist :tag Options :greedy t (group :inline t (const :format  :value :path) (directory :tag Path)) (group :inline t (const :format  :value :suffix) (string :tag Suffix)) (group :inline t (const :format  :value :predicate) (function :tag Predicate)) (group :inline t (const :format  :value :prescript) (choice :tag Prescript :value nil (string :format %v) (function :format %v))) (group :inline t (const :format  :value :postscript) (choice :tag Postscript :value nil (string :format %v) (function :format %v))) (group :inline t (const :format  :value :plugged) (boolean :tag Plugged)))) (cons :tag POP3 server (const :format  pop) (checklist :tag Options :greedy t (group :inline t (const :format  :value :server) (string :tag Server)) (group :inline t (const :format  :value :port) (choice :tag Port :value pop3 (integer :format %v) (string :format %v))) (group :inline t (const :format  :value :user) (string :tag User)) (group :inline t (const :format  :value :password) (string :tag Password)) (group :inline t (const :format  :value :program) (string :tag Program)) (group :inline t (const :format  :value :prescript) (choice :tag Prescript :value nil (string :format %v) (function :format %v) (const :tag None nil))) (group :inline t (const :format  :value :postscript) (choice :tag Postscript :value nil (string :format %v) (function :format %v) (const :tag None nil))) (group :inline t (const :format  :value :function) (function :tag Function)) (group :inline t (const :format  :value :authentication) (choice :tag Authentication :value apop (const password) (const apop))) (group :inline t (const :format  :value :plugged) (boolean :tag Plugged)) (group :inline t (const :format  :value :stream) (choice :tag Stream :value nil (const :tag Clear nil) (const starttls) (const :tag SSL/TLS ssl))) (group :inline t (const :format  :value :leave) (choice :format %{Leave mail on server%}:
    		%[Value Menu%] %v :value nil (const :tag Don't leave mails nil) (const :tag Leave all mails t) (number :tag Leave mails for this many days :value 14))))) (cons :tag Maildir (qmail, postfix...) (const :format  maildir) (checklist :tag Options :greedy t (group :inline t (const :format  :value :path) (directory :tag Path)) (group :inline t (const :format  :value :plugged) (boolean :tag Plugged)))) (cons :tag IMAP server (const :format  imap) (checklist :tag Options :greedy t (group :inline t (const :format  :value :server) (string :tag Server)) (group :inline t (const :format  :value :port) (choice :tag Port :value 143 integer string)) (group :inline t (const :format  :value :user) (string :tag User)) (group :inline t (const :format  :value :password) (string :tag Password)) (group :inline t (const :format  :value :stream) (choice :tag Stream :value network (const gssapi) (const kerberos4) (const tls) (const ssl) (const network) (const shell) (const starttls))) (group :inline t (const :format  :value :program) (string :tag Program)) (group :inline t (const :format  :value :authenticator) (choice :tag Authenticator :value login (const gssapi) (const kerberos4) (const sasl) (const cram-md5) (const login) (const anonymous) (const digest-md5))) (group :inline t (const :format  :value :mailbox) (string :tag Mailbox :value INBOX)) (group :inline t (const :format  :value :predicate) (string :tag Predicate :value UNSEEN UNDELETED)) (group :inline t (const :format  :value :fetchflag) (string :tag Fetchflag :value \Deleted)) (group :inline t (const :format  :value :dontexpunge) (boolean :tag Dontexpunge)) (group :inline t (const :format  :value :plugged) (boolean :tag Plugged)))))))


Expected Behavior: There should be no warning, since the second code
snippet is functionally doing the same thing as first code snippet


2.
According to info manual, gnus#Mail Source Specifiers, authenticator for imap is
specified using the keyword :authentication.  And same is reflected in
the value of the variable mail-source-keyword-map

But the defcustom for mail-sources in mail-source.el uses the
keyboard :authenticator instead.

I’m suspecting that these two issues are related but i’m not 100% sure

Thank you for your time!

* * *

In GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.43,
cairo version 1.18.2)
System Description: Guix System

Configured using:
 'configure
 CONFIG_SHELL=/gnu/store/m0xdsa8cfq6mq1kxgxmpmpg71la4f0b9-bash-minimal-5.1.16/bin/bash
 SHELL=/gnu/store/m0xdsa8cfq6mq1kxgxmpmpg71la4f0b9-bash-minimal-5.1.16/bin/bash --prefix=/gnu/store/lq0nwm8qkj9cmyjm85z3dcqrjnglhcym-emacs-next-pgtk-30.1-rc1-2.7144e84 --enable-fast-install --with-pgtk --with-cairo --with-modules --with-native-compilation=aot --disable-build-details'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP
NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS
TIFF TOOLKIT_SCROLL_BARS TREE_SITTER XIM GTK3 ZLIB


--
Regards,
Anush




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sun, 04 May 2025 06:50:02 GMT) Full text and rfc822 format available.

Notification sent to Anush V <j <at> gnu.org>:
bug acknowledged by developer. (Sun, 04 May 2025 06:50:02 GMT) Full text and rfc822 format available.

Message #10 received at 78235-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Anush V <j <at> gnu.org>
Cc: 78235-done <at> debbugs.gnu.org
Subject: Re: bug#78235: 30.1; Inconsistency in imap authenticator keyword
Date: Sun, 04 May 2025 09:48:49 +0300
> From: Anush V <j <at> gnu.org>
> Date: Sun, 04 May 2025 01:40:15 -0400
> 
> 1.
> ;; emacs --no-init
> 
> This configuration works as expected.
> 
>     (require 'mail-source)
>     (add-to-list 'mail-sources '(imap :server "mail.mycorp.com"
>                                       :authentication login))
> 
> This configuration works as expected but gives a warning.
> 
>     (require 'mail-source)
>     (setopt mail-sources '((imap :server "mail.mycorp.com"
>                                  :authentication login)))
> 
> Warning
> 
>      ■  Warning (emacs): Value ‘((imap :server "mail.mycorp.com" :authentication login))’ does not match type (choice (const :tag None nil) (repeat :tag List (choice :format %[Value Menu%] %v :value (file) (list :tag Group parameter `mail-source' (const :format  group)) (cons :tag Spool file (const :format  file) (checklist :tag Options :greedy t (group :inline t (const :format  :value :path) file))) (cons :tag Several files in a directory (const :format  directory) (checklist :tag Options :greedy t (group :inline t (const :format  :value :path) (directory :tag Path)) (group :inline t (const :format  :value :suffix) (string :tag Suffix)) (group :inline t (const :format  :value :predicate) (function :tag Predicate)) (group :inline t (const :format  :value :prescript) (choice :tag Prescript :value nil (string :format %v) (function :format %v))) (group :inline t (const :format  :value :postscript) (choice :tag Postscript :value nil (string :format %v) (function :format %v))) (group :inline t (const :format  :value :plugged) (boolean :tag Plugged)))) (cons :tag POP3 server (const :format  pop) (checklist :tag Options :greedy t (group :inline t (const :format  :value :server) (string :tag Server)) (group :inline t (const :format  :value :port) (choice :tag Port :value pop3 (integer :format %v) (string :format %v))) (group :inline t (const :format  :value :user) (string :tag User)) (group :inline t (const :format  :value :password) (string :tag Password)) (group :inline t (const :format  :value :program) (string :tag Program)) (group :inline t (const :format  :value :prescript) (choice :tag Prescript :value nil (string :format %v) (function :format %v) (const :tag None nil))) (group :inline t (const :format  :value :postscript) (choice :tag Postscript :value nil (string :format %v) (function :format %v) (const :tag None nil))) (group :inline t (const :format  :value :function) (function :tag Function)) (group :inline t (const :format  :value :authentication) (choice :tag Authentication :value apop (const password) (const apop))) (group :inline t (const :format  :value :plugged) (boolean :tag Plugged)) (group :inline t (const :format  :value :stream) (choice :tag Stream :value nil (const :tag Clear nil) (const starttls) (const :tag SSL/TLS ssl))) (group :inline t (const :format  :value :leave) (choice :format %{Leave mail on server%}:
>     		%[Value Menu%] %v :value nil (const :tag Don't leave mails nil) (const :tag Leave all mails t) (number :tag Leave mails for this many days :value 14))))) (cons :tag Maildir (qmail, postfix...) (const :format  maildir) (checklist :tag Options :greedy t (group :inline t (const :format  :value :path) (directory :tag Path)) (group :inline t (const :format  :value :plugged) (boolean :tag Plugged)))) (cons :tag IMAP server (const :format  imap) (checklist :tag Options :greedy t (group :inline t (const :format  :value :server) (string :tag Server)) (group :inline t (const :format  :value :port) (choice :tag Port :value 143 integer string)) (group :inline t (const :format  :value :user) (string :tag User)) (group :inline t (const :format  :value :password) (string :tag Password)) (group :inline t (const :format  :value :stream) (choice :tag Stream :value network (const gssapi) (const kerberos4) (const tls) (const ssl) (const network) (const shell) (const starttls))) (group :inline t (const :format  :value :program) (string :tag Program)) (group :inline t (const :format  :value :authenticator) (choice :tag Authenticator :value login (const gssapi) (const kerberos4) (const sasl) (const cram-md5) (const login) (const anonymous) (const digest-md5))) (group :inline t (const :format  :value :mailbox) (string :tag Mailbox :value INBOX)) (group :inline t (const :format  :value :predicate) (string :tag Predicate :value UNSEEN UNDELETED)) (group :inline t (const :format  :value :fetchflag) (string :tag Fetchflag :value \Deleted)) (group :inline t (const :format  :value :dontexpunge) (boolean :tag Dontexpunge)) (group :inline t (const :format  :value :plugged) (boolean :tag Plugged)))))))
> 
> 
> Expected Behavior: There should be no warning, since the second code
> snippet is functionally doing the same thing as first code snippet
> 
> 
> 2.
> According to info manual, gnus#Mail Source Specifiers, authenticator for imap is
> specified using the keyword :authentication.  And same is reflected in
> the value of the variable mail-source-keyword-map
> 
> But the defcustom for mail-sources in mail-source.el uses the
> keyboard :authenticator instead.
> 
> I’m suspecting that these two issues are related but i’m not 100% sure

Yes, thanks.  Now fixed on the emacs-30 branch, and closing the bug.




This bug report was last modified 10 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.