You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/mate-extra/mate-power-manager/files/mate-power-manager-1.24.1-l...

288 lines
10 KiB

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"])