Subject: 26.1; secrets.el can't create gnome keyring items/smtpmail.el can't get credentials from gnome keyring
From: lebitso <[email-masked]>
To: [email-masked]
Date: Fri, 15 Jun 2018 12:19:49 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello List,

my initial problem was that I can't send mails from mu4e anymore, when I
try to it fails and gives the message

apply: Wrong type argument: consp, "host"

I then found out that I can send mails if I enter the the credentials
manually instead of getting them from gnome keyring as I usually do.
So I looked into it and found there's another problem with secrets.el
that i think is related.

To create items in my keyring I use

(secrets-create-item "Default keyring"  "NAME" "PASSWORD"
                         :host "HOST"
                         :user "USER"
                         :port "PORT")

I know this used to work a few weeks ago but if I try to evaluate this
or any expression with secrets-create-item and keyword arguments, now i
get the following error:

Debugger entered--Lisp error: (wrong-type-argument consp "host")
   dbus-message-internal(1 :session "org.freedesktop.secrets" 
"/org/freedesktop/secrets/collection/Default_5fkeyring" 
"org.freedesktop.Secret.Collection" "CreateItem" 
dbus-call-method-handler (:array (:dict-entry 
"org.freedesktop.Secret.Item.Label" (:variant "NAME")) (:dict-entry 
"org.freedesktop.Secret.Item.Type" (:variant 
"org.freedesktop.Secret.Generic")) (:dict-entry 
"org.freedesktop.Secret.Item.Attributes" (:variant (:array :dict-entry 
"host" "HOST" :dict-entry "user" "USER" :dict-entry "port" "PORT")))) 
(:struct :object-path "/org/freedesktop/secrets/session/s4" (:array 
:signature "y") (:array :byte 80 :byte 65 :byte 83 :byte 83 :byte 87 
:byte 79 :byte 82 :byte 68) "text/plain") nil)
   apply(dbus-message-internal 1 :session "org.freedesktop.secrets" 
"/org/freedesktop/secrets/collection/Default_5fkeyring" 
"org.freedesktop.Secret.Collection" "CreateItem" 
dbus-call-method-handler ((:array (:dict-entry 
"org.freedesktop.Secret.Item.Label" (:variant "NAME")) (:dict-entry 
"org.freedesktop.Secret.Item.Type" (:variant 
"org.freedesktop.Secret.Generic")) (:dict-entry 
"org.freedesktop.Secret.Item.Attributes" (:variant (:array :dict-entry 
"host" "HOST" :dict-entry "user" "USER" :dict-entry "port" "PORT")))) 
(:struct :object-path "/org/freedesktop/secrets/session/s4" (:array 
:signature "y") (:array :byte 80 :byte 65 :byte 83 :byte 83 :byte 87 
:byte 79 :byte 82 :byte 68) "text/plain") nil))
   dbus-call-method(:session "org.freedesktop.secrets" 
"/org/freedesktop/secrets/collection/Default_5fkeyring" 
"org.freedesktop.Secret.Collection" "CreateItem" (:array (:dict-entry 
"org.freedesktop.Secret.Item.Label" (:variant "NAME")) (:dict-entry 
"org.freedesktop.Secret.Item.Type" (:variant 
"org.freedesktop.Secret.Generic")) (:dict-entry 
"org.freedesktop.Secret.Item.Attributes" (:variant (:array :dict-entry 
"host" "HOST" :dict-entry "user" "USER" :dict-entry "port" "PORT")))) 
(:struct :object-path "/org/freedesktop/secrets/session/s4" (:array 
:signature "y") (:array :byte 80 :byte 65 :byte 83 :byte 83 :byte 87 
:byte 79 :byte 82 :byte 68) "text/plain") nil)
   secrets-create-item("Default keyring" "NAME" "PASSWORD" :host "HOST" 
:user "USER" :port "PORT")
   eval((secrets-create-item "Default keyring" "NAME" "PASSWORD" :host 
"HOST" :user "USER" :port "PORT") nil)
   elisp--eval-last-sexp(nil)
   #f(compiled-function (eval-last-sexp-arg-internal) "Evaluate sexp 
before point; print value in the echo area.\nInteractively, with a non 
`-' prefix argument, print output into\ncurrent buffer.\n\nNormally, 
this function truncates long output according to the\nvalue of the 
variables `eval-expression-print-length' 
and\n`eval-expression-print-level'.  With a prefix argument of 
zero,\nhowever, there is no such truncation.  Such a prefix 
argument\nalso causes integers to be printed in several additional 
formats\n(octal, hexadecimal, and character when the prefix argument 
is\n-1 or the integer is `eval-expression-print-maximum-character' 
or\nless).\n\nIf `eval-expression-debug-on-error' is non-nil, which is 
the default,\nthis command arranges for all errors to enter the 
debugger." (interactive "P") #<bytecode 0x273ed3>)(nil)
   #f(compiled-function (&rest _it) #<bytecode 0x364aa61>)()
   eval-sexp-fu-flash-doit-simple(#f(compiled-function (&rest _it) 
#<bytecode 0x364aa61>) #f(compiled-function (&rest args2) #<bytecode 
0x30583f5>) #f(compiled-function (&rest args2) #<bytecode 0x3058415>))
   eval-sexp-fu-flash-doit(#f(compiled-function (&rest _it) #<bytecode 
0x364aa61>) #f(compiled-function (&rest args2) #<bytecode 0x30583f5>) 
#f(compiled-function (&rest args2) #<bytecode 0x3058415>))
   esf-flash-doit(#f(compiled-function (&rest _it) #<bytecode 0x364aa61>) 
#f(compiled-function (&rest args2) #<bytecode 0x30583f5>) 
#f(compiled-function (&rest args2) #<bytecode 0x3058415>) 
#f(compiled-function (&rest args2) #<bytecode 0x3058435>))
   ad-Advice-eval-last-sexp(#f(compiled-function 
(eval-last-sexp-arg-internal) "Evaluate sexp before point; print value 
in the echo area.\nInteractively, with a non `-' prefix argument, print 
output into\ncurrent buffer.\n\nNormally, this function truncates long 
output according to the\nvalue of the variables 
`eval-expression-print-length' and\n`eval-expression-print-level'.  With 
a prefix argument of zero,\nhowever, there is no such truncation.  Such 
a prefix argument\nalso causes integers to be printed in several 
additional formats\n(octal, hexadecimal, and character when the prefix 
argument is\n-1 or the integer is 
`eval-expression-print-maximum-character' or\nless).\n\nIf 
`eval-expression-debug-on-error' is non-nil, which is the default,\nthis 
command arranges for all errors to enter the debugger." (interactive 
"P") #<bytecode 0x273ed3>) nil)
   apply(ad-Advice-eval-last-sexp #f(compiled-function 
(eval-last-sexp-arg-internal) "Evaluate sexp before point; print value 
in the echo area.\nInteractively, with a non `-' prefix argument, print 
output into\ncurrent buffer.\n\nNormally, this function truncates long 
output according to the\nvalue of the variables 
`eval-expression-print-length' and\n`eval-expression-print-level'.  With 
a prefix argument of zero,\nhowever, there is no such truncation.  Such 
a prefix argument\nalso causes integers to be printed in several 
additional formats\n(octal, hexadecimal, and character when the prefix 
argument is\n-1 or the integer is 
`eval-expression-print-maximum-character' or\nless).\n\nIf 
`eval-expression-debug-on-error' is non-nil, which is the default,\nthis 
command arranges for all errors to enter the debugger." (interactive 
"P") #<bytecode 0x273ed3>) nil)
   eval-last-sexp(nil)
   funcall-interactively(eval-last-sexp nil)
   call-interactively(eval-last-sexp)
   (save-excursion (let ((max 10)) (while (and (> max 0) 
(sp-point-in-string-or-comment)) (setq max (1- max)) (sp-up-sexp))) 
(sp-up-sexp arg) (call-interactively 'eval-last-sexp))
   (let ((evil-move-beyond-eol t)) (save-excursion (let ((max 10)) (while 
(and (> max 0) (sp-point-in-string-or-comment)) (setq max (1- max)) 
(sp-up-sexp))) (sp-up-sexp arg) (call-interactively 'eval-last-sexp)))
   spacemacs/eval-current-form-sp(1)
   funcall-interactively(spacemacs/eval-current-form-sp 1)
   call-interactively(spacemacs/eval-current-form-sp nil nil)
   command-execute(spacemacs/eval-current-form-sp)

The wrong-type-argument is always the first keyword given to
secrets-create-item.
Without keyword arguments the function works. All other
secrets-Functions seem to work as expected.

I'm on Arch Linux. Other Applications can create new items in the
keyring without a problem. The only thing that I can think of that has
changed since the last time I kno this worked is the upgrade to emacs26.
The Problem does occur in the same way with emacs -Q as it does with my
full configuration.

I've posted this on the subreddit already
(https://www.reddit.com/r/emacs/comments/8r1hnc/is_secretsel_broken/)
  and am not yet sure that this isn't some issue with my system, even 
though
I have no idea what could've caused it so I'd appreciate any feedback on
whether you can reproduce this issue.

Thanks,
L.

In GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
  of 2018-05-29 built on juergen
Windowing system distributor 'The X.Org Foundation', version 
11.0.12000000

Configured using:
  'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
  --localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-modules
  'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
  -fno-plt' CPPFLAGS=-D_FORTIFY_SOURCE=2
  LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 MODULES THREADS LIBSYSTEMD LCMS2

Important settings:
   value of $LC_MONETARY: de_DE.UTF-8
   value of $LC_NUMERIC: de_DE.UTF-8
   value of $LC_TIME: de_DE.UTF-8
   value of $LANG: en_US.UTF-8
   locale-coding-system: utf-8-unix