Lbry-desktop: Remove keyring requirement - replace with cookie/other token (gnome_keyring)

Created on 26 Jul 2017  ·  16Comments  ·  Source: lbryio/lbry-desktop

The Issue

We've had some complaints and seensome startup issues because users didn't have gnome keyring installed. From what I understand, it's not on all Linux distros and some people choose to use it for various reasons. Is it possible to generate the auth token in a different way for Linux? Possibly some hash of the wallet pubkey and timestamp?

Steps to reproduce

  1. Run bry-app without gnome keyring installed
  2. hangs on authenticating screen
  3. see daemon log below

Expected behaviour

Tell us what should happen

Actual behaviour

Tell us what happens instead

System Configuration

  • LBRY Daemon version: 0.13.1
  • LBRY App version: 0.13.0
  • LBRY Installation ID:
  • Operating system: Kubuntu

Anything Else

017-07-01 01:00:28,047 INFO     lbrynet.lbrynet_daemon.Daemon:531: Starting to setup up file manager
2017-07-01 01:00:28,073 INFO     lbrynet.lbryfilemanager.EncryptedFileManager:126: Started 0 lbry files
2017-07-01 01:00:28,073 INFO     lbrynet.lbrynet_daemon.Daemon:542: Done setting up file manager
2017-07-01 01:00:28,075 INFO     lbrynet.lbrynet_daemon.Daemon:271: Starting balance: 0
2017-07-01 01:00:28,075 INFO     lbrynet.lbrynet_daemon.Daemon:248: Started lbrynet-daemon
2017-07-01 01:00:28,076 INFO     lbrynet.lbrynet_daemon.Daemon:249: 0 blobs in manager
2017-07-01 01:00:28,974 INFO     lbrynet.core.Wallet:809: Resolving lbry://one
** Message: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files
(node:5341) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: The name org.freedesktop.secrets was not provided by any .service files                                                                                              
(node:5341) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.                                                                        
** Message: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files                                                                                                          
(node:5341) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: The name org.freedesktop.secrets was not provided by any .service files

Screenshots

devops exploration medium improvement

Most helpful comment

Some People cannot install the gnome-keyring as it Will put their current keyring out of place.

All 16 comments

I have exactly the same error

Platform: {
    "lbrynet_version": "0.13.1",
    "platform": "Linux-4.11.9-1-ARCH-x86_64-with-glibc2.3.4",
    "os_system": "Linux",
    "python_version": "2.7.12",
    "os_release": "4.11.9-1-ARCH",
    "lbryum_version": "2.8.4",
    "ip": "Could not determine IP",
    "lbryschema_version": "0.0.7",
    "processor": "",
    "build": "release"
}

Running Arch Linux (Antergos) with KDE Plasma 5.10.4-1

We are using keytar: https://github.com/atom/node-keytar

Relevant code is at the end of this file: https://github.com/lbryio/lbry-app/blob/38fd451e72c60b0373a8e337bb1de1da37f7942a/app/main.js

It is unlikely we would prioritize this at the moment, but we'd be happy to bounty it.

keytar uses libsecret, which is a frontend to gnome-keyring. KWallet does not support org.freedesktop.secrets

just installed the package gnome-keyring and everything workes fine

Some People cannot install the gnome-keyring as it Will put their current keyring out of place.

This issue seems to be pretty common -- we really ought to be at least erroring on this in a clean enough way that users understand what's happening if we can't fix it outright.

Opening this back up because the referenced file/commit (https://github.com/lbryio/lbry-app/commit/dbd147f4d1c86c3dfcc176061607d06bcf168cde) was changed to remove the dependency on gnome-keyring. This may have been during @IGassmann 's refactoring of the build process.

If you run the LBRY app on a KDE distro, the app fails to load anything on the front page as it's not able to get an authentication token.

Looks like keytar is supposed to support libsecret (https://github.com/atom/node-keytar/issues/74) but it doesn't work as expected. I'm not sure what the next steps are - is it possible to just use libsecret instead of keytar, or they come hand in hand?

I can confirm that this is still an issue on a KDE-based distributions, the Explore page is blank and get this error on log:

┏ Electron -------------------

  ** Message: 10:40:35.238: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files

┗ ----------------------------
┏ Electron -------------------

  (node:16689) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 9): Error: The name org.freedesktop.secrets was not provided by any .service files

┗ ----------------------------

The version I am using is v0.22.0-rc.14

@tzarebczan is this still happening

I had to install gnome-keyring for LBRY 0.33.2 (and 0.33.1) to work. Without gnome-keyring it doesn't download or show any videos. I don't have to have or make an actual keyring for it to work but can just click cancel on the keyring window that pops up.

We'll try to remove this requirement in the next few months. Thanks for reaching out!

I'm having an issue where I can view content but when I try to sign in with my email, the page hangs. It doesn't get to the next screen titled "Check Your Email", nor does it send me the confirmation email. It works if I install the gnome-keyring package. It looks like that's not meant to be a dependency anymore and since I don't use gnome, I would greatly appreciate not needing it installed for LBRY.

Platform:

{
  "processor": "x86_64",
  "python_version": "3.7.6",
  "platform": "Linux-5.3.0-28-generic-x86_64-with-neon-18.04-bionic",
  "os_release": "5.3.0-28-generic",
  "os_system": "Linux",
  "lbrynet_version": "0.63.0",
  "version": "0.63.0",
  "build": "release",
  "distro": {
    "id": "neon",
    "version": "18.04",
    "version_parts": {
      "major": "18",
      "minor": "04",
      "build_number": ""
    },
    "like": "ubuntu debian",
    "codename": "bionic"
  },
  "desktop": "KDE"
}

Running KDE Neon User Edition 5.18 (Ubuntu 18.04 with KDE).

Thank you for the great app!
Ziah

Sorry for the trouble. Try out the build at the top of lbry.com/faq/startup-troubleshooting - this has it removed completely. You'll need to check back there or the releases page for future updates until we can fix this.

Sorry for the trouble. Try out the build at the top of lbry.com/faq/startup-troubleshooting - this has it removed completely. You'll need to check back there or the releases page for future updates until we can fix this.

Thanks for the quick reply. I found out through a related issue on keytar that it supports my password manager keepassxc, I got that working instead of gnome-keyring and I'm going to use that for now.

Thanks,
Ziah

@tzarebczan FYI, I spoke too soon, it didn't actually work once I clicked the link in the confirmation email. I checked KeePassXC and no auth token was stored there. Nothing was added with the Free Desktop secret service.

The build on that troubleshooting page works just fine.

We've removed it from the recent release (0.44), woohooo!!!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

btzr-io picture btzr-io  ·  11Comments

kauffj picture kauffj  ·  14Comments

kauffj picture kauffj  ·  16Comments

tzarebczan picture tzarebczan  ·  13Comments

tumispro picture tumispro  ·  16Comments