Subject: bug#31846: closed (Re: bug#31846: 26.1; secrets.el can't create gnome keyring items/smtpmail.el can't get credentials from gnome keyring)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 16 Jun 2018 14:08:02 +0000

Your bug report

#31846: 26.1; secrets.el can't create gnome keyring items/smtpmail.el can't get credentials from gnome keyring

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
31846: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=31846
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#31846: 26.1; secrets.el can't create gnome keyring items/smtpmail.el can't get credentials from gnome keyring
From: Michael Albinus <[email-masked]>
To: Lukas Woell <[email-masked]>
Cc: [email-masked]
Date: Sat, 16 Jun 2018 16:07:30 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 26.2

Lukas Woell <[email-masked]> writes:

Hi Lukas,

>> The appended patch seems to fix the problem in the emacs-26
>> branch. Could you, pls, check whether it works for you?
>
> It does!

Thanks for the feedback. I've committed the patch to the emacs-26
branch, will appear with Emacs 26.2.

Closing the bug.

> Thanks,
> L.

Best regards, Michael.

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