all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#31846: 26.1; secrets.el can't create gnome keyring items/smtpmail.el can't get credentials from gnome keyring
@ 2018-06-15 10:19 lebitso
  2018-06-16 10:31 ` Michael Albinus
  0 siblings, 1 reply; 4+ messages in thread
From: lebitso @ 2018-06-15 10:19 UTC (permalink / raw)
  To: 31846

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






^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#31846: 26.1; secrets.el can't create gnome keyring items/smtpmail.el can't get credentials from gnome keyring
  2018-06-15 10:19 bug#31846: 26.1; secrets.el can't create gnome keyring items/smtpmail.el can't get credentials from gnome keyring lebitso
@ 2018-06-16 10:31 ` Michael Albinus
  2018-06-16 13:00   ` Lukas Woell
  0 siblings, 1 reply; 4+ messages in thread
From: Michael Albinus @ 2018-06-16 10:31 UTC (permalink / raw)
  To: lebitso; +Cc: 31846

[-- Attachment #1: Type: text/plain, Size: 1391 bytes --]

lebitso <lebitso@posteo.net> writes:

> Hello List,

Hi,

> my initial problem was that I can't send mails from mu4e anymore, when I
> try to it fails and gives the message
>
> 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.
>
> 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 have no idea what could've caused it so I'd appreciate any feedback on
> whether you can reproduce this issue.

Confirmed, I can reproduce it with Emacs 26.

In Emacs 27.0.50, this is fixed already, by commit b3956d85c7 related to
bug#29575. Since this is part of a larger rewrite of secrets.el due to a
new feature, I cannot simply cherry-pick that commit from Emacs' master
branch to the emacs-26 branch. IIRC, the bug was uncovered while working
on the new feature, and it was fixed silently.

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

> Thanks,
> L.

Best regards, Michael.


[-- Attachment #2: Type: text/plain, Size: 1027 bytes --]

diff --git a/lisp/net/secrets.el b/lisp/net/secrets.el
index fbb0a74978..c468548316 100644
--- a/lisp/net/secrets.el
+++ b/lisp/net/secrets.el
@@ -612,9 +612,9 @@ secrets-search-items
           (error 'wrong-type-argument (cadr attributes)))
 	(setq props (append
 		     props
-		     (list :dict-entry
-			   (substring (symbol-name (car attributes)) 1)
-			   (cadr attributes)))
+		     `((:dict-entry
+			,(substring (symbol-name (car attributes)) 1)
+			,(cadr attributes))))
 	      attributes (cddr attributes)))
       ;; Search.  The result is a list of object paths.
       (setq result
@@ -650,9 +650,9 @@ secrets-create-item
             (error 'wrong-type-argument (cadr attributes)))
 	  (setq props (append
 		       props
-		       (list :dict-entry
-			     (substring (symbol-name (car attributes)) 1)
-			     (cadr attributes)))
+		       `((:dict-entry
+			  ,(substring (symbol-name (car attributes)) 1)
+			  ,(cadr attributes))))
 		attributes (cddr attributes)))
 	;; Create the item.
 	(setq result

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#31846: 26.1; secrets.el can't create gnome keyring items/smtpmail.el can't get credentials from gnome keyring
  2018-06-16 10:31 ` Michael Albinus
@ 2018-06-16 13:00   ` Lukas Woell
  2018-06-16 14:07     ` Michael Albinus
  0 siblings, 1 reply; 4+ messages in thread
From: Lukas Woell @ 2018-06-16 13:00 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 31846


Michael Albinus <michael.albinus@gmx.de> writes:

> 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,
L.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#31846: 26.1; secrets.el can't create gnome keyring items/smtpmail.el can't get credentials from gnome keyring
  2018-06-16 13:00   ` Lukas Woell
@ 2018-06-16 14:07     ` Michael Albinus
  0 siblings, 0 replies; 4+ messages in thread
From: Michael Albinus @ 2018-06-16 14:07 UTC (permalink / raw)
  To: Lukas Woell; +Cc: 31846-done

Version: 26.2

Lukas Woell <lukas.woell@posteo.de> 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.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-06-16 14:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-15 10:19 bug#31846: 26.1; secrets.el can't create gnome keyring items/smtpmail.el can't get credentials from gnome keyring lebitso
2018-06-16 10:31 ` Michael Albinus
2018-06-16 13:00   ` Lukas Woell
2018-06-16 14:07     ` Michael Albinus

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.