Re: [systemd-devel] Sync mail with offlineimap via systemd service/timer; getting password from gnome keyring

2016-06-20 Thread Simon McVittie
On 16/06/16 12:01, Ruben Verweij wrote:
> However, I am storing my password via the gnome-keyring and retrieving
> it via `secret-tool lookup user [user] domain gmail.com
> `.
...
> I already found out that the problem might lie in the dbus
> communication, but I'm not sure how to fix it. Can anyone provide an
> insight?

If you want non-X11 environments to have a D-Bus session bus, you need
to configure dbus >= 1.10 with --enable-user-session at compile time. On
Debian derivatives, install the dbus-user-session package; on
non-Debian-derived distributions, it might be enabled unconditionally
(as on recent Fedora and Arch), or there might be some equivalent step
you have to take, or it might even not be possible at all.

libsecret uses D-Bus to communicate with gnome-keyring, which is why
this is relevant.

-- 
Simon McVittie
Collabora Ltd. 
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] Sync mail with offlineimap via systemd service/timer; getting password from gnome keyring

2016-06-16 Thread Ruben Verweij
Dear all,

I am trying to autosync my mail in mutt using offlineimap via a systemd
service. I am using these (
https://github.com/OfflineIMAP/offlineimap/tree/master/contrib/systemd)
files and have moved them to the `/etc/systemd/user` folder.

However, I am storing my password via the gnome-keyring and retrieving it
via `secret-tool lookup user [user] domain gmail.com`. This works from the
command line, but the service returns the following:

user@computer:~/.dotfiles$ systemctl --user -l status
offlineimap.service
● offlineimap.service - Offlineimap Service
   Loaded: loaded (/etc/systemd/user/offlineimap.service; enabled;
vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2016-06-10 10:03:43
CEST; 11s ago
  Process: 5193 ExecStart=/usr/bin/offlineimap -o -u syslog
(code=exited, status=1/FAILURE)
 Main PID: 5193 (code=exited, status=1/FAILURE)

Jun 10 10:03:40 computer offlineimap[5193]: Establishing connection to
imap.gmail.com:993
Jun 10 10:03:43 computer ERROR[5193]: While attempting to sync account
'MyAccount'
   Command 'secret-tool lookup user
myaccount domain gmail.com' returned non-zero exit status 1
Jun 10 10:03:43 computer offlineimap[5193]: *** Finished account
'MyAccount' in 0:03
Jun 10 10:03:43 computer ERROR[5193]: Exceptions occurred during the
run!
Jun 10 10:03:43 computer ERROR[5193]: While attempting to sync account
'MyAccount'
   Command 'secret-tool lookup user
myaccount domain gmail.com' returned non-zero exit status 1
Jun 10 10:03:43 computer Traceback[5193]:   File
"/usr/lib/python2.7/site-packages/offlineimap/accounts.py", line 263, in
syncrunner
 self.__sync()
   File
"/usr/lib/python2.7/site-packages/offlineimap/accounts.py", line 326, in
__sync
 remoterepos.getfolders()
   File
"/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.py", line
390, in getfolders
 imapobj =
self.imapserver.acquireconnection()
   File
"/usr/lib/python2.7/site-packages/offlineimap/imapserver.py", line 511, in
acquireconnection

 self.__authn_helper(imapobj)
   File
"/usr/lib/python2.7/site-packages/offlineimap/imapserver.py", line 411, in
__authn_helper
 if func(imapobj):
   File
"/usr/lib/python2.7/site-packages/offlineimap/imapserver.py", line 350, in
__authn_login
 self.__loginauth(imapobj)
   File
"/usr/lib/python2.7/site-packages/offlineimap/imapserver.py", line 203, in
__loginauth

 imapobj.login(self.username, self.__getpassword())
   File
"/usr/lib/python2.7/site-packages/offlineimap/imapserver.py", line 159, in
__getpassword
 self.password =
self.repos.getpassword() or \
   File
"/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.py", line
332, in getpassword
 return
self.localeval.eval(passwd)
   File
"/usr/lib/python2.7/site-packages/offlineimap/localeval.py", line 48, in
eval
 return eval(text, names)
   File "", line 1, in

   File
"/home/user/.mutt/offlineimap.py", line 8, in get_keychain_pass
 stderr=subprocess.STDOUT)
   File
"/usr/lib64/python2.7/subprocess.py", line 573, in check_output
 raise
CalledProcessError(retcode, cmd, output=output)
Jun 10 10:03:43 computer systemd[1075]: offlineimap.service: Main
process exited, code=exited, status=1/FAILURE
Jun 10 10:03:43 computer systemd[1075]: Failed to start Offlineimap
Service.
Jun 10 10:03:43 computer systemd[1075]: offlineimap.service: Unit
entered failed state.
Jun 10 10:03:43 computer systemd[1075]: offlineimap.service: Failed
with result 'exit-code'.

I already found out that the problem might lie in the dbus communication,
but I'm not sure how to fix it. Can anyone provide an insight?

I posted the question on the Unix stackexchange here
http://unix.stackexchange.com/questions/288685/sync-mail-with-offlineimap-via-systemd-service-timer-getting-password-from-gnom,
but unfortunately nobody has provided an answer yet.

If anyone can provide a solution, I will