frankosterfeld / qtkeychain

Platform-independent Qt API for storing passwords securely.
Other
421 stars 160 forks source link

qtkeychain doesn't support gnome-keyring 40.0 #211

Open ChristopheLarchier opened 2 years ago

ChristopheLarchier commented 2 years ago

Access to gnome-keyring 40 does not work, all *PasswordJob are failing. Works ok with gnome-keyring 3-36 Build from last sources with Qt 6.2.3

frankosterfeld commented 2 years ago

Which distribution are you on? Do you happen to know if libsecret is available/working, or if it is falling back to the gnome keyring backend?

ChristopheLarchier commented 2 years ago

Hello,

Thanks for your answer. I'm on Ubuntu 21.10.

libsecret-1-0 is installed (version 0.20.4-2)

Regards, Christophe Larchier

Le 2022-04-12T17:05:46.000+02:00, Frank Osterfeld @.***> a écrit :

 Which distribution are you on? Do you happen to know if libsecret is  available/working, or if it is falling back to the gnome keyring  backend?    —  Reply to this email directly, view it on GitHub  [https://github.com/frankosterfeld/qtkeychain/issues/211#issuecomment-1096850118],  or unsubscribe  [https://github.com/notifications/unsubscribe-auth/ASOL44KEART5DJG462BX263VEWGMVANCNFSM5THPMF6Q].  You are receiving this because you authored the thread.Message ID: @.***>

K

INFOMANIAK

Larchier Christophe Developer Team Leader 

+33689272002 

Rue Eugène-Marziano 25, 1227 Genève

SWISS MADE | ISO 27001 14001 50001

frankosterfeld commented 2 years ago

Under Ubuntu 21.10/gnome 40.4.0/wayland, I've tried an application built elsewhere and packaged as AppImage, using qtkeychain 0.13.2, and storing and reading the password works (seahorse also shows it).

This is a standard Ubuntu install + gnome PPA, so nothing special installed.

(The application prints Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway, wayland qpa plugin not being in the appimage)

ChristopheLarchier commented 2 years ago

Hello Frank,

Did you try with Qt 5 or 6?

I'm with Qt 6.2.3

Thank you,

Christophe

Le 2022-04-14T10:00:30.000+02:00, Frank Osterfeld @.***> a écrit :

 Under Ubuntu 21.10/gnome 40.4.0/wayland, I've tried an application  built elsewhere and packaged as AppImage, using qtkeychain 0.13.2,  and storing and reading the password works (seahorse also shows it).    This is a standard Ubuntu install + gnome PPA, so nothing special  installed.    (The application prints Warning: Ignoring XDG_SESSION_TYPE=wayland  on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway,  wayland qpa plugin not being in the appimage)    —  Reply to this email directly, view it on GitHub  [https://github.com/frankosterfeld/qtkeychain/issues/211#issuecomment-1098820129],  or unsubscribe  [https://github.com/notifications/unsubscribe-auth/ASOL44K4DU7NAMX7NRBJLTLVE7GB5ANCNFSM5THPMF6Q].  You are receiving this because you authored the thread.Message ID: @.***>

K

INFOMANIAK

Larchier Christophe Developer Team Leader 

+33689272002 

Rue Eugène-Marziano 25, 1227 Genève

SWISS MADE | ISO 27001 14001 50001

frankosterfeld commented 2 years ago

I now tried with Qt 6.2.4 (I don't think the Qt version matters), after installing the minimum requirements (Qt from the online installer, cmake, g++, libsecret-dev...), built the testclient with cmake -DBUILD_TEST_APPLICATION=ON -DBUILD_WITH_QT6=ON, and it works for me. Can you test if the testclient fails for you, too?

ChristopheLarchier commented 2 years ago

Hello Frank,

testclient is working fine, my app also in debug mode, but not when packaged in the appimage.

I noticed these lines in journalctl:

avr 27 17:25:36 chris-VirtualBox dbus-daemon[1715]: [session uid=1000 pid=1715] Activating service name='org.kde.kwalletd5' requested by ':1.302' (uid=1000 pid=15230 comm="./kDrive " label="unconfined")

avr 27 17:25:36 chris-VirtualBox dbus-daemon[1715]: [session uid=1000 pid=1715] Successfully activated service 'org.kde.kwalletd5'

When I enable kwallet5, the app is able to save the credentials.

Do you know why it is trying to use kwallet5 and not libsecret/gnome-keyring which is the default keystore in Ubuntu ?

Thank you and regards,

Christophe

Le 2022-04-19T22:35:08.000+02:00, Frank Osterfeld @.***> a écrit :

 I now tried with Qt 6.2.4 (I don't think the Qt version matters),  after installing the minimum requirements (Qt from the online  installer, cmake, g++, libsecret-dev...), built the testclient with  cmake -DBUILD_TEST_APPLICATION=ON -DBUILD_WITH_QT6=ON, and it works  for me. Can you test if the testclient fails for you, too?    —  Reply to this email directly, view it on GitHub  [https://github.com/frankosterfeld/qtkeychain/issues/211#issuecomment-1103122104],  or unsubscribe  [https://github.com/notifications/unsubscribe-auth/ASOL44KWUJ73Y732WFDMV4DVF4KHZANCNFSM5THPMF6Q].  You are receiving this because you authored the thread.Message ID: @.***>

K

INFOMANIAK

Larchier Christophe Developer Team Leader 

+33689272002 

Rue Eugène-Marziano 25, 1227 Genève

SWISS MADE | ISO 27001 14001 50001

ChristopheLarchier commented 2 years ago

Hello Frank,

I finally found out that the problem comes from libglib-2.0.so.0 that is added to the appimage by linuxdeploy.

So, no issue with qtkeychain, sorry for the disturbance.

Thank you for your help,

Christophe

Le 2022-04-27T17:34:56.000+02:00, Christophe Larchier @.***> a écrit :

 Hello Frank,    testclient is working fine, my app also in debug mode, but not when  packaged in the appimage.    I noticed these lines in journalctl:    avr 27 17:25:36 chris-VirtualBox dbus-daemon[1715]: [session  uid=1000 pid=1715] Activating service name='org.kde.kwalletd5'  requested by ':1.302' (uid=1000 pid=15230 comm="./kDrive "  label="unconfined")    avr 27 17:25:36 chris-VirtualBox dbus-daemon[1715]: [session  uid=1000 pid=1715] Successfully activated service  'org.kde.kwalletd5'    When I enable kwallet5, the app is able to save the credentials.    Do you know why it is trying to use kwallet5 and not  libsecret/gnome-keyring which is the default keystore in Ubuntu ?    Thank you and regards,    Christophe    Le 2022-04-19T22:35:08.000+02:00, Frank Osterfeld @.***> a écrit :  

  I now tried with Qt 6.2.4 (I don't think the Qt version matters),   after installing the minimum requirements (Qt from the online   installer, cmake, g++, libsecret-dev...), built the testclient   with cmake -DBUILD_TEST_APPLICATION=ON -DBUILD_WITH_QT6=ON, and it   works for me. Can you test if the testclient fails for you, too?      —   Reply to this email directly, view it on GitHub   [https://github.com/frankosterfeld/qtkeychain/issues/211#issuecomment-1103122104],   or unsubscribe   [https://github.com/notifications/unsubscribe-auth/ASOL44KWUJ73Y732WFDMV4DVF4KHZANCNFSM5THPMF6Q].   You are receiving this because you authored the thread.Message ID: @.***>    K    INFOMANIAK    Larchier Christophe Developer Team Leader     +33689272002     Rue Eugène-Marziano 25, 1227 Genève    SWISS MADE | ISO 27001 14001 50001

K

INFOMANIAK

Larchier Christophe Developer Team Leader 

+33689272002 

Rue Eugène-Marziano 25, 1227 Genève

SWISS MADE | ISO 27001 14001 50001

FredericLespez commented 2 years ago

@clinfomaniak Could you precise what was the problem with libglib-2.0.so.0 please ? I am working on a bug similar the one described here. Thanks in advance.

frankosterfeld commented 1 year ago

I fixed this for an internal tool in KDAB by excluding all of glib-2.0/gthread-2.0/gmodule-2.0/gobject-2.0 from the appimage. I think what happens is that when loading gnome-keyring libs at runtime (dlopen), the packaged glib libs don't match what the (system) keyring lib was built against. Omitting them from the package makes the application use the system glibs, which are compatbile.