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
bug-gnu-emacs <at> gnu.org
:bug#78235
; Package emacs
.
(Sun, 04 May 2025 05:42:02 GMT) Full text and rfc822 format available.Anush V <j <at> gnu.org>
: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
Eli Zaretskii <eliz <at> gnu.org>
:Anush V <j <at> gnu.org>
: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.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.