diff --git a/keepassxc.spec b/keepassxc.spec index c6026b7..a7ee056 100644 --- a/keepassxc.spec +++ b/keepassxc.spec @@ -3,11 +3,14 @@ Name: keepassxc Version: 2.6.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Cross-platform password manager License: Boost and BSD and CC0 and GPLv3 and LGPLv2 and LGPLv2+ and LGPLv3+ and Public Domain URL: http://www.keepassxc.org/ -Source0: https://github.com/keepassxreboot/keepassxc/releases/download/%{version}/keepassxc-%{version}-src.tar.xz +Source0: https://github.com/keepassxreboot/keepassxc/releases/download/%{version}/keepassxc-%{version}-src.tar.xz +# Patch0: fixes GNOME quirks on Wayland sessions. Read +# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/3BVLBS4B3XHJEXFVGD7RK2ZMXZG6JQZT/ +Patch0: xcb.patch BuildRequires: cmake >= 3.1 BuildRequires: desktop-file-utils @@ -63,7 +66,7 @@ information can be considered as quite safe. %prep -%autosetup +%autosetup -p1 %build # This package fails to build with LTO due to undefined symbols. LTO @@ -146,6 +149,9 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/org.%{nam %endif %changelog +* Sat May 01 2021 Germano Massullo - 2.6.4-2 +- added xcb.patch that fixes GNOME quirks on Wayland sessions. Read https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/3BVLBS4B3XHJEXFVGD7RK2ZMXZG6JQZT/ + * Sun Jan 31 2021 Mukundan Ragavan - 2.6.4-1 - Update to 2.6.4 diff --git a/xcb.patch b/xcb.patch new file mode 100644 index 0000000..0c0550c --- /dev/null +++ b/xcb.patch @@ -0,0 +1,30 @@ +diff -urNr keepassxc-2.6.4-orig/src/main.cpp keepassxc-2.6.4/src/main.cpp +--- keepassxc-2.6.4-orig/src/main.cpp 2021-01-31 22:37:23.000000000 +0100 ++++ keepassxc-2.6.4/src/main.cpp 2021-05-01 15:31:13.526285073 +0200 +@@ -44,8 +44,26 @@ + #endif + #endif + ++#ifdef Q_OS_LINUX ++void wayland_hacks() ++{ ++ // Workaround to https://github.com/ksnip/ksnip/issues/416 ++ QByteArray currentDesktop = qgetenv("XDG_CURRENT_DESKTOP").toLower(); ++ QByteArray sessionDesktop = qgetenv("XDG_SESSION_DESKTOP").toLower(); ++ QByteArray sessionType = qgetenv("XDG_SESSION_TYPE").toLower(); ++ if (sessionType.contains("wayland") && (currentDesktop.contains("gnome") || sessionDesktop.contains("gnome"))) ++ { ++ qputenv("QT_QPA_PLATFORM", "xcb"); ++ } ++} ++#endif ++ ++ + int main(int argc, char** argv) + { ++ #ifdef Q_OS_LINUX ++ wayland_hacks(); ++ #endif + QT_REQUIRE_VERSION(argc, argv, QT_VERSION_STR) + + #if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)