mitya57/secretstorage

Support alternative bindings for Dbus

Closed this issue · 6 comments

Presently, the code uses dbus-python for DBus support.

However, that binding cannot be used with pypy, because it has a C binding, and pypy tries to avoid that as much as possible.

Please support using another DBus binding instead. Of the official list of DBus bindings, the only usable option is txdbus, because the others also require compiling a C extension.

My plan was to try jeepney, but perhaps TxDBus is also worth trying. I cannot make any promises on when I will have time to work on it, though.

Jeepney looks like it would be much cleaner than TxDBus

Initial version of Jeepney port is available in wip/jeepney branch. It passes tests on Travis, but some functions related to unlocking collections may not work properly yet.

I will not release it as a stable SecretStorage release, as Jeepney does not support Python 2, while keyring needs us to support it. So either it will be a beta version for some years, or a separate project on PyPI.

Cc @takluyver — you might be interested in seeing projects using Jeepney :)

Thanks! Nice work :-)

I think you've already seen my keyring_jeepney backend. That's much simpler than this, because I only aimed to support the simplified API that keyring provides, rather than exposing the richer xdg secrets interface. I also took some shortcuts around assuming that the items we wanted are already unlocked.

Sure, I have seen it, but I want to expose the full Secret Service API here, including prompting, and at the same time I want to make API compatible to previous SecretStorage releases, so I used my own wrapper class instead of your Proxy.

Great :-) I wasn't suggesting this is unnecessary - I'm actually likely to use the richer SecretStorage API in a project I'm thinking about.