summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mate-extra/mate-power-manager/files/mate-power-manager-1.24.1-libsecret.patch')
-rw-r--r--mate-extra/mate-power-manager/files/mate-power-manager-1.24.1-libsecret.patch287
1 files changed, 287 insertions, 0 deletions
diff --git a/mate-extra/mate-power-manager/files/mate-power-manager-1.24.1-libsecret.patch b/mate-extra/mate-power-manager/files/mate-power-manager-1.24.1-libsecret.patch
new file mode 100644
index 00000000000..11a9f94b100
--- /dev/null
+++ b/mate-extra/mate-power-manager/files/mate-power-manager-1.24.1-libsecret.patch
@@ -0,0 +1,287 @@
+From b2d876a16de9214270f248d7c445542120ae7800 Mon Sep 17 00:00:00 2001
+From: NP-Hardass <np.hardass@gmail.com>
+Date: Mon, 3 Aug 2020 01:46:00 -0400
+Subject: [PATCH 1/5] Add autotools support for libsecret
+
+---
+ README | 1 +
+ configure.ac | 22 ++++++++++++++++++++++
+ src/Makefile.am | 3 +++
+ 3 files changed, 26 insertions(+)
+
+diff --git a/README b/README
+index 118da697..32a8a5cc 100644
+--- a/README
++++ b/README
+@@ -15,6 +15,7 @@ To build, MATE Power Manager requires
+
+ - Glib (2.36.0 or later)
+ - GTK+3 (3.14.0 or later)
++ - libsecret (0.11 or later)
+ - GNOME Keyring (3.0.0 or later)
+ - DBus (0.70 or later)
+ - libnotify (0.7.0 or later)
+diff --git a/configure.ac b/configure.ac
+index 1db39321..b4758dca 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -68,6 +68,7 @@ GLIB_REQUIRED=2.50.0
+ GIO_REQUIRED=2.50.0
+ GDK_REQUIRED=3.22.0
+ GTK_REQUIRED=3.22.0
++LIBSECRET_REQUIRED=0.11
+ GNOME_KEYRING_REQUIRED=3.0.0
+ DBUS_REQUIRED=1.0
+ DBUS_GLIB_REQUIRED=0.70
+@@ -134,6 +135,22 @@ else
+ fi
+ AM_CONDITIONAL([HAVE_TESTS], [test $have_tests = yes])
+
++dnl ---------------------------------------------------------------------------
++dnl - Build libsecret support
++dnl ---------------------------------------------------------------------------
++AC_ARG_WITH(libsecret,
++ [AS_HELP_STRING([--with-libsecret],
++ [Enable the use of libsecret])],
++ [],
++ [with_libsecret=no])
++
++AM_CONDITIONAL([WITH_LIBSECRET],[test "$with_libsecret" = "yes"])
++
++if test "$with_libsecret" = "yes"; then
++ PKG_CHECK_MODULES(LIBSECRET, libsecret-1 >= $LIBSECRET_REQUIRED)
++ AC_DEFINE([WITH_LIBSECRET],[1],[Define if LIBSECRET support is enabled])
++fi
++
+ dnl ---------------------------------------------------------------------------
+ dnl - Build gnome-keyring support
+ dnl ---------------------------------------------------------------------------
+@@ -150,6 +167,10 @@ if test "$with_keyring" = "yes"; then
+ AC_DEFINE([WITH_KEYRING],[1],[Define if KEYRING support is enabled])
+ fi
+
++if test "$with_libsecret" = "yes" -a "$with_keyring" = "yes"; then
++ AC_MSG_ERROR([Please select only 1, keyring or libsecret])
++fi
++
+ dnl ---------------------------------------------------------------------------
+ dnl - Build applets
+ dnl ---------------------------------------------------------------------------
+@@ -222,6 +243,7 @@ echo "
+ compiler: ${CC}
+ cflags: ${CFLAGS}
+ cwarnings: ${WARN_CFLAGS}
++ libsecret support: ${with_libsecret}
+ gnome-keyring support: ${with_keyring}
+ Building extra applets: ${enable_applets}
+ Self test support: ${have_tests}
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 1a966e8f..47815c5f 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -14,6 +14,7 @@ AM_CPPFLAGS = \
+ $(GLIB_CFLAGS) \
+ $(DBUS_CFLAGS) \
+ $(CAIRO_CFLAGS) \
++ $(LIBSECRET_CFLAGS) \
+ $(KEYRING_CFLAGS) \
+ $(X11_CFLAGS) \
+ $(LIBNOTIFY_CFLAGS) \
+@@ -197,6 +198,7 @@ mate_power_manager_LDADD = \
+ $(X11_LIBS) \
+ $(GSTREAMER_LIBS) \
+ $(CAIRO_LIBS) \
++ $(LIBSECRET_LIBS) \
+ $(KEYRING_LIBS) \
+ $(DBUS_LIBS) \
+ $(X11_LIBS) \
+@@ -259,6 +261,7 @@ mate_power_self_test_LDADD = \
+ $(GLIB_LIBS) \
+ $(X11_LIBS) \
+ $(CAIRO_LIBS) \
++ $(LIBSECRET_LIBS) \
+ $(KEYRING_LIBS) \
+ $(GSTREAMER_LIBS) \
+ $(UPOWER_LIBS) \
+
+From 7dbbf59fc5dc64cf512932993616a06903d5f22b Mon Sep 17 00:00:00 2001
+From: NP-Hardass <np.hardass@gmail.com>
+Date: Mon, 3 Aug 2020 01:49:47 -0400
+Subject: [PATCH 2/5] gpm-control.c: Add libsecret implementation to
+ gpm_control_suspend()
+
+---
+ src/gpm-control.c | 39 +++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 39 insertions(+)
+
+diff --git a/src/gpm-control.c b/src/gpm-control.c
+index 4834a050..e64bfb12 100644
+--- a/src/gpm-control.c
++++ b/src/gpm-control.c
+@@ -39,6 +39,9 @@
+ #include <gio/gio.h>
+ #include <glib/gi18n.h>
+
++#ifdef WITH_LIBSECRET
++#include <libsecret/secret.h>
++#endif /* WITH_LIBSECRET */
+ #ifdef WITH_KEYRING
+ #include <gnome-keyring.h>
+ #endif /* WITH_KEYRING */
+@@ -210,6 +213,13 @@ gpm_control_suspend (GpmControl *control, GError **error)
+ EggConsoleKit *console;
+ GpmScreensaver *screensaver;
+ guint32 throttle_cookie = 0;
++#ifdef WITH_LIBSECRET
++ gboolean lock_libsecret;
++ GCancellable *libsecret_cancellable = NULL;
++ SecretService *secretservice_proxy = NULL;
++ gint num_secrets_locked;
++ GList *libsecret_collections = NULL;
++#endif /* WITH_LIBSECRET */
+ #ifdef WITH_KEYRING
+ gboolean lock_gnome_keyring;
+ GnomeKeyringResult keyres;
+@@ -233,6 +243,35 @@ gpm_control_suspend (GpmControl *control, GError **error)
+ }
+ }
+
++#ifdef WITH_LIBSECRET
++ /* we should perhaps lock keyrings when sleeping #375681 */
++ lock_libsecret = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_SUSPEND);
++ if (lock_libsecret) {
++ libsecret_cancellable = g_cancellable_new();
++ secretservice_proxy = secret_service_get_sync(SECRET_SERVICE_LOAD_COLLECTIONS,
++ libsecret_cancellable,
++ error);
++ if (secretservice_proxy == NULL) {
++ g_warning ("failed to connect to secret service");
++ } else {
++ libsecret_collections = secret_service_get_collections(secretservice_proxy);
++ if ( libsecret_collections == NULL) {
++ g_warning ("failed to get secret collections");
++ } else {
++ num_secrets_locked = secret_service_lock_sync(secretservice_proxy,
++ libsecret_collections,
++ libsecret_cancellable,
++ NULL,
++ error);
++ if (num_secrets_locked <= 0)
++ g_warning ("could not lock keyring");
++ g_list_free(libsecret_collections);
++ }
++ g_object_unref(secretservice_proxy);
++ }
++ g_object_unref(libsecret_cancellable);
++ }
++#endif /* WITH_LIBSECRET */
+ #ifdef WITH_KEYRING
+ /* we should perhaps lock keyrings when sleeping #375681 */
+ lock_gnome_keyring = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_SUSPEND);
+
+From 74acfabab04f10e95dc91fdc633a893a4564a820 Mon Sep 17 00:00:00 2001
+From: NP-Hardass <np.hardass@gmail.com>
+Date: Mon, 3 Aug 2020 01:55:43 -0400
+Subject: [PATCH 3/5] gpm-control.c: Add libsecret implementation to
+ gpm_control_hibernate()
+
+---
+ src/gpm-control.c | 36 ++++++++++++++++++++++++++++++++++++
+ 1 file changed, 36 insertions(+)
+
+diff --git a/src/gpm-control.c b/src/gpm-control.c
+index e64bfb12..98bb6f4e 100644
+--- a/src/gpm-control.c
++++ b/src/gpm-control.c
+@@ -367,6 +367,13 @@ gpm_control_hibernate (GpmControl *control, GError **error)
+ EggConsoleKit *console;
+ GpmScreensaver *screensaver;
+ guint32 throttle_cookie = 0;
++#ifdef WITH_LIBSECRET
++ gboolean lock_libsecret;
++ GCancellable *libsecret_cancellable = NULL;
++ SecretService *secretservice_proxy = NULL;
++ gint num_secrets_locked;
++ GList *libsecret_collections = NULL;
++#endif /* WITH_LIBSECRET */
+ #ifdef WITH_KEYRING
+ gboolean lock_gnome_keyring;
+ GnomeKeyringResult keyres;
+@@ -390,6 +397,35 @@ gpm_control_hibernate (GpmControl *control, GError **error)
+ }
+ }
+
++#ifdef WITH_LIBSECRET
++ /* we should perhaps lock keyrings when sleeping #375681 */
++ lock_libsecret = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_SUSPEND);
++ if (lock_libsecret) {
++ libsecret_cancellable = g_cancellable_new();
++ secretservice_proxy = secret_service_get_sync(SECRET_SERVICE_LOAD_COLLECTIONS,
++ libsecret_cancellable,
++ error);
++ if (secretservice_proxy == NULL) {
++ g_warning ("failed to connect to secret service");
++ } else {
++ libsecret_collections = secret_service_get_collections(secretservice_proxy);
++ if ( libsecret_collections == NULL) {
++ g_warning ("failed to get secret collections");
++ } else {
++ num_secrets_locked = secret_service_lock_sync(secretservice_proxy,
++ libsecret_collections,
++ libsecret_cancellable,
++ NULL,
++ error);
++ if (num_secrets_locked <= 0)
++ g_warning ("could not lock keyring");
++ g_list_free(libsecret_collections);
++ }
++ g_object_unref(secretservice_proxy);
++ }
++ g_object_unref(libsecret_cancellable);
++ }
++#endif /* WITH_LIBSECRET */
+ #ifdef WITH_KEYRING
+ /* we should perhaps lock keyrings when sleeping #375681 */
+ lock_gnome_keyring = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_HIBERNATE);
+
+From a5b4e5b14510ea3aeb8824294876c152635503ae Mon Sep 17 00:00:00 2001
+From: NP-Hardass <np.hardass@gmail.com>
+Date: Mon, 3 Aug 2020 02:01:10 -0400
+Subject: [PATCH 5/5] Switch default from libgnome-keyring to libsecret
+
+---
+ configure.ac | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b4758dca..7fbc8206 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -139,10 +139,10 @@ dnl ---------------------------------------------------------------------------
+ dnl - Build libsecret support
+ dnl ---------------------------------------------------------------------------
+ AC_ARG_WITH(libsecret,
+- [AS_HELP_STRING([--with-libsecret],
+- [Enable the use of libsecret])],
++ [AS_HELP_STRING([--without-libsecret],
++ [Disable the use of libsecret])],
+ [],
+- [with_libsecret=no])
++ [with_libsecret=yes])
+
+ AM_CONDITIONAL([WITH_LIBSECRET],[test "$with_libsecret" = "yes"])
+
+@@ -155,10 +155,10 @@ dnl ---------------------------------------------------------------------------
+ dnl - Build gnome-keyring support
+ dnl ---------------------------------------------------------------------------
+ AC_ARG_WITH(keyring,
+- [AS_HELP_STRING([--without-keyring],
+- [Disable the use of gnome-keyring])],
++ [AS_HELP_STRING([--with-keyring],
++ [Enable the use of gnome-keyring])],
+ [],
+- [with_keyring=yes])
++ [with_keyring=no])
+
+ AM_CONDITIONAL([WITH_KEYRING],[test "$with_keyring" = "yes"])
+