KeePassXC's Secret Service not found with OpenRC

Description

The Client doesn’t recognize KeePassXC’s XDG libsecret implementation (using the openrc init system).

To Reproduce…

Steps to reproduce the behavior:

  1. Install a distribution with OpenRC as the init system (for instance Artix Linux).
  2. Install KeePassXC and enable the secret service implementation.
  3. Install Mailspring and log-in with your Mailspring ID.
  4. See error: “Mailspring couldn’t store your password securely. Make sure you have libsecret installed and a keyring is present. For more information, visit […]”

Expected Behavior

The Mailspring client should recognize and utilize the KeePassXC libsecret implementation.

Screenshots

The error:
yes

A 1 minute recording of the issue: streamable.com/mx44g2

Setup

  • OS and Version: Artix Linux, mainline kernel version: 5.15.12-artix1-1
  • Installation Method: ArchLinux’s User Repository (AUR), built by source from the chaotic-aur repository.
  • Mailspring Version: 1.9.2-6e14dad1

Hi @xtrm

I am not sure, how exactly KeePassXC does implement the libsecret bindings needed. Unfortunately, it feels like this would be something bigger. I was trying out some things regarding the Mailspring key storage (on Mac though), but this was really tiresome and I did not be very successful with any of the things that I tried.

Do you see any more logs if you start Mailspring from the command line?

It does seem to produce some kind of error after the message prompt, see:

❯ mailspring
Running database migrations
App load time: 161ms

{"error":null}
(electron) The default value of app.allowRendererProcessReuse is deprecated, it is currently "false".  It will change to be "true" in Electron 9.  For more information please check https://github.com/electron/electron/issues/18397
Manual update check (updates.getmailspring.com/check/linux/x64/1.9.2-6e14dad1/anonymous/stable) returned 204
[Error: No such object path '/org/freedesktop/secrets/aliases/default'] {
  message: "No such object path '/org/freedesktop/secrets/aliases/default'"
} { pluginIds: [] }
(node:6057) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated

I am not sure, but it seems like a problem with what KeePassXC exposes and Mailspring tries to use. Maybe this here helps: https://github.com/keepassxreboot/keepassxc/issues/3955#issuecomment-560024175